diff --git a/crates/multi_buffer/src/multi_buffer.rs b/crates/multi_buffer/src/multi_buffer.rs index c2f2e84e10..e7ddd27a93 100644 --- a/crates/multi_buffer/src/multi_buffer.rs +++ b/crates/multi_buffer/src/multi_buffer.rs @@ -1719,9 +1719,7 @@ impl MultiBuffer { (None, Some(_)) => { let existing_id = existing_iter.next().unwrap(); let locator = snapshot.excerpt_locator_for_id(existing_id); - let Some(existing_excerpt) = excerpts_cursor.item() else { - break; - }; + let existing_excerpt = excerpts_cursor.item().unwrap(); excerpts_cursor.seek_forward(&Some(locator), Bias::Left, &()); let existing_end = existing_excerpt .range @@ -1993,6 +1991,8 @@ impl MultiBuffer { self.sync(cx); let ids = self.excerpt_ids(); self.buffers.borrow_mut().clear(); + self.excerpts_by_path.clear(); + self.paths_by_excerpt.clear(); let mut snapshot = self.snapshot.borrow_mut(); let start = ExcerptOffset::new(0); let prev_len = ExcerptOffset::new(snapshot.excerpts.summary().text.len); @@ -2001,6 +2001,7 @@ impl MultiBuffer { snapshot.is_dirty = false; snapshot.has_deleted_file = false; snapshot.has_conflict = false; + snapshot.replaced_excerpts.clear(); self.sync_diff_transforms( &mut snapshot,