summaryrefslogtreecommitdiff
path: root/lua/lvim/lsp
diff options
context:
space:
mode:
authork4z4n0v4 <[email protected]>2022-11-01 19:08:16 +0400
committerGitHub <[email protected]>2022-11-01 16:08:16 +0100
commit375232c95a45d917b201b4398ac173202e59e87f (patch)
treefb389ef41ef4fa9105f24a7842a6ca8d31c81a70 /lua/lvim/lsp
parent325bf72f935aa2caf25cb644f79dc7a3ea2c1168 (diff)
fix(lsp) launch servers in path as well (#3390)
Diffstat (limited to 'lua/lvim/lsp')
-rw-r--r--lua/lvim/lsp/manager.lua10
1 files changed, 9 insertions, 1 deletions
diff --git a/lua/lvim/lsp/manager.lua b/lua/lvim/lsp/manager.lua
index 54b9ed5d..02f0f600 100644
--- a/lua/lvim/lsp/manager.lua
+++ b/lua/lvim/lsp/manager.lua
@@ -72,6 +72,15 @@ end
local function launch_server(server_name, config)
pcall(function()
+ local command = config.cmd
+ or (function()
+ local default_config = require("lspconfig.server_configurations." .. server_name).default_config
+ return default_config.cmd
+ end)()
+ if vim.fn.executable(command[1]) ~= 1 then
+ Log:debug(string.format("[%q] is either not installed, missing from PATH, or not executable.", server_name))
+ return
+ end
require("lspconfig")[server_name].setup(config)
buf_try_add(server_name)
end)
@@ -122,7 +131,6 @@ function M.setup(server_name, user_config)
else
Log:debug(server_name .. " is not managed by the automatic installer")
end
- return
end
local config = resolve_config(server_name, resolve_mason_config(server_name), user_config)