From a2e2e06875cf11e674ec2e1c0e6d71a0c0c07848 Mon Sep 17 00:00:00 2001 From: Aleksei Gusev Date: Mon, 29 Jun 2026 11:41:41 +0300 Subject: [PATCH] Only show preview line numbers if enabled by user (#59957) # Objective - Currently, the file preview pane in pickers forces line numbers and the editor gutter to always be visible, ignoring user-configured preferences. This PR ensures the preview component respects the user's global editor layout settings. ## Solution - Modified `EditorPreview::new` within `crates/picker/src/preview.rs`. - Imported `EditorSettings` from the `editor` crate. - Replaced the hardcoded `true` values for `set_show_gutter` and `set_show_line_numbers` with the user's active global configuration retrieved via `EditorSettings::get_global(cx).gutter.line_numbers`. ## Testing - Did you test these changes? If so, how? - Yes, manually verified that toggling line numbers off or using relative line numbers in `settings.json` is accurately reflected inside the picker's file preview pane. - Are there any parts that need more testing? - No, using the global context lookup seamlessly integrates with Zed's existing configuration lifecycle. - How can other people (reviewers) test your changes? Is there anything specific they need to know? - Open your `settings.json` and change your line number preferences (e.g., set `"line_numbers": false`). - Bring up a picker that renders a file preview (like the project search or file finder). - Confirm that the preview pane's gutter and line number layout perfectly matches your active configuration. - If relevant, what platforms did you test these changes on, and are there any important ones you can't test? - Tested on Linux. ## 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 - [x] Tests cover the new/changed behavior - [x] Performance impact has been considered and is acceptable ## Showcase
Click to view showcase ### Line numbers ON preview-line-numbers-on ### Line numbers OFF preview-line-numbers-off
--- Release Notes: - Preview line numbers now respect user configuration settings --- crates/picker/src/preview.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/crates/picker/src/preview.rs b/crates/picker/src/preview.rs index cdfd0957f1..e529a17d73 100644 --- a/crates/picker/src/preview.rs +++ b/crates/picker/src/preview.rs @@ -2,12 +2,13 @@ use std::ops::Range; use std::path::PathBuf; use std::sync::Arc; -use editor::{Editor, HighlightKey, MultiBuffer, RowHighlightOptions}; +use editor::{Editor, EditorSettings, HighlightKey, MultiBuffer, RowHighlightOptions}; use gpui::{App, Task}; use gpui::{AppContext, Context, Entity, TaskExt, Window}; use language::{Buffer, HighlightedText, HighlightedTextBuilder, ToPoint}; use project::Project; use rope::Point; +use settings::Settings; use ui::{ActiveTheme, IntoElement, Pixels, px}; use util::rel_path::RelPath; @@ -148,6 +149,7 @@ impl EditorPreview { let capability = language::Capability::ReadWrite; // Later narrowed per buffer let multi_buffer = cx.new(|_| MultiBuffer::without_headers(capability)); let mut editor = Editor::for_multibuffer(multi_buffer, None, window, cx); + let editor_settings = EditorSettings::get_global(cx).clone(); // We want editing to happen in the multibuffer not in the modal. The editor acts // as one big button. @@ -159,8 +161,8 @@ impl EditorPreview { editor.disable_diagnostics(cx); editor.disable_expand_excerpt_buttons(cx); editor.disable_mouse_wheel_zoom(); - editor.set_show_gutter(true, cx); // needed for line numbers - editor.set_show_line_numbers(true, cx); + editor.set_show_gutter(editor_settings.gutter.line_numbers, cx); // needed for line numbers + editor.set_show_line_numbers(editor_settings.gutter.line_numbers, cx); editor.set_show_breakpoints(false, cx); editor.set_show_bookmarks(false, cx); editor.set_show_code_actions(false, cx);