aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval/funcs.c
diff options
context:
space:
mode:
authorTJ DeVries <devries.timothyj@gmail.com>2020-07-11 17:40:31 -0400
committerGitHub <noreply@github.com>2020-07-11 17:40:31 -0400
commit1ca67a73c0ba680eb8328e68bea31f839855dd29 (patch)
tree6f770f564307cb8a31f6ead427114267fcba3953 /src/nvim/eval/funcs.c
parenta695da7d3fac19624d458e3f2980b4c0e55f50a4 (diff)
parent6360cf7ce87407bd8a519b9a17f45b2148291904 (diff)
downloadrneovim-1ca67a73c0ba680eb8328e68bea31f839855dd29.tar.gz
rneovim-1ca67a73c0ba680eb8328e68bea31f839855dd29.tar.bz2
rneovim-1ca67a73c0ba680eb8328e68bea31f839855dd29.zip
Merge pull request #12507 from tjdevries/tjdevries/viml_lua_callbacks
[RFC] Allow passing lua functions and closures into vim functions.
Diffstat (limited to 'src/nvim/eval/funcs.c')
-rw-r--r--src/nvim/eval/funcs.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/nvim/eval/funcs.c b/src/nvim/eval/funcs.c
index 1071e75c06..99014d1a09 100644
--- a/src/nvim/eval/funcs.c
+++ b/src/nvim/eval/funcs.c
@@ -824,9 +824,12 @@ static void f_call(typval_T *argvars, typval_T *rettv, FunPtr fptr)
} else if (argvars[0].v_type == VAR_PARTIAL) {
partial = argvars[0].vval.v_partial;
func = partial_name(partial);
+ } else if (nlua_is_table_from_lua(&argvars[0])) {
+ func = nlua_register_table_as_callable(&argvars[0]);
} else {
func = (char_u *)tv_get_string(&argvars[0]);
}
+
if (*func == NUL) {
return; // type error or empty name
}