From 9698b515247144b9020fdedb815f61bb54d39924 Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Tue, 20 Jun 2023 10:02:24 +0200 Subject: [PATCH] Prevent insertion of empty inlays into `InlayMap` --- crates/editor/src/display_map/inlay_map.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/crates/editor/src/display_map/inlay_map.rs b/crates/editor/src/display_map/inlay_map.rs index 43f86287d8080c519cf377c304d3d96478066d70..acd26a28f7e5cfb1ac6c63902ff77c033f499a9e 100644 --- a/crates/editor/src/display_map/inlay_map.rs +++ b/crates/editor/src/display_map/inlay_map.rs @@ -474,6 +474,12 @@ impl InlayMap { position: properties.position, text: properties.text.into(), }; + + // Avoid inserting empty inlays. + if inlay.text.is_empty() { + continue; + } + self.inlays_by_id.insert(inlay.id, inlay.clone()); match self .inlays @@ -521,7 +527,11 @@ impl InlayMap { if self.inlays.is_empty() || rng.gen() { let position = snapshot.buffer.random_byte_range(0, rng).start; let bias = if rng.gen() { Bias::Left } else { Bias::Right }; - let len = rng.gen_range(1..=5); + let len = if rng.gen_bool(0.01) { + 0 + } else { + rng.gen_range(1..=5) + }; let text = util::RandomCharIter::new(&mut *rng) .filter(|ch| *ch != '\r') .take(len)