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.
Maurice Hieronymus 2024-12-22
parent ba6e6dc · commit b946b21
-rw-r--r--helix-lsp/src/lib.rs6
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())));
}