Recreate PR.

This commit is contained in:
Milo 2021-06-18 19:22:03 +01:00
parent 0657812bc2
commit 7d502c7f08
3 changed files with 25 additions and 9 deletions

1
.gitignore vendored
View File

@ -11,3 +11,4 @@ generated_assists.adoc
generated_features.adoc generated_features.adoc
generated_diagnostic.adoc generated_diagnostic.adoc
.DS_Store .DS_Store
.glitterrc

View File

@ -34,15 +34,24 @@ fn macro_syntax_tree_stats(db: &RootDatabase) -> SyntaxTreeStats {
// image::https://user-images.githubusercontent.com/48062697/113065584-05f34500-91b1-11eb-98cc-5c196f76be7f.gif[] // image::https://user-images.githubusercontent.com/48062697/113065584-05f34500-91b1-11eb-98cc-5c196f76be7f.gif[]
pub(crate) fn status(db: &RootDatabase, file_id: Option<FileId>) -> String { pub(crate) fn status(db: &RootDatabase, file_id: Option<FileId>) -> String {
let mut buf = String::new(); let mut buf = String::new();
let count = profile::countme::get_all();
format_to!(buf, "{}\n", FileTextQuery.in_db(db).entries::<FilesStats>()); format_to!(buf, "{}\n", FileTextQuery.in_db(db).entries::<FilesStats>());
format_to!(buf, "{}\n", LibrarySymbolsQuery.in_db(db).entries::<LibrarySymbolsStats>()); format_to!(buf, "{}\n", LibrarySymbolsQuery.in_db(db).entries::<LibrarySymbolsStats>());
format_to!(buf, "{}\n", syntax_tree_stats(db)); format_to!(buf, "{}\n", syntax_tree_stats(db));
format_to!(buf, "{} (macros)\n", macro_syntax_tree_stats(db)); format_to!(buf, "{} (Macros)\n", macro_syntax_tree_stats(db));
format_to!(buf, "{} total\n", memory_usage()); format_to!(buf, "{} Total\n", memory_usage());
format_to!(buf, "\ncounts:\n{}", profile::countme::get_all()); format_to!(
buf,
"\nCounts:\n{}",
if count.to_string().contains("all counts are zero") {
String::from("All counts are zero\n")
} else {
count.to_string()
}
);
if let Some(file_id) = file_id { if let Some(file_id) = file_id {
format_to!(buf, "\nfile info:\n"); format_to!(buf, "\nFile info:\n");
let krate = crate::parent_module::crate_for(db, file_id).pop(); let krate = crate::parent_module::crate_for(db, file_id).pop();
match krate { match krate {
Some(krate) => { Some(krate) => {

View File

@ -60,21 +60,27 @@ pub(crate) fn handle_analyzer_status(
} }
if snap.workspaces.is_empty() { if snap.workspaces.is_empty() {
buf.push_str("no workspaces\n") buf.push_str("No workspaces\n")
} else { } else {
buf.push_str("workspaces:\n"); buf.push_str("Workspaces:\n");
for w in snap.workspaces.iter() { for w in snap.workspaces.iter() {
format_to!(buf, "{} packages loaded\n", w.n_packages()); format_to!(
buf,
"Loaded {} packages across {} workspace{}.\n",
w.n_packages(),
snap.workspaces.len(),
if snap.workspaces.len() == 1 { "" } else { "s" }
);
} }
} }
buf.push_str("\nanalysis:\n"); buf.push_str("\nAnalysis:\n");
buf.push_str( buf.push_str(
&snap &snap
.analysis .analysis
.status(file_id) .status(file_id)
.unwrap_or_else(|_| "Analysis retrieval was cancelled".to_owned()), .unwrap_or_else(|_| "Analysis retrieval was cancelled".to_owned()),
); );
format_to!(buf, "\n\nrequests:\n"); format_to!(buf, "\n\nRequests:\n");
let requests = snap.latest_requests.read(); let requests = snap.latest_requests.read();
for (is_last, r) in requests.iter() { for (is_last, r) in requests.iter() {
let mark = if is_last { "*" } else { " " }; let mark = if is_last { "*" } else { " " };