Detailed changes
@@ -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::<EditorSettings>(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::<EditorSettings>(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::<EditorSettings>(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::<ProjectSettings>(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::<ProjectSettings>(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;
});
});
});
@@ -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::<SettingsStore, _>(|store, cx| {
- store.update_user_settings::<WorktreeSettings>(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()]);
});
});
});
@@ -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::<AllLanguageSettings>(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::<AllLanguageSettings>(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::<AllLanguageSettings>(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()
});
});
});
@@ -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::<AllLanguageSettings>(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::<AllLanguageSettings>(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::<AllLanguageSettings>(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()
});
});
});
@@ -910,8 +910,10 @@ async fn open_disabled_globs_setting_in_editor(
let settings = cx.global::<SettingsStore>();
// Ensure that we always have "edit_predictions { "disabled_globs": [] }"
- let edits = settings.edits_for_update::<AllLanguageSettings>(&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<dyn Fs>, mode: EditPredictionsMode, cx: &
edit_predictions.mode = mode;
} else {
settings.project.all_languages.edit_predictions =
- Some(language_settings::EditPredictionSettingsContent {
+ Some(settings::EditPredictionSettingsContent {
mode,
..Default::default()
});
@@ -340,7 +340,7 @@ pub fn init(cx: &mut App) -> Arc<AgentAppState> {
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);
@@ -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;
@@ -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::<EditorSettings>(cx, |settings| {
- settings.search = Some(search_settings);
+ store.update_user_settings(cx, |settings| {
+ settings.editor.search = Some(search_settings);
});
});
});
@@ -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::<VimSettings>(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);
});
});