aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--helix-term/src/application.rs12
1 files changed, 4 insertions, 8 deletions
diff --git a/helix-term/src/application.rs b/helix-term/src/application.rs
index df14f5e3..d3899075 100644
--- a/helix-term/src/application.rs
+++ b/helix-term/src/application.rs
@@ -572,15 +572,11 @@ impl Application {
doc.set_diagnostics(diagnostics);
}
- // Sort diagnostics first by URL and then by severity.
+ // Sort diagnostics first by severity and then by line numbers.
// Note: The `lsp::DiagnosticSeverity` enum is already defined in decreasing order
- params.diagnostics.sort_unstable_by(|a, b| {
- if let (Some(a), Some(b)) = (a.severity, b.severity) {
- a.partial_cmp(&b).unwrap()
- } else {
- std::cmp::Ordering::Equal
- }
- });
+ params
+ .diagnostics
+ .sort_unstable_by_key(|d| (d.severity, d.range.start));
// Insert the original lsp::Diagnostics here because we may have no open document
// for diagnosic message and so we can't calculate the exact position.