diff options
-rw-r--r-- | src/nvim/usercmd.c | 3 | ||||
-rw-r--r-- | test/old/testdir/test_cmdline.vim | 10 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/nvim/usercmd.c b/src/nvim/usercmd.c index 65720342ce..b9d4308b99 100644 --- a/src/nvim/usercmd.c +++ b/src/nvim/usercmd.c @@ -296,6 +296,9 @@ const char *set_context_in_user_cmdarg(const char *cmd FUNC_ATTR_UNUSED, const c return set_context_in_menu_cmd(xp, cmd, (char *)arg, forceit); } if (context == EXPAND_COMMANDS) { + if (xp->xp_context == EXPAND_NOTHING) { + xp->xp_context = context; + } return arg; } if (context == EXPAND_MAPPINGS) { diff --git a/test/old/testdir/test_cmdline.vim b/test/old/testdir/test_cmdline.vim index 58d37b5da7..506b3d41ff 100644 --- a/test/old/testdir/test_cmdline.vim +++ b/test/old/testdir/test_cmdline.vim @@ -3636,4 +3636,14 @@ func Test_rulerformat_position() call StopVimInTerminal(buf) endfunc +func Test_usercmd_completion() + let g:complete=[] + command! -nargs=* -complete=command TestCompletion echo <q-args> + let g:complete = getcompletion('TestCompletion ', 'cmdline') + let a = getcompletion('', 'cmdline') + + call assert_equal(a, g:complete) + delcom TestCompletion + unlet! g:complete +endfunc " vim: shiftwidth=2 sts=2 expandtab |