diff --git a/src/nvim/cmdexpand.c b/src/nvim/cmdexpand.c index 9abfc68b00..50665740d7 100644 --- a/src/nvim/cmdexpand.c +++ b/src/nvim/cmdexpand.c @@ -1887,6 +1887,7 @@ static const char *set_context_by_cmdname(const char *cmd, cmdidx_T cmdidx, expa case CMD_tab: case CMD_tabdo: case CMD_topleft: + case CMD_unsilent: case CMD_verbose: case CMD_vertical: case CMD_windo: diff --git a/test/old/testdir/test_cmdmods.vim b/test/old/testdir/test_cmdmods.vim index 91a396b0e1..c4ad5c6094 100644 --- a/test/old/testdir/test_cmdmods.vim +++ b/test/old/testdir/test_cmdmods.vim @@ -1,5 +1,23 @@ " Test for all command modifiers in +let s:luaeval_cmdmods =<< trim END + vim.iter(loadfile('../../../src/nvim/ex_cmds.lua')()):map(function(cmd) + if cmd.func == 'ex_wrongmodifier' or cmd.command == 'hide' then + return cmd.command + else + return nil + end + end):totable() +END +let s:cmdmods = [] + +func s:get_cmdmods() + if empty(s:cmdmods) + let s:cmdmods = luaeval(s:luaeval_cmdmods->join("\n")) + endif + return s:cmdmods +endfunc + func Test_keep_cmdmods_names() call assert_equal('k', fullcommand(':k')) call assert_equal('k', fullcommand(':ke')) @@ -29,10 +47,13 @@ func Test_keep_cmdmods_names() endfunc func Test_cmdmod_completion() - call assert_equal('edit', getcompletion('keepalt ed', 'cmdline')[0]) - call assert_equal('edit', getcompletion('keepjumps ed', 'cmdline')[0]) - call assert_equal('edit', getcompletion('keepmarks ed', 'cmdline')[0]) - call assert_equal('edit', getcompletion('keeppatterns ed', 'cmdline')[0]) + for mod in s:get_cmdmods() + let cmd = $'{mod} ed' + if mod == 'filter' + let cmd = $'{mod} /pattern/ ed' + endif + call assert_equal('edit', getcompletion(cmd, 'cmdline')[0]) + endfor endfunc " vim: shiftwidth=2 sts=2 expandtab