mirror of
https://github.com/vim/vim.git
synced 2025-09-23 03:43:49 -04:00
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:
committed by
Christian Brabandt
parent
19a3bc3add
commit
92997dda78
@@ -4022,6 +4022,7 @@ f_getcompletion(typval_T *argvars, typval_T *rettv)
|
||||
{
|
||||
xpc.xp_pattern = pat;
|
||||
xpc.xp_pattern_len = (int)STRLEN(xpc.xp_pattern);
|
||||
xpc.xp_line = pat;
|
||||
|
||||
xpc.xp_context = cmdcomplete_str_to_type(type);
|
||||
if (xpc.xp_context == EXPAND_NOTHING)
|
||||
@@ -4030,6 +4031,30 @@ f_getcompletion(typval_T *argvars, typval_T *rettv)
|
||||
return;
|
||||
}
|
||||
|
||||
if (xpc.xp_context == EXPAND_USER_DEFINED)
|
||||
{
|
||||
// Must be "custom,funcname" pattern
|
||||
if (STRNCMP(type, "custom,", 7) != 0)
|
||||
{
|
||||
semsg(_(e_invalid_argument_str), type);
|
||||
return;
|
||||
}
|
||||
|
||||
xpc.xp_arg = type + 7;
|
||||
}
|
||||
|
||||
if (xpc.xp_context == EXPAND_USER_LIST)
|
||||
{
|
||||
// Must be "customlist,funcname" pattern
|
||||
if (STRNCMP(type, "customlist,", 11) != 0)
|
||||
{
|
||||
semsg(_(e_invalid_argument_str), type);
|
||||
return;
|
||||
}
|
||||
|
||||
xpc.xp_arg = type + 11;
|
||||
}
|
||||
|
||||
# if defined(FEAT_MENU)
|
||||
if (xpc.xp_context == EXPAND_MENUS)
|
||||
{
|
||||
|
Reference in New Issue
Block a user