diff options
Diffstat (limited to 'lua')
| -rw-r--r-- | lua/lspconfig.lua | 6 | ||||
| -rw-r--r-- | lua/lspconfig/configs.lua | 30 |
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 |
