Fix test

Conrad Irwin and Thomas Heartman created

Co-authored-By:  Thomas Heartman <thomasheartman+github@gmail.com>

Change summary

crates/editor/src/display_map/wrap_map.rs     |  2 
crates/editor/src/element.rs                  | 22 ++++++++++++++------
crates/multi_buffer/src/multi_buffer.rs       |  8 +++---
crates/multi_buffer/src/multi_buffer_tests.rs |  4 +-
4 files changed, 22 insertions(+), 14 deletions(-)

Detailed changes

crates/editor/src/display_map/wrap_map.rs 🔗

@@ -1024,7 +1024,7 @@ impl Iterator for WrapRows<'_> {
                 multibuffer_row: None,
                 diff_status,
                 expand_info: None,
-                wrapped: buffer_row.buffer_row,
+                wrapped_buffer_row: buffer_row.buffer_row,
             }
         } else {
             buffer_row

crates/editor/src/element.rs 🔗

@@ -3170,7 +3170,7 @@ impl EditorElement {
         let mut i = head_idx + 1;
         let should_count_line = |row_info: &RowInfo| {
             if use_display_offset {
-                row_info.buffer_row.is_some() || row_info.wrapped.is_some()
+                row_info.buffer_row.is_some() || row_info.wrapped_buffer_row.is_some()
             } else {
                 row_info.buffer_row.is_some()
             }
@@ -3267,7 +3267,7 @@ impl EditorElement {
             let display_row = DisplayRow(rows.start.0 + ix as u32);
             line_number.clear();
             let non_relative_number = if use_relative_for_wrapped_lines {
-                row_info.buffer_row.or(row_info.wrapped)? + 1
+                row_info.buffer_row.or(row_info.wrapped_buffer_row)? + 1
             } else {
                 row_info.buffer_row? + 1
             };
@@ -3333,7 +3333,7 @@ impl EditorElement {
             line_numbers
                 .entry(buffer_row)
                 .or_insert_with(|| LineNumberLayout {
-                    segments: Vec::new(),
+                    segments: Default::default(),
                 })
                 .segments
                 .push(segment);
@@ -9825,13 +9825,15 @@ impl EditorLayout {
     }
 }
 
+#[derive(Debug)]
 struct LineNumberSegment {
     shaped_line: ShapedLine,
     hitbox: Option<Hitbox>,
 }
 
+#[derive(Debug)]
 struct LineNumberLayout {
-    segments: Vec<LineNumberSegment>,
+    segments: SmallVec<[LineNumberSegment; 1]>,
 }
 
 struct ColoredRange<T> {
@@ -10996,7 +10998,7 @@ mod tests {
                 )
             })
             .unwrap();
-        assert_eq!(layouts.len(), 6);
+        assert_eq!(layouts.len(), 3);
 
         let relative_rows = window
             .update(cx, |editor, window, cx| {
@@ -11009,7 +11011,7 @@ mod tests {
                 )
             })
             .unwrap();
-        dbg!(&relative_rows);
+
         assert_eq!(relative_rows[&DisplayRow(0)], 3);
         assert_eq!(relative_rows[&DisplayRow(1)], 2);
         assert_eq!(relative_rows[&DisplayRow(2)], 1);
@@ -11131,7 +11133,13 @@ mod tests {
             state
                 .line_numbers
                 .get(&MultiBufferRow(0))
-                .map(|line_number| line_number.shaped_line.text.as_ref()),
+                .map(|line_number| line_number
+                    .segments
+                    .first()
+                    .unwrap()
+                    .shaped_line
+                    .text
+                    .as_ref()),
             Some("1")
         );
     }

crates/multi_buffer/src/multi_buffer.rs 🔗

@@ -395,7 +395,7 @@ pub struct RowInfo {
     pub multibuffer_row: Option<MultiBufferRow>,
     pub diff_status: Option<buffer_diff::DiffHunkStatus>,
     pub expand_info: Option<ExpandInfo>,
-    pub wrapped: Option<u32>,
+    pub wrapped_buffer_row: Option<u32>,
 }
 
 /// A slice into a [`Buffer`] that is being edited in a [`MultiBuffer`].
@@ -7498,7 +7498,7 @@ impl Iterator for MultiBufferRows<'_> {
                 multibuffer_row: Some(MultiBufferRow(0)),
                 diff_status: None,
                 expand_info: None,
-                wrapped: None,
+                wrapped_buffer_row: None,
             });
         }
 
@@ -7556,7 +7556,7 @@ impl Iterator for MultiBufferRows<'_> {
                     buffer_row: Some(last_row),
                     multibuffer_row: Some(multibuffer_row),
                     diff_status: None,
-                    wrapped: None,
+                    wrapped_buffer_row: None,
                     expand_info,
                 });
             } else {
@@ -7601,7 +7601,7 @@ impl Iterator for MultiBufferRows<'_> {
                 .diff_hunk_status
                 .filter(|_| self.point < region.range.end),
             expand_info,
-            wrapped: None,
+            wrapped_buffer_row: None,
         });
         self.point += Point::new(1, 0);
         result

crates/multi_buffer/src/multi_buffer_tests.rs 🔗

@@ -31,7 +31,7 @@ fn test_empty_singleton(cx: &mut App) {
             multibuffer_row: Some(MultiBufferRow(0)),
             diff_status: None,
             expand_info: None,
-            wrapped: None,
+            wrapped_buffer_row: None,
         }]
     );
 }
@@ -2432,7 +2432,7 @@ impl ReferenceMultibuffer {
                             buffer_id: region.buffer_id,
                             diff_status: region.status,
                             buffer_row,
-                            wrapped: None,
+                            wrapped_buffer_row: None,
 
                             multibuffer_row: Some(MultiBufferRow(
                                 text[..ix].matches('\n').count() as u32