diff options
author | Chase Colman <[email protected]> | 2021-10-28 21:15:49 +0800 |
---|---|---|
committer | Chase Colman <[email protected]> | 2021-10-28 21:15:49 +0800 |
commit | 6b8ef55e3de47224cd40de1d67831901484d3d5a (patch) | |
tree | bfe8f527a67e844d1e910ba13a6a969848b1b34f /lua | |
parent | 177916d63d7e1c748c48436ef93b30f0019eacac (diff) |
fix(lsp): install templates and configure overrides for custom providers
Diffstat (limited to 'lua')
-rw-r--r-- | lua/lvim/lsp/manager.lua | 10 | ||||
-rw-r--r-- | lua/lvim/lsp/templates.lua | 3 |
2 files changed, 9 insertions, 4 deletions
diff --git a/lua/lvim/lsp/manager.lua b/lua/lvim/lsp/manager.lua index 0b11c175..a8544803 100644 --- a/lua/lvim/lsp/manager.lua +++ b/lua/lvim/lsp/manager.lua @@ -26,8 +26,8 @@ local function resolve_config(name, user_config) capabilities = require("lvim.lsp").common_capabilities(), } - local status_ok, custom_config = pcall(require, "lvim.lsp/providers/" .. name) - if status_ok then + local has_custom_provider, custom_config = pcall(require, "lvim/lsp/providers/" .. name) + if has_custom_provider then Log:debug("Using custom configuration for requested server: " .. name) config = vim.tbl_deep_extend("force", config, custom_config) end @@ -70,7 +70,11 @@ function M.setup(server_name, user_config) if server_available and ensure_installed(requested_server) then requested_server:setup(config) else - require("lspconfig")[server_name].setup(config) + -- since it may not be installed, don't attempt to configure the LSP unless there is a custom provider + local has_custom_provider, _ = pcall(require, "lvim/lsp/providers/" .. server_name) + if has_custom_provider then + require("lspconfig")[server_name].setup(config) + end end end diff --git a/lua/lvim/lsp/templates.lua b/lua/lvim/lsp/templates.lua index 3478f4fb..33c75a6e 100644 --- a/lua/lvim/lsp/templates.lua +++ b/lua/lvim/lsp/templates.lua @@ -19,7 +19,8 @@ end ---@param server_name string name of a valid language server, e.g. pyright, gopls, tsserver, etc. ---@param dir string the full path to the desired directory function M.generate_ftplugin(server_name, dir) - if vim.tbl_contains(lvim.lsp.override, server_name) then + local has_custom_provider, _ = pcall(require, "lvim/lsp/providers/" .. server_name) + if vim.tbl_contains(lvim.lsp.override, server_name) and not has_custom_provider then return end |