diff --git a/Cargo.lock b/Cargo.lock index 310fd83a406ba39c1825cc53b5e169125b035f40..720dadc02255f01c6dd7691bb22843db9485dc03 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/assets/settings/default.json b/assets/settings/default.json index 838d6c3f85db3589d6907a81d1413d829fda68ae..e1d38e08b72c3928698139887eea6346735dc29b 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 4cdd03463da34839e8ae929c5fa243df71cf8de9..bf241d01d1910bea710c07b63485c51ea06dcdd8 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 1e1d6785bbfb2400922b9e566f200b556c78435e..b3b3c20ae9a4c148f9334fb1a816f831b3a72a68 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/git_ui/src/project_diff.rs b/crates/git_ui/src/project_diff.rs index f64931491d9ce5cbc4ed8261edbc12af4b628b69..21a0d41fe099d60436bd80b7f4ee06982735c847 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); diff --git a/crates/search/Cargo.toml b/crates/search/Cargo.toml index c9abbe1ee8252e5cb1c571d513dfa0d579ad3658..9613bd720919d77f2e7c9421ed51a0b18edf7355 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 diff --git a/crates/search/src/buffer_search.rs b/crates/search/src/buffer_search.rs index 1d46938d6aa4b4a83b1621a8fffc6e39898cc512..25cbb4ef4cdb65128adee25b93d33409b9df57f9 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 f07e41e0e523fba4d9c46851ed758d0680156fa1..4d824e85e0e2ee020f48cdddb530bf494b2ce800 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 19b76040611c463e87b39ee09b004ca03826d0ff..0d2836ff8b7ee82d1124df252f68108b90bfa023 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, + }), ] } diff --git a/crates/settings_ui/src/settings_ui.rs b/crates/settings_ui/src/settings_ui.rs index 8f8ddcab3bdeb80c790d93d7cdc75ce926253de2..f1eb917785557c18a587a15e4ffcc1096e5dfa06 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)