diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/cmdexpand.c | 6 | ||||
-rw-r--r-- | src/nvim/cmdexpand_defs.h | 1 | ||||
-rw-r--r-- | src/nvim/eval.lua | 1 | ||||
-rw-r--r-- | src/nvim/option.c | 4 | ||||
-rw-r--r-- | src/nvim/usercmd.c | 1 |
5 files changed, 13 insertions, 0 deletions
diff --git a/src/nvim/cmdexpand.c b/src/nvim/cmdexpand.c index 4dcdc06328..2d66526f33 100644 --- a/src/nvim/cmdexpand.c +++ b/src/nvim/cmdexpand.c @@ -99,6 +99,7 @@ static bool cmdline_fuzzy_completion_supported(const expand_T *const xp) && xp->xp_context != EXPAND_FILES_IN_PATH && xp->xp_context != EXPAND_FILETYPE && xp->xp_context != EXPAND_HELP + && xp->xp_context != EXPAND_KEYMAP && xp->xp_context != EXPAND_LUA && xp->xp_context != EXPAND_OLD_SETTING && xp->xp_context != EXPAND_STRING_SETTING @@ -1215,6 +1216,7 @@ char *addstar(char *fname, size_t len, int context) || context == EXPAND_COMPILER || context == EXPAND_OWNSYNTAX || context == EXPAND_FILETYPE + || context == EXPAND_KEYMAP || context == EXPAND_PACKADD || context == EXPAND_RUNTIME || ((context == EXPAND_TAGS_LISTFILES || context == EXPAND_TAGS) @@ -2741,6 +2743,10 @@ static int ExpandFromContext(expand_T *xp, char *pat, char ***matches, int *numM char *directories[] = { "syntax", "indent", "ftplugin", NULL }; return ExpandRTDir(pat, 0, numMatches, matches, directories); } + if (xp->xp_context == EXPAND_KEYMAP) { + char *directories[] = { "keymap", NULL }; + return ExpandRTDir(pat, 0, numMatches, matches, directories); + } if (xp->xp_context == EXPAND_USER_LIST) { return ExpandUserList(xp, matches, numMatches); } diff --git a/src/nvim/cmdexpand_defs.h b/src/nvim/cmdexpand_defs.h index 0bd977daca..923ba62099 100644 --- a/src/nvim/cmdexpand_defs.h +++ b/src/nvim/cmdexpand_defs.h @@ -105,6 +105,7 @@ enum { EXPAND_STRING_SETTING, EXPAND_SETTING_SUBTRACT, EXPAND_ARGOPT, + EXPAND_KEYMAP, EXPAND_CHECKHEALTH, EXPAND_LUA, }; diff --git a/src/nvim/eval.lua b/src/nvim/eval.lua index 342650f0e3..322ab829a0 100644 --- a/src/nvim/eval.lua +++ b/src/nvim/eval.lua @@ -3609,6 +3609,7 @@ M.funcs = { help help subjects highlight highlight groups history |:history| suboptions + keymap keyboard mappings locale locale names (as output of locale -a) mapclear buffer argument mapping mapping name diff --git a/src/nvim/option.c b/src/nvim/option.c index 7f6623017e..495a6819f9 100644 --- a/src/nvim/option.c +++ b/src/nvim/option.c @@ -5461,6 +5461,10 @@ void set_context_in_set_cmd(expand_T *xp, char *arg, int opt_flags) xp->xp_context = EXPAND_FILETYPE; return; } + if (options[opt_idx].var == &p_keymap) { + xp->xp_context = EXPAND_KEYMAP; + return; + } // Now pick. If the option has a custom expander, use that. Otherwise, just // fill with the existing option value. diff --git a/src/nvim/usercmd.c b/src/nvim/usercmd.c index 30f31d5bd9..39f80878c9 100644 --- a/src/nvim/usercmd.c +++ b/src/nvim/usercmd.c @@ -75,6 +75,7 @@ static const char *command_complete[] = { [EXPAND_HELP] = "help", [EXPAND_HIGHLIGHT] = "highlight", [EXPAND_HISTORY] = "history", + [EXPAND_KEYMAP] = "keymap", #ifdef HAVE_WORKING_LIBINTL [EXPAND_LOCALES] = "locale", #endif |