vim-patch:8.1.2143: cannot see each command even when 'verbose' is set

Problem:    Cannot see each command even when 'verbose' is set.
Solution:   List each command when 'verbose' is at least 16.
4facea310c

Cherry-pick Test_tselect() from patch 8.1.2141.
It requires screendump so it won't run.
I cannot port it to a lua screen test.
This commit is contained in:
Jan Edmund Lazo 2020-10-02 01:05:12 -04:00
parent 2000e1621d
commit 970d6ee0d1
No known key found for this signature in database
GPG Key ID: 64915E6E9F735B15
3 changed files with 83 additions and 10 deletions

View File

@ -258,6 +258,27 @@ void do_exmode(int improved)
msg_scroll = save_msg_scroll; msg_scroll = save_msg_scroll;
} }
// Print the executed command for when 'verbose' is set.
// When "lnum" is 0 only print the command.
static void msg_verbose_cmd(linenr_T lnum, char_u *cmd)
FUNC_ATTR_NONNULL_ALL
{
no_wait_return++;
verbose_enter_scroll();
if (lnum == 0) {
smsg(_("Executing: %s"), cmd);
} else {
smsg(_("line %" PRIdLINENR ": %s"), lnum, cmd);
}
if (msg_silent == 0) {
msg_puts("\n"); // don't overwrite this
}
verbose_leave_scroll();
no_wait_return--;
}
/* /*
* Execute a simple command line. Used for translated commands like "*". * Execute a simple command line. Used for translated commands like "*".
*/ */
@ -568,16 +589,7 @@ int do_cmdline(char_u *cmdline, LineGetter fgetline,
} }
if (p_verbose >= 15 && sourcing_name != NULL) { if (p_verbose >= 15 && sourcing_name != NULL) {
++no_wait_return; msg_verbose_cmd(sourcing_lnum, cmdline_copy);
verbose_enter_scroll();
smsg(_("line %" PRIdLINENR ": %s"), sourcing_lnum, cmdline_copy);
if (msg_silent == 0) {
msg_puts("\n"); // don't overwrite this either
}
verbose_leave_scroll();
--no_wait_return;
} }
/* /*
@ -1269,6 +1281,10 @@ static char_u * do_one_cmd(char_u **cmdlinep,
goto doend; goto doend;
} }
if (p_verbose >= 16) {
msg_verbose_cmd(0, *cmdlinep);
}
// 1. Skip comment lines and leading white space and colons. // 1. Skip comment lines and leading white space and colons.
// 2. Handle command modifiers. // 2. Handle command modifiers.

View File

@ -1,5 +1,8 @@
" Tests for editing the command line. " Tests for editing the command line.
source check.vim
source screendump.vim
func Test_complete_tab() func Test_complete_tab()
call writefile(['testfile'], 'Xtestfile') call writefile(['testfile'], 'Xtestfile')
call feedkeys(":e Xtestf\t\r", "tx") call feedkeys(":e Xtestf\t\r", "tx")
@ -718,6 +721,26 @@ func Test_verbosefile()
call delete('Xlog') call delete('Xlog')
endfunc endfunc
func Test_verbose_option()
CheckScreendump
let lines =<< trim [SCRIPT]
command DoSomething echo 'hello' |set ts=4 |let v = '123' |echo v
call feedkeys("\r", 't') " for the hit-enter prompt
set verbose=20
[SCRIPT]
call writefile(lines, 'XTest_verbose')
let buf = RunVimInTerminal('-S XTest_verbose', {'rows': 12})
call term_wait(buf, 100)
call term_sendkeys(buf, ":DoSomething\<CR>")
call VerifyScreenDump(buf, 'Test_verbose_option_1', {})
" clean up
call StopVimInTerminal(buf)
call delete('XTest_verbose')
endfunc
func Test_setcmdpos() func Test_setcmdpos()
func InsertTextAtPos(text, pos) func InsertTextAtPos(text, pos)
call assert_equal(0, setcmdpos(a:pos)) call assert_equal(0, setcmdpos(a:pos))

View File

@ -1,5 +1,8 @@
" Tests for tagjump (tags and special searches) " Tests for tagjump (tags and special searches)
source check.vim
source screendump.vim
" SEGV occurs in older versions. (At least 7.4.1748 or older) " SEGV occurs in older versions. (At least 7.4.1748 or older)
func Test_ptag_with_notagstack() func Test_ptag_with_notagstack()
set notagstack set notagstack
@ -551,6 +554,37 @@ func Test_tag_line_toolong()
let &verbose = old_vbs let &verbose = old_vbs
endfunc endfunc
" Check that using :tselect does not run into the hit-enter prompt.
" Requires a terminal to trigger that prompt.
func Test_tselect()
CheckScreendump
call writefile([
\ 'main Xtest.h /^void test();$/;" f',
\ 'main Xtest.c /^int main()$/;" f',
\ 'main Xtest.x /^void test()$/;" f',
\ ], 'Xtags')
cal writefile([
\ 'int main()',
\ 'void test()',
\ ], 'Xtest.c')
let lines =<< trim [SCRIPT]
set tags=Xtags
[SCRIPT]
call writefile(lines, 'XTest_tselect')
let buf = RunVimInTerminal('-S XTest_tselect', {'rows': 10, 'cols': 50})
call term_wait(buf, 100)
call term_sendkeys(buf, ":tselect main\<CR>2\<CR>")
call VerifyScreenDump(buf, 'Test_tselect_1', {})
call StopVimInTerminal(buf)
call delete('Xtags')
call delete('Xtest.c')
call delete('XTest_tselect')
endfunc
func Test_tagline() func Test_tagline()
call writefile([ call writefile([
\ 'provision Xtest.py /^ def provision(self, **kwargs):$/;" m line:1 language:Python class:Foo', \ 'provision Xtest.py /^ def provision(self, **kwargs):$/;" m line:1 language:Python class:Foo',