From 80d1551671fb5f4643c223bf481ec3c1661c740b Mon Sep 17 00:00:00 2001 From: Ben Kunkle Date: Wed, 22 Oct 2025 13:01:45 -0700 Subject: [PATCH] Don't migrate empty formatter array (#40932) Follow up for #40409 Fix for https://github.com/zed-industries/zed/issues/40874#issuecomment-3433759849 Release Notes: - Fixed an issue where having an empty formatter array in your settings `"formatter": []` would result in an erroneous prompt to migrate settings --- .../src/migrations/m_2025_10_16/settings.rs | 3 +++ crates/migrator/src/migrator.rs | 15 +++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/crates/migrator/src/migrations/m_2025_10_16/settings.rs b/crates/migrator/src/migrations/m_2025_10_16/settings.rs index c9a8b7600cbf8842453318ed8dc9b47c3a73beaf..ecca7799454de640bbc71df0be7e86889e18d71b 100644 --- a/crates/migrator/src/migrations/m_2025_10_16/settings.rs +++ b/crates/migrator/src/migrations/m_2025_10_16/settings.rs @@ -37,6 +37,9 @@ fn restore_code_actions_on_format_inner(value: &mut Value, path: &[&str]) -> Res } else { vec![formatter.clone()] }; + if formatter_array.is_empty() { + return Ok(()); + } let mut code_action_formatters = Vec::new(); for formatter in formatter_array { let Some(code_action) = formatter.get("code_action") else { diff --git a/crates/migrator/src/migrator.rs b/crates/migrator/src/migrator.rs index e5f0c584c407284aa175a3ac33f3c9a9e01c1365..1591f039d7f1118877a84214d8340e834e0cac41 100644 --- a/crates/migrator/src/migrator.rs +++ b/crates/migrator/src/migrator.rs @@ -2090,6 +2090,21 @@ mod tests { .unindent(), ), ); + + assert_migrate_settings_with_migrations( + &[MigrationType::Json( + migrations::m_2025_10_16::restore_code_actions_on_format, + )], + &r#"{ + "formatter": [], + "code_actions_on_format": { + "bar": true, + "baz": false + } + }"# + .unindent(), + None, + ); } #[test]