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 <cppcoffee@gmail.com>
This commit is contained in:
Xiaobo Liu authored and GitHub committed 2026-05-28 15:25:54 +00:00
1 parent 83a46af64f
commit 1ae9e78200
2 files changed
+47 -12

No files matched your search

+42 -6
View File
@@ -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
}
+5 -6
View File
@@ -474,13 +474,12 @@ impl VsCodeSettings {
}
fn minimap_content(&self) -> Option<MinimapContent> {
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 {