aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua')
-rw-r--r--lua/lspconfig/configs.lua20
1 files changed, 12 insertions, 8 deletions
diff --git a/lua/lspconfig/configs.lua b/lua/lspconfig/configs.lua
index 453f79e1..532befd1 100644
--- a/lua/lspconfig/configs.lua
+++ b/lua/lspconfig/configs.lua
@@ -14,6 +14,17 @@ local configs = {}
--- @field autostart? boolean
--- @field package _on_attach? fun(client: lsp.Client, bufnr: integer)
+--- @param cmd any
+local function sanitize_cmd(cmd)
+ if cmd and type(cmd) == 'table' and not vim.tbl_isempty(cmd) then
+ local original = cmd[1]
+ cmd[1] = vim.fn.exepath(cmd[1])
+ if #cmd[1] == 0 then
+ cmd[1] = original
+ end
+ end
+end
+
function configs.__newindex(t, config_name, config_def)
validate {
name = { config_name, 's' },
@@ -78,14 +89,7 @@ function configs.__newindex(t, config_name, config_def)
local config = tbl_deep_extend('keep', user_config, default_config)
- local cmd = config.cmd
- if cmd and type(cmd) == 'table' and not vim.tbl_isempty(cmd) then
- local original = cmd[1]
- cmd[1] = vim.fn.exepath(cmd[1])
- if #cmd[1] == 0 then
- cmd[1] = original
- end
- end
+ sanitize_cmd(config.cmd)
if util.on_setup then
pcall(util.on_setup, config, user_config)