# HG changeset patch # User Bram Moolenaar # Date 1687991403 -7200 # Node ID 5a989f229d9b8685ba8ef885320cdd92d2e33f7f # Parent ab53a95cdc3875acee67c476f014828b834a7178 patch 9.0.1671: Termdebug: error with more than 99 breakpoints Commit: https://github.com/vim/vim/commit/e7d9ca2b3bf99b0b759be8952e02c77110a354c1 Author: skywind3000 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) diff --git a/runtime/doc/terminal.txt b/runtime/doc/terminal.txt --- 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 diff --git a/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim --- 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 diff --git a/src/version.c b/src/version.c --- 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,