From dbbea9d10c14ff4189b04e6c83ecfef5cda69054 Mon Sep 17 00:00:00 2001 From: Cole Miller Date: Wed, 11 Feb 2026 00:43:32 -0500 Subject: [PATCH 1/4] unflag! --- assets/settings/default.json | 4 ++-- crates/editor/src/editor.rs | 2 +- crates/editor/src/split.rs | 15 +-------------- crates/search/src/buffer_search.rs | 7 ++----- crates/settings_content/src/editor.rs | 4 ++-- crates/settings_ui/src/page_data.rs | 15 ++++++++++++++- 6 files changed, 22 insertions(+), 25 deletions(-) diff --git a/assets/settings/default.json b/assets/settings/default.json index 838d6c3f85db35..e1d38e08b72c39 100644 --- a/assets/settings/default.json +++ b/assets/settings/default.json @@ -293,8 +293,8 @@ "completion_detail_alignment": "left", // How to display diffs in the editor. // - // Default: unified - "diff_view_style": "unified", + // Default: split + "diff_view_style": "split", // Show method signatures in the editor, when inside parentheses. "auto_signature_help": false, // Whether to show the signature help after completion or a bracket pair inserted. diff --git a/crates/editor/src/editor.rs b/crates/editor/src/editor.rs index 4cdd03463da348..bf241d01d1910b 100644 --- a/crates/editor/src/editor.rs +++ b/crates/editor/src/editor.rs @@ -78,7 +78,7 @@ pub use multi_buffer::{ MultiBufferOffset, MultiBufferOffsetUtf16, MultiBufferSnapshot, PathKey, RowInfo, ToOffset, ToPoint, }; -pub use split::{SplitDiffFeatureFlag, SplittableEditor, ToggleSplitDiff}; +pub use split::{SplittableEditor, ToggleSplitDiff}; pub use split_editor_view::SplitEditorView; pub use text::Bias; diff --git a/crates/editor/src/split.rs b/crates/editor/src/split.rs index 1e1d6785bbfb24..b3b3c20ae9a4c1 100644 --- a/crates/editor/src/split.rs +++ b/crates/editor/src/split.rs @@ -5,7 +5,7 @@ use std::{ use buffer_diff::{BufferDiff, BufferDiffSnapshot}; use collections::HashMap; -use feature_flags::{FeatureFlag, FeatureFlagAppExt as _}; + use gpui::{Action, AppContext as _, Entity, EventEmitter, Focusable, Subscription, WeakEntity}; use itertools::Itertools; use language::{Buffer, Capability}; @@ -362,16 +362,6 @@ fn patch_for_excerpt( } } -pub struct SplitDiffFeatureFlag; - -impl FeatureFlag for SplitDiffFeatureFlag { - const NAME: &'static str = "split-diff"; - - fn enabled_for_staff() -> bool { - true - } -} - #[derive(Clone, Copy, PartialEq, Eq, Action, Default)] #[action(namespace = editor)] pub struct ToggleSplitDiff; @@ -513,9 +503,6 @@ impl SplittableEditor { } pub fn split(&mut self, window: &mut Window, cx: &mut Context) { - if !cx.has_flag::() { - return; - } if self.lhs.is_some() { return; } diff --git a/crates/search/src/buffer_search.rs b/crates/search/src/buffer_search.rs index 1d46938d6aa4b4..25cbb4ef4cdb65 100644 --- a/crates/search/src/buffer_search.rs +++ b/crates/search/src/buffer_search.rs @@ -13,11 +13,9 @@ use crate::{ use any_vec::AnyVec; use collections::HashMap; use editor::{ - DisplayPoint, Editor, EditorSettings, MultiBufferOffset, SplitDiffFeatureFlag, - SplittableEditor, ToggleSplitDiff, + DisplayPoint, Editor, EditorSettings, MultiBufferOffset, SplittableEditor, ToggleSplitDiff, actions::{Backtab, FoldAll, Tab, ToggleFoldAll, UnfoldAll}, }; -use feature_flags::FeatureFlagAppExt as _; use futures::channel::oneshot; use gpui::{ Action, App, ClickEvent, Context, Entity, EventEmitter, Focusable, InteractiveElement as _, @@ -107,8 +105,7 @@ impl Render for BufferSearchBar { fn render(&mut self, window: &mut Window, cx: &mut Context) -> impl IntoElement { let focus_handle = self.focus_handle(cx); - let has_splittable_editor = - self.splittable_editor.is_some() && cx.has_flag::(); + let has_splittable_editor = self.splittable_editor.is_some(); let split_buttons = if has_splittable_editor { self.splittable_editor .as_ref() diff --git a/crates/settings_content/src/editor.rs b/crates/settings_content/src/editor.rs index f07e41e0e523fb..4d824e85e0e2ee 100644 --- a/crates/settings_content/src/editor.rs +++ b/crates/settings_content/src/editor.rs @@ -224,7 +224,7 @@ pub struct EditorSettingsContent { /// How to display diffs in the editor. /// - /// Default: unified + /// Default: split pub diff_view_style: Option, } @@ -806,9 +806,9 @@ pub enum SnippetSortOrder { #[serde(rename_all = "snake_case")] pub enum DiffViewStyle { /// Show diffs in a single unified view. - #[default] Unified, /// Show diffs in a split view. + #[default] Split, } diff --git a/crates/settings_ui/src/page_data.rs b/crates/settings_ui/src/page_data.rs index 19b76040611c46..0d2836ff8b7ee8 100644 --- a/crates/settings_ui/src/page_data.rs +++ b/crates/settings_ui/src/page_data.rs @@ -1466,7 +1466,7 @@ fn editor_page() -> SettingsPage { ] } - fn multibuffer_section() -> [SettingsPageItem; 5] { + fn multibuffer_section() -> [SettingsPageItem; 6] { [ SettingsPageItem::SectionHeader("Multibuffer"), SettingsPageItem::SettingItem(SettingItem { @@ -1533,6 +1533,19 @@ fn editor_page() -> SettingsPage { metadata: None, files: USER, }), + SettingsPageItem::SettingItem(SettingItem { + title: "Diff View Style", + description: "How to display diffs in the editor.", + field: Box::new(SettingField { + json_path: Some("diff_view_style"), + pick: |settings_content| settings_content.editor.diff_view_style.as_ref(), + write: |settings_content, value| { + settings_content.editor.diff_view_style = value; + }, + }), + metadata: None, + files: USER, + }), ] } From 833bb94192f5969a62b54e2eb3e137695454c2cd Mon Sep 17 00:00:00 2001 From: Cole Miller Date: Wed, 11 Feb 2026 00:53:44 -0500 Subject: [PATCH 2/4] renderer --- crates/settings_ui/src/settings_ui.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/crates/settings_ui/src/settings_ui.rs b/crates/settings_ui/src/settings_ui.rs index 8f8ddcab3bdeb8..f1eb917785557c 100644 --- a/crates/settings_ui/src/settings_ui.rs +++ b/crates/settings_ui/src/settings_ui.rs @@ -487,6 +487,7 @@ fn init_renderers(cx: &mut App) { .add_basic_renderer::(render_dropdown) .add_basic_renderer::(render_dropdown) .add_basic_renderer::(render_dropdown) + .add_basic_renderer::(render_dropdown) .add_basic_renderer::(render_dropdown) .add_basic_renderer::(render_dropdown) .add_basic_renderer::(render_dropdown) From 665ad3ba5e867ea9ab87437d53bb417f0905462c Mon Sep 17 00:00:00 2001 From: Cole Miller Date: Wed, 11 Feb 2026 01:13:50 -0500 Subject: [PATCH 3/4] fix project diff tests --- crates/git_ui/src/project_diff.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/crates/git_ui/src/project_diff.rs b/crates/git_ui/src/project_diff.rs index f64931491d9ce5..21a0d41fe099d6 100644 --- a/crates/git_ui/src/project_diff.rs +++ b/crates/git_ui/src/project_diff.rs @@ -1843,7 +1843,7 @@ mod tests { use gpui::TestAppContext; use project::FakeFs; use serde_json::json; - use settings::SettingsStore; + use settings::{DiffViewStyle, SettingsStore}; use std::path::Path; use unindent::Unindent as _; use util::{ @@ -1862,6 +1862,11 @@ mod tests { cx.update(|cx| { let store = SettingsStore::test(cx); cx.set_global(store); + cx.update_global::(|store, cx| { + store.update_user_settings(cx, |settings| { + settings.editor.diff_view_style = Some(DiffViewStyle::Unified); + }); + }); theme::init(theme::LoadThemes::JustBase, cx); editor::init(cx); crate::init(cx); From a4678dc1c0125b48af20d62cc8a81fa4d82ee56b Mon Sep 17 00:00:00 2001 From: Cole Miller Date: Wed, 11 Feb 2026 01:16:52 -0500 Subject: [PATCH 4/4] machete --- Cargo.lock | 1 - crates/search/Cargo.toml | 1 - 2 files changed, 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 310fd83a406ba3..720dadc02255f0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -14867,7 +14867,6 @@ dependencies = [ "client", "collections", "editor", - "feature_flags", "fs", "futures 0.3.31", "gpui", diff --git a/crates/search/Cargo.toml b/crates/search/Cargo.toml index c9abbe1ee8252e..9613bd720919d7 100644 --- a/crates/search/Cargo.toml +++ b/crates/search/Cargo.toml @@ -26,7 +26,6 @@ any_vec.workspace = true bitflags.workspace = true collections.workspace = true editor.workspace = true -feature_flags.workspace = true fs.workspace = true futures.workspace = true gpui.workspace = true