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 | |
parent | 0f0380dcc6b1e3a0fbe9d830841b4c4afbd88853 (diff) |
feat: make lvim.lsp a builtin
-rw-r--r-- | lua/lvim/config/_deprecated.lua | 16 | ||||
-rw-r--r-- | lua/lvim/config/init.lua | 2 | ||||
-rw-r--r-- | lua/lvim/core/autocmds.lua | 3 | ||||
-rw-r--r-- | lua/lvim/core/builtins/init.lua | 22 | ||||
-rw-r--r-- | lua/lvim/lsp/config.lua | 9 | ||||
-rw-r--r-- | lua/lvim/lsp/init.lua | 9 | ||||
-rw-r--r-- | lua/lvim/plugins.lua | 2 |
7 files changed, 26 insertions, 37 deletions
diff --git a/lua/lvim/config/_deprecated.lua b/lua/lvim/config/_deprecated.lua index 9424f665..1720d228 100644 --- a/lua/lvim/config/_deprecated.lua +++ b/lua/lvim/config/_deprecated.lua @@ -44,15 +44,6 @@ function M.pre_user_config() end function M.post_user_config() - if lvim.lsp.override and not vim.tbl_isempty(lvim.lsp.override) then - deprecate("lvim.lsp.override", "Use `lvim.lsp.automatic_configuration.skipped_servers` instead") - vim.tbl_map(function(c) - if not vim.tbl_contains(lvim.lsp.automatic_configuration.skipped_servers, c) then - table.insert(lvim.lsp.automatic_configuration.skipped_servers, c) - end - end, lvim.lsp.override) - end - if lvim.autocommands.custom_groups then deprecate( "lvim.autocommands.custom_groups", @@ -60,13 +51,6 @@ function M.post_user_config() ) end - if lvim.lsp.automatic_servers_installation then - deprecate( - "lvim.lsp.automatic_servers_installation", - "Use `lvim.lsp.installer.setup.automatic_installation` instead" - ) - end - local function convert_spec_to_lazy(spec) local alternatives = { setup = "init", diff --git a/lua/lvim/config/init.lua b/lua/lvim/config/init.lua index 7823d9f2..915b115f 100644 --- a/lua/lvim/config/init.lua +++ b/lua/lvim/config/init.lua @@ -51,7 +51,7 @@ function M:load(config_path) Log:set_level(lvim.log.level) - -- require("lvim.config._deprecated").post_load() + require("lvim.config._deprecated").post_user_config() autocmds.define_autocmds(lvim.autocommands) diff --git a/lua/lvim/core/autocmds.lua b/lua/lvim/core/autocmds.lua index f980a27f..6f0fb36a 100644 --- a/lua/lvim/core/autocmds.lua +++ b/lua/lvim/core/autocmds.lua @@ -145,7 +145,8 @@ function M.load_defaults() local buftype = vim.api.nvim_get_option_value("buftype", { buf = args.buf }) if not (vim.fn.expand "%" == "" or buftype == "nofile") then vim.cmd "do User FileOpened" - require("lvim.lsp").setup() + + require("lvim.core.builtins").setup("lsp", "lvim.lsp", lvim.lsp) end end, }, 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 diff --git a/lua/lvim/lsp/config.lua b/lua/lvim/lsp/config.lua index 4cb9cf54..031751f3 100644 --- a/lua/lvim/lsp/config.lua +++ b/lua/lvim/lsp/config.lua @@ -50,9 +50,8 @@ local M = {} M.config = function() local join_paths = require("lvim.utils").join_paths + local users_config = lvim.lsp lvim.lsp = { - -- Function that gets called to configure lvim.lsp - config = nil, templates_dir = join_paths(get_runtime_dir(), "site", "after", "ftplugin"), diagnostics = { signs = { @@ -149,11 +148,9 @@ M.config = function() }, config = {}, }, - ---@deprecated use lvim.lsp.automatic_configuration.skipped_servers instead - override = {}, - ---@deprecated use lvim.lsp.installer.setup.automatic_installation instead - automatic_servers_installation = nil, } + local config = vim.tbl_deep_extend("force", lvim.lsp, users_config) + lvim.lsp = require("lvim.core.builtins").add_completion(config) end return M diff --git a/lua/lvim/lsp/init.lua b/lua/lvim/lsp/init.lua index 03650a99..a1862abb 100644 --- a/lua/lvim/lsp/init.lua +++ b/lua/lvim/lsp/init.lua @@ -86,14 +86,13 @@ function M.get_common_opts() } end +function M.config() + require("lvim.lsp.config").config() +end + function M.setup() Log:debug "Setting up LSP support" - require("lvim.lsp.config").config() - if type(lvim.lsp.config) == "function" then - lvim.lsp.config() - end - local lsp_status_ok, _ = pcall(require, "lspconfig") if not lsp_status_ok then return diff --git a/lua/lvim/plugins.lua b/lua/lvim/plugins.lua index 9e36d4a8..ae03cf9f 100644 --- a/lua/lvim/plugins.lua +++ b/lua/lvim/plugins.lua @@ -156,7 +156,7 @@ local core_plugins = { { "folke/which-key.nvim", config = function() - require("lvim.core.builtins").setup "which-key" + require("lvim.core.builtins").setup "which_key" end, event = "VeryLazy", enabled = lvim.builtin.which_key.active, |