ex_getln.c: fix <S-Tab> not triggering pum when wildoptions=pum (#10042)

Some of the logic that was present for <Tab> was missing from <S-Tab>.

Closes https://github.com/neovim/neovim/issues/10042.
This commit is contained in:
glacambre
2019-08-14 19:07:04 +02:00
committed by Björn Linse
parent 288526ae73
commit 958ca938b4
2 changed files with 22 additions and 3 deletions

View File

@@ -1021,9 +1021,11 @@ static int command_line_execute(VimState *state, int key)
// <S-Tab> goes to last match, in a clumsy way
if (s->c == K_S_TAB && KeyTyped) {
if (nextwild(&s->xpc, WILD_EXPAND_KEEP, 0, s->firstc != '@') == OK
&& nextwild(&s->xpc, WILD_PREV, 0, s->firstc != '@') == OK
&& nextwild(&s->xpc, WILD_PREV, 0, s->firstc != '@') == OK) {
if (nextwild(&s->xpc, WILD_EXPAND_KEEP, 0, s->firstc != '@') == OK) {
showmatches(&s->xpc, p_wmnu
&& ((wim_flags[s->wim_index] & WIM_LIST) == 0));
nextwild(&s->xpc, WILD_PREV, 0, s->firstc != '@');
nextwild(&s->xpc, WILD_PREV, 0, s->firstc != '@');
return command_line_changed(s);
}
}

View File

@@ -574,6 +574,22 @@ describe('ui/ext_popupmenu', function()
]])
feed('<esc>')
-- #10042: make sure shift-tab also triggers the pum
feed(':sign <S-tab>')
screen:expect{grid=[[
|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
:sign unplace^ |
]], popupmenu={items=wild_expected, pos=5, anchor={1, 9, 6}}}
feed('<esc>')
-- check positioning with multibyte char in pattern
command("e långfile1")
command("sp långfile2")
@@ -594,6 +610,7 @@ describe('ui/ext_popupmenu', function()
items = {{"långfile1", "", "", "" }, {"långfile2", "", "", ""}},
pos = 0,
}}
end)
end)