From b66b5850ec9464c8ecdb3259a722ec256e57af46 Mon Sep 17 00:00:00 2001 From: Conrad Irwin Date: Wed, 17 Sep 2025 13:39:38 -0600 Subject: [PATCH] WIP --- crates/collab/src/tests/editor_tests.rs | 32 ++++++++--------- crates/collab/src/tests/following_tests.rs | 6 ++-- crates/collab/src/tests/integration_tests.rs | 36 +++++++++---------- .../remote_editing_collaboration_tests.rs | 33 +++++++++-------- .../src/edit_prediction_button.rs | 10 +++--- crates/eval/src/eval.rs | 2 +- .../src/outline_panel_settings.rs | 2 +- crates/search/src/buffer_search.rs | 4 +-- crates/vim/src/digraph.rs | 4 +-- 9 files changed, 62 insertions(+), 67 deletions(-) diff --git a/crates/collab/src/tests/editor_tests.rs b/crates/collab/src/tests/editor_tests.rs index f2b7a1028b31200fe001e4fa152521e3cf5e44be..3fe2e797bf95b6ebf449f388ad48e53f215ca37b 100644 --- a/crates/collab/src/tests/editor_tests.rs +++ b/crates/collab/src/tests/editor_tests.rs @@ -4,7 +4,7 @@ use crate::{ }; use call::ActiveCall; use editor::{ - DocumentColorsRenderMode, Editor, EditorSettings, RowInfo, SelectionEffects, + DocumentColorsRenderMode, Editor, RowInfo, SelectionEffects, actions::{ ConfirmCodeAction, ConfirmCompletion, ConfirmRename, ContextMenuFirst, ExpandMacroRecursively, MoveToEnd, Redo, Rename, SelectAll, ToggleCodeActions, Undo, @@ -18,20 +18,16 @@ use fs::Fs; use futures::{SinkExt, StreamExt, channel::mpsc, lock::Mutex}; use gpui::{App, Rgba, TestAppContext, UpdateGlobal, VisualContext, VisualTestContext}; use indoc::indoc; -use language::{ - FakeLspAdapter, - language_settings::{AllLanguageSettings, InlayHintSettings}, -}; +use language::FakeLspAdapter; use lsp::LSP_REQUEST_TIMEOUT; use project::{ ProjectPath, SERVER_PROGRESS_THROTTLE_TIMEOUT, lsp_store::lsp_ext_command::{ExpandedMacro, LspExtExpandMacro}, - project_settings::{InlineBlameSettings, ProjectSettings}, }; use recent_projects::disconnected_overlay::DisconnectedOverlay; use rpc::RECEIVE_TIMEOUT; use serde_json::json; -use settings::SettingsStore; +use settings::{InlayHintSettings, InlineBlameSettings, SettingsStore}; use std::{ collections::BTreeSet, ops::{Deref as _, Range}, @@ -2422,8 +2418,8 @@ async fn test_lsp_document_color(cx_a: &mut TestAppContext, cx_b: &mut TestAppCo cx_b.update(|_, cx| { SettingsStore::update_global(cx, |store, cx| { - store.update_user_settings::(cx, |settings| { - settings.lsp_document_colors = Some(DocumentColorsRenderMode::Background); + store.update_user_settings(cx, |settings| { + settings.editor.lsp_document_colors = Some(DocumentColorsRenderMode::Background); }); }); }); @@ -2450,8 +2446,8 @@ async fn test_lsp_document_color(cx_a: &mut TestAppContext, cx_b: &mut TestAppCo cx_b.update(|_, cx| { SettingsStore::update_global(cx, |store, cx| { - store.update_user_settings::(cx, |settings| { - settings.lsp_document_colors = Some(DocumentColorsRenderMode::Inlay); + store.update_user_settings(cx, |settings| { + settings.editor.lsp_document_colors = Some(DocumentColorsRenderMode::Inlay); }); }); }); @@ -2478,8 +2474,8 @@ async fn test_lsp_document_color(cx_a: &mut TestAppContext, cx_b: &mut TestAppCo cx_a.update(|_, cx| { SettingsStore::update_global(cx, |store, cx| { - store.update_user_settings::(cx, |settings| { - settings.lsp_document_colors = Some(DocumentColorsRenderMode::Border); + store.update_user_settings(cx, |settings| { + settings.editor.lsp_document_colors = Some(DocumentColorsRenderMode::Border); }); }); }); @@ -3306,20 +3302,20 @@ async fn test_git_blame_is_forwarded(cx_a: &mut TestAppContext, cx_b: &mut TestA cx_b.update(editor::init); // Turn inline-blame-off by default so no state is transferred without us explicitly doing so let inline_blame_off_settings = Some(InlineBlameSettings { - enabled: false, + enabled: Some(false), ..Default::default() }); cx_a.update(|cx| { SettingsStore::update_global(cx, |store, cx| { - store.update_user_settings::(cx, |settings| { - settings.git.inline_blame = inline_blame_off_settings; + store.update_user_settings(cx, |settings| { + settings.git.get_or_insert_default().inline_blame = inline_blame_off_settings; }); }); }); cx_b.update(|cx| { SettingsStore::update_global(cx, |store, cx| { - store.update_user_settings::(cx, |settings| { - settings.git.inline_blame = inline_blame_off_settings; + store.update_user_settings(cx, |settings| { + settings.git.get_or_insert_default().inline_blame = inline_blame_off_settings; }); }); }); diff --git a/crates/collab/src/tests/following_tests.rs b/crates/collab/src/tests/following_tests.rs index 0a9a69bfca9cdda3fc446ac48e9c63da5e75fe28..e6bab12934d9c262cbba378e0d2a94143e0a7602 100644 --- a/crates/collab/src/tests/following_tests.rs +++ b/crates/collab/src/tests/following_tests.rs @@ -12,7 +12,6 @@ use gpui::{ VisualContext, VisualTestContext, point, }; use language::Capability; -use project::WorktreeSettings; use rpc::proto::PeerId; use serde_json::json; use settings::SettingsStore; @@ -1710,8 +1709,9 @@ async fn test_following_into_excluded_file( for cx in [&mut cx_a, &mut cx_b] { cx.update(|cx| { cx.update_global::(|store, cx| { - store.update_user_settings::(cx, |settings| { - settings.file_scan_exclusions = Some(vec!["**/.git".to_string()]); + store.update_user_settings(cx, |settings| { + settings.project.worktree.file_scan_exclusions = + Some(vec!["**/.git".to_string()]); }); }); }); diff --git a/crates/collab/src/tests/integration_tests.rs b/crates/collab/src/tests/integration_tests.rs index 646dbfbd1575756e6955c0d60ae5af64a2760328..d2146ec433cce59ed1d0c32d49c28c7efcaea5aa 100644 --- a/crates/collab/src/tests/integration_tests.rs +++ b/crates/collab/src/tests/integration_tests.rs @@ -22,9 +22,7 @@ use gpui::{ use language::{ Diagnostic, DiagnosticEntry, DiagnosticSourceKind, FakeLspAdapter, Language, LanguageConfig, LanguageMatcher, LineEnding, OffsetRangeExt, Point, Rope, - language_settings::{ - AllLanguageSettings, Formatter, FormatterList, PrettierSettings, SelectedFormatter, - }, + language_settings::{Formatter, FormatterList, SelectedFormatter}, tree_sitter_rust, tree_sitter_typescript, }; use lsp::{LanguageServerId, OneOf}; @@ -38,7 +36,7 @@ use project::{ use prompt_store::PromptBuilder; use rand::prelude::*; use serde_json::json; -use settings::SettingsStore; +use settings::{PrettierSettingsContent, SettingsStore}; use std::{ cell::{Cell, RefCell}, env, future, mem, @@ -4598,15 +4596,15 @@ async fn test_formatting_buffer( // host's configuration is honored as opposed to using the guest's settings. cx_a.update(|cx| { SettingsStore::update_global(cx, |store, cx| { - store.update_user_settings::(cx, |file| { - file.defaults.formatter = Some(SelectedFormatter::List(FormatterList::Single( - Formatter::External { + store.update_user_settings(cx, |file| { + file.project.all_languages.defaults.formatter = Some(SelectedFormatter::List( + FormatterList::Single(Formatter::External { command: "awk".into(), arguments: Some( vec!["{sub(/two/,\"{buffer_path}\")}1".to_string()].into(), ), - }, - ))); + }), + )); }); }); }); @@ -4694,24 +4692,24 @@ async fn test_prettier_formatting_buffer( cx_a.update(|cx| { SettingsStore::update_global(cx, |store, cx| { - store.update_user_settings::(cx, |file| { - file.defaults.formatter = Some(SelectedFormatter::Auto); - file.defaults.prettier = Some(PrettierSettings { + store.update_user_settings(cx, |file| { + file.project.all_languages.defaults.formatter = Some(SelectedFormatter::Auto); + file.project.all_languages.defaults.prettier = Some(PrettierSettingsContent { allowed: true, - ..PrettierSettings::default() + ..Default::default() }); }); }); }); cx_b.update(|cx| { SettingsStore::update_global(cx, |store, cx| { - store.update_user_settings::(cx, |file| { - file.defaults.formatter = Some(SelectedFormatter::List(FormatterList::Single( - Formatter::LanguageServer { name: None }, - ))); - file.defaults.prettier = Some(PrettierSettings { + store.update_user_settings(cx, |file| { + file.project.all_languages.defaults.formatter = Some(SelectedFormatter::List( + FormatterList::Single(Formatter::LanguageServer { name: None }), + )); + file.project.all_languages.defaults.prettier = Some(PrettierSettingsContent { allowed: true, - ..PrettierSettings::default() + ..Default::default() }); }); }); diff --git a/crates/collab/src/tests/remote_editing_collaboration_tests.rs b/crates/collab/src/tests/remote_editing_collaboration_tests.rs index 6b46459a59b16717d965b42c4e19820f6d1dc062..96e9a0fc03d11a218baac323a8f699ba408cc705 100644 --- a/crates/collab/src/tests/remote_editing_collaboration_tests.rs +++ b/crates/collab/src/tests/remote_editing_collaboration_tests.rs @@ -15,8 +15,7 @@ use http_client::BlockedHttpClient; use language::{ FakeLspAdapter, Language, LanguageConfig, LanguageMatcher, LanguageRegistry, language_settings::{ - AllLanguageSettings, Formatter, FormatterList, PrettierSettings, SelectedFormatter, - language_settings, + Formatter, FormatterList, PrettierSettings, SelectedFormatter, language_settings, }, tree_sitter_typescript, }; @@ -30,7 +29,7 @@ use remote::RemoteClient; use remote_server::{HeadlessAppState, HeadlessProject}; use rpc::proto; use serde_json::json; -use settings::SettingsStore; +use settings::{PrettierSettingsContent, SettingsStore}; use std::{ path::Path, sync::{Arc, atomic::AtomicUsize}, @@ -499,24 +498,24 @@ async fn test_ssh_collaboration_formatting_with_prettier( cx_a.update(|cx| { SettingsStore::update_global(cx, |store, cx| { - store.update_user_settings::(cx, |file| { - file.defaults.formatter = Some(SelectedFormatter::Auto); - file.defaults.prettier = Some(PrettierSettings { + store.update_user_settings(cx, |file| { + file.project.all_languages.defaults.formatter = Some(SelectedFormatter::Auto); + file.project.all_languages.defaults.prettier = Some(PrettierSettingsContent { allowed: true, - ..PrettierSettings::default() + ..Default::default() }); }); }); }); cx_b.update(|cx| { SettingsStore::update_global(cx, |store, cx| { - store.update_user_settings::(cx, |file| { - file.defaults.formatter = Some(SelectedFormatter::List(FormatterList::Single( - Formatter::LanguageServer { name: None }, - ))); - file.defaults.prettier = Some(PrettierSettings { + store.update_user_settings(cx, |file| { + file.project.all_languages.defaults.formatter = Some(SelectedFormatter::List( + FormatterList::Single(Formatter::LanguageServer { name: None }), + )); + file.project.all_languages.defaults.prettier = Some(PrettierSettingsContent { allowed: true, - ..PrettierSettings::default() + ..Default::default() }); }); }); @@ -556,11 +555,11 @@ async fn test_ssh_collaboration_formatting_with_prettier( cx_a.update(|cx| { SettingsStore::update_global(cx, |store, cx| { - store.update_user_settings::(cx, |file| { - file.defaults.formatter = Some(SelectedFormatter::Auto); - file.defaults.prettier = Some(PrettierSettings { + store.update_user_settings(cx, |file| { + file.project.all_languages.defaults.formatter = Some(SelectedFormatter::Auto); + file.project.all_languages.defaults.prettier = Some(PrettierSettingsContent { allowed: true, - ..PrettierSettings::default() + ..Default::default() }); }); }); diff --git a/crates/edit_prediction_button/src/edit_prediction_button.rs b/crates/edit_prediction_button/src/edit_prediction_button.rs index fb49b0c7dd3b14950361256eac53d0b3821a2cda..55e0612ef2f6f68e69124641aebcc685493a84be 100644 --- a/crates/edit_prediction_button/src/edit_prediction_button.rs +++ b/crates/edit_prediction_button/src/edit_prediction_button.rs @@ -910,8 +910,10 @@ async fn open_disabled_globs_setting_in_editor( let settings = cx.global::(); // Ensure that we always have "edit_predictions { "disabled_globs": [] }" - let edits = settings.edits_for_update::(&text, |file| { - file.edit_predictions + let edits = settings.edits_for_update(&text, |file| { + file.project + .all_languages + .edit_predictions .get_or_insert_with(Default::default) .disabled_globs .get_or_insert_with(Vec::new); @@ -971,7 +973,7 @@ fn toggle_show_edit_predictions_for_language( .all_languages .languages .0 - .entry(language.name()) + .entry(language.name().0) .or_default() .show_edit_predictions = Some(!show_edit_predictions); }); @@ -999,7 +1001,7 @@ fn toggle_edit_prediction_mode(fs: Arc, mode: EditPredictionsMode, cx: & edit_predictions.mode = mode; } else { settings.project.all_languages.edit_predictions = - Some(language_settings::EditPredictionSettingsContent { + Some(settings::EditPredictionSettingsContent { mode, ..Default::default() }); diff --git a/crates/eval/src/eval.rs b/crates/eval/src/eval.rs index 17b9486a9f5cbbc8f0cafe86f55a6ac00d1c3023..40d8c14f4f7ddc441f31581951ee4d6c26376a04 100644 --- a/crates/eval/src/eval.rs +++ b/crates/eval/src/eval.rs @@ -340,7 +340,7 @@ pub fn init(cx: &mut App) -> Arc { release_channel::init(app_version, cx); gpui_tokio::init(cx); - let mut settings_store = SettingsStore::new(cx, &settings::default_settings()); + let settings_store = SettingsStore::new(cx, &settings::default_settings()); cx.set_global(settings_store); client::init_settings(cx); diff --git a/crates/outline_panel/src/outline_panel_settings.rs b/crates/outline_panel/src/outline_panel_settings.rs index 5505c6a49f714173991166467afd9459b9a5ae22..638bf76fcaf258caef149b9283ec49e28032cd69 100644 --- a/crates/outline_panel/src/outline_panel_settings.rs +++ b/crates/outline_panel/src/outline_panel_settings.rs @@ -1,6 +1,6 @@ use editor::EditorSettings; use gpui::{App, Pixels}; -pub use settings::{LeftRightDockPosition, Settings, ShowIndentGuides}; +pub use settings::{DockSide, Settings, ShowIndentGuides}; use ui::scrollbars::{ScrollbarVisibility, ShowScrollbar}; use util::MergeFrom; diff --git a/crates/search/src/buffer_search.rs b/crates/search/src/buffer_search.rs index 86e5ab67c47cae32db3bc22a06c6fd360c4b0141..2f046808788a5ccc3af6eed5b341884530ecbc89 100644 --- a/crates/search/src/buffer_search.rs +++ b/crates/search/src/buffer_search.rs @@ -2866,8 +2866,8 @@ mod tests { fn update_search_settings(search_settings: SearchSettings, cx: &mut TestAppContext) { cx.update(|cx| { SettingsStore::update_global(cx, |store, cx| { - store.update_user_settings::(cx, |settings| { - settings.search = Some(search_settings); + store.update_user_settings(cx, |settings| { + settings.editor.search = Some(search_settings); }); }); }); diff --git a/crates/vim/src/digraph.rs b/crates/vim/src/digraph.rs index 796dad94c0329ed56c2e1c39f1cc2e2fc102fe4d..484b9f915e79f726ff346e8f216af420eb6cde45 100644 --- a/crates/vim/src/digraph.rs +++ b/crates/vim/src/digraph.rs @@ -294,11 +294,11 @@ mod test { let mut cx: VimTestContext = VimTestContext::new(cx, true).await; cx.update_global(|store: &mut SettingsStore, cx| { - store.update_user_settings::(cx, |s| { + store.update_user_settings(cx, |s| { let mut custom_digraphs = HashMap::default(); custom_digraphs.insert("|-".into(), "⊢".into()); custom_digraphs.insert(":)".into(), "👨‍💻".into()); - s.custom_digraphs = Some(custom_digraphs); + s.vim.get_or_insert_default().custom_digraphs = Some(custom_digraphs); }); });