summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChase Colman <[email protected]>2021-10-28 21:15:49 +0800
committerChase Colman <[email protected]>2021-10-28 21:15:49 +0800
commit6b8ef55e3de47224cd40de1d67831901484d3d5a (patch)
treebfe8f527a67e844d1e910ba13a6a969848b1b34f
parent177916d63d7e1c748c48436ef93b30f0019eacac (diff)
fix(lsp): install templates and configure overrides for custom providers
-rw-r--r--lua/lvim/lsp/manager.lua10
-rw-r--r--lua/lvim/lsp/templates.lua3
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