WIP: Insert blocks in BlockMap for MultiBuffer headers

This commit is contained in:
Antonio Scandurra 2021-12-21 17:38:03 +01:00
parent 8534a9cc41
commit 91c786a8db
4 changed files with 60 additions and 77 deletions

View file

@ -3,9 +3,7 @@ mod fold_map;
mod tab_map;
mod wrap_map;
use crate::{
multi_buffer::RenderHeaderFn, Anchor, MultiBuffer, MultiBufferSnapshot, ToOffset, ToPoint,
};
use crate::{Anchor, MultiBuffer, MultiBufferSnapshot, ToOffset, ToPoint};
use block_map::{BlockMap, BlockPoint};
use fold_map::{FoldMap, ToFoldPoint as _};
use gpui::{fonts::FontId, Entity, ModelContext, ModelHandle};
@ -344,22 +342,6 @@ impl DisplaySnapshot {
self.blocks_snapshot.blocks_in_range(rows)
}
pub fn excerpt_headers_in_range<'a>(
&'a self,
rows: Range<u32>,
) -> impl 'a + Iterator<Item = (Range<u32>, RenderHeaderFn)> {
todo!();
let start_row = DisplayPoint::new(rows.start, 0).to_point(self).row;
let end_row = DisplayPoint::new(rows.end, 0).to_point(self).row;
self.buffer_snapshot
.excerpt_headers_in_range(start_row..end_row)
.map(move |(row, header_height, render)| {
let start_row = Point::new(rows.start, 0).to_display_point(self).row();
let end_row = Point::new(rows.end, 0).to_display_point(self).row();
(start_row..end_row, render)
})
}
pub fn intersects_fold<T: ToOffset>(&self, offset: T) -> bool {
self.folds_snapshot.intersects_fold(offset)
}