summaryrefslogtreecommitdiff
path: root/lua/lvim/core/builtins/init.lua
diff options
context:
space:
mode:
authorLostNeophyte <[email protected]>2023-02-07 18:57:10 +0100
committerLostNeophyte <[email protected]>2023-02-07 18:57:10 +0100
commit620e51898275764502853f3908707ef71ce42313 (patch)
tree8705fe27dc7690b041d061b80fd1c4fd42387882 /lua/lvim/core/builtins/init.lua
parent24d8780d7392f444f852e646eb8e438b4c629850 (diff)
refactor(builtins): centralize setting up builtins
Diffstat (limited to 'lua/lvim/core/builtins/init.lua')
-rw-r--r--lua/lvim/core/builtins/init.lua16
1 files changed, 16 insertions, 0 deletions
diff --git a/lua/lvim/core/builtins/init.lua b/lua/lvim/core/builtins/init.lua
index 4764ff70..1a564cd6 100644
--- a/lua/lvim/core/builtins/init.lua
+++ b/lua/lvim/core/builtins/init.lua
@@ -23,7 +23,14 @@ local builtins = {
"lvim.core.mason",
}
+---@class LvimBuiltin
+---@field active boolean is builtin enabled
+---@field on_config_done function function called after the builtin is set up
+
function M.config(config)
+ ---@type {[string]: LvimBuiltin}
+ lvim.builtin = {}
+
for _, builtin_path in ipairs(builtins) do
local builtin = reload(builtin_path)
@@ -31,4 +38,13 @@ function M.config(config)
end
end
+function M.setup_builtin(modname)
+ require("lvim.core." .. modname).setup()
+
+ local builtin_tbl = lvim.builtin[string.gsub(modname, "-", "_")]
+ if type(builtin_tbl.on_config_done) == "function" then
+ builtin_tbl.on_config_done()
+ end
+end
+
return M