patch 9.1.0878: termdebug: cannot enable DEBUG mode
Commit:
https://github.com/vim/vim/commit/ae1c8b790b645c4808463eedcd5a2bebb9ad79bf
Author: Ubaldo Tiberi <[email protected]>
Date: Tue Nov 19 22:32:30 2024 +0100
patch 9.1.0878: termdebug: cannot enable DEBUG mode
Problem: termdebug: cannot enable DEBUG mode
Solution: Allow to specify DEBUG mode (Ubaldo Tiberi)
closes: #16080
Signed-off-by: Ubaldo Tiberi <[email protected]>
Signed-off-by: Christian Brabandt <[email protected]>
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 706970f17..39f279d36 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 637277ab5..593dec77c 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 6f1f4b522..9fbf3b7f6 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 <[email protected]>
# 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 17e1d897a..0acdab1a5 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 422633aa6..6b263ea04 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,
/**/
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/vim_dev/E1tDW1w-007xrz-5r%40256bit.org.