aboutsummaryrefslogtreecommitdiff
path: root/helix-term/src/ui
diff options
context:
space:
mode:
authorPhilipp Mildenberger2024-01-09 01:01:04 +0000
committerGitHub2024-01-09 01:01:04 +0000
commit41ca46cf8ca65dbd98df7e038fc12a272f0c9e2a (patch)
treee222eececda605353414b18921de63a35d8acd1c /helix-term/src/ui
parent46ecc102ba6d6c2e6e707b551e24faa240752c87 (diff)
Initialize diagnostics when opening a document (#8873)
Diffstat (limited to 'helix-term/src/ui')
-rw-r--r--helix-term/src/ui/editor.rs4
-rw-r--r--helix-term/src/ui/picker.rs13
-rw-r--r--helix-term/src/ui/statusline.rs3
3 files changed, 14 insertions, 6 deletions
diff --git a/helix-term/src/ui/editor.rs b/helix-term/src/ui/editor.rs
index ff267e42..24fcdb01 100644
--- a/helix-term/src/ui/editor.rs
+++ b/helix-term/src/ui/editor.rs
@@ -386,7 +386,7 @@ impl EditorView {
let mut warning_vec = Vec::new();
let mut error_vec = Vec::new();
- for diagnostic in doc.shown_diagnostics() {
+ for diagnostic in doc.diagnostics() {
// Separate diagnostics into different Vecs by severity.
let (vec, scope) = match diagnostic.severity {
Some(Severity::Info) => (&mut info_vec, info),
@@ -684,7 +684,7 @@ impl EditorView {
.primary()
.cursor(doc.text().slice(..));
- let diagnostics = doc.shown_diagnostics().filter(|diagnostic| {
+ let diagnostics = doc.diagnostics().iter().filter(|diagnostic| {
diagnostic.range.start <= cursor && diagnostic.range.end >= cursor
});
diff --git a/helix-term/src/ui/picker.rs b/helix-term/src/ui/picker.rs
index 9ba45335..08a367ba 100644
--- a/helix-term/src/ui/picker.rs
+++ b/helix-term/src/ui/picker.rs
@@ -480,8 +480,7 @@ impl<T: Item + 'static> Picker<T> {
.find::<Overlay<DynamicPicker<T>>>()
.map(|overlay| &mut overlay.content.file_picker),
};
- let Some(picker) = picker
- else {
+ let Some(picker) = picker else {
log::info!("picker closed before syntax highlighting finished");
return;
};
@@ -489,7 +488,15 @@ impl<T: Item + 'static> Picker<T> {
let doc = match current_file {
PathOrId::Id(doc_id) => doc_mut!(editor, &doc_id),
PathOrId::Path(path) => match picker.preview_cache.get_mut(&path) {
- Some(CachedPreview::Document(ref mut doc)) => doc,
+ Some(CachedPreview::Document(ref mut doc)) => {
+ let diagnostics = Editor::doc_diagnostics(
+ &editor.language_servers,
+ &editor.diagnostics,
+ doc,
+ );
+ doc.replace_diagnostics(diagnostics, &[], None);
+ doc
+ }
_ => return,
},
};
diff --git a/helix-term/src/ui/statusline.rs b/helix-term/src/ui/statusline.rs
index 52dd49f9..9871828e 100644
--- a/helix-term/src/ui/statusline.rs
+++ b/helix-term/src/ui/statusline.rs
@@ -227,7 +227,8 @@ where
{
let (warnings, errors) = context
.doc
- .shown_diagnostics()
+ .diagnostics()
+ .iter()
.fold((0, 0), |mut counts, diag| {
use helix_core::diagnostic::Severity;
match diag.severity {