Don't use TabMap::expand_tabs in line_indent_for_buffer_row

This commit is contained in:
Max Brunsfeld 2023-03-28 17:37:57 -07:00
parent 08e93e9321
commit 5c1f82ae3d
3 changed files with 13 additions and 16 deletions

View file

@ -634,24 +634,21 @@ impl DisplaySnapshot {
.buffer_snapshot
.buffer_line_for_row(buffer_row)
.unwrap();
let chars = buffer.chars_at(Point::new(range.start.row, 0));
let mut indent_size = 0;
let mut is_blank = false;
let indent_size = self.tab_snapshot.expand_tabs(
chars.take_while(|c| {
if *c == ' ' || *c == '\t' {
true
} else {
if *c == '\n' {
is_blank = true;
}
false
for c in buffer.chars_at(Point::new(range.start.row, 0)) {
if c == ' ' || c == '\t' {
indent_size += 1;
} else {
if c == '\n' {
is_blank = true;
}
}),
buffer.line_len(buffer_row), // Never collapse
);
break;
}
}
(indent_size as u32, is_blank)
(indent_size, is_blank)
}
pub fn line_len(&self, row: u32) -> u32 {

View file

@ -290,7 +290,7 @@ impl TabSnapshot {
fold_point.to_buffer_point(&self.suggestion_snapshot.fold_snapshot)
}
pub fn expand_tabs(&self, chars: impl Iterator<Item = char>, column: u32) -> u32 {
fn expand_tabs(&self, chars: impl Iterator<Item = char>, column: u32) -> u32 {
let tab_size = self.tab_size.get();
let mut expanded_chars = 0;

View file

@ -630,7 +630,7 @@ fn test_cancel(cx: &mut gpui::MutableAppContext) {
}
#[gpui::test]
fn test_fold(cx: &mut gpui::MutableAppContext) {
fn test_fold_action(cx: &mut gpui::MutableAppContext) {
cx.set_global(Settings::test(cx));
let buffer = MultiBuffer::build_simple(
&"