aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/nvim/CMakeLists.txt3
-rw-r--r--src/nvim/lua/executor.c14
-rw-r--r--src/nvim/main.c9
3 files changed, 18 insertions, 8 deletions
diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt
index e881214f40..cc5fb25b1e 100644
--- a/src/nvim/CMakeLists.txt
+++ b/src/nvim/CMakeLists.txt
@@ -290,6 +290,7 @@ set(LUA_LOADER_MODULE_SOURCE ${NVIM_RUNTIME_DIR}/lua/vim/loader.lua)
set(LUA_INSPECT_MODULE_SOURCE ${NVIM_RUNTIME_DIR}/lua/vim/inspect.lua)
set(LUA_FS_MODULE_SOURCE ${NVIM_RUNTIME_DIR}/lua/vim/fs.lua)
set(LUA_F_MODULE_SOURCE ${NVIM_RUNTIME_DIR}/lua/vim/F.lua)
+set(LUA_DEFAULTS_MODULE_SOURCE ${NVIM_RUNTIME_DIR}/lua/vim/_defaults.lua)
set(LUA_OPTIONS_MODULE_SOURCE ${NVIM_RUNTIME_DIR}/lua/vim/_options.lua)
set(LUA_FILETYPE_MODULE_SOURCE ${NVIM_RUNTIME_DIR}/lua/vim/filetype.lua)
set(LUA_INIT_PACKAGES_MODULE_SOURCE ${NVIM_RUNTIME_DIR}/lua/vim/_init_packages.lua)
@@ -535,6 +536,7 @@ add_custom_command(
${LUA_F_MODULE_SOURCE} "vim.F"
${LUA_KEYMAP_MODULE_SOURCE} "vim.keymap"
${LUA_LOADER_MODULE_SOURCE} "vim.loader"
+ ${LUA_DEFAULTS_MODULE_SOURCE} "vim._defaults"
${LUA_OPTIONS_MODULE_SOURCE} "vim._options"
${LUA_SHARED_MODULE_SOURCE} "vim.shared"
DEPENDS
@@ -547,6 +549,7 @@ add_custom_command(
${LUA_F_MODULE_SOURCE}
${LUA_KEYMAP_MODULE_SOURCE}
${LUA_LOADER_MODULE_SOURCE}
+ ${LUA_DEFAULTS_MODULE_SOURCE}
${LUA_OPTIONS_MODULE_SOURCE}
${LUA_SHARED_MODULE_SOURCE}
VERBATIM
diff --git a/src/nvim/lua/executor.c b/src/nvim/lua/executor.c
index b389f33d8d..36cb8a6756 100644
--- a/src/nvim/lua/executor.c
+++ b/src/nvim/lua/executor.c
@@ -2291,3 +2291,17 @@ plain:
kv_printf(str, "<Lua %d>", ref);
return str.items;
}
+
+/// Execute the vim._defaults module to set up default mappings and autocommands
+void nlua_init_defaults(void)
+{
+ lua_State *const L = global_lstate;
+ assert(L);
+
+ lua_getglobal(L, "require");
+ lua_pushstring(L, "vim._defaults");
+ if (nlua_pcall(L, 1, 0)) {
+ os_errmsg(lua_tostring(L, -1));
+ os_errmsg("\n");
+ }
+}
diff --git a/src/nvim/main.c b/src/nvim/main.c
index 433b735c2e..42c98ead66 100644
--- a/src/nvim/main.c
+++ b/src/nvim/main.c
@@ -413,14 +413,7 @@ int main(int argc, char **argv)
open_script_files(&params);
- // Default mappings (incl. menus) & autocommands
- Error err = ERROR_INIT;
- Object o = NLUA_EXEC_STATIC("return vim._init_defaults()",
- (Array)ARRAY_DICT_INIT, &err);
- assert(!ERROR_SET(&err));
- api_clear_error(&err);
- assert(o.type == kObjectTypeNil);
- api_free_object(o);
+ nlua_init_defaults();
TIME_MSG("init default mappings & autocommands");