diff --git a/crates/rust-analyzer/src/global_state.rs b/crates/rust-analyzer/src/global_state.rs index 6a5ba138f0..7533bb319a 100644 --- a/crates/rust-analyzer/src/global_state.rs +++ b/crates/rust-analyzer/src/global_state.rs @@ -12,7 +12,6 @@ use parking_lot::RwLock; use ra_db::{CrateId, VfsPath}; use ra_ide::{Analysis, AnalysisChange, AnalysisHost, FileId}; use ra_project_model::{CargoWorkspace, ProcMacroClient, ProjectWorkspace, Target}; -use stdx::format_to; use crate::{ config::Config, @@ -82,7 +81,7 @@ pub(crate) struct GlobalStateSnapshot { pub(crate) check_fixes: CheckFixes, pub(crate) latest_requests: Arc>, vfs: Arc)>>, - workspaces: Arc>, + pub(crate) workspaces: Arc>, } impl GlobalState { @@ -233,26 +232,6 @@ impl GlobalStateSnapshot { ProjectWorkspace::Json { .. } => None, }) } - - pub(crate) fn status(&self) -> String { - let mut buf = String::new(); - if self.workspaces.is_empty() { - buf.push_str("no workspaces\n") - } else { - buf.push_str("workspaces:\n"); - for w in self.workspaces.iter() { - format_to!(buf, "{} packages loaded\n", w.n_packages()); - } - } - buf.push_str("\nanalysis:\n"); - buf.push_str( - &self - .analysis - .status() - .unwrap_or_else(|_| "Analysis retrieval was cancelled".to_owned()), - ); - buf - } } pub(crate) fn file_id_to_url(vfs: &vfs::Vfs, id: FileId) -> Url { diff --git a/crates/rust-analyzer/src/handlers.rs b/crates/rust-analyzer/src/handlers.rs index 12b494496f..6c21f25fe4 100644 --- a/crates/rust-analyzer/src/handlers.rs +++ b/crates/rust-analyzer/src/handlers.rs @@ -39,7 +39,20 @@ use crate::{ pub(crate) fn handle_analyzer_status(snap: GlobalStateSnapshot, _: ()) -> Result { let _p = profile("handle_analyzer_status"); - let mut buf = snap.status(); + + let mut buf = String::new(); + if snap.workspaces.is_empty() { + buf.push_str("no workspaces\n") + } else { + buf.push_str("workspaces:\n"); + for w in snap.workspaces.iter() { + format_to!(buf, "{} packages loaded\n", w.n_packages()); + } + } + buf.push_str("\nanalysis:\n"); + buf.push_str( + &snap.analysis.status().unwrap_or_else(|_| "Analysis retrieval was cancelled".to_owned()), + ); format_to!(buf, "\n\nrequests:\n"); let requests = snap.latest_requests.read(); for (is_last, r) in requests.iter() {