From 419f9a865ccdace816fa10d1778e19c69963c7c3 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 0adc4d14276e8d49d44af5cc29daff13657e3b8b..6b2aad76c85aa4d7a7dd107ca3301a9c44f351c7 100644 --- a/crates/migrator/src/migrator.rs +++ b/crates/migrator/src/migrator.rs @@ -2018,5 +2018,20 @@ 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, + ); } }