Skip to content

Commit

Permalink
patch 8.0.0878: no completion for :mapclear
Browse files Browse the repository at this point in the history
Problem:    No completion for :mapclear.
Solution:   Add completion (Nobuhiro Takasaki et al. closes #1943)
  • Loading branch information
brammool committed Aug 6, 2017
1 parent 6d81974 commit cae92dc
Show file tree
Hide file tree
Showing 8 changed files with 34 additions and 0 deletions.
1 change: 1 addition & 0 deletions runtime/doc/eval.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4368,6 +4368,7 @@ getcompletion({pat}, {type} [, {filtered}]) *getcompletion()*
highlight highlight groups
history :history suboptions
locale locale names (as output of locale -a)
mapclear buffer argument
mapping mapping name
menu menus
messages |:messages| suboptions
Expand Down
1 change: 1 addition & 0 deletions runtime/doc/map.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1279,6 +1279,7 @@ completion can be enabled:
-complete=highlight highlight groups
-complete=history :history suboptions
-complete=locale locale names (as output of locale -a)
-complete=mapclear buffer argument
-complete=mapping mapping name
-complete=menu menus
-complete=messages |:messages| suboptions
Expand Down
22 changes: 22 additions & 0 deletions src/ex_docmd.c
Original file line number Diff line number Diff line change
Expand Up @@ -4223,6 +4223,19 @@ set_one_cmd_context(
case CMD_xunmap:
return set_context_in_map_cmd(xp, cmd, arg, forceit,
FALSE, TRUE, ea.cmdidx);
case CMD_mapclear:
case CMD_nmapclear:
case CMD_vmapclear:
case CMD_omapclear:
case CMD_imapclear:
case CMD_cmapclear:
case CMD_lmapclear:
case CMD_smapclear:
case CMD_xmapclear:
xp->xp_context = EXPAND_MAPCLEAR;
xp->xp_pattern = arg;
break;

case CMD_abbreviate: case CMD_noreabbrev:
case CMD_cabbrev: case CMD_cnoreabbrev:
case CMD_iabbrev: case CMD_inoreabbrev:
Expand Down Expand Up @@ -5964,6 +5977,7 @@ static struct
&& (defined(FEAT_GETTEXT) || defined(FEAT_MBYTE))
{EXPAND_LOCALES, "locale"},
#endif
{EXPAND_MAPCLEAR, "mapclear"},
{EXPAND_MAPPINGS, "mapping"},
{EXPAND_MENUS, "menu"},
{EXPAND_MESSAGES, "messages"},
Expand Down Expand Up @@ -12083,6 +12097,14 @@ get_messages_arg(expand_T *xp UNUSED, int idx)
}
#endif

char_u *
get_mapclear_arg(expand_T *xp UNUSED, int idx)
{
if (idx == 0)
return (char_u *)"<buffer>";
return NULL;
}

#ifdef FEAT_AUTOCMD
static int filetype_detect = FALSE;
static int filetype_plugin = FALSE;
Expand Down
1 change: 1 addition & 0 deletions src/ex_getln.c
Original file line number Diff line number Diff line change
Expand Up @@ -4879,6 +4879,7 @@ ExpandFromContext(
{
{EXPAND_COMMANDS, get_command_name, FALSE, TRUE},
{EXPAND_BEHAVE, get_behave_arg, TRUE, TRUE},
{EXPAND_MAPCLEAR, get_mapclear_arg, TRUE, TRUE},
{EXPAND_MESSAGES, get_messages_arg, TRUE, TRUE},
#ifdef FEAT_CMDHIST
{EXPAND_HISTORY, get_history_arg, TRUE, TRUE},
Expand Down
1 change: 1 addition & 0 deletions src/proto/ex_docmd.pro
Original file line number Diff line number Diff line change
Expand Up @@ -62,4 +62,5 @@ int put_line(FILE *fd, char *s);
void dialog_msg(char_u *buff, char *format, char_u *fname);
char_u *get_behave_arg(expand_T *xp, int idx);
char_u *get_messages_arg(expand_T *xp, int idx);
char_u *get_mapclear_arg(expand_T *xp, int idx);
/* vim: set ft=c : */
5 changes: 5 additions & 0 deletions src/testdir/test_cmdline.vim
Original file line number Diff line number Diff line change
Expand Up @@ -222,6 +222,11 @@ func Test_getcompletion()
let l = getcompletion('not', 'messages')
call assert_equal([], l)

let l = getcompletion('', 'mapclear')
call assert_true(index(l, '<buffer>') >= 0)
let l = getcompletion('not', 'mapclear')
call assert_equal([], l)

if has('cscope')
let l = getcompletion('', 'cscope')
let cmds = ['add', 'find', 'help', 'kill', 'reset', 'show']
Expand Down
2 changes: 2 additions & 0 deletions src/version.c
Original file line number Diff line number Diff line change
Expand Up @@ -769,6 +769,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
/**/
878,
/**/
877,
/**/
Expand Down
1 change: 1 addition & 0 deletions src/vim.h
Original file line number Diff line number Diff line change
Expand Up @@ -808,6 +808,7 @@ extern int (*dyn_libintl_putenv)(const char *envstring);
#define EXPAND_USER_ADDR_TYPE 44
#define EXPAND_PACKADD 45
#define EXPAND_MESSAGES 46
#define EXPAND_MAPCLEAR 47

/* Values for exmode_active (0 is no exmode) */
#define EXMODE_NORMAL 1
Expand Down

0 comments on commit cae92dc

Please sign in to comment.