aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua')
-rw-r--r--lua/lspconfig.lua6
-rw-r--r--lua/lspconfig/configs.lua30
2 files changed, 22 insertions, 14 deletions
diff --git a/lua/lspconfig.lua b/lua/lspconfig.lua
index fd15f6a0..2e7f848c 100644
--- a/lua/lspconfig.lua
+++ b/lua/lspconfig.lua
@@ -27,14 +27,14 @@ function M._root._setup()
function(server_name)
if server_name then
if configs[server_name] then
- configs[server_name].autostart()
+ configs[server_name].launch()
end
else
local buffer_filetype = vim.bo.filetype
for _, config in pairs(configs) do
for _, filetype_match in ipairs(config.filetypes or {}) do
if buffer_filetype == filetype_match then
- config.autostart()
+ config.launch()
end
end
end
@@ -57,7 +57,7 @@ function M._root._setup()
for _, client in ipairs(M.util.get_clients_from_cmd_args(cmd_args)) do
client.stop()
vim.defer_fn(function()
- configs[client.name].autostart()
+ configs[client.name].launch()
end, 500)
end
end,
diff --git a/lua/lspconfig/configs.lua b/lua/lspconfig/configs.lua
index 72ab401c..2f4cd0d7 100644
--- a/lua/lspconfig/configs.lua
+++ b/lua/lspconfig/configs.lua
@@ -54,24 +54,32 @@ function configs.__newindex(t, config_name, config_def)
pcall(util.on_setup, config)
end
- local trigger
- if config.filetypes then
- trigger = 'FileType ' .. table.concat(config.filetypes, ',')
- else
- trigger = 'BufReadPost *'
- end
- if not (config.autostart == false) then
+ if config.autostart == true then
+ local event
+ local pattern
+ if config.filetypes then
+ event = 'FileType'
+ pattern = table.concat(config.filetypes, ',')
+ else
+ event = 'BufReadPost'
+ pattern = '*'
+ end
api.nvim_command(
- string.format("autocmd %s unsilent lua require'lspconfig'[%q].manager.try_add()", trigger, config.name)
+ string.format(
+ "autocmd %s %s unsilent lua require'lspconfig'[%q].manager.try_add()",
+ event,
+ pattern,
+ config.name
+ )
)
end
local get_root_dir = config.root_dir
- function M.autostart()
+ function M.launch()
local root_dir = get_root_dir(api.nvim_buf_get_name(0), api.nvim_get_current_buf())
if not root_dir then
- vim.notify(string.format('Autostart for %s failed: matching root directory not detected.', config_name))
+ vim.notify(string.format('Launching %s failed: matching root directory not detected.', config_name))
return
end
api.nvim_command(
@@ -94,7 +102,7 @@ function configs.__newindex(t, config_name, config_def)
M.filetypes = config.filetypes
M.handlers = config.handlers
M.cmd = config.cmd
- M._autostart = config.autostart
+ M.autostart = config.autostart
-- In the case of a reload, close existing things.
local reload = false