From b0afc8067846837a63686c8ef77b394fe2bb5634 Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Fri, 19 Nov 2021 16:30:26 +0100 Subject: [PATCH] Ignore diagnostics with empty ranges Co-Authored-By: Nathan Sobo --- crates/editor/src/lib.rs | 1 + crates/workspace/src/items.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/crates/editor/src/lib.rs b/crates/editor/src/lib.rs index a3dba342c95a146a908bab58cd10e34b6de015d7..18a356d7cbbaa1b32d4830307b07cead05524a8d 100644 --- a/crates/editor/src/lib.rs +++ b/crates/editor/src/lib.rs @@ -2242,6 +2242,7 @@ impl Editor { .diagnostics_in_range::<_, usize>(search_start..buffer.len()) .find_map(|(range, diagnostic)| { if diagnostic.is_primary + && !range.is_empty() && Some(range.end) != active_primary_range.as_ref().map(|r| *r.end()) { Some((range, diagnostic.group_id)) diff --git a/crates/workspace/src/items.rs b/crates/workspace/src/items.rs index 60e2e9d767a07ce2a25e5f142b7f94fccf3be6ac..58358cdf4722e1a913dfede81b61e419e425dcdb 100644 --- a/crates/workspace/src/items.rs +++ b/crates/workspace/src/items.rs @@ -263,6 +263,7 @@ impl DiagnosticMessage { .buffer() .read(cx) .diagnostics_in_range::(cursor_position..cursor_position) + .filter(|(range, _)| !range.is_empty()) .min_by_key(|(range, diagnostic)| (diagnostic.severity, range.len())) .map(|(_, diagnostic)| diagnostic.clone()); if new_diagnostic != self.diagnostic {