diff --git a/crates/multi_buffer/src/multi_buffer.rs b/crates/multi_buffer/src/multi_buffer.rs index eedced9c2aa63b0e034381d268b0a3de3ff46c35..6c5c1739b3a35c1906128742bf63c2f92626512a 100644 --- a/crates/multi_buffer/src/multi_buffer.rs +++ b/crates/multi_buffer/src/multi_buffer.rs @@ -195,7 +195,7 @@ struct Excerpt { /// /// Contains methods for getting the [`Buffer`] of the excerpt, /// as well as mapping offsets to/from buffer and multibuffer coordinates. -#[derive(Copy, Clone)] +#[derive(Clone)] pub struct MultiBufferExcerpt<'a> { excerpt: &'a Excerpt, excerpt_offset: usize, @@ -2967,7 +2967,16 @@ impl MultiBufferSnapshot { excerpt .buffer() .enclosing_bracket_ranges(excerpt.map_range_to_buffer(range)) - .filter(move |(open, close)| excerpt.contains_buffer_range(open.start..close.end)), + .filter_map(move |(open, close)| { + if excerpt.contains_buffer_range(open.start..close.end) { + Some(( + excerpt.map_range_from_buffer(open), + excerpt.map_range_from_buffer(close), + )) + } else { + None + } + }), ) }