aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/lua
diff options
context:
space:
mode:
authorbfredl <bjorn.linse@gmail.com>2022-01-14 18:00:20 +0100
committerGitHub <noreply@github.com>2022-01-14 18:00:20 +0100
commitbac4bb1900059b3f6dfbaabe641571a60b1cb951 (patch)
treee6487cabc9a0ce3ee275d6e1beaee054a337ff45 /src/nvim/lua
parentb72aae85fd980b55a695543c1c34e8f0bf584cc4 (diff)
parentc8656e44d85502a1733df839b3cb3e8f239c5505 (diff)
downloadrneovim-bac4bb1900059b3f6dfbaabe641571a60b1cb951.tar.gz
rneovim-bac4bb1900059b3f6dfbaabe641571a60b1cb951.tar.bz2
rneovim-bac4bb1900059b3f6dfbaabe641571a60b1cb951.zip
Merge pull request #16998 from zeertzjq/lua-vim-var-funcref
feat(api, lua): more conversions between LuaRef and Vim Funcref
Diffstat (limited to 'src/nvim/lua')
-rw-r--r--src/nvim/lua/converter.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/nvim/lua/converter.c b/src/nvim/lua/converter.c
index 8a702ddd60..f9a2533d4e 100644
--- a/src/nvim/lua/converter.c
+++ b/src/nvim/lua/converter.c
@@ -617,6 +617,13 @@ bool nlua_push_typval(lua_State *lstate, typval_T *const tv, bool special)
semsg(_("E1502: Lua failed to grow stack to %i"), initial_size + 4);
return false;
}
+ if (tv->v_type == VAR_FUNC) {
+ ufunc_T *fp = find_func(tv->vval.v_string);
+ if (fp->uf_cb == nlua_CFunction_func_call) {
+ nlua_pushref(lstate, ((LuaCFunctionState *)fp->uf_cb_state)->lua_callable.func_ref);
+ return true;
+ }
+ }
if (encode_vim_to_lua(lstate, tv, "nlua_push_typval argument") == FAIL) {
return false;
}