aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval.c
diff options
context:
space:
mode:
authorMatthieu Coudron <mattator@gmail.com>2017-03-21 03:21:53 +0100
committerJustin M. Keyes <justinkz@gmail.com>2017-07-28 01:27:58 +0200
commitdc685387a3d60e9ea3d09c80c74d4613b618cf14 (patch)
tree76dc55b7f9bf077dd0f16c94d01a23e43663390a /src/nvim/eval.c
parente6d54407ba8ce580fbd81cb9389eb9ce4483597b (diff)
downloadrneovim-dc685387a3d60e9ea3d09c80c74d4613b618cf14.tar.gz
rneovim-dc685387a3d60e9ea3d09c80c74d4613b618cf14.tar.bz2
rneovim-dc685387a3d60e9ea3d09c80c74d4613b618cf14.zip
viml: introduce menu_get() function #6322
menu_get({path}, {modes}). See :h menu_get.
Diffstat (limited to 'src/nvim/eval.c')
-rw-r--r--src/nvim/eval.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index 3ec8deb666..2988225110 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -47,6 +47,7 @@
#include "nvim/mbyte.h"
#include "nvim/memline.h"
#include "nvim/memory.h"
+#include "nvim/menu.h"
#include "nvim/message.h"
#include "nvim/misc1.h"
#include "nvim/keymap.h"
@@ -8173,6 +8174,19 @@ static void f_expand(typval_T *argvars, typval_T *rettv, FunPtr fptr)
}
}
+
+/// "menu_get(path [, modes])" function
+static void f_menu_get(typval_T *argvars, typval_T *rettv, FunPtr fptr)
+{
+ tv_list_alloc_ret(rettv);
+ int modes = MENU_ALL_MODES;
+ if (argvars[1].v_type == VAR_STRING) {
+ const char_u *const strmodes = (char_u *)tv_get_string(&argvars[1]);
+ modes = get_menu_cmd_modes(strmodes, false, NULL, NULL);
+ }
+ menu_get((char_u *)tv_get_string(&argvars[0]), modes, rettv->vval.v_list);
+}
+
/*
* "extend(list, list [, idx])" function
* "extend(dict, dict [, action])" function