From f6ab73033ac13fa6a3535776a1927a56be5ed9a6 Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Fri, 28 Nov 2025 13:34:52 -0500 Subject: [PATCH] Allow opening settings.json file from Settings UI with keybinding (#43747) Release Notes: - Added a keybinding to open the `settings.json` file when the Settings UI is in focus: `cmd-,` (macOS) / `ctrl-,` (Windows / Linux). - A tooltip was added to the `Edit in settings.json` button to show this keybinding. --- assets/keymaps/default-linux.json | 1 + assets/keymaps/default-macos.json | 1 + assets/keymaps/default-windows.json | 1 + crates/settings_ui/src/settings_ui.rs | 15 +++++++++++++++ 4 files changed, 18 insertions(+) diff --git a/assets/keymaps/default-linux.json b/assets/keymaps/default-linux.json index de55eac818..5de5b9daae 100644 --- a/assets/keymaps/default-linux.json +++ b/assets/keymaps/default-linux.json @@ -1279,6 +1279,7 @@ "escape": "workspace::CloseWindow", "ctrl-m": "settings_editor::Minimize", "ctrl-f": "search::FocusSearch", + "ctrl-,": "settings_editor::OpenCurrentFile", "left": "settings_editor::ToggleFocusNav", "ctrl-shift-e": "settings_editor::ToggleFocusNav", // todo(settings_ui): cut this down based on the max files and overflow UI diff --git a/assets/keymaps/default-macos.json b/assets/keymaps/default-macos.json index 46ccd94077..0a027356a1 100644 --- a/assets/keymaps/default-macos.json +++ b/assets/keymaps/default-macos.json @@ -1382,6 +1382,7 @@ "escape": "workspace::CloseWindow", "cmd-m": "settings_editor::Minimize", "cmd-f": "search::FocusSearch", + "cmd-,": "settings_editor::OpenCurrentFile", "left": "settings_editor::ToggleFocusNav", "cmd-shift-e": "settings_editor::ToggleFocusNav", // todo(settings_ui): cut this down based on the max files and overflow UI diff --git a/assets/keymaps/default-windows.json b/assets/keymaps/default-windows.json index c72fc198c4..79095087ab 100644 --- a/assets/keymaps/default-windows.json +++ b/assets/keymaps/default-windows.json @@ -1305,6 +1305,7 @@ "escape": "workspace::CloseWindow", "ctrl-m": "settings_editor::Minimize", "ctrl-f": "search::FocusSearch", + "ctrl-,": "settings_editor::OpenCurrentFile", "left": "settings_editor::ToggleFocusNav", "ctrl-shift-e": "settings_editor::ToggleFocusNav", // todo(settings_ui): cut this down based on the max files and overflow UI diff --git a/crates/settings_ui/src/settings_ui.rs b/crates/settings_ui/src/settings_ui.rs index 2726e1cbd6..43925c1893 100644 --- a/crates/settings_ui/src/settings_ui.rs +++ b/crates/settings_ui/src/settings_ui.rs @@ -419,6 +419,11 @@ fn init_renderers(cx: &mut App) { .style(ButtonStyle::Outlined) .size(ButtonSize::Medium) .tab_index(0_isize) + .tooltip(Tooltip::for_action_title_in( + "Edit in settings.json", + &OpenCurrentFile, + &settings_window.focus_handle, + )) .on_click(cx.listener(|this, _, window, cx| { this.open_current_settings_file(window, cx); })) @@ -2172,6 +2177,11 @@ impl SettingsWindow { Button::new(edit_in_json_id, "Edit in settings.json") .tab_index(0_isize) .style(ButtonStyle::OutlinedGhost) + .tooltip(Tooltip::for_action_title_in( + "Edit in settings.json", + &OpenCurrentFile, + &self.focus_handle, + )) .on_click(cx.listener(|this, _, window, cx| { this.open_current_settings_file(window, cx); })), @@ -2865,6 +2875,11 @@ impl SettingsWindow { Button::new("open-in-settings-file", "Edit in settings.json") .tab_index(0_isize) .style(ButtonStyle::OutlinedGhost) + .tooltip(Tooltip::for_action_title_in( + "Edit in settings.json", + &OpenCurrentFile, + &self.focus_handle, + )) .on_click(cx.listener(|this, _, window, cx| { this.open_current_settings_file(window, cx); })),