Revert "settings: Remove auxiliary Content types where possible (#16744)" (#17768)

This breaks setting `{"scrollbar": {"show":"never"}}`
Release Notes:

- N/A
This commit is contained in:
Conrad Irwin 2024-09-12 14:46:08 -04:00 committed by GitHub
parent 3b37db4140
commit 4d26f83d23
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
49 changed files with 686 additions and 833 deletions

View file

@ -132,7 +132,7 @@ mod test {
let mut custom_digraphs = HashMap::default();
custom_digraphs.insert("|-".into(), "".into());
custom_digraphs.insert(":)".into(), "👨‍💻".into());
s.custom_digraphs = custom_digraphs;
s.custom_digraphs = Some(custom_digraphs);
});
});

View file

@ -1184,7 +1184,7 @@ 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_multiline_find = true;
s.use_multiline_find = Some(true);
});
});
@ -1226,7 +1226,7 @@ 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_multiline_find = true;
s.use_multiline_find = Some(true);
});
});
@ -1268,7 +1268,7 @@ 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_smartcase_find = true;
s.use_smartcase_find = Some(true);
});
});

View file

@ -291,7 +291,7 @@ mod test {
cx.update_global(|store: &mut SettingsStore, cx| {
store.update_user_settings::<VimSettings>(cx, |s| {
s.use_system_clipboard = UseSystemClipboard::Never
s.use_system_clipboard = Some(UseSystemClipboard::Never)
});
});
@ -327,7 +327,7 @@ mod test {
cx.update_global(|store: &mut SettingsStore, cx| {
store.update_user_settings::<VimSettings>(cx, |s| {
s.use_system_clipboard = UseSystemClipboard::OnYank
s.use_system_clipboard = Some(UseSystemClipboard::OnYank)
});
});
@ -584,7 +584,7 @@ mod test {
cx.update_global(|store: &mut SettingsStore, cx| {
store.update_user_settings::<VimSettings>(cx, |s| {
s.use_system_clipboard = UseSystemClipboard::Never
s.use_system_clipboard = Some(UseSystemClipboard::Never)
});
});
@ -630,7 +630,7 @@ mod test {
cx.update_global(|store: &mut SettingsStore, cx| {
store.update_user_settings::<VimSettings>(cx, |s| {
s.use_system_clipboard = UseSystemClipboard::Never
s.use_system_clipboard = Some(UseSystemClipboard::Never)
});
});
@ -659,7 +659,7 @@ mod test {
cx.update_global(|store: &mut SettingsStore, cx| {
store.update_user_settings::<VimSettings>(cx, |s| {
s.use_system_clipboard = UseSystemClipboard::Never
s.use_system_clipboard = Some(UseSystemClipboard::Never)
});
});
@ -707,7 +707,7 @@ mod test {
cx.update_global(|store: &mut SettingsStore, cx| {
store.update_user_settings::<VimSettings>(cx, |s| {
s.use_system_clipboard = UseSystemClipboard::Never
s.use_system_clipboard = Some(UseSystemClipboard::Never)
});
});

View file

@ -294,7 +294,7 @@ mod test {
cx.update_global(|store: &mut SettingsStore, cx| {
store.update_user_settings::<EditorSettings>(cx, |s| {
s.scroll_beyond_last_line = ScrollBeyondLastLine::Off
s.scroll_beyond_last_line = Some(ScrollBeyondLastLine::Off)
});
});

View file

@ -542,7 +542,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 = false);
store.update_user_settings::<EditorSettings>(cx, |s| s.search_wrap = Some(false));
});
cx.set_state("ˇhi\nhigh\nhi\n", Mode::Normal);
@ -655,7 +655,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 = false);
store.update_user_settings::<EditorSettings>(cx, |s| s.search_wrap = Some(false));
});
cx.set_state("aa\nbˇb\ncc\ncc\ncc\n", Mode::Normal);
cx.simulate_keystrokes("/ c c enter");

View file

@ -1300,7 +1300,7 @@ async fn test_command_alias(cx: &mut gpui::TestAppContext) {
store.update_user_settings::<WorkspaceSettings>(cx, |s| {
let mut aliases = HashMap::default();
aliases.insert("Q".to_string(), "upper".to_string());
s.command_aliases = aliases
s.command_aliases = Some(aliases)
});
});

View file

@ -57,7 +57,7 @@ impl VimTestContext {
pub fn new_with_lsp(mut cx: EditorLspTestContext, enabled: bool) -> VimTestContext {
cx.update(|cx| {
SettingsStore::update_global(cx, |store, cx| {
store.update_user_settings::<VimModeSetting>(cx, |s| *s = VimModeSetting(enabled));
store.update_user_settings::<VimModeSetting>(cx, |s| *s = Some(enabled));
});
settings::KeymapFile::load_asset("keymaps/default-macos.json", cx).unwrap();
if enabled {
@ -105,7 +105,7 @@ impl VimTestContext {
pub fn enable_vim(&mut self) {
self.cx.update(|cx| {
SettingsStore::update_global(cx, |store, cx| {
store.update_user_settings::<VimModeSetting>(cx, |s| *s = VimModeSetting(true));
store.update_user_settings::<VimModeSetting>(cx, |s| *s = Some(true));
});
})
}
@ -113,7 +113,7 @@ impl VimTestContext {
pub fn disable_vim(&mut self) {
self.cx.update(|cx| {
SettingsStore::update_global(cx, |store, cx| {
store.update_user_settings::<VimModeSetting>(cx, |s| *s = VimModeSetting(false));
store.update_user_settings::<VimModeSetting>(cx, |s| *s = Some(false));
});
})
}

View file

@ -46,8 +46,6 @@ use crate::state::ReplayableAction;
/// Whether or not to enable Vim mode.
///
/// Default: false
#[derive(Copy, Clone, Default, Deserialize, Serialize, JsonSchema)]
#[serde(default, transparent)]
pub struct VimModeSetting(pub bool);
/// An Action to Switch between modes
@ -101,7 +99,7 @@ pub fn init(cx: &mut AppContext) {
let fs = workspace.app_state().fs.clone();
let currently_enabled = Vim::enabled(cx);
update_settings_file::<VimModeSetting>(fs, cx, move |setting, _| {
*setting = VimModeSetting(!currently_enabled);
*setting = Some(!currently_enabled)
})
});
@ -1070,10 +1068,12 @@ impl Vim {
impl Settings for VimModeSetting {
const KEY: Option<&'static str> = Some("vim_mode");
type FileContent = Self;
type FileContent = Option<bool>;
fn load(sources: SettingsSources<Self::FileContent>, _: &mut AppContext) -> Result<Self> {
Ok(sources.user.copied().unwrap_or(*sources.default))
Ok(Self(sources.user.copied().flatten().unwrap_or(
sources.default.ok_or_else(Self::missing_default)?,
)))
}
}
@ -1089,8 +1089,7 @@ pub enum UseSystemClipboard {
OnYank,
}
#[derive(Clone, Serialize, Deserialize, JsonSchema)]
#[serde(default)]
#[derive(Deserialize)]
struct VimSettings {
pub toggle_relative_line_numbers: bool,
pub use_system_clipboard: UseSystemClipboard,
@ -1099,22 +1098,19 @@ struct VimSettings {
pub custom_digraphs: HashMap<String, Arc<str>>,
}
impl Default for VimSettings {
fn default() -> Self {
Self {
toggle_relative_line_numbers: false,
use_system_clipboard: UseSystemClipboard::Always,
use_multiline_find: false,
use_smartcase_find: false,
custom_digraphs: Default::default(),
}
}
#[derive(Clone, Default, Serialize, Deserialize, JsonSchema)]
struct VimSettingsContent {
pub toggle_relative_line_numbers: Option<bool>,
pub use_system_clipboard: Option<UseSystemClipboard>,
pub use_multiline_find: Option<bool>,
pub use_smartcase_find: Option<bool>,
pub custom_digraphs: Option<HashMap<String, Arc<str>>>,
}
impl Settings for VimSettings {
const KEY: Option<&'static str> = Some("vim");
type FileContent = Self;
type FileContent = VimSettingsContent;
fn load(sources: SettingsSources<Self::FileContent>, _: &mut AppContext) -> Result<Self> {
sources.json_merge()