1
0
forked from aniani/vim

patch 9.0.1774: no support for custom cmdline completion

Problem:  no support for custom cmdline completion
Solution: Add new vimscript functions

Add the following two functions:
- getcmdcompltype() returns custom and customlist functions

- getcompletion() supports both custom and customlist

closes: #12228

Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Shougo Matsushita <Shougo.Matsu@gmail.com>
This commit is contained in:
Shougo Matsushita
2023-08-20 20:55:55 +02:00
committed by Christian Brabandt
parent 19a3bc3add
commit 92997dda78
6 changed files with 85 additions and 3 deletions

View File

@@ -4152,6 +4152,7 @@ get_cmdline_str(void)
get_cmdline_completion(void)
{
cmdline_info_T *p;
char_u *buffer;
if (cmdline_star > 0)
return NULL;
@@ -4165,10 +4166,19 @@ get_cmdline_completion(void)
return NULL;
char_u *cmd_compl = cmdcomplete_type_to_str(p->xpc->xp_context);
if (cmd_compl != NULL)
return vim_strsave(cmd_compl);
if (cmd_compl == NULL)
return NULL;
return NULL;
if (p->xpc->xp_context == EXPAND_USER_LIST || p->xpc->xp_context == EXPAND_USER_DEFINED)
{
buffer = alloc(STRLEN(cmd_compl) + STRLEN(p->xpc->xp_arg) + 2);
if (buffer == NULL)
return NULL;
sprintf((char *)buffer, "%s,%s", cmd_compl, p->xpc->xp_arg);
return buffer;
}
return vim_strsave(cmd_compl);
}
/*