commit 99bd89595675268498f782f4b81485bf6a88d4e8
parent c086bf60794811ef33480e87000630e2d498b1bd
Author: zeertzjq <zeertzjq@outlook.com>
Date: Mon, 22 Aug 2022 08:31:21 +0800
vim-patch:8.2.4328: command line complete matches cleard when typing character
Problem: Command line complete matches cleard when typing character.
(Dominique Pellé)
Solution: Only remove a popup menu if there is one.
https://github.com/vim/vim/commit/73a16c22a4703cb9a7becdf459ce62bd894980d7
Diffstat:
2 files changed, 44 insertions(+), 2 deletions(-)
diff --git a/src/nvim/testdir/test_cmdline.vim b/src/nvim/testdir/test_cmdline.vim
@@ -2024,6 +2024,15 @@ func Test_wildmenu_pum()
call TermWait(buf)
call VerifyScreenDump(buf, 'Test_wildmenu_pum_29', {})
+ " Check "list" still works
+ call term_sendkeys(buf, "\<C-U>set wildmode=longest,list\<CR>")
+ call term_sendkeys(buf, ":cn\<Tab>")
+ call TermWait(buf)
+ call VerifyScreenDump(buf, 'Test_wildmenu_pum_30', {})
+ call term_sendkeys(buf, "s")
+ call TermWait(buf)
+ call VerifyScreenDump(buf, 'Test_wildmenu_pum_31', {})
+
call term_sendkeys(buf, "\<C-U>\<CR>")
call StopVimInTerminal(buf)
call delete('Xtest')
diff --git a/test/functional/ui/popupmenu_spec.lua b/test/functional/ui/popupmenu_spec.lua
@@ -2160,6 +2160,38 @@ describe('builtin popupmenu', function()
feed('<esc>')
+ -- Check "list" still works
+ command('set wildmode=longest,list')
+ feed(':cn<Tab>')
+ screen:expect([[
+ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {4: }|
+ :cn |
+ cnewer cnoreabbrev |
+ cnext cnoremap |
+ cnfile cnoremenu |
+ :cn^ |
+ ]])
+ feed('s')
+ screen:expect([[
+ |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {4: }|
+ :cn |
+ cnewer cnoreabbrev |
+ cnext cnoremap |
+ cnfile cnoremenu |
+ :cns^ |
+ ]])
+
+ feed('<esc>')
+ command('set wildmode=full')
+
-- check positioning with multibyte char in pattern
command("e långfile1")
command("sp långfile2")
@@ -2229,11 +2261,12 @@ describe('builtin popupmenu', function()
:b långfile^ |
]])
- -- special case: when patterns ends with "/", show menu items aligned
- -- after the "/"
feed('<esc>')
command("close")
command('set wildmode=full')
+
+ -- special case: when patterns ends with "/", show menu items aligned
+ -- after the "/"
feed(':e compdir/<tab>')
screen:expect([[
|