From a63fada5f573828842045e9d72985fc48565f30c Mon Sep 17 00:00:00 2001 From: Cole Miller Date: Sun, 2 Nov 2025 23:49:46 -0500 Subject: [PATCH] expand all diff hunks and implement todo --- crates/editor/src/display_map/filter_map.rs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/crates/editor/src/display_map/filter_map.rs b/crates/editor/src/display_map/filter_map.rs index 14e30e19023979cd38b2103e7a71245055d18037..0a1ae8fa4b9cdd01d0726400c130122bb6b241b0 100644 --- a/crates/editor/src/display_map/filter_map.rs +++ b/crates/editor/src/display_map/filter_map.rs @@ -5,6 +5,7 @@ use multi_buffer::{AnchorRangeExt as _, MultiBufferSnapshot}; use rope::{Point, TextSummary}; use sum_tree::{Dimensions, SumTree}; use text::Bias; +use util::debug_panic; /// All summaries are an integral number of multibuffer rows. #[derive(Debug, Clone, Copy)] @@ -78,7 +79,16 @@ enum FilterMode { impl FilterMode { fn should_remove(self, kind: DiffHunkStatusKind) -> bool { - todo!() + match kind { + DiffHunkStatusKind::Added => self == FilterMode::RemoveInsertions, + DiffHunkStatusKind::Modified => { + debug_panic!( + "should not have an unexpanded modified hunk in multibuffer when filter map is active" + ); + false + } + DiffHunkStatusKind::Deleted => self == FilterMode::RemoveDeletions, + } } } @@ -493,7 +503,11 @@ mod tests { let mut buffers: Vec> = Vec::new(); let mut base_texts: HashMap = HashMap::default(); - let multibuffer = cx.new(|_| MultiBuffer::new(Capability::ReadWrite)); + let multibuffer = cx.new(|cx| { + let mut multibuffer = MultiBuffer::new(Capability::ReadWrite); + multibuffer.set_all_diff_hunks_expanded(cx); + multibuffer + }); let mut needs_diff_calculation = false; let mode = if rng.random() {