aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/lua/executor.c
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2019-11-27 20:45:41 +0100
committerBjörn Linse <bjorn.linse@gmail.com>2020-01-01 19:26:29 +0100
commitea4127e9a7a624484f51c21e17f37c766da15da0 (patch)
treebcac8ad881805acd86a1d62d87741c5007f31d91 /src/nvim/lua/executor.c
parenta251b588acb3a561e5da695280774b9b6fbcd0ea (diff)
downloadrneovim-ea4127e9a7a624484f51c21e17f37c766da15da0.tar.gz
rneovim-ea4127e9a7a624484f51c21e17f37c766da15da0.tar.bz2
rneovim-ea4127e9a7a624484f51c21e17f37c766da15da0.zip
lua: metatable for empty dict value
Diffstat (limited to 'src/nvim/lua/executor.c')
-rw-r--r--src/nvim/lua/executor.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/nvim/lua/executor.c b/src/nvim/lua/executor.c
index 2cd6c0db66..242d4e18d1 100644
--- a/src/nvim/lua/executor.c
+++ b/src/nvim/lua/executor.c
@@ -324,6 +324,13 @@ static int nlua_state_init(lua_State *const lstate) FUNC_ATTR_NONNULL_ALL
nlua_nil_ref = nlua_ref(lstate, -1);
lua_setfield(lstate, -2, "NIL");
+ // vim._empty_dict_mt
+ lua_createtable(lstate, 0, 0);
+ lua_pushcfunction(lstate, &nlua_empty_dict_tostring);
+ lua_setfield(lstate, -2, "__tostring");
+ nlua_empty_dict_ref = nlua_ref(lstate, -1);
+ lua_setfield(lstate, -2, "_empty_dict_mt");
+
// internal vim._treesitter... API
nlua_add_treesitter(lstate);
@@ -665,6 +672,12 @@ static int nlua_nil_tostring(lua_State *lstate)
return 1;
}
+static int nlua_empty_dict_tostring(lua_State *lstate)
+{
+ lua_pushstring(lstate, "vim.empty_dict()");
+ return 1;
+}
+
#ifdef WIN32
/// os.getenv: override os.getenv to maintain coherency. #9681