diff --git a/runtime/doc/tags b/runtime/doc/tags index 706970f17a..39f279d361 100644 --- a/runtime/doc/tags +++ b/runtime/doc/tags @@ -10688,6 +10688,7 @@ termdebug-starting terminal.txt /*termdebug-starting* termdebug-stepping terminal.txt /*termdebug-stepping* termdebug-timeout terminal.txt /*termdebug-timeout* termdebug-variables terminal.txt /*termdebug-variables* +termdebug_contributing terminal.txt /*termdebug_contributing* termdebug_disasm_window terminal.txt /*termdebug_disasm_window* termdebug_evaluate_in_popup terminal.txt /*termdebug_evaluate_in_popup* termdebug_map_K terminal.txt /*termdebug_map_K* diff --git a/runtime/doc/terminal.txt b/runtime/doc/terminal.txt index 637277ab59..593dec77c7 100644 --- a/runtime/doc/terminal.txt +++ b/runtime/doc/terminal.txt @@ -1,4 +1,4 @@ -*terminal.txt* For Vim version 9.1. Last change: 2024 Nov 10 +*terminal.txt* For Vim version 9.1. Last change: 2024 Nov 19 VIM REFERENCE MANUAL by Bram Moolenaar @@ -1737,4 +1737,23 @@ This can also be used in a "one-shot" manner: > let g:termdebug_config['evaluate_in_popup'] = v:false endfunc < + +Contributing ~ + *termdebug_contributing* +Contributions for termdebug improvements are welcome. +However, it is fairly common that during the development process you need some +mechanisms like `echo` statements (or similar) to help you in your job. +For this reason, you can set: > + let g:termdebug_config['debug'] = true +< +This sets the `DEBUG` variable to `true` in the source code that you can use +within the source code. An example of its usage follows: > + if exists('g:termdebug_loaded') + if DEBUG + Echoerr('Termdebug already loaded.') + endif + finish + endif +< + vim:tw=78:ts=8:noet:ft=help:norl: diff --git a/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim index 6f1f4b5227..9fbf3b7f69 100644 --- a/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim +++ b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim @@ -4,7 +4,7 @@ vim9script # Author: Bram Moolenaar # Copyright: Vim license applies, see ":help license" -# Last Change: 2024 Jul 04 +# Last Change: 2024 Nov 19 # Converted to Vim9: Ubaldo Tiberi # WORK IN PROGRESS - The basics works stable, more to come @@ -38,6 +38,11 @@ vim9script # The communication with gdb uses GDB/MI. See: # https://sourceware.org/gdb/current/onlinedocs/gdb/GDB_002fMI.html +var DEBUG = false +if exists('g:termdebug_config') + DEBUG = get(g:termdebug_config, 'debug', false) +endif + def Echoerr(msg: string) echohl ErrorMsg | echom $'[termdebug] {msg}' | echohl None enddef @@ -49,7 +54,9 @@ enddef # Variables to keep their status among multiple instances of Termdebug # Avoid to source the script twice. if exists('g:termdebug_loaded') - Echoerr('Termdebug already loaded.') + if DEBUG + Echoerr('Termdebug already loaded.') + endif finish endif g:termdebug_loaded = true diff --git a/src/testdir/test_termdebug.vim b/src/testdir/test_termdebug.vim index 17e1d897a3..0acdab1a50 100644 --- a/src/testdir/test_termdebug.vim +++ b/src/testdir/test_termdebug.vim @@ -57,6 +57,8 @@ endfunction packadd termdebug +" should be the first test to run, since it validates the window layout with +" win ids func Test_termdebug_basic() let bin_name = 'XTD_basic' let src_name = bin_name .. '.c' @@ -620,4 +622,22 @@ function Test_termdebug_config_types() unlet g:termdebug_config endfunction +function Test_termdebug_config_debug() + let s:error_message = '\[termdebug\] Termdebug already loaded' + + " USER mode: No error message shall be displayed + packadd termdebug + call assert_true(execute('messages') !~ s:error_message) + + " DEBUG mode: Error message shall now be displayed + let g:termdebug_config = {} + let g:termdebug_config['debug'] = 1 + packadd termdebug + call assert_true(execute('messages') =~ s:error_message) + + unlet g:termdebug_config + unlet g:termdebug_loaded + " Revert DEBUG mode, by reloading the plugin + source $VIMRUNTIME/pack/dist/opt/termdebug/plugin/termdebug.vim +endfunction " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/version.c b/src/version.c index 422633aa6c..6b263ea04e 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 878, /**/ 877, /**/