From bb75d87285eef314217e06b68822f66aef690160 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Mon, 17 Jun 2024 14:50:45 -0400 Subject: [PATCH] Remove `language_overrides` setting alias (#13164) This PR removes the `language_overrides` alias for the `languages` setting. I've seen a number of people run into issues where they have both `languages` and `language_overrides` in their settings and get confused when their settings don't seem to apply as expected. This is a breaking change, but I think it is a necessary one to prevent more users from running into issues. Release Notes: - Breaking Change: Removed the `language_overrides` alias for the `languages` setting. If you have settings under `language_overrides` they should get moved to `languages`. --- crates/language/src/language_settings.rs | 17 +++++----------- crates/settings/src/settings_store.rs | 25 +++--------------------- 2 files changed, 8 insertions(+), 34 deletions(-) diff --git a/crates/language/src/language_settings.rs b/crates/language/src/language_settings.rs index 0d90f38cfb35d62211e6f09aa28c6c8e083fc970..3718e8550a8a1fc74d0796ea360d723fa914a252 100644 --- a/crates/language/src/language_settings.rs +++ b/crates/language/src/language_settings.rs @@ -200,7 +200,7 @@ pub struct AllLanguageSettingsContent { #[serde(flatten)] pub defaults: LanguageSettingsContent, /// The settings for individual languages. - #[serde(default, alias = "language_overrides")] + #[serde(default)] pub languages: HashMap, LanguageSettingsContent>, /// Settings for associating file extensions and filenames /// with languages. @@ -754,17 +754,10 @@ impl settings::Settings for AllLanguageSettings { .as_mut() .unwrap() .properties - .extend([ - ( - "languages".to_owned(), - Schema::new_ref("#/definitions/Languages".into()), - ), - // For backward compatibility - ( - "language_overrides".to_owned(), - Schema::new_ref("#/definitions/Languages".into()), - ), - ]); + .extend([( + "languages".to_owned(), + Schema::new_ref("#/definitions/Languages".into()), + )]); root_schema } diff --git a/crates/settings/src/settings_store.rs b/crates/settings/src/settings_store.rs index 1384f8ddb60d51bc12dc3bf7dcbb919e3d338683..3d7e4cfe5bdbdae7b629055d3db675c6a9ecfad7 100644 --- a/crates/settings/src/settings_store.rs +++ b/crates/settings/src/settings_store.rs @@ -866,9 +866,6 @@ fn replace_value_in_json_text( tab_size: usize, new_value: &serde_json::Value, ) -> (Range, String) { - const LANGUAGE_OVERRIDES: &str = "language_overrides"; - const LANGUAGES: &str = "languages"; - lazy_static! { static ref PAIR_QUERY: tree_sitter::Query = tree_sitter::Query::new( &tree_sitter_json::language(), @@ -883,8 +880,6 @@ fn replace_value_in_json_text( let mut cursor = tree_sitter::QueryCursor::new(); - let has_language_overrides = text.contains(LANGUAGE_OVERRIDES); - let mut depth = 0; let mut last_value_range = 0..0; let mut first_key_start = None; @@ -914,13 +909,7 @@ fn replace_value_in_json_text( let found_key = text .get(key_range.clone()) - .map(|key_text| { - if key_path[depth] == LANGUAGES && has_language_overrides { - key_text == format!("\"{}\"", LANGUAGE_OVERRIDES) - } else { - key_text == format!("\"{}\"", key_path[depth]) - } - }) + .map(|key_text| key_text == format!("\"{}\"", key_path[depth])) .unwrap_or(false); if found_key { @@ -943,20 +932,12 @@ fn replace_value_in_json_text( (existing_value_range, new_val) } else { // We have key paths, construct the sub objects - let new_key = if has_language_overrides && key_path[depth] == LANGUAGES { - LANGUAGE_OVERRIDES - } else { - key_path[depth] - }; + let new_key = key_path[depth]; // We don't have the key, construct the nested objects let mut new_value = serde_json::to_value(new_value).unwrap(); for key in key_path[(depth + 1)..].iter().rev() { - if has_language_overrides && key == &LANGUAGES { - new_value = serde_json::json!({ LANGUAGE_OVERRIDES.to_string(): new_value }); - } else { - new_value = serde_json::json!({ key.to_string(): new_value }); - } + new_value = serde_json::json!({ key.to_string(): new_value }); } if let Some(first_key_start) = first_key_start {