diff options
author | LostNeophyte <[email protected]> | 2023-01-26 10:11:07 +0100 |
---|---|---|
committer | LostNeophyte <[email protected]> | 2023-01-26 10:54:59 +0100 |
commit | 162eff8fd5a2a6df4f45ba24226438e3787fb605 (patch) | |
tree | a79a5f5ff7f433707401b6f0c501c354660a1334 /lua/lvim/core/builtins/init.lua | |
parent | 0f0380dcc6b1e3a0fbe9d830841b4c4afbd88853 (diff) |
feat: make lvim.lsp a builtin
Diffstat (limited to 'lua/lvim/core/builtins/init.lua')
-rw-r--r-- | lua/lvim/core/builtins/init.lua | 22 |
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 |