aboutsummaryrefslogtreecommitdiffstats
path: root/lua/lspconfig/manager.lua
diff options
context:
space:
mode:
authorMaria José Solano <majosolano99@gmail.com>2024-11-23 19:31:18 -0800
committerMaria José Solano <majosolano99@gmail.com>2024-11-23 20:30:34 -0800
commit2eccb418f2f972ad1167f8491a8180acdeb02384 (patch)
treeb67fb762283f9137237b226e1ffe353b904002a2 /lua/lspconfig/manager.lua
parentfeat: use vim.lsp.start instead of vim.lsp.start_client (diff)
downloadnvim-lspconfig-2eccb418f2f972ad1167f8491a8180acdeb02384.tar
nvim-lspconfig-2eccb418f2f972ad1167f8491a8180acdeb02384.tar.gz
nvim-lspconfig-2eccb418f2f972ad1167f8491a8180acdeb02384.tar.bz2
nvim-lspconfig-2eccb418f2f972ad1167f8491a8180acdeb02384.tar.lz
nvim-lspconfig-2eccb418f2f972ad1167f8491a8180acdeb02384.tar.xz
nvim-lspconfig-2eccb418f2f972ad1167f8491a8180acdeb02384.tar.zst
nvim-lspconfig-2eccb418f2f972ad1167f8491a8180acdeb02384.zip
feat: add silent on error option
Diffstat (limited to 'lua/lspconfig/manager.lua')
-rw-r--r--lua/lspconfig/manager.lua19
1 files changed, 12 insertions, 7 deletions
diff --git a/lua/lspconfig/manager.lua b/lua/lspconfig/manager.lua
index 5a0c635c..d5db2833 100644
--- a/lua/lspconfig/manager.lua
+++ b/lua/lspconfig/manager.lua
@@ -85,7 +85,8 @@ end
--- @param new_config lspconfig.Config
--- @param root_dir string
--- @param single_file boolean
-function M:_start_client(bufnr, new_config, root_dir, single_file)
+--- @param silent boolean
+function M:_start_client(bufnr, new_config, root_dir, single_file, silent)
-- do nothing if the client is not enabled
if new_config.enabled == false then
return
@@ -129,6 +130,7 @@ function M:_start_client(bufnr, new_config, root_dir, single_file)
local client_id = lsp.start(new_config, {
bufnr = bufnr,
+ silent = silent,
reuse_client = function(existing_client)
if (self._clients[root_dir] or {})[existing_client.name] then
self:_notify_workspace_folder_added(root_dir, existing_client)
@@ -153,9 +155,11 @@ end
---@param root_dir string
---@param single_file boolean
---@param bufnr integer
+---@param silent boolean
+function M:add(root_dir, single_file, bufnr, silent)
root_dir = util.path.sanitize(root_dir)
local new_config = self.make_config(root_dir)
- self:_start_client(bufnr, new_config, root_dir, single_file)
+ self:_start_client(bufnr, new_config, root_dir, single_file, silent)
end
--- @return vim.lsp.Client[]
@@ -173,7 +177,8 @@ end
--- a new client if one doesn't already exist for `bufnr`.
--- @param bufnr integer
--- @param project_root? string
-function M:try_add(bufnr, project_root)
+--- @param silent boolean
+function M:try_add(bufnr, project_root, silent)
bufnr = bufnr or api.nvim_get_current_buf()
if vim.bo[bufnr].buftype == 'nofile' then
@@ -190,7 +195,7 @@ function M:try_add(bufnr, project_root)
end
if project_root then
- self:add(project_root, false, bufnr)
+ self:add(project_root, false, bufnr, silent)
return
end
@@ -213,10 +218,10 @@ function M:try_add(bufnr, project_root)
end
if root_dir then
- self:add(root_dir, false, bufnr)
+ self:add(root_dir, false, bufnr, silent)
elseif self.config.single_file_support then
local pseudo_root = #bufname == 0 and pwd or util.path.dirname(buf_path)
- self:add(pseudo_root, true, bufnr)
+ self:add(pseudo_root, true, bufnr, silent)
end
end)
end
@@ -229,7 +234,7 @@ function M:try_add_wrapper(bufnr, project_root)
local config = self.config
-- `config.filetypes = nil` means all filetypes are valid.
if not config.filetypes or vim.tbl_contains(config.filetypes, vim.bo[bufnr].filetype) then
- self:try_add(bufnr, project_root)
+ self:try_add(bufnr, project_root, config.silent)
end
end