0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

patch 9.0.1708: getcompletion() failes for user-defined commands

Problem: getcompletion() failes for user-defined commands
Solution: set context for completion function

closes: #12681
closes: #12680

Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Christian Brabandt
2023-07-17 20:09:37 +02:00
parent badeedd913
commit 8ef1fbc0c3
3 changed files with 16 additions and 0 deletions

View File

@@ -3498,4 +3498,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

View File

@@ -329,7 +329,11 @@ set_context_in_user_cmdarg(
return set_context_in_menu_cmd(xp, cmd, arg, forceit);
#endif
if (context == EXPAND_COMMANDS)
{
if (xp->xp_context == EXPAND_NOTHING)
xp->xp_context = context;
return arg;
}
if (context == EXPAND_MAPPINGS)
return set_context_in_map_cmd(xp, (char_u *)"map", arg, forceit, FALSE,
FALSE, CMD_map);

View File

@@ -695,6 +695,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1708,
/**/
1707,
/**/