From 421c66f741bf4ed4de6bf15df19160df0f90db4b Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Thu, 29 Jun 2023 07:04:46 +0800 Subject: vim-patch:9.0.1671: Termdebug: error with more than 99 breakpoints (#24194) Problem: Termdebug: error with more than 99 breakpoints. Solution: Use a different sign for breakpoint 100 and over. (closes vim/vim#12589, closes vim/vim#12588) https://github.com/vim/vim/commit/e7d9ca2b3bf99b0b759be8952e02c77110a354c1 Co-authored-by: skywind3000 --- runtime/doc/nvim_terminal_emulator.txt | 14 ++++++++++++++ runtime/pack/dist/opt/termdebug/plugin/termdebug.vim | 12 +++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) (limited to 'runtime') diff --git a/runtime/doc/nvim_terminal_emulator.txt b/runtime/doc/nvim_terminal_emulator.txt index aa37161d34..bbcc686207 100644 --- a/runtime/doc/nvim_terminal_emulator.txt +++ b/runtime/doc/nvim_terminal_emulator.txt @@ -493,6 +493,20 @@ If there is no g:termdebug_config you can use: >vim 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: >vim + let g:termdebug_config['sign'] = '>>' +If there is no g:terminal_config yet you can use: >vim + let g:termdebug_config = {'sign': '>>'} + +After this, breakpoints will be displayed as `>>` in the signcolumn. + + Vim window width ~ *termdebug_wide* To change the width of the Vim window when debugging starts and use a vertical diff --git a/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim index d4b49e85c8..e8b78b3f5f 100644 --- a/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim +++ b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim @@ -1543,8 +1543,18 @@ func s:CreateBreakpoint(id, subid, enabled) 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, '\..*', '', ''), + \ #{text: strpart(label, 0, 2), \ texthl: hiName}) endif endfunc -- cgit