aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBlaž Hrastnik2021-11-06 09:58:40 +0000
committerBlaž Hrastnik2021-11-06 09:58:58 +0000
commite80708eba7e9959fa720e2563231bba542570295 (patch)
treec5c88732d81a4ca0859a96197a319716beb1dcac
parent0f4cd73000140cd9872f291ddb1473f96cbc7364 (diff)
Make sure document diagnostics are sorted
-rw-r--r--helix-core/src/diagnostic.rs2
-rw-r--r--helix-view/src/document.rs3
2 files changed, 4 insertions, 1 deletions
diff --git a/helix-core/src/diagnostic.rs b/helix-core/src/diagnostic.rs
index ab47e075..ad1ba16a 100644
--- a/helix-core/src/diagnostic.rs
+++ b/helix-core/src/diagnostic.rs
@@ -10,7 +10,7 @@ pub enum Severity {
}
/// A range of `char`s within the text.
-#[derive(Debug)]
+#[derive(Debug, Clone, Copy, PartialOrd, Ord, PartialEq, Eq)]
pub struct Range {
pub start: usize,
pub end: usize,
diff --git a/helix-view/src/document.rs b/helix-view/src/document.rs
index 0d86143b..ce5df8ee 100644
--- a/helix-view/src/document.rs
+++ b/helix-view/src/document.rs
@@ -918,6 +918,9 @@ impl Document {
pub fn set_diagnostics(&mut self, diagnostics: Vec<Diagnostic>) {
self.diagnostics = diagnostics;
+ // sort by range
+ self.diagnostics
+ .sort_unstable_by_key(|diagnostic| diagnostic.range);
}
}