Implement BlockSnapshot::line_len, use it in DisplayMap
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
This commit is contained in:
parent
00b5cc472e
commit
707ffe8ff3
4 changed files with 41 additions and 15 deletions
|
@ -14,8 +14,7 @@ use sum_tree::Bias;
|
|||
use tab_map::TabMap;
|
||||
use wrap_map::WrapMap;
|
||||
|
||||
pub use block_map::{BlockDisposition, BlockProperties, Chunks};
|
||||
pub use wrap_map::BufferRows;
|
||||
pub use block_map::{BlockDisposition, BlockProperties, BufferRows, Chunks};
|
||||
|
||||
pub trait ToDisplayPoint {
|
||||
fn to_display_point(&self, map: &DisplayMapSnapshot) -> DisplayPoint;
|
||||
|
@ -174,7 +173,7 @@ impl DisplayMapSnapshot {
|
|||
}
|
||||
|
||||
pub fn buffer_rows(&self, start_row: u32) -> BufferRows {
|
||||
self.wraps_snapshot.buffer_rows(start_row)
|
||||
self.blocks_snapshot.buffer_rows(start_row)
|
||||
}
|
||||
|
||||
pub fn buffer_row_count(&self) -> u32 {
|
||||
|
@ -304,7 +303,11 @@ impl DisplayMapSnapshot {
|
|||
}
|
||||
|
||||
pub fn soft_wrap_indent(&self, display_row: u32) -> Option<u32> {
|
||||
self.wraps_snapshot.soft_wrap_indent(display_row)
|
||||
let wrap_row = self
|
||||
.blocks_snapshot
|
||||
.to_wrap_point(BlockPoint::new(display_row, 0))
|
||||
.row();
|
||||
self.wraps_snapshot.soft_wrap_indent(wrap_row)
|
||||
}
|
||||
|
||||
pub fn text(&self) -> String {
|
||||
|
@ -339,7 +342,7 @@ impl DisplayMapSnapshot {
|
|||
}
|
||||
|
||||
pub fn line_len(&self, row: u32) -> u32 {
|
||||
self.wraps_snapshot.line_len(row)
|
||||
self.blocks_snapshot.line_len(row)
|
||||
}
|
||||
|
||||
pub fn longest_row(&self) -> u32 {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue