diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-07-26 10:21:30 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-26 10:21:30 +0800 |
commit | 147cce29a6b5d475729a4d3d5acf23172ead1f3f (patch) | |
tree | 98bdeec73f2043794f81bc5597e3370e0a1eb177 /test/functional/ui/cmdline_spec.lua | |
parent | 88c6e02c12d1bc5427d2c384e43ff758e7d0c450 (diff) | |
download | rneovim-147cce29a6b5d475729a4d3d5acf23172ead1f3f.tar.gz rneovim-147cce29a6b5d475729a4d3d5acf23172ead1f3f.tar.bz2 rneovim-147cce29a6b5d475729a4d3d5acf23172ead1f3f.zip |
fix(cmdline): trigger CmdlineEnter and ModeChanged earlier (#19474)
Match Vim's ordering in code.
These tests are unrelated to ext_cmdline. Move them out of that block.
Diffstat (limited to 'test/functional/ui/cmdline_spec.lua')
-rw-r--r-- | test/functional/ui/cmdline_spec.lua | 261 |
1 files changed, 148 insertions, 113 deletions
diff --git a/test/functional/ui/cmdline_spec.lua b/test/functional/ui/cmdline_spec.lua index eb0a14da31..f2b9173be1 100644 --- a/test/functional/ui/cmdline_spec.lua +++ b/test/functional/ui/cmdline_spec.lua @@ -96,119 +96,6 @@ local function test_cmdline(linegrid) ]]} end) - describe("redraws statusline on entering", function() - before_each(function() - command('set laststatus=2') - command('set statusline=%{mode()}') - end) - - it('from normal mode', function() - screen:expect{grid=[[ - ^ | - {1:~ }| - {1:~ }| - {3:n }| - | - ]]} - - feed(':') - screen:expect{grid=[[ - ^ | - {1:~ }| - {1:~ }| - {3:c }| - | - ]], cmdline={{ - firstc = ":", - content = {{""}}, - pos = 0, - }}} - end) - - it('from normal mode when : is mapped', function() - command('nnoremap ; :') - - screen:expect{grid=[[ - ^ | - {1:~ }| - {1:~ }| - {3:n }| - | - ]]} - - feed(';') - screen:expect{grid=[[ - ^ | - {1:~ }| - {1:~ }| - {3:c }| - | - ]], cmdline={{ - firstc = ":", - content = {{""}}, - pos = 0, - }}} - end) - - it('but not with scrolled messages', function() - screen:try_resize(35,10) - feed(':echoerr doesnotexist<cr>') - screen:expect{grid=[[ - | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {3: }| - {4:E121: Undefined variable: doesnotex}| - {4:ist} | - {5:Press ENTER or type command to cont}| - {5:inue}^ | - ]]} - feed(':echoerr doesnotexist<cr>') - screen:expect{grid=[[ - | - {1:~ }| - {3: }| - {4:E121: Undefined variable: doesnotex}| - {4:ist} | - {5:Press ENTER or type command to cont}| - {4:E121: Undefined variable: doesnotex}| - {4:ist} | - {5:Press ENTER or type command to cont}| - {5:inue}^ | - ]]} - - feed(':echoerr doesnotexist<cr>') - screen:expect{grid=[[ - {4:E121: Undefined variable: doesnotex}| - {4:ist} | - {5:Press ENTER or type command to cont}| - {4:E121: Undefined variable: doesnotex}| - {4:ist} | - {5:Press ENTER or type command to cont}| - {4:E121: Undefined variable: doesnotex}| - {4:ist} | - {5:Press ENTER or type command to cont}| - {5:inue}^ | - ]]} - - feed('<cr>') - screen:expect{grid=[[ - ^ | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {3:n }| - | - ]]} - end) - end) - it("works with input()", function() feed(':call input("input", "default")<cr>') screen:expect{grid=[[ @@ -883,6 +770,154 @@ describe('cmdline redraw', function() end) end) +describe('statusline is redrawn on entering cmdline', function() + local screen + + before_each(function() + clear() + screen = new_screen() + command('set laststatus=2') + end) + + it('from normal mode', function() + command('set statusline=%{mode()}') + screen:expect{grid=[[ + ^ | + {1:~ }| + {1:~ }| + {3:n }| + | + ]]} + + feed(':') + screen:expect{grid=[[ + | + {1:~ }| + {1:~ }| + {3:c }| + :^ | + ]]} + end) + + it('from normal mode when : is mapped', function() + command('set statusline=%{mode()}') + command('nnoremap ; :') + + screen:expect{grid=[[ + ^ | + {1:~ }| + {1:~ }| + {3:n }| + | + ]]} + + feed(';') + screen:expect{grid=[[ + | + {1:~ }| + {1:~ }| + {3:c }| + :^ | + ]]} + end) + + it('but not with scrolled messages', function() + command('set statusline=%{mode()}') + screen:try_resize(35,10) + feed(':echoerr doesnotexist<cr>') + screen:expect{grid=[[ + | + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {3: }| + {4:E121: Undefined variable: doesnotex}| + {4:ist} | + {5:Press ENTER or type command to cont}| + {5:inue}^ | + ]]} + feed(':echoerr doesnotexist<cr>') + screen:expect{grid=[[ + | + {1:~ }| + {3: }| + {4:E121: Undefined variable: doesnotex}| + {4:ist} | + {5:Press ENTER or type command to cont}| + {4:E121: Undefined variable: doesnotex}| + {4:ist} | + {5:Press ENTER or type command to cont}| + {5:inue}^ | + ]]} + + feed(':echoerr doesnotexist<cr>') + screen:expect{grid=[[ + {4:E121: Undefined variable: doesnotex}| + {4:ist} | + {5:Press ENTER or type command to cont}| + {4:E121: Undefined variable: doesnotex}| + {4:ist} | + {5:Press ENTER or type command to cont}| + {4:E121: Undefined variable: doesnotex}| + {4:ist} | + {5:Press ENTER or type command to cont}| + {5:inue}^ | + ]]} + + feed('<cr>') + screen:expect{grid=[[ + ^ | + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {3:n }| + | + ]]} + end) + + describe('if custom statusline is set by', function() + before_each(function() + command('set statusline=') + screen:expect{grid=[[ + ^ | + {1:~ }| + {1:~ }| + {3:[No Name] }| + | + ]]} + end) + + it('CmdlineEnter autocommand', function() + command('autocmd CmdlineEnter * set statusline=command') + feed(':') + screen:expect{grid=[[ + | + {1:~ }| + {1:~ }| + {3:command }| + :^ | + ]]} + end) + + it('ModeChanged autocommand', function() + command('autocmd ModeChanged *:c set statusline=command') + feed(':') + screen:expect{grid=[[ + | + {1:~ }| + {1:~ }| + {3:command }| + :^ | + ]]} + end) + end) +end) + describe("cmdline height", function() it("does not crash resized screen #14263", function() clear() |