aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/ex_getln.c6
-rw-r--r--src/nvim/testdir/test_cmdline.vim16
-rw-r--r--test/functional/legacy/cmdline_spec.lua29
3 files changed, 49 insertions, 2 deletions
diff --git a/src/nvim/ex_getln.c b/src/nvim/ex_getln.c
index 04334d4fa0..906e52f183 100644
--- a/src/nvim/ex_getln.c
+++ b/src/nvim/ex_getln.c
@@ -880,6 +880,12 @@ static uint8_t *command_line_enter(int firstc, long count, int indent, bool init
found_one = true;
}
}
+
+ if (*p_tal != NUL) {
+ redraw_tabline = true;
+ found_one = true;
+ }
+
if (found_one) {
redraw_statuslines();
}
diff --git a/src/nvim/testdir/test_cmdline.vim b/src/nvim/testdir/test_cmdline.vim
index 276bb7fb71..a0907d79ac 100644
--- a/src/nvim/testdir/test_cmdline.vim
+++ b/src/nvim/testdir/test_cmdline.vim
@@ -1846,4 +1846,20 @@ func Test_long_error_message()
silent! norm Q00000000000000     000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000                                                                                                                                                                                                                        
endfunc
+func Test_cmdline_redraw_tabline()
+ CheckRunVimInTerminal
+
+ let lines =<< trim END
+ set showtabline=2
+ autocmd CmdlineEnter * set tabline=foo
+ END
+ call writefile(lines, 'Xcmdline_redraw_tabline')
+ let buf = RunVimInTerminal('-S Xcmdline_redraw_tabline', #{rows: 6})
+ call term_sendkeys(buf, ':')
+ call WaitForAssert({-> assert_match('^foo', term_getline(buf, 1))})
+
+ call StopVimInTerminal(buf)
+ call delete('Xcmdline_redraw_tabline')
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab
diff --git a/test/functional/legacy/cmdline_spec.lua b/test/functional/legacy/cmdline_spec.lua
index d8d849271b..cf02636890 100644
--- a/test/functional/legacy/cmdline_spec.lua
+++ b/test/functional/legacy/cmdline_spec.lua
@@ -3,11 +3,12 @@ local Screen = require('test.functional.ui.screen')
local clear = helpers.clear
local feed = helpers.feed
local feed_command = helpers.feed_command
-local source = helpers.source
+local exec = helpers.exec
describe('cmdline', function()
before_each(clear)
+ -- oldtest: Test_cmdlineclear_tabenter()
it('is cleared when switching tabs', function()
local screen = Screen.new(30, 10)
screen:attach()
@@ -91,10 +92,11 @@ describe('cmdline', function()
]])
end)
+ -- oldtest: Test_verbose_option()
it('prints every executed Ex command if verbose >= 16', function()
local screen = Screen.new(60, 12)
screen:attach()
- source([[
+ exec([[
command DoSomething echo 'hello' |set ts=4 |let v = '123' |echo v
call feedkeys("\r", 't') " for the hit-enter prompt
set verbose=20
@@ -115,4 +117,27 @@ describe('cmdline', function()
Press ENTER or type command to continue^ |
]])
end)
+
+ -- oldtest: Test_cmdline_redraw_tabline()
+ it('tabline is redrawn on entering cmdline', function()
+ local screen = Screen.new(30, 6)
+ screen:set_default_attr_ids({
+ [0] = {bold = true, foreground = Screen.colors.Blue}, -- NonText
+ [1] = {reverse = true}, -- TabLineFill
+ })
+ screen:attach()
+ exec([[
+ set showtabline=2
+ autocmd CmdlineEnter * set tabline=foo
+ ]])
+ feed(':')
+ screen:expect([[
+ {1:foo }|
+ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ :^ |
+ ]])
+ end)
end)