From a46eb6737c376577b4c6f8b175f399cf9cafb284 Mon Sep 17 00:00:00 2001 From: Mikayla Maki Date: Wed, 3 Sep 2025 21:55:09 -0700 Subject: [PATCH] make it remove old paths --- crates/language_selector/src/language_selector.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/crates/language_selector/src/language_selector.rs b/crates/language_selector/src/language_selector.rs index dd88ed0ee9f2a2e40e34b08b09bd63ba4064bb12..e67b5ed3b62c3a9f53026527e212a1f8a42a9fdb 100644 --- a/crates/language_selector/src/language_selector.rs +++ b/crates/language_selector/src/language_selector.rs @@ -213,16 +213,25 @@ impl PickerDelegate for LanguageSelectorDelegate { .project_path(cx) .and_then(|path| project.absolute_path(&path, cx)); if let Some(absolute_path) = absolute_path { + let absolute_path = absolute_path.to_string_lossy().to_string(); if let Some(fs) = ::try_global(cx) { settings::update_settings_file::( fs, cx, move |language_settings, _| { + for paths in language_settings.file_types.values_mut() { + if let Some(ix) = + paths.iter().position(|path| path == &absolute_path) + { + paths.swap_remove(ix); + } + } + language_settings .file_types .entry(Arc::from(language_name.as_str())) .or_default() - .push(absolute_path.to_string_lossy().to_string()); + .push(absolute_path); }, ); }