mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
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:
parent
2000e1621d
commit
970d6ee0d1
@ -258,6 +258,27 @@ void do_exmode(int improved)
|
||||
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 "*".
|
||||
*/
|
||||
@ -568,16 +589,7 @@ int do_cmdline(char_u *cmdline, LineGetter fgetline,
|
||||
}
|
||||
|
||||
if (p_verbose >= 15 && sourcing_name != NULL) {
|
||||
++no_wait_return;
|
||||
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;
|
||||
msg_verbose_cmd(sourcing_lnum, cmdline_copy);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -1269,6 +1281,10 @@ static char_u * do_one_cmd(char_u **cmdlinep,
|
||||
goto doend;
|
||||
}
|
||||
|
||||
if (p_verbose >= 16) {
|
||||
msg_verbose_cmd(0, *cmdlinep);
|
||||
}
|
||||
|
||||
// 1. Skip comment lines and leading white space and colons.
|
||||
// 2. Handle command modifiers.
|
||||
|
||||
|
@ -1,5 +1,8 @@
|
||||
" Tests for editing the command line.
|
||||
|
||||
source check.vim
|
||||
source screendump.vim
|
||||
|
||||
func Test_complete_tab()
|
||||
call writefile(['testfile'], 'Xtestfile')
|
||||
call feedkeys(":e Xtestf\t\r", "tx")
|
||||
@ -718,6 +721,26 @@ func Test_verbosefile()
|
||||
call delete('Xlog')
|
||||
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 InsertTextAtPos(text, pos)
|
||||
call assert_equal(0, setcmdpos(a:pos))
|
||||
|
@ -1,5 +1,8 @@
|
||||
" 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)
|
||||
func Test_ptag_with_notagstack()
|
||||
set notagstack
|
||||
@ -551,6 +554,37 @@ func Test_tag_line_toolong()
|
||||
let &verbose = old_vbs
|
||||
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()
|
||||
call writefile([
|
||||
\ 'provision Xtest.py /^ def provision(self, **kwargs):$/;" m line:1 language:Python class:Foo',
|
||||
|
Loading…
Reference in New Issue
Block a user