Added DisplayRow abstraction to make folding code more readable
This commit is contained in:
parent
637e8ada42
commit
da78abd99f
3 changed files with 95 additions and 38 deletions
|
@ -5715,7 +5715,7 @@ impl Editor {
|
|||
let buffer_start_row = range.start.to_point(&display_map).row;
|
||||
|
||||
for row in (0..=range.end.row()).rev() {
|
||||
if let Some(fold_range) = display_map.foldable_range_for_line(row) {
|
||||
if let Some(fold_range) = display_map.foldable_range(DisplayRow::new(row)) {
|
||||
if fold_range.end.row >= buffer_start_row {
|
||||
fold_ranges.push(fold_range);
|
||||
if row <= range.start.row() {
|
||||
|
@ -5734,7 +5734,7 @@ impl Editor {
|
|||
|
||||
let display_map = self.display_map.update(cx, |map, cx| map.snapshot(cx));
|
||||
|
||||
if let Some(fold_range) = display_map.foldable_range_for_line(display_row.0) {
|
||||
if let Some(fold_range) = display_map.foldable_range(display_row) {
|
||||
self.fold_ranges(std::iter::once(fold_range), true, cx);
|
||||
}
|
||||
}
|
||||
|
@ -5762,7 +5762,7 @@ impl Editor {
|
|||
|
||||
let display_range = fold_at
|
||||
.display_row
|
||||
.to_span(&display_map)
|
||||
.to_line_span(&display_map)
|
||||
.map_endpoints(|endpoint| endpoint.to_point(&display_map));
|
||||
|
||||
self.unfold_ranges(std::iter::once(display_range), true, true, cx)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue