changeset 32681:5a989f229d9b v9.0.1671

patch 9.0.1671: Termdebug: error with more than 99 breakpoints Commit: https://github.com/vim/vim/commit/e7d9ca2b3bf99b0b759be8952e02c77110a354c1 Author: skywind3000 <skywind3000@163.com> Date: Wed Jun 28 23:27:28 2023 +0100 patch 9.0.1671: Termdebug: error with more than 99 breakpoints Problem: Termdebug: error with more than 99 breakpoints. Solution: Use a different sign for breakpoint 100 and over. (closes https://github.com/vim/vim/issues/12589, closes #12588)
author Bram Moolenaar <Bram@vim.org>
date Thu, 29 Jun 2023 00:30:03 +0200
parents ab53a95cdc38
children e311afd8e9c2
files runtime/doc/terminal.txt runtime/pack/dist/opt/termdebug/plugin/termdebug.vim src/version.c
diffstat 3 files changed, 29 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/terminal.txt
+++ b/runtime/doc/terminal.txt
@@ -1,4 +1,4 @@
-*terminal.txt*	For Vim version 9.0.  Last change: 2023 Jun 09
+*terminal.txt*	For Vim version 9.0.  Last change: 2023 Jun 28
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -1541,6 +1541,20 @@ If there is no g:termdebug_config you ca
 	let g:termdebug_popup = 0
 
 
+Change default signs ~
+							*termdebug_signs*
+Termdebug uses the last two characters of the breakpoint ID in the
+signcolumn to represent breakpoints. For example, breakpoint ID 133
+will be displayed as `33`.
+
+If you want to customize the breakpoint signs: >
+	let g:termdebug_config['sign'] = '>>'
+If there is no g:terminal_config yet you can use: >
+	let g:termdebug_config = {'sign': '>>'}
+
+After this, breakpoints will be displayed as `>>` in the signcolumn.
+
+
 Window toolbar ~
 							*termdebug_winbar*
 By default the Termdebug plugin creates a window toolbar if the mouse is
--- a/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
+++ b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
@@ -1401,9 +1401,19 @@ func s:CreateBreakpoint(id, subid, enabl
     else
       let hiName = "debugBreakpoint"
     endif
+    let label = ''
+    if exists('g:termdebug_config')
+      let label = get(g:termdebug_config, 'sign', '')
+    endif
+    if label == ''
+      let label = substitute(nr, '\..*', '', '')
+      if strlen(label) > 2
+	let label = strpart(label, strlen(label) - 2)
+      endif
+    endif
     call sign_define('debugBreakpoint' .. nr,
-			    \ #{text: substitute(nr, '\..*', '', ''),
-			    \ texthl: hiName})
+				\ #{text: strpart(label, 0, 2), 
+				\ texthl: hiName})
   endif
 endfunc
 
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1671,
+/**/
     1670,
 /**/
     1669,