Ignore diagnostics with empty ranges

Antonio Scandurra and Nathan Sobo created

Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Change summary

crates/editor/src/lib.rs      | 1 +
crates/workspace/src/items.rs | 1 +
2 files changed, 2 insertions(+)

Detailed changes

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))

crates/workspace/src/items.rs 🔗

@@ -263,6 +263,7 @@ impl DiagnosticMessage {
             .buffer()
             .read(cx)
             .diagnostics_in_range::<usize, usize>(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 {