diff options
author | Kitson Kelly <me@kitsonkelly.com> | 2021-04-20 07:10:43 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-20 07:10:43 +1000 |
commit | 65f7a021f092f2c475969a6f6762ab5e35d65123 (patch) | |
tree | 008dec74a2d1ac88a59db15e0e8a78ed02ae6011 /cli/lsp/language_server.rs | |
parent | d6233100bd6a5c5b2a1c541f580cc47053f6f90d (diff) |
feat(lsp): improve diagnostic status page (#10253)
Diffstat (limited to 'cli/lsp/language_server.rs')
-rw-r--r-- | cli/lsp/language_server.rs | 51 |
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(¶ms.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 )); } |