diff --git a/crates/editor/src/display_map/wrap_map.rs b/crates/editor/src/display_map/wrap_map.rs index 6d9704b5f93c0ce48d413babdd59997b02f093e6..c33bf141b94866744c607e3410f051ae8b6e1fce 100644 --- a/crates/editor/src/display_map/wrap_map.rs +++ b/crates/editor/src/display_map/wrap_map.rs @@ -622,9 +622,10 @@ impl WrapSnapshot { if transforms.item().is_some_and(|t| t.is_isomorphic()) { input_start.0 += output_start.0 - transforms.start().0.0; } - let input_end = self - .to_tab_point(output_end) - .min(self.tab_snapshot.max_point()); + let input_end = self.to_tab_point(output_end); + let max_point = self.tab_snapshot.max_point(); + let input_start = input_start.min(max_point); + let input_end = input_end.min(max_point); WrapChunks { input_chunks: self.tab_snapshot.chunks( input_start..input_end, @@ -921,10 +922,10 @@ impl WrapChunks<'_> { if self.transforms.item().is_some_and(|t| t.is_isomorphic()) { input_start.0 += output_start.0 - self.transforms.start().0.0; } - let input_end = self - .snapshot - .to_tab_point(output_end) - .min(self.snapshot.tab_snapshot.max_point()); + let input_end = self.snapshot.to_tab_point(output_end); + let max_point = self.snapshot.tab_snapshot.max_point(); + let input_start = input_start.min(max_point); + let input_end = input_end.min(max_point); self.input_chunks.seek(input_start..input_end); self.input_chunk = Chunk::default(); self.output_position = output_start;