diff options
| author | David Barsky <me@davidbarsky.com> | 2023-03-13 14:45:41 -0400 |
|---|---|---|
| committer | David Barsky <me@davidbarsky.com> | 2023-03-13 14:45:41 -0400 |
| commit | 677c0eeccbc1d8bb5e05d47476b3b77592b7e4bb (patch) | |
| tree | 00604b8a43879744c82c5a9fc11f882ae83e3375 | |
| parent | 95497533524537b1cc7a2870ce94b0b14503be8b (diff) | |
| download | rust-677c0eeccbc1d8bb5e05d47476b3b77592b7e4bb.tar.gz rust-677c0eeccbc1d8bb5e05d47476b3b77592b7e4bb.zip | |
Add path of workspace root folders to status output
| -rw-r--r-- | crates/project-model/src/workspace.rs | 8 | ||||
| -rw-r--r-- | crates/rust-analyzer/src/handlers.rs | 11 |
2 files changed, 18 insertions, 1 deletions
diff --git a/crates/project-model/src/workspace.rs b/crates/project-model/src/workspace.rs index faa6816fdc2..862d1a8b4aa 100644 --- a/crates/project-model/src/workspace.rs +++ b/crates/project-model/src/workspace.rs @@ -450,6 +450,14 @@ impl ProjectWorkspace { } } + pub fn workspace_definition_path(&self) -> Option<&AbsPath> { + match self { + ProjectWorkspace::Cargo { cargo, .. } => Some(cargo.workspace_root()), + ProjectWorkspace::Json { project, .. } => Some(project.path()), + ProjectWorkspace::DetachedFiles { .. } => None, + } + } + pub fn find_sysroot_proc_macro_srv(&self) -> Option<AbsPathBuf> { match self { ProjectWorkspace::Cargo { sysroot: Some(sysroot), .. } diff --git a/crates/rust-analyzer/src/handlers.rs b/crates/rust-analyzer/src/handlers.rs index 32ac9a42dec..e95d68b70a3 100644 --- a/crates/rust-analyzer/src/handlers.rs +++ b/crates/rust-analyzer/src/handlers.rs @@ -29,7 +29,7 @@ use project_model::{ManifestPath, ProjectWorkspace, TargetKind}; use serde_json::json; use stdx::{format_to, never}; use syntax::{algo, ast, AstNode, TextRange, TextSize}; -use vfs::AbsPathBuf; +use vfs::{AbsPath, AbsPathBuf}; use crate::{ cargo_target_spec::CargoTargetSpec, @@ -84,6 +84,15 @@ pub(crate) fn handle_analyzer_status( snap.workspaces.len(), if snap.workspaces.len() == 1 { "" } else { "s" } ); + + format_to!( + buf, + "Workspace root folders: {:?}", + snap.workspaces + .iter() + .flat_map(|ws| ws.workspace_definition_path()) + .collect::<Vec<&AbsPath>>() + ); } buf.push_str("\nAnalysis:\n"); buf.push_str( |
