From 2930ea8fb0abe1ba875ef4fcc23af4e5632eb7be Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Wed, 15 Dec 2021 12:12:39 -0800 Subject: [PATCH] Fix handling of excerpts surrounded by edits in MultiBuffer::edit --- crates/editor/src/multi_buffer.rs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/crates/editor/src/multi_buffer.rs b/crates/editor/src/multi_buffer.rs index 8221360ff45474d6e6b0af9dbc92422897756c9c..b1d72e9f6f81b561e9ab91bb75346f45d4e1f149 100644 --- a/crates/editor/src/multi_buffer.rs +++ b/crates/editor/src/multi_buffer.rs @@ -352,13 +352,10 @@ impl MultiBuffer { if excerpt.id == end_excerpt.id { break; } - - let excerpt_range = start_excerpt.range.end.to_offset(&start_excerpt.buffer) - ..start_excerpt.range.end.to_offset(&start_excerpt.buffer); buffer_edits .entry(excerpt.buffer_id) .or_insert(Vec::new()) - .push((excerpt_range, false)); + .push((excerpt.range.to_offset(&excerpt.buffer), false)); cursor.next(&()); } } @@ -386,7 +383,7 @@ impl MultiBuffer { insertions.push( buffer.anchor_before(range.start)..buffer.anchor_before(range.end), ); - } else { + } else if !range.is_empty() { deletions.push( buffer.anchor_before(range.start)..buffer.anchor_before(range.end), );