Settings refactor (#38367)

Co-Authored-By: Ben K <ben@zed.dev>
Co-Authored-By: Anthony <anthony@zed.dev>
Co-Authored-By: Mikayla <mikayla@zed.dev>

Release Notes:

- settings: Major internal changes to settings. The primary user-facing
effect is that some settings which did not make sense in project
settings files are no-longer read from there. (For example the inline
blame settings)

---------

Co-authored-by: Ben Kunkle <ben@zed.dev>
Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
Co-authored-by: Anthony <anthony@zed.dev>
This commit is contained in:
Conrad Irwin
2025-09-18 16:47:23 +00:00
committed by GitHub
co-authored by Ben Kunkle Mikayla Maki Anthony
parent 0a9023bce0
commit fcdab160f9
219 changed files with 11697 additions and 11894 deletions
+18 -21
View File
@@ -311,17 +311,13 @@ impl Vim {
#[cfg(test)]
mod test {
use crate::{
UseSystemClipboard, VimSettings,
state::{Mode, Register},
test::{NeovimBackedTestContext, VimTestContext},
};
use gpui::ClipboardItem;
use indoc::indoc;
use language::{
LanguageName,
language_settings::{AllLanguageSettings, LanguageSettingsContent},
};
use settings::SettingsStore;
use language::{LanguageName, language_settings::LanguageSettingsContent};
use settings::{SettingsStore, UseSystemClipboard};
#[gpui::test]
async fn test_paste(cx: &mut gpui::TestAppContext) {
@@ -408,8 +404,8 @@ mod test {
let mut cx = VimTestContext::new(cx, true).await;
cx.update_global(|store: &mut SettingsStore, cx| {
store.update_user_settings::<VimSettings>(cx, |s| {
s.use_system_clipboard = Some(UseSystemClipboard::Never)
store.update_user_settings(cx, |s| {
s.vim.get_or_insert_default().use_system_clipboard = Some(UseSystemClipboard::Never)
});
});
@@ -444,8 +440,9 @@ mod test {
let mut cx = VimTestContext::new(cx, true).await;
cx.update_global(|store: &mut SettingsStore, cx| {
store.update_user_settings::<VimSettings>(cx, |s| {
s.use_system_clipboard = Some(UseSystemClipboard::OnYank)
store.update_user_settings(cx, |s| {
s.vim.get_or_insert_default().use_system_clipboard =
Some(UseSystemClipboard::OnYank)
});
});
@@ -709,9 +706,9 @@ mod test {
Mode::Normal,
);
cx.update_global(|store: &mut SettingsStore, cx| {
store.update_user_settings::<AllLanguageSettings>(cx, |settings| {
settings.languages.0.insert(
LanguageName::new("Rust"),
store.update_user_settings(cx, |settings| {
settings.project.all_languages.languages.0.insert(
LanguageName::new("Rust").0,
LanguageSettingsContent {
auto_indent_on_paste: Some(false),
..Default::default()
@@ -772,8 +769,8 @@ mod test {
let mut cx = NeovimBackedTestContext::new(cx).await;
cx.update_global(|store: &mut SettingsStore, cx| {
store.update_user_settings::<VimSettings>(cx, |s| {
s.use_system_clipboard = Some(UseSystemClipboard::Never)
store.update_user_settings(cx, |s| {
s.vim.get_or_insert_default().use_system_clipboard = Some(UseSystemClipboard::Never)
});
});
@@ -818,8 +815,8 @@ mod test {
let mut cx = NeovimBackedTestContext::new(cx).await;
cx.update_global(|store: &mut SettingsStore, cx| {
store.update_user_settings::<VimSettings>(cx, |s| {
s.use_system_clipboard = Some(UseSystemClipboard::Never)
store.update_user_settings(cx, |s| {
s.vim.get_or_insert_default().use_system_clipboard = Some(UseSystemClipboard::Never)
});
});
@@ -847,8 +844,8 @@ mod test {
let mut cx = NeovimBackedTestContext::new(cx).await;
cx.update_global(|store: &mut SettingsStore, cx| {
store.update_user_settings::<VimSettings>(cx, |s| {
s.use_system_clipboard = Some(UseSystemClipboard::Never)
store.update_user_settings(cx, |s| {
s.vim.get_or_insert_default().use_system_clipboard = Some(UseSystemClipboard::Never)
});
});
@@ -906,8 +903,8 @@ mod test {
let mut cx = VimTestContext::new(cx, true).await;
cx.update_global(|store: &mut SettingsStore, cx| {
store.update_user_settings::<VimSettings>(cx, |s| {
s.use_system_clipboard = Some(UseSystemClipboard::Never)
store.update_user_settings(cx, |s| {
s.vim.get_or_insert_default().use_system_clipboard = Some(UseSystemClipboard::Never)
});
});
+5 -10
View File
@@ -271,7 +271,7 @@ mod test {
state::Mode,
test::{NeovimBackedTestContext, VimTestContext},
};
use editor::{EditorSettings, ScrollBeyondLastLine};
use editor::ScrollBeyondLastLine;
use gpui::{AppContext as _, point, px, size};
use indoc::indoc;
use language::Point;
@@ -427,9 +427,7 @@ mod test {
// First test without vertical scroll margin
cx.neovim.set_option(&format!("scrolloff={}", 0)).await;
cx.update_global(|store: &mut SettingsStore, cx| {
store.update_user_settings::<EditorSettings>(cx, |s| {
s.vertical_scroll_margin = Some(0.0)
});
store.update_user_settings(cx, |s| s.editor.vertical_scroll_margin = Some(0.0));
});
let content = "ˇ".to_owned() + &sample_text(26, 2, 'a');
@@ -455,9 +453,7 @@ mod test {
cx.neovim.set_option(&format!("scrolloff={}", 3)).await;
cx.update_global(|store: &mut SettingsStore, cx| {
store.update_user_settings::<EditorSettings>(cx, |s| {
s.vertical_scroll_margin = Some(3.0)
});
store.update_user_settings(cx, |s| s.editor.vertical_scroll_margin = Some(3.0));
});
// scroll down: ctrl-f
@@ -485,9 +481,8 @@ mod test {
cx.set_shared_state(&content).await;
cx.update_global(|store: &mut SettingsStore, cx| {
store.update_user_settings::<EditorSettings>(cx, |s| {
s.scroll_beyond_last_line = Some(ScrollBeyondLastLine::Off);
// s.vertical_scroll_margin = Some(0.);
store.update_user_settings(cx, |s| {
s.editor.scroll_beyond_last_line = Some(ScrollBeyondLastLine::Off);
});
});
+2 -3
View File
@@ -645,7 +645,6 @@ mod test {
state::Mode,
test::{NeovimBackedTestContext, VimTestContext},
};
use editor::EditorSettings;
use editor::{DisplayPoint, display_map::DisplayRow};
use indoc::indoc;
@@ -694,7 +693,7 @@ mod test {
let mut cx = VimTestContext::new(cx, true).await;
cx.update_global(|store: &mut SettingsStore, cx| {
store.update_user_settings::<EditorSettings>(cx, |s| s.search_wrap = Some(false));
store.update_user_settings(cx, |s| s.editor.search_wrap = Some(false));
});
cx.set_state("ˇhi\nhigh\nhi\n", Mode::Normal);
@@ -815,7 +814,7 @@ mod test {
// check that searching with unable search wrap
cx.update_global(|store: &mut SettingsStore, cx| {
store.update_user_settings::<EditorSettings>(cx, |s| s.search_wrap = Some(false));
store.update_user_settings(cx, |s| s.editor.search_wrap = Some(false));
});
cx.set_state("aa\nbˇb\ncc\ncc\ncc\n", Mode::Normal);
cx.simulate_keystrokes("/ c c enter");