From c4bda1273663b9d6c99c681ff5dbfaaf3bb2c8b1 Mon Sep 17 00:00:00 2001 From: MrSubidubi Date: Mon, 20 Oct 2025 18:32:06 +0200 Subject: [PATCH] WIP --- crates/project/src/lsp_store.rs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/crates/project/src/lsp_store.rs b/crates/project/src/lsp_store.rs index faf53fa802c858822c20635f4ebb906cbdd4b886..287580f1c51e7f96184ad3e87d4f467dabb16638 100644 --- a/crates/project/src/lsp_store.rs +++ b/crates/project/src/lsp_store.rs @@ -2428,7 +2428,11 @@ impl LocalLspStore { let path = &disposition.path; { - let uri = Uri::from_file_path(worktree.read(cx).absolutize(&path.path)); + let absolute_path = worktree.read(cx).absolutize(&path.path); + let uri = absolute_path + .is_dir() + .then(|| Uri::from_file_path(absolute_path)) + .transpose(); let server_id = self.get_or_insert_language_server( &worktree, @@ -2439,7 +2443,7 @@ impl LocalLspStore { ); if let Some(state) = self.language_servers.get(&server_id) - && let Ok(uri) = uri + && let Ok(Some(uri)) = uri { state.add_workspace_folder(uri); }; @@ -4651,7 +4655,11 @@ impl LspStore { for node in nodes { let server_id = node.server_id_or_init(|disposition| { let path = &disposition.path; - let uri = Uri::from_file_path(worktree.read(cx).absolutize(&path.path)); + let absolute_path = worktree.read(cx).absolutize(&path.path); + let uri = absolute_path + .is_dir() + .then(|| Uri::from_file_path(absolute_path)) + .transpose(); let key = LanguageServerSeed { worktree_id, name: disposition.server_name.clone(), @@ -4672,7 +4680,7 @@ impl LspStore { cx, ); if let Some(state) = local.language_servers.get(&server_id) - && let Ok(uri) = uri + && let Ok(Some(uri)) = uri { state.add_workspace_folder(uri); };