diff --git a/crates/editor/src/editor.rs b/crates/editor/src/editor.rs index 11d11fc457..a217cda0f1 100644 --- a/crates/editor/src/editor.rs +++ b/crates/editor/src/editor.rs @@ -9109,15 +9109,18 @@ impl Editor { }; self.buffer.update(cx, |buffer, cx| { - buffer.expand_excerpts( - selections - .iter() - .map(|selection| selection.head().excerpt_id) - .dedup(), - lines, - direction, - cx, - ) + let snapshot = buffer.snapshot(cx); + let mut excerpt_ids = selections + .iter() + .flat_map(|selection| { + snapshot + .excerpts_for_range(selection.range()) + .map(|excerpt| excerpt.id()) + }) + .collect::>(); + excerpt_ids.sort(); + excerpt_ids.dedup(); + buffer.expand_excerpts(excerpt_ids, lines, direction, cx) }) }