diff options
author | Bram Moolenaar <Bram@vim.org> | 2013-02-20 17:59:11 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2013-02-20 17:59:11 +0100 |
commit | 8738fc1be888d73fb4fe302cf085c0bcf4f52e91 (patch) | |
tree | 729de834b2f1a341d052d0f3e3db35a08e1c156f | |
parent | 995a8cd18190c0b922796a8ee865e95bd1dbd916 (diff) | |
download | vim-git-8738fc1be888d73fb4fe302cf085c0bcf4f52e91.tar.gz |
updated for version 7.3.828v7.3.828
Problem: Mappings are not aware of wildmenu mode.
Solution: Add wildmenumode(). (Christian Brabandt)
-rw-r--r-- | runtime/doc/eval.txt | 13 | ||||
-rw-r--r-- | src/eval.c | 16 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 31 insertions, 0 deletions
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index b1748c16a..6e8fa13a7 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -1993,6 +1993,7 @@ undotree() List undo file tree values( {dict}) List values in {dict} virtcol( {expr}) Number screen column of cursor or mark visualmode( [expr]) String last visual mode used +wildmenumode() Number whether 'wildmenu' mode is active winbufnr( {nr}) Number buffer number of window {nr} wincol() Number window column of the cursor winheight( {nr}) Number height of window {nr} @@ -6162,6 +6163,18 @@ visualmode([expr]) *visualmode()* Dictionary or Float is not a Number or String, thus does not cause the mode to be cleared. +wildmenumode() *wildmenumode()* + Returns non-zero when the wildmenu is active and zero + otherwise. See 'wildmenu' and 'wildmode'. + This can be used in mappings to handle the 'wildcharm' option + gracefully. (Makes only sense with |mapmode-c| mappings). + + For example to make <c-j> work like <down> in wildmode, use: > + :cnoremap <expr> <C-j> wildmenumode() ? "\<Down>\<Tab>" : "\<c-j>" +< + (Note, this needs the 'wildcharm' option set appropriately). + + *winbufnr()* winbufnr({nr}) The result is a Number, which is the number of the buffer associated with window {nr}. When {nr} is zero, the number of diff --git a/src/eval.c b/src/eval.c index bc41805e9..e1f29c40f 100644 --- a/src/eval.c +++ b/src/eval.c @@ -751,6 +751,7 @@ static void f_undotree __ARGS((typval_T *argvars, typval_T *rettv)); static void f_values __ARGS((typval_T *argvars, typval_T *rettv)); static void f_virtcol __ARGS((typval_T *argvars, typval_T *rettv)); static void f_visualmode __ARGS((typval_T *argvars, typval_T *rettv)); +static void f_wildmenumode __ARGS((typval_T *argvars, typval_T *rettv)); static void f_winbufnr __ARGS((typval_T *argvars, typval_T *rettv)); static void f_wincol __ARGS((typval_T *argvars, typval_T *rettv)); static void f_winheight __ARGS((typval_T *argvars, typval_T *rettv)); @@ -8121,6 +8122,7 @@ static struct fst {"values", 1, 1, f_values}, {"virtcol", 1, 1, f_virtcol}, {"visualmode", 0, 1, f_visualmode}, + {"wildmenumode", 0, 0, f_wildmenumode}, {"winbufnr", 1, 1, f_winbufnr}, {"wincol", 0, 0, f_wincol}, {"winheight", 1, 1, f_winheight}, @@ -18577,6 +18579,20 @@ f_visualmode(argvars, rettv) } /* + * "wildmenumode()" function + */ + static void +f_wildmenumode(argvars, rettv) + typval_T *argvars UNUSED; + typval_T *rettv UNUSED; +{ +#ifdef FEAT_WILDMENU + if (wild_menu_showing) + rettv->vval.v_number = 1; +#endif +} + +/* * "winbufnr(nr)" function */ static void diff --git a/src/version.c b/src/version.c index 204b7a173..71e10153c 100644 --- a/src/version.c +++ b/src/version.c @@ -729,6 +729,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 828, +/**/ 827, /**/ 826, |