From 81f277f52664031a56aeabe889f1c36402316dba Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sat, 13 May 2023 13:55:09 +0100 Subject: [PATCH] patch 9.0.1550: in cmdline window S-Tab does not select previous completion Problem: In cmdline window S-Tab does not select previous completion. (Maxim Kim) Solution: Add a mappint for S-Tab. (closes #12116) --- src/ex_getln.c | 4 ++++ src/testdir/test_cmdwin.vim | 16 ++++++++++++++++ src/version.c | 2 ++ 3 files changed, 22 insertions(+) diff --git a/src/ex_getln.c b/src/ex_getln.c index 21447ff040..595286aa34 100644 --- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -4486,8 +4486,12 @@ open_cmdwin(void) { if (p_wc == TAB) { + // Make Tab start command-line completion: CTRL-X CTRL-V add_map((char_u *)" ", MODE_INSERT, TRUE); add_map((char_u *)" a", MODE_NORMAL, TRUE); + + // Make S-Tab work like CTRL-P in command-line completion + add_map((char_u *)" ", MODE_INSERT, TRUE); } set_option_value_give_err((char_u *)"ft", 0L, (char_u *)"vim", OPT_LOCAL); diff --git a/src/testdir/test_cmdwin.vim b/src/testdir/test_cmdwin.vim index ad05f3e044..e0b5833caf 100644 --- a/src/testdir/test_cmdwin.vim +++ b/src/testdir/test_cmdwin.vim @@ -359,6 +359,22 @@ func Test_compl_in_cmdwin() set wildmenu& wildchar& endfunc +func Test_cmdwin_cmd_completion() + set wildmenu wildchar= + com! -nargs=* -complete=command SomeOne echo 'one' + com! -nargs=* -complete=command SomeTwo echo 'two' + call feedkeys("q:aSome\\\"\", 'tx') + call assert_equal('"SomeOne', @:) + call feedkeys("q:aSome\\\\"\", 'tx') + call assert_equal('"SomeTwo', @:) + call feedkeys("q:aSome\\\\\"\", 'tx') + call assert_equal('"SomeOne', @:) + + delcom SomeOne + delcom SomeTwo + set wildmenu& wildchar& +endfunc + func Test_cmdwin_ctrl_bsl() " Using CTRL-\ CTRL-N in cmd window should close the window call feedkeys("q:\\", 'xt') diff --git a/src/version.c b/src/version.c index 857a22960e..923ea9794c 100644 --- a/src/version.c +++ b/src/version.c @@ -695,6 +695,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1550, /**/ 1549, /**/ -- 2.47.2