Remove remaining I/O nomenclature for DisplayMap coordinates

This commit is contained in:
Antonio Scandurra
2021-07-26 11:19:36 +02:00
parent 58054c605b
commit 0004dc6921
3 changed files with 27 additions and 38 deletions
+7 -7
View File
@@ -162,7 +162,7 @@ impl DisplayMapSnapshot {
pub fn is_line_folded(&self, display_row: u32) -> bool {
let wrap_point = DisplayPoint::new(display_row, 0).0;
let row = self.wraps_snapshot.to_input_point(wrap_point).row();
let row = self.wraps_snapshot.to_tab_point(wrap_point).row();
self.folds_snapshot.is_line_folded(row)
}
@@ -245,14 +245,14 @@ impl DisplayPoint {
}
pub fn to_buffer_point(self, map: &DisplayMapSnapshot, bias: Bias) -> Point {
let unwrapped_point = map.wraps_snapshot.to_input_point(self.0);
let unexpanded_point = map.tabs_snapshot.to_input_point(unwrapped_point, bias).0;
let unwrapped_point = map.wraps_snapshot.to_tab_point(self.0);
let unexpanded_point = map.tabs_snapshot.to_fold_point(unwrapped_point, bias).0;
unexpanded_point.to_buffer_point(&map.folds_snapshot)
}
pub fn to_buffer_offset(self, map: &DisplayMapSnapshot, bias: Bias) -> usize {
let unwrapped_point = map.wraps_snapshot.to_input_point(self.0);
let unexpanded_point = map.tabs_snapshot.to_input_point(unwrapped_point, bias).0;
let unwrapped_point = map.wraps_snapshot.to_tab_point(self.0);
let unexpanded_point = map.tabs_snapshot.to_fold_point(unwrapped_point, bias).0;
unexpanded_point.to_buffer_offset(&map.folds_snapshot)
}
}
@@ -260,8 +260,8 @@ impl DisplayPoint {
impl Point {
pub fn to_display_point(self, map: &DisplayMapSnapshot) -> DisplayPoint {
let fold_point = self.to_fold_point(&map.folds_snapshot);
let tab_point = map.tabs_snapshot.to_output_point(fold_point);
let wrap_point = map.wraps_snapshot.to_output_point(tab_point);
let tab_point = map.tabs_snapshot.to_tab_point(fold_point);
let wrap_point = map.wraps_snapshot.to_wrap_point(tab_point);
DisplayPoint(wrap_point)
}
}
+15 -23
View File
@@ -1,9 +1,6 @@
use parking_lot::Mutex;
use super::fold_map::{
self, Chunks as InputChunks, FoldEdit, FoldPoint, HighlightedChunks as HighlightedFoldChunks,
Snapshot as FoldSnapshot,
};
use super::fold_map::{self, FoldEdit, FoldPoint, Snapshot as FoldSnapshot};
use crate::{editor::rope, settings::StyleId, util::Bias};
use std::{cmp, mem, ops::Range};
@@ -86,10 +83,8 @@ impl TabMap {
.end
.to_point(&new_snapshot.fold_snapshot);
tab_edits.push(Edit {
old_lines: old_snapshot.to_output_point(old_start)
..old_snapshot.to_output_point(old_end),
new_lines: new_snapshot.to_output_point(new_start)
..new_snapshot.to_output_point(new_end),
old_lines: old_snapshot.to_tab_point(old_start)..old_snapshot.to_tab_point(old_end),
new_lines: new_snapshot.to_tab_point(new_start)..new_snapshot.to_tab_point(new_end),
});
}
@@ -110,8 +105,8 @@ impl Snapshot {
}
pub fn text_summary_for_range(&self, range: Range<TabPoint>) -> TextSummary {
let input_start = self.to_input_point(range.start, Bias::Left).0;
let input_end = self.to_input_point(range.end, Bias::Right).0;
let input_start = self.to_fold_point(range.start, Bias::Left).0;
let input_end = self.to_fold_point(range.end, Bias::Right).0;
let input_summary = self
.fold_snapshot
.text_summary_for_range(input_start..input_end);
@@ -155,7 +150,7 @@ impl Snapshot {
}
pub fn chunks_at(&self, point: TabPoint) -> Chunks {
let (point, expanded_char_column, to_next_stop) = self.to_input_point(point, Bias::Left);
let (point, expanded_char_column, to_next_stop) = self.to_fold_point(point, Bias::Left);
let fold_chunks = self
.fold_snapshot
.chunks_at(point.to_offset(&self.fold_snapshot));
@@ -170,10 +165,10 @@ impl Snapshot {
pub fn highlighted_chunks(&mut self, range: Range<TabPoint>) -> HighlightedChunks {
let (input_start, expanded_char_column, to_next_stop) =
self.to_input_point(range.start, Bias::Left);
self.to_fold_point(range.start, Bias::Left);
let input_start = input_start.to_offset(&self.fold_snapshot);
let input_end = self
.to_input_point(range.end, Bias::Right)
.to_fold_point(range.end, Bias::Right)
.0
.to_offset(&self.fold_snapshot);
HighlightedChunks {
@@ -198,23 +193,23 @@ impl Snapshot {
}
pub fn max_point(&self) -> TabPoint {
self.to_output_point(self.fold_snapshot.max_point())
self.to_tab_point(self.fold_snapshot.max_point())
}
pub fn clip_point(&self, point: TabPoint, bias: Bias) -> TabPoint {
self.to_output_point(
self.to_tab_point(
self.fold_snapshot
.clip_point(self.to_input_point(point, bias).0, bias),
.clip_point(self.to_fold_point(point, bias).0, bias),
)
}
pub fn to_output_point(&self, input: FoldPoint) -> TabPoint {
pub fn to_tab_point(&self, input: FoldPoint) -> TabPoint {
let chars = self.fold_snapshot.chars_at(FoldPoint::new(input.row(), 0));
let expanded = Self::expand_tabs(chars, input.column() as usize, self.tab_size);
TabPoint::new(input.row(), expanded as u32)
}
pub fn to_input_point(&self, output: TabPoint, bias: Bias) -> (FoldPoint, usize, usize) {
pub fn to_fold_point(&self, output: TabPoint, bias: Bias) -> (FoldPoint, usize, usize) {
let chars = self.fold_snapshot.chars_at(FoldPoint::new(output.row(), 0));
let expanded = output.column() as usize;
let (collapsed, expanded_char_column, to_next_stop) =
@@ -288,9 +283,6 @@ impl Snapshot {
}
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub struct OutputOffset(pub usize);
#[derive(Copy, Clone, Debug, Default, Eq, Ord, PartialOrd, PartialEq)]
pub struct TabPoint(pub super::Point);
@@ -377,7 +369,7 @@ impl<'a> std::ops::AddAssign<&'a Self> for TextSummary {
const SPACES: &'static str = " ";
pub struct Chunks<'a> {
fold_chunks: InputChunks<'a>,
fold_chunks: fold_map::Chunks<'a>,
chunk: &'a str,
column: usize,
tab_size: usize,
@@ -426,7 +418,7 @@ impl<'a> Iterator for Chunks<'a> {
}
pub struct HighlightedChunks<'a> {
fold_chunks: HighlightedFoldChunks<'a>,
fold_chunks: fold_map::HighlightedChunks<'a>,
chunk: &'a str,
style_id: StyleId,
column: usize,
+5 -8
View File
@@ -467,7 +467,7 @@ impl Snapshot {
let input_start =
TabPoint(transforms.sum_start().0 + (output_start.0 - transforms.seek_start().0));
let input_end = self
.to_input_point(output_end)
.to_tab_point(output_end)
.min(self.tab_snapshot.max_point());
HighlightedChunks {
input_chunks: self.tab_snapshot.highlighted_chunks(input_start..input_end),
@@ -480,7 +480,7 @@ impl Snapshot {
}
pub fn max_point(&self) -> WrapPoint {
self.to_output_point(self.tab_snapshot.max_point())
self.to_wrap_point(self.tab_snapshot.max_point())
}
pub fn line_len(&self, row: u32) -> u32 {
@@ -515,13 +515,13 @@ impl Snapshot {
}
}
pub fn to_input_point(&self, point: WrapPoint) -> TabPoint {
pub fn to_tab_point(&self, point: WrapPoint) -> TabPoint {
let mut cursor = self.transforms.cursor::<WrapPoint, TabPoint>();
cursor.seek(&point, Bias::Right, &());
TabPoint(cursor.sum_start().0 + (point.0 - cursor.seek_start().0))
}
pub fn to_output_point(&self, point: TabPoint) -> WrapPoint {
pub fn to_wrap_point(&self, point: TabPoint) -> WrapPoint {
let mut cursor = self.transforms.cursor::<TabPoint, WrapPoint>();
cursor.seek(&point, Bias::Right, &());
WrapPoint(cursor.sum_start().0 + (point.0 - cursor.seek_start().0))
@@ -537,10 +537,7 @@ impl Snapshot {
}
}
self.to_output_point(
self.tab_snapshot
.clip_point(self.to_input_point(point), bias),
)
self.to_wrap_point(self.tab_snapshot.clip_point(self.to_tab_point(point), bias))
}
}