diff --git a/zed/src/editor/buffer_element.rs b/zed/src/editor/buffer_element.rs index d3f002239f..b38d6eed29 100644 --- a/zed/src/editor/buffer_element.rs +++ b/zed/src/editor/buffer_element.rs @@ -520,7 +520,7 @@ impl LayoutState { layout_cache: &TextLayoutCache, app: &AppContext, ) -> f32 { - let row = view.rightmost_point(app).row(); + let row = view.rightmost_row(app); let longest_line_width = view .layout_line(row, font_cache, layout_cache, app) .unwrap() diff --git a/zed/src/editor/buffer_view.rs b/zed/src/editor/buffer_view.rs index 61a5afed54..52fc45f87b 100644 --- a/zed/src/editor/buffer_view.rs +++ b/zed/src/editor/buffer_view.rs @@ -2015,8 +2015,8 @@ impl BufferView { self.display_map.line_len(display_row, ctx) } - pub fn rightmost_point(&self, ctx: &AppContext) -> DisplayPoint { - self.display_map.rightmost_point(ctx) + pub fn rightmost_row(&self, ctx: &AppContext) -> u32 { + self.display_map.rightmost_row(ctx) } pub fn max_point(&self, ctx: &AppContext) -> DisplayPoint { diff --git a/zed/src/editor/display_map/fold_map.rs b/zed/src/editor/display_map/fold_map.rs index 05b92da04f..121909cba7 100644 --- a/zed/src/editor/display_map/fold_map.rs +++ b/zed/src/editor/display_map/fold_map.rs @@ -67,8 +67,8 @@ impl FoldMap { DisplayPoint(self.sync(ctx).summary().display.lines) } - pub fn rightmost_point(&self, ctx: &AppContext) -> DisplayPoint { - DisplayPoint(self.sync(ctx).summary().display.rightmost_point) + pub fn rightmost_row(&self, ctx: &AppContext) -> u32 { + self.sync(ctx).summary().display.rightmost_point.row } pub fn folds_in_range<'a, T>( @@ -989,7 +989,13 @@ mod tests { assert_eq!(line_len, line.len() as u32); } - let rightmost_point = map.rightmost_point(app.as_ref()); + let rightmost_row = map.rightmost_row(app.as_ref()); + let rightmost_char_column = expected_text + .split('\n') + .nth(rightmost_row as usize) + .unwrap() + .chars() + .count(); let mut display_point = DisplayPoint::new(0, 0); let mut display_offset = DisplayOffset(0); let mut char_column = 0; @@ -1024,10 +1030,13 @@ mod tests { char_column += 1; } display_offset.0 += c.len_utf8(); - if char_column > rightmost_point.column() { + if char_column > rightmost_char_column { panic!( - "invalid rightmost point {:?}, found point {:?} (char column: {})", - rightmost_point, display_point, char_column + "invalid rightmost row {:?} (chars {}), found row {:?} (chars: {})", + rightmost_row, + rightmost_char_column, + display_point.row(), + char_column ); } } diff --git a/zed/src/editor/display_map/mod.rs b/zed/src/editor/display_map/mod.rs index df81e2505a..81c27f349f 100644 --- a/zed/src/editor/display_map/mod.rs +++ b/zed/src/editor/display_map/mod.rs @@ -109,8 +109,8 @@ impl DisplayMap { self.fold_map.max_point(ctx).expand_tabs(self, ctx) } - pub fn rightmost_point(&self, ctx: &AppContext) -> DisplayPoint { - self.fold_map.rightmost_point(ctx) + pub fn rightmost_row(&self, ctx: &AppContext) -> u32 { + self.fold_map.rightmost_row(ctx) } pub fn anchor_before(&self, point: DisplayPoint, bias: Bias, app: &AppContext) -> Anchor {