Improved settings writing to be strongly typed and based on settings file content diffs

Co-Authored-By: kay@zed.dev
This commit is contained in:
Mikayla Maki 2022-10-12 17:05:23 -07:00
parent cbf31e6d27
commit dd1320e6d1
5 changed files with 206 additions and 150 deletions

View file

@ -4,7 +4,7 @@ use gpui::{
MutableAppContext, RenderContext, View, ViewContext, ViewHandle,
};
use picker::{Picker, PickerDelegate};
use settings::Settings;
use settings::{settings_file::SettingsFile, Settings};
use std::sync::Arc;
use theme::{Theme, ThemeMeta, ThemeRegistry};
use workspace::{AppState, Workspace};
@ -155,7 +155,9 @@ impl PickerDelegate for ThemeSelector {
self.selection_completed = true;
let theme_name = cx.global::<Settings>().theme.meta.name.clone();
settings::settings_file::write_setting("theme", theme_name, cx);
SettingsFile::update(cx, |settings_content| {
settings_content.theme = Some(theme_name);
});
cx.emit(Event::Dismissed);
}