diff --git a/crates/project/src/lsp_store.rs b/crates/project/src/lsp_store.rs index 7a7bd2863b9c9b2786ed0616f26b2f51723e8f35..01e40ec6a0048940d405ee99a99dc9a03ea03d7c 100644 --- a/crates/project/src/lsp_store.rs +++ b/crates/project/src/lsp_store.rs @@ -7663,10 +7663,16 @@ impl LspAdapterDelegate for LocalLspAdapterDelegate { } async fn read_text_file(&self, path: PathBuf) -> Result { - if self.worktree.entry_for_path(&path).is_none() { - return Err(anyhow!("no such path {path:?}")); - }; - self.fs.load(&path).await + let entry = self + .worktree + .entry_for_path(&path) + .with_context(|| format!("no worktree entry for path {path:?}"))?; + let abs_path = self + .worktree + .absolutize(&entry.path) + .with_context(|| format!("cannot absolutize path {path:?}"))?; + + self.fs.load(&abs_path).await } }