mirror of
https://github.com/neovim/neovim.git
synced 2024-12-20 11:15:14 -07:00
ex_getln: don't redraw statusline on top of scrolled messages
This commit is contained in:
parent
39a03c0fe7
commit
1efe65a155
@ -349,7 +349,7 @@ static uint8_t *command_line_enter(int firstc, long count, int indent)
|
||||
|
||||
// redraw the statusline for statuslines that display the current mode
|
||||
// using the mode() function.
|
||||
if (KeyTyped) {
|
||||
if (KeyTyped && msg_scrolled == 0) {
|
||||
curwin->w_redr_status = true;
|
||||
redraw_statuslines();
|
||||
}
|
||||
|
@ -22,6 +22,8 @@ describe('external cmdline', function()
|
||||
[1] = {bold = true, foreground = Screen.colors.Blue1},
|
||||
[2] = {reverse = true},
|
||||
[3] = {bold = true, reverse = true},
|
||||
[4] = {foreground = Screen.colors.Grey100, background = Screen.colors.Red},
|
||||
[5] = {bold = true, foreground = Screen.colors.SeaGreen4},
|
||||
})
|
||||
screen:set_on_event_handler(function(name, data)
|
||||
if name == "cmdline_show" then
|
||||
@ -157,24 +159,87 @@ describe('external cmdline', function()
|
||||
end)
|
||||
end)
|
||||
|
||||
it("redraws statusline on entering", function()
|
||||
command('set laststatus=2')
|
||||
command('set statusline=%{mode()}')
|
||||
feed(':')
|
||||
screen:expect([[
|
||||
|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{3:c^ }|
|
||||
|
|
||||
]], nil, nil, function()
|
||||
eq({{
|
||||
content = { { {}, "" } },
|
||||
firstc = ":",
|
||||
indent = 0,
|
||||
pos = 0,
|
||||
prompt = ""
|
||||
}}, cmdline)
|
||||
describe("redraws statusline on entering", function()
|
||||
before_each(function()
|
||||
command('set laststatus=2')
|
||||
command('set statusline=%{mode()}')
|
||||
end)
|
||||
|
||||
it('from normal mode', function()
|
||||
feed(':')
|
||||
screen:expect([[
|
||||
|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{3:c^ }|
|
||||
|
|
||||
]], nil, nil, function()
|
||||
eq({{
|
||||
content = { { {}, "" } },
|
||||
firstc = ":",
|
||||
indent = 0,
|
||||
pos = 0,
|
||||
prompt = ""
|
||||
}}, cmdline)
|
||||
end)
|
||||
end)
|
||||
|
||||
it('but not with scrolled messages', function()
|
||||
screen:try_resize(50,10)
|
||||
feed(':echoerr doesnotexist<cr>')
|
||||
screen:expect([[
|
||||
|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{3: }|
|
||||
{4:E121: Undefined variable: doesnotexist} |
|
||||
{4:E15: Invalid expression: doesnotexist} |
|
||||
{5:Press ENTER or type command to continue}^ |
|
||||
]])
|
||||
feed(':echoerr doesnotexist<cr>')
|
||||
screen:expect([[
|
||||
|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{3: }|
|
||||
{4:E121: Undefined variable: doesnotexist} |
|
||||
{4:E15: Invalid expression: doesnotexist} |
|
||||
{4:E121: Undefined variable: doesnotexist} |
|
||||
{4:E15: Invalid expression: doesnotexist} |
|
||||
{5:Press ENTER or type command to continue}^ |
|
||||
]])
|
||||
|
||||
feed(':echoerr doesnotexist<cr>')
|
||||
screen:expect([[
|
||||
|
|
||||
{1:~ }|
|
||||
{3: }|
|
||||
{4:E121: Undefined variable: doesnotexist} |
|
||||
{4:E15: Invalid expression: doesnotexist} |
|
||||
{4:E121: Undefined variable: doesnotexist} |
|
||||
{4:E15: Invalid expression: doesnotexist} |
|
||||
{4:E121: Undefined variable: doesnotexist} |
|
||||
{4:E15: Invalid expression: doesnotexist} |
|
||||
{5:Press ENTER or type command to continue}^ |
|
||||
]])
|
||||
|
||||
feed('<cr>')
|
||||
screen:expect([[
|
||||
^ |
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{3:n }|
|
||||
|
|
||||
]])
|
||||
end)
|
||||
end)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user