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.lua57
1 files changed, 36 insertions, 21 deletions
diff --git a/lua/lvim/core/builtins/init.lua b/lua/lvim/core/builtins/init.lua
index 4764ff70..cd2946ab 100644
--- a/lua/lvim/core/builtins/init.lua
+++ b/lua/lvim/core/builtins/init.lua
@@ -1,29 +1,35 @@
local M = {}
local builtins = {
- "lvim.core.theme",
- "lvim.core.which-key",
- "lvim.core.gitsigns",
- "lvim.core.cmp",
- "lvim.core.dap",
- "lvim.core.terminal",
- "lvim.core.telescope",
- "lvim.core.treesitter",
- "lvim.core.nvimtree",
- "lvim.core.lir",
- "lvim.core.illuminate",
- "lvim.core.indentlines",
- "lvim.core.breadcrumbs",
- "lvim.core.project",
- "lvim.core.bufferline",
- "lvim.core.autopairs",
- "lvim.core.comment",
- "lvim.core.lualine",
- "lvim.core.alpha",
- "lvim.core.mason",
+ "lvim.core.builtins.which-key",
+ "lvim.core.builtins.gitsigns",
+ "lvim.core.builtins.cmp",
+ "lvim.core.builtins.dap",
+ "lvim.core.builtins.terminal",
+ "lvim.core.builtins.telescope",
+ "lvim.core.builtins.treesitter",
+ "lvim.core.builtins.nvimtree",
+ "lvim.core.builtins.lir",
+ "lvim.core.builtins.illuminate",
+ "lvim.core.builtins.indentlines",
+ "lvim.core.builtins.breadcrumbs",
+ "lvim.core.builtins.project",
+ "lvim.core.builtins.bufferline",
+ "lvim.core.builtins.autopairs",
+ "lvim.core.builtins.comment",
+ "lvim.core.builtins.lualine",
+ "lvim.core.builtins.alpha",
+ "lvim.core.builtins.mason",
}
-function M.config(config)
+---@class LvimBuiltin
+---@field active boolean is builtin enabled
+---@field on_config_done function function called after the builtin is set up
+
+function M.init(config)
+ ---@type {[string]: LvimBuiltin}
+ lvim.builtin = {}
+
for _, builtin_path in ipairs(builtins) do
local builtin = reload(builtin_path)
@@ -31,4 +37,13 @@ function M.config(config)
end
end
+function M.setup(modname)
+ local plugin = require("lvim.core.builtins." .. modname).setup()
+
+ local builtin_tbl = lvim.builtin[modname:gsub("-", "_")]
+ if plugin and type(builtin_tbl.on_config_done) == "function" then
+ builtin_tbl.on_config_done(plugin)
+ end
+end
+
return M