From 429128852ddf6ba1a1894823058820dc179f5ec4 Mon Sep 17 00:00:00 2001 From: "zed-zippy[bot]" <234243425+zed-zippy[bot]@users.noreply.github.com> Date: Wed, 11 Feb 2026 22:15:50 +0000 Subject: [PATCH] git: Disable some more expensive things for the split diff's left-hand side (#48953) (cherry-pick to preview) (#48979) Cherry-pick of #48953 to preview ---- - Conflict UI - LSP data - Runnables Release Notes: - Improved performance when opening the split diff view. Co-authored-by: Cole Miller --- crates/editor/src/editor.rs | 18 +++++++++++++++++- crates/editor/src/split.rs | 3 +++ crates/git_ui/src/conflict_view.rs | 1 + 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/crates/editor/src/editor.rs b/crates/editor/src/editor.rs index bf241d01d1910bea710c07b63485c51ea06dcdd8..e15fb2050cb60aaaf6dff35d83619525d142e802 100644 --- a/crates/editor/src/editor.rs +++ b/crates/editor/src/editor.rs @@ -1179,6 +1179,8 @@ pub struct Editor { delegate_expand_excerpts: bool, delegate_stage_and_restore: bool, delegate_open_excerpts: bool, + enable_lsp_data: bool, + enable_runnables: bool, show_line_numbers: Option, use_relative_line_numbers: Option, show_git_diff_gutter: Option, @@ -2409,6 +2411,8 @@ impl Editor { delegate_expand_excerpts: false, delegate_stage_and_restore: false, delegate_open_excerpts: false, + enable_lsp_data: true, + enable_runnables: true, show_git_diff_gutter: None, show_code_actions: None, show_runnables: None, @@ -16905,7 +16909,7 @@ impl Editor { } fn refresh_runnables(&mut self, window: &mut Window, cx: &mut Context) -> Task<()> { - if !EditorSettings::get_global(cx).gutter.runnables { + if !EditorSettings::get_global(cx).gutter.runnables || !self.enable_runnables { self.clear_tasks(); return Task::ready(()); } @@ -25216,6 +25220,10 @@ impl Editor { window: &mut Window, cx: &mut Context<'_, Self>, ) { + if !self.enable_lsp_data { + return; + } + if let Some(buffer_id) = for_buffer { self.pull_diagnostics(buffer_id, window, cx); self.update_semantic_tokens(Some(buffer_id), None, cx); @@ -25350,6 +25358,14 @@ impl Editor { })); Some(breadcrumbs) } + + fn disable_lsp_data(&mut self) { + self.enable_lsp_data = false; + } + + fn disable_runnables(&mut self) { + self.enable_runnables = false; + } } fn edit_for_markdown_paste<'a>( diff --git a/crates/editor/src/split.rs b/crates/editor/src/split.rs index b3b3c20ae9a4c148f9334fb1a816f831b3a72a68..73a7f1dc4e5334cd3f681b84a3f90b1b02dca919 100644 --- a/crates/editor/src/split.rs +++ b/crates/editor/src/split.rs @@ -526,6 +526,9 @@ impl SplittableEditor { editor.set_delegate_stage_and_restore(true); editor.set_delegate_open_excerpts(true); editor.set_show_vertical_scrollbar(false, cx); + editor.disable_lsp_data(); + editor.disable_runnables(); + editor.disable_diagnostics(cx); editor.set_minimap_visibility(crate::MinimapVisibility::Disabled, window, cx); editor }); diff --git a/crates/git_ui/src/conflict_view.rs b/crates/git_ui/src/conflict_view.rs index 6a7432f838dd2711c2f0bc70d0bf6dd41f3da367..838ec886fdb400b67fa284df9182bab9766548bd 100644 --- a/crates/git_ui/src/conflict_view.rs +++ b/crates/git_ui/src/conflict_view.rs @@ -47,6 +47,7 @@ pub fn register_editor(editor: &mut Editor, buffer: Entity, cx: &mu if !editor.mode().is_full() || (!editor.buffer().read(cx).is_singleton() && !editor.buffer().read(cx).all_diff_hunks_expanded()) + || editor.read_only(cx) { return; }