summaryrefslogtreecommitdiff
path: root/lua/lvim/core/builtins/init.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/lvim/core/builtins/init.lua')
-rw-r--r--lua/lvim/core/builtins/init.lua22
1 files changed, 15 insertions, 7 deletions
diff --git a/lua/lvim/core/builtins/init.lua b/lua/lvim/core/builtins/init.lua
index 865b498f..7e954073 100644
--- a/lua/lvim/core/builtins/init.lua
+++ b/lua/lvim/core/builtins/init.lua
@@ -29,7 +29,14 @@ local builtins = {
---@field on_config_done function function called to configure the builtin
function M.add_completion(builtin)
- local table = lvim.builtin[builtin]
+ local table
+
+ if type(builtin) == "string" then
+ table = lvim.builtin[builtin]
+ else
+ table = builtin
+ end
+
---@cast table +LvimBuiltin
return table
end
@@ -57,21 +64,22 @@ function M.init()
configure_treesitter = false,
},
}
+
+ lvim.lsp = {}
end
-function M.setup(builtin_mod_name)
- local builtin_name = builtin_mod_name:gsub("-", "_")
- local mod = require("lvim.core." .. builtin_mod_name)
+-- Configure and set up a builtin
+function M.setup(name, mod_path, config_table)
+ local mod = require(mod_path or ("lvim.core." .. name:gsub("_", "-")))
- -- initialize config table
mod.config()
- local builtin = lvim.builtin[builtin_name]
+ local builtin = config_table or lvim.builtin[name]
if type(builtin.on_config) == "function" then
builtin.on_config()
local deprecated = require "lvim.config._deprecated"
- local deprecation_handler = deprecated.post_builtin[builtin_name]
+ local deprecation_handler = deprecated.post_builtin[name]
if deprecation_handler then
deprecation_handler()
end