diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-08-21 18:38:21 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-08-21 18:38:21 +0100 |
commit | 300175fd7f874be78826a00f5cb60a7ec2f20655 (patch) | |
tree | 8ebcb4ac031d63c6144810748f397f2177bd924c | |
parent | e24a14118c29d910d3be59203332768b5fbd93e8 (diff) |
patch 9.0.0238: Shift-Tab shows matches on cmdline when 'wildmenu' is offv9.0.0238
Problem: Shift-Tab shows matches on cmdline when 'wildmenu' is off.
Solution: Only show matches when 'wildmode' contains "list". (closes #10951)
-rw-r--r-- | src/ex_getln.c | 7 | ||||
-rw-r--r-- | src/testdir/test_cmdline.vim | 18 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 26 insertions, 1 deletions
diff --git a/src/ex_getln.c b/src/ex_getln.c index 04273379b3..6b62d84cf1 100644 --- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -2033,7 +2033,12 @@ getcmdline_int( { if (nextwild(&xpc, WILD_EXPAND_KEEP, 0, firstc != '@') == OK) { - if (xpc.xp_numfiles > 1) + if (xpc.xp_numfiles > 1 + && ((!did_wild_list && (wim_flags[wim_index] & WIM_LIST)) +#ifdef FEAT_WILDMENU + || p_wmnu) +#endif + ) { #ifdef FEAT_WILDMENU // Trigger the popup menu when wildoptions=pum diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim index be688e3969..3372e8dd31 100644 --- a/src/testdir/test_cmdline.vim +++ b/src/testdir/test_cmdline.vim @@ -874,6 +874,24 @@ func Test_cmdline_complete_user_cmd() call feedkeys(":Foo b\\x\<Tab>\<Home>\"\<cr>", 'tx') call assert_equal('"Foo b\x', @:) delcommand Foo + + redraw + call assert_equal('~', Screenline(&lines - 1)) + command! FooOne : + command! FooTwo : + + set nowildmenu + call feedkeys(":Foo\<Tab>\<Home>\"\<cr>", 'tx') + call assert_equal('"FooOne', @:) + call assert_equal('~', Screenline(&lines - 1)) + + call feedkeys(":Foo\<S-Tab>\<Home>\"\<cr>", 'tx') + call assert_equal('"FooTwo', @:) + call assert_equal('~', Screenline(&lines - 1)) + + delcommand FooOne + delcommand FooTwo + set wildmenu& endfunc func Test_complete_user_cmd() diff --git a/src/version.c b/src/version.c index 3788596440..289d0e6854 100644 --- a/src/version.c +++ b/src/version.c @@ -732,6 +732,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 238, +/**/ 237, /**/ 236, |