diff options
author | zeertzjq <zeertzjq@outlook.com> | 2025-03-14 07:15:53 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-03-13 23:15:53 +0000 |
commit | 4f6196e91d23f17e6b25ea7356d5bbc5b87d95b6 (patch) | |
tree | 26b12468a65a9bc72566f7af7d37ab95fdbf7cad /test/functional/legacy/cmdline_spec.lua | |
parent | 282f73f067cb935612782d55efa99036505d363f (diff) | |
download | rneovim-4f6196e91d23f17e6b25ea7356d5bbc5b87d95b6.tar.gz rneovim-4f6196e91d23f17e6b25ea7356d5bbc5b87d95b6.tar.bz2 rneovim-4f6196e91d23f17e6b25ea7356d5bbc5b87d95b6.zip |
vim-patch:9.1.1200: cmdline pum not cleared for input() completion (#32879)
Problem: Cmdline pum not cleared for input() completion.
Solution: Temporary reset RedrawingDisabled in cmdline_pum_cleanup(),
like what is done in wildmenu_cleanup() (zeertzjq).
fixes: vim/vim#16874
closes: vim/vim#16876
https://github.com/vim/vim/commit/1830e787f6ee9828151284c44b494b801c677ee9
No code change is needed in Nvim, as RedrawingDisabled does not prevent
the compositor from removing a grid.
Diffstat (limited to 'test/functional/legacy/cmdline_spec.lua')
-rw-r--r-- | test/functional/legacy/cmdline_spec.lua | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/test/functional/legacy/cmdline_spec.lua b/test/functional/legacy/cmdline_spec.lua index 62e77e9b85..94ef85591d 100644 --- a/test/functional/legacy/cmdline_spec.lua +++ b/test/functional/legacy/cmdline_spec.lua @@ -115,6 +115,77 @@ describe('cmdline', function() ]]) end) + -- oldtest: Test_wildmenu_with_input_func() + it('wildmenu works with input() function', function() + local screen = Screen.new(60, 8) + screen:add_extra_attr_ids({ + [100] = { background = Screen.colors.Yellow, foreground = Screen.colors.Black }, + }) + + feed(":call input('Command? ', '', 'command')<CR>") + screen:expect([[ + | + {1:~ }|*6 + Command? ^ | + ]]) + feed('ech<Tab>') + screen:expect([[ + | + {1:~ }|*5 + {100:echo}{3: echoerr echohl echomsg echon }| + Command? echo^ | + ]]) + feed('<Space>') + screen:expect([[ + | + {1:~ }|*6 + Command? echo ^ | + ]]) + feed('bufn<Tab>') + screen:expect([[ + | + {1:~ }|*5 + {100:bufname(}{3: bufnr( }| + Command? echo bufname(^ | + ]]) + feed('<CR>') + + command('set wildoptions+=pum') + + feed(":call input('Command? ', '', 'command')<CR>") + screen:expect([[ + | + {1:~ }|*6 + Command? ^ | + ]]) + feed('ech<Tab>') + screen:expect([[ + | + {1:~ }| + {1:~ }{12: echo }{1: }| + {1:~ }{4: echoerr }{1: }| + {1:~ }{4: echohl }{1: }| + {1:~ }{4: echomsg }{1: }| + {1:~ }{4: echon }{1: }| + Command? echo^ | + ]]) + feed('<Space>') + screen:expect([[ + | + {1:~ }|*6 + Command? echo ^ | + ]]) + feed('bufn<Tab>') + screen:expect([[ + | + {1:~ }|*4 + {1:~ }{12: bufname( }{1: }| + {1:~ }{4: bufnr( }{1: }| + Command? echo bufname(^ | + ]]) + feed('<CR>') + end) + -- oldtest: Test_redraw_in_autocmd() it('cmdline cursor position is correct after :redraw with cmdheight=2', function() local screen = Screen.new(30, 6) |