From 8f70ecd882cf44567ddbffb469373501492938f9 Mon Sep 17 00:00:00 2001 From: LostNeophyte Date: Sat, 18 Feb 2023 08:55:05 +0100 Subject: refactor(builtins): move builtins to lvim/builtin --- lua/lvim/builtin/init.lua | 49 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 lua/lvim/builtin/init.lua (limited to 'lua/lvim/builtin/init.lua') diff --git a/lua/lvim/builtin/init.lua b/lua/lvim/builtin/init.lua new file mode 100644 index 00000000..21ae9c51 --- /dev/null +++ b/lua/lvim/builtin/init.lua @@ -0,0 +1,49 @@ +local M = {} + +local builtins = { + "lvim.builtin.which-key", + "lvim.builtin.gitsigns", + "lvim.builtin.cmp", + "lvim.builtin.dap", + "lvim.builtin.terminal", + "lvim.builtin.telescope", + "lvim.builtin.treesitter", + "lvim.builtin.nvimtree", + "lvim.builtin.lir", + "lvim.builtin.illuminate", + "lvim.builtin.indentlines", + "lvim.builtin.breadcrumbs", + "lvim.builtin.project", + "lvim.builtin.bufferline", + "lvim.builtin.autopairs", + "lvim.builtin.comment", + "lvim.builtin.lualine", + "lvim.builtin.alpha", + "lvim.builtin.mason", +} + +---@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) + + builtin.config(config) + end +end + +function M.setup(modname) + local plugin = require("lvim.builtin." .. 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 -- cgit v1.2.3