From 1ae9e782002a9cc4df158ec04aa856579ee6578a Mon Sep 17 00:00:00 2001 From: Xiaobo Liu Date: Thu, 28 May 2026 23:25:54 +0800 Subject: [PATCH] settings: Apply VS Code minimap default when importing settings (#56483) When importing settings from VS Code, the minimap is now enabled by default (matching VS Code's behavior) even if the user hasn't explicitly set minimap-related options in their VS Code settings.json. Previously, if `editor.minimap.enabled` and `editor.minimap.autohide` were absent from the VS Code config, Zed would leave minimap at its own default ("never"). Since VS Code defaults to minimap on, this caused a mismatch for users expecting their VS Code experience to carry over. Closes #56297 Release Notes: - Fixed apply VS Code minimap default when importing settings Signed-off-by: Xiaobo Liu --- crates/settings/src/settings_store.rs | 48 +++++++++++++++++++++++---- crates/settings/src/vscode_import.rs | 11 +++--- 2 files changed, 47 insertions(+), 12 deletions(-) diff --git a/crates/settings/src/settings_store.rs b/crates/settings/src/settings_store.rs index 5677b70b7c..7e98e99f85 100644 --- a/crates/settings/src/settings_store.rs +++ b/crates/settings/src/settings_store.rs @@ -2177,6 +2177,9 @@ mod tests { r#" { "editor.tabSize": 37 } "#.to_owned(), r#"{ "base_keymap": "VSCode", + "minimap": { + "show": "always" + }, "tab_size": 37 } "# @@ -2195,6 +2198,9 @@ mod tests { r#"{ "editor.tabSize": 42 }"#.to_owned(), r#"{ "base_keymap": "VSCode", + "minimap": { + "show": "always" + }, "tab_size": 42, "preferred_line_length": 99, } @@ -2215,6 +2221,9 @@ mod tests { r#"{}"#.to_owned(), r#"{ "base_keymap": "VSCode", + "minimap": { + "show": "always" + }, "preferred_line_length": 99, "tab_size": 42 } @@ -2241,6 +2250,9 @@ mod tests { "base_keymap": "VSCode", "tabs": { "git_status": true + }, + "minimap": { + "show": "always" } } "# @@ -2265,7 +2277,10 @@ mod tests { "sort_mode": "mixed", "sort_order": "lower" }, - "base_keymap": "VSCode" + "base_keymap": "VSCode", + "minimap": { + "show": "always" + } } "# .unindent(), @@ -2282,6 +2297,9 @@ mod tests { r#"{ "editor.fontFamily": "Cascadia Code, 'Consolas', Courier New" }"#.to_owned(), r#"{ "base_keymap": "VSCode", + "minimap": { + "show": "always" + }, "buffer_font_fallbacks": [ "Consolas", "Courier New" @@ -2305,7 +2323,10 @@ mod tests { "terminal": { "bell": "system" }, - "base_keymap": "VSCode" + "base_keymap": "VSCode", + "minimap": { + "show": "always" + } } "# .unindent(), @@ -2324,7 +2345,10 @@ mod tests { "terminal": { "bell": "off" }, - "base_keymap": "VSCode" + "base_keymap": "VSCode", + "minimap": { + "show": "always" + } } "# .unindent(), @@ -2343,7 +2367,10 @@ mod tests { "terminal": { "bell": "system" }, - "base_keymap": "VSCode" + "base_keymap": "VSCode", + "minimap": { + "show": "always" + } } "# .unindent(), @@ -2362,7 +2389,10 @@ mod tests { "terminal": { "bell": "off" }, - "base_keymap": "VSCode" + "base_keymap": "VSCode", + "minimap": { + "show": "always" + } } "# .unindent(), @@ -2385,7 +2415,10 @@ mod tests { "terminal": { "bell": "off" }, - "base_keymap": "VSCode" + "base_keymap": "VSCode", + "minimap": { + "show": "always" + } } "# .unindent(), @@ -2406,6 +2439,9 @@ mod tests { .to_owned(), r#"{ "base_keymap": "VSCode", + "minimap": { + "show": "always" + }, "hover_popover_hiding_delay": 500, "hover_popover_sticky": false } diff --git a/crates/settings/src/vscode_import.rs b/crates/settings/src/vscode_import.rs index 5954453769..59dcdfbccf 100644 --- a/crates/settings/src/vscode_import.rs +++ b/crates/settings/src/vscode_import.rs @@ -474,13 +474,12 @@ impl VsCodeSettings { } fn minimap_content(&self) -> Option { - let minimap_enabled = self.read_bool("editor.minimap.enabled"); - let autohide = self.read_bool("editor.minimap.autohide"); + let minimap_enabled = self.read_bool("editor.minimap.enabled").unwrap_or(true); + let autohide = self.read_bool("editor.minimap.autohide").unwrap_or(false); let show = match (minimap_enabled, autohide) { - (Some(true), Some(false)) => Some(ShowMinimap::Always), - (Some(true), _) => Some(ShowMinimap::Auto), - (Some(false), _) => Some(ShowMinimap::Never), - _ => None, + (true, false) => Some(ShowMinimap::Always), + (true, true) => Some(ShowMinimap::Auto), + (false, _) => Some(ShowMinimap::Never), }; skip_default(MinimapContent {