summaryrefslogtreecommitdiff
path: root/cli/lsp/language_server.rs
diff options
context:
space:
mode:
authorKitson Kelly <me@kitsonkelly.com>2021-04-20 07:10:43 +1000
committerGitHub <noreply@github.com>2021-04-20 07:10:43 +1000
commit65f7a021f092f2c475969a6f6762ab5e35d65123 (patch)
tree008dec74a2d1ac88a59db15e0e8a78ed02ae6011 /cli/lsp/language_server.rs
parentd6233100bd6a5c5b2a1c541f580cc47053f6f90d (diff)
feat(lsp): improve diagnostic status page (#10253)
Diffstat (limited to 'cli/lsp/language_server.rs')
-rw-r--r--cli/lsp/language_server.rs51
1 files changed, 46 insertions, 5 deletions
diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs
index d5de93593..275a0873d 100644
--- a/cli/lsp/language_server.rs
+++ b/cli/lsp/language_server.rs
@@ -2302,18 +2302,59 @@ impl Inner {
let specifier = self.url_map.normalize_url(&params.text_document.uri);
let contents = if specifier.as_str() == "deno:/status.md" {
let mut contents = String::new();
+ let mut documents_specifiers = self.documents.specifiers();
+ documents_specifiers.sort();
+ let mut sources_specifiers = self.sources.specifiers();
+ sources_specifiers.sort();
+ let measures = self.performance.to_vec();
contents.push_str(&format!(
r#"# Deno Language Server Status
- - Documents in memory: {}
+ - <details><summary>Documents in memory: {}</summary>
+
+ - {}
+
+ </details>
+
+ - <details><summary>Sources in memory: {}</summary>
+
+ - {}
+
+ </details>
+
+ - <details><summary>Performance measures: {}</summary>
+
+ - {}
+
+ </details>
"#,
- self.documents.len()
+ self.documents.len(),
+ documents_specifiers
+ .into_iter()
+ .map(|s| s.to_string())
+ .collect::<Vec<String>>()
+ .join("\n - "),
+ self.sources.len(),
+ sources_specifiers
+ .into_iter()
+ .map(|s| s.to_string())
+ .collect::<Vec<String>>()
+ .join("\n - "),
+ measures.len(),
+ measures
+ .iter()
+ .map(|m| m.to_string())
+ .collect::<Vec<String>>()
+ .join("\n - ")
));
- contents.push_str("\n## Performance\n\n");
- for average in self.performance.averages() {
+ contents
+ .push_str("\n## Performance\n\n|Name|Duration|Count|\n|---|---|---|\n");
+ let mut averages = self.performance.averages();
+ averages.sort();
+ for average in averages {
contents.push_str(&format!(
- " - {}: {}ms ({})\n",
+ "|{}|{}ms|{}|\n",
average.name, average.average_duration, average.count
));
}