From 2c1e4cae1931bc07f20eac11f77d961d97b9dc86 Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Thu, 6 May 2021 19:36:19 +0200 Subject: [PATCH] Merge `FoldRange` into `Fold` Co-Authored-By: Nathan Sobo --- zed/src/editor/display_map/fold_map.rs | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/zed/src/editor/display_map/fold_map.rs b/zed/src/editor/display_map/fold_map.rs index 910f335582..c02ac3c236 100644 --- a/zed/src/editor/display_map/fold_map.rs +++ b/zed/src/editor/display_map/fold_map.rs @@ -109,10 +109,7 @@ impl FoldMap { self.folds = { let mut new_tree = SumTree::new(); let mut cursor = self.folds.cursor::<_, ()>(); - new_tree.push_tree( - cursor.slice(&FoldRange(fold.0.clone()), SeekBias::Right, buffer), - buffer, - ); + new_tree.push_tree(cursor.slice(&fold, SeekBias::Right, buffer), buffer); new_tree.push(fold, buffer); new_tree.push_tree(cursor.suffix(buffer), buffer); new_tree @@ -298,7 +295,7 @@ impl FoldMap { let anchor = buffer.anchor_before(edit.new_range.start).unwrap(); let mut folds_cursor = self.folds.cursor::<_, ()>(); - folds_cursor.seek(&FoldRange(anchor..Anchor::End), SeekBias::Left, buffer); + folds_cursor.seek(&Fold(anchor..Anchor::End), SeekBias::Left, buffer); let mut folds = folds_cursor .map(|f| f.0.start.to_offset(buffer).unwrap()..f.0.end.to_offset(buffer).unwrap()) .peekable(); @@ -482,6 +479,12 @@ impl<'a> sum_tree::Dimension<'a, TransformSummary> for TransformSummary { #[derive(Clone, Debug)] struct Fold(Range); +impl Default for Fold { + fn default() -> Self { + Self(Anchor::Start..Anchor::End) + } +} + impl sum_tree::Item for Fold { type Summary = FoldSummary; @@ -542,23 +545,14 @@ impl sum_tree::Summary for FoldSummary { } } -#[derive(Clone, Debug)] -struct FoldRange(Range); - -impl Default for FoldRange { - fn default() -> Self { - Self(Anchor::Start..Anchor::End) - } -} - -impl<'a> sum_tree::Dimension<'a, FoldSummary> for FoldRange { +impl<'a> sum_tree::Dimension<'a, FoldSummary> for Fold { fn add_summary(&mut self, summary: &'a FoldSummary) { self.0.start = summary.start.clone(); self.0.end = summary.end.clone(); } } -impl<'a> sum_tree::SeekDimension<'a, FoldSummary> for FoldRange { +impl<'a> sum_tree::SeekDimension<'a, FoldSummary> for Fold { fn cmp(&self, other: &Self, buffer: &Buffer) -> Ordering { self.0.cmp(&other.0, buffer).unwrap() }