Unnamed repository; edit this file 'description' to name the repository.
fix: Respect workspace-lsp-roots on doc opening (#12223)
When a new language server is started, find_lsp_workspace is called
with LanguageConfiguration::workspace_lsp_roots as the root_dirs.
This behavior is different when a new document is opened.
find_lsp_workspace is called with editor::Config::workspace_lsp_roots
which is never set.
This leads to a bug where workspace-lsp-roots is not respected when
opening a new document. This commit fixes this bug.
| -rw-r--r-- | helix-lsp/src/lib.rs | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/helix-lsp/src/lib.rs b/helix-lsp/src/lib.rs index 134cb74f..fd5cdb8b 100644 --- a/helix-lsp/src/lib.rs +++ b/helix-lsp/src/lib.rs @@ -701,7 +701,11 @@ impl Registry { } if let Some((_, client)) = clients.iter().enumerate().find(|(i, client)| { - client.try_add_doc(&language_config.roots, root_dirs, doc_path, *i == 0) + let manual_roots = language_config + .workspace_lsp_roots + .as_deref() + .unwrap_or(root_dirs); + client.try_add_doc(&language_config.roots, manual_roots, doc_path, *i == 0) }) { return Some((name.to_owned(), Ok(client.clone()))); } |