From 5c6dbc3ab2b0d5636c55a7d02e05712ac647cda4 Mon Sep 17 00:00:00 2001 From: Sathwik Chirivelli <146921254+chirivelli@users.noreply.github.com> Date: Fri, 31 Jul 2026 23:41:47 +0530 Subject: [PATCH] solo_diff_view: Hide multibuffer controls in solo diffs (#61998) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # Objective Remove the redundant expand/collapse-all-files control from solo diff views. A solo diff represents one file, so the multibuffer-wide control is not applicable and duplicates the per-file full-file/changes-only toggle. ## Solution Treat searchable items that intentionally hide their underlying splittable editor as ineligible for the generic multibuffer expand/collapse control. This keeps search bound to the focused side of a split diff while preserving the existing expand/collapse controls in Project Diff, Branch Diff, staged/unstaged diffs, Commit View, and other regular multibuffer views. ## Testing - `cargo -q test -p search test_uses_primary_left_when_in_multi_buffer -- --nocapture` - `cargo -q test -p search buffer_search -- --nocapture` (26 passed) - `git diff --check` - Manually verified the solo diff no longer shows the expand/collapse-all-files control and that the full-file/changes-only toggle remains available. Reviewers can open a file from Project Diff, use Option+Enter to switch between Project Diff and Solo Diff, and verify search follows the focused side in split diff mode. ## Self-Review Checklist: - [x] I've reviewed my own diff for quality, security, and reliability - [x] Unsafe blocks (if any) have justifying comments - [x] The content adheres to Zed's UI standards ([UX/UI](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) and [icon](https://github.com/zed-industries/zed/blob/main/crates/icons/README.md) guidelines) - [ ] Tests cover the new/changed behavior - [x] Performance impact has been considered and is acceptable ## Showcase Solo diff views now retain the full-file/changes-only toggle without showing the unrelated expand/collapse-all-files control.
Click to view showcase Screenshot 2026-07-31 at 6 44 50 PM
--- Release Notes: - Fixed a redundant expand/collapse-all-files control appearing in solo diff views. --- crates/search/src/buffer_search.rs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/crates/search/src/buffer_search.rs b/crates/search/src/buffer_search.rs index a379847295..83a0575c42 100644 --- a/crates/search/src/buffer_search.rs +++ b/crates/search/src/buffer_search.rs @@ -951,7 +951,7 @@ impl BufferSearchBar { } fn deployed_toolbar_location(&self, cx: &App) -> ToolbarItemLocation { - if self.needs_expand_collapse_option(cx) && !self.uses_hidden_splittable_editor(cx) { + if self.needs_expand_collapse_option(cx) { ToolbarItemLocation::PrimaryLeft } else { ToolbarItemLocation::Secondary @@ -976,10 +976,11 @@ impl BufferSearchBar { // We provide an expand/collapse button if we are in a multibuffer // and not doing a project search. fn needs_expand_collapse_option(&self, cx: &App) -> bool { - self.active_searchable_item.as_ref().is_some_and(|item| { - item.buffer_kind(cx) == ItemBufferKind::Multibuffer - && !item.supported_options(cx).find_in_results - }) + !self.uses_hidden_splittable_editor(cx) + && self.active_searchable_item.as_ref().is_some_and(|item| { + item.buffer_kind(cx) == ItemBufferKind::Multibuffer + && !item.supported_options(cx).find_in_results + }) } fn toggle_fold_all(&mut self, _: &ToggleFoldAll, window: &mut Window, cx: &mut Context) {