From ec5d8f8c7cfc59a856172bb29f1726031018eeb3 Mon Sep 17 00:00:00 2001 From: Mikayla Maki Date: Thu, 8 Sep 2022 16:27:46 -0700 Subject: [PATCH] Removed github username check, added settings file --- crates/settings/src/settings.rs | 53 +++++++++--------- crates/theme_selector/src/theme_selector.rs | 6 ++- crates/zed/src/main.rs | 59 +-------------------- crates/zed/src/settings_file.rs | 15 ++---- crates/zed/src/zed.rs | 5 +- 5 files changed, 40 insertions(+), 98 deletions(-) diff --git a/crates/settings/src/settings.rs b/crates/settings/src/settings.rs index c0eb858e48..1095f289eb 100644 --- a/crates/settings/src/settings.rs +++ b/crates/settings/src/settings.rs @@ -37,7 +37,7 @@ pub struct Settings { pub language_overrides: HashMap, EditorSettings>, pub lsp: HashMap, LspSettings>, pub theme: Arc, - pub internal: bool, + pub staff_mode: bool, } #[derive(Copy, Clone, Debug, Default, Deserialize, JsonSchema)] @@ -178,6 +178,8 @@ pub struct SettingsFileContent { pub lsp: HashMap, LspSettings>, #[serde(default)] pub theme: Option, + #[serde(default)] + pub staff_mode: Option, } #[derive(Clone, Debug, Deserialize, PartialEq, Eq, JsonSchema)] @@ -229,7 +231,8 @@ impl Settings { language_overrides: Default::default(), lsp: defaults.lsp.clone(), theme: themes.get(&defaults.theme.unwrap()).unwrap(), - internal: false, + + staff_mode: false, } } @@ -238,7 +241,6 @@ impl Settings { data: SettingsFileContent, theme_registry: &ThemeRegistry, font_cache: &FontCache, - internal: bool, ) { if let Some(value) = &data.buffer_font_family { if let Some(id) = font_cache.load_family(&[value]).log_err() { @@ -265,7 +267,7 @@ impl Settings { merge(&mut self.vim_mode, data.vim_mode); merge(&mut self.autosave, data.autosave); merge(&mut self.experiments, data.experiments); - + merge(&mut self.staff_mode, data.staff_mode); // Ensure terminal font is loaded, so we can request it in terminal_element layout if let Some(terminal_font) = &data.terminal.font_family { font_cache.load_family(&[terminal_font]).log_err(); @@ -276,7 +278,6 @@ impl Settings { self.terminal_overrides = data.terminal; self.language_overrides = data.languages; self.lsp = data.lsp; - self.internal = internal } pub fn with_language_defaults( @@ -351,7 +352,7 @@ impl Settings { lsp: Default::default(), projects_online_by_default: true, theme: gpui::fonts::with_font_cache(cx.font_cache().clone(), Default::default), - internal: false, + staff_mode: false, } } @@ -407,27 +408,25 @@ pub fn settings_file_json_schema( ("ThemeName".into(), theme_name_schema.into()), ("Languages".into(), languages_object_schema.into()), ]); - root_schema - .schema - .object - .as_mut() - .unwrap() - .properties - .extend([ - ( - "theme".to_owned(), - Schema::new_ref("#/definitions/ThemeName".into()), - ), - ( - "languages".to_owned(), - Schema::new_ref("#/definitions/Languages".into()), - ), - // For backward compatibility - ( - "language_overrides".to_owned(), - Schema::new_ref("#/definitions/Languages".into()), - ), - ]); + let root_schema_object = &mut root_schema.schema.object.as_mut().unwrap(); + + // Avoid automcomplete for non-user facing settings + root_schema_object.properties.remove("staff_mode"); + root_schema_object.properties.extend([ + ( + "theme".to_owned(), + Schema::new_ref("#/definitions/ThemeName".into()), + ), + ( + "languages".to_owned(), + Schema::new_ref("#/definitions/Languages".into()), + ), + // For backward compatibility + ( + "language_overrides".to_owned(), + Schema::new_ref("#/definitions/Languages".into()), + ), + ]); serde_json::to_value(root_schema).unwrap() } diff --git a/crates/theme_selector/src/theme_selector.rs b/crates/theme_selector/src/theme_selector.rs index 32a7736659..59b0bc7e6a 100644 --- a/crates/theme_selector/src/theme_selector.rs +++ b/crates/theme_selector/src/theme_selector.rs @@ -40,10 +40,14 @@ impl ThemeSelector { let handle = cx.weak_handle(); let picker = cx.add_view(|cx| Picker::new(handle, cx)); let settings = cx.global::(); + let original_theme = settings.theme.clone(); let mut theme_names = registry - .list(settings.internal, settings.experiments.experimental_themes) + .list( + settings.staff_mode, + settings.experiments.experimental_themes, + ) .collect::>(); theme_names.sort_unstable_by(|a, b| { a.is_light diff --git a/crates/zed/src/main.rs b/crates/zed/src/main.rs index e3ae35bc08..fc3616d592 100644 --- a/crates/zed/src/main.rs +++ b/crates/zed/src/main.rs @@ -21,10 +21,9 @@ use futures::{ }; use gpui::{executor::Background, App, AssetSource, AsyncAppContext, Task}; use isahc::{config::Configurable, AsyncBody, Request}; -use language::{LanguageRegistry, Rope}; +use language::LanguageRegistry; use log::LevelFilter; use parking_lot::Mutex; -use postage::stream::Stream; use project::{Fs, ProjectStore}; use serde_json::json; use settings::{self, KeymapFileContent, Settings, SettingsFileContent}; @@ -62,28 +61,6 @@ fn main() { let fs = Arc::new(RealFs); - let internal = smol::block_on({ - let fs = fs.clone(); - - async move { - fs.load(&*zed::paths::LAST_USERNAME) - .await - .map(|github| { - &github == "as-cii" - || &github == "ForLoveOfCats" - || &github == "gibusu" - || &github == "iamnbutler" - || &github == "JosephTLyons" - || &github == "Kethku" - || &github == "maxbrunsfeld" - || &github == "mikayla-maki" - || &github == "nathansobo" - || &github == "slightknack" - }) - .unwrap_or(false) - } - }); - let themes = ThemeRegistry::new(Assets, app.font_cache()); let default_settings = Settings::defaults(Assets, &app.font_cache(), &themes); @@ -119,42 +96,10 @@ fn main() { .spawn(languages::init(languages.clone(), cx.background().clone())); let user_store = cx.add_model(|cx| UserStore::new(client.clone(), http.clone(), cx)); - // Watch for the current user so we can set the internal flag - let mut current_user = user_store.read(cx).watch_current_user(); - cx.background() - .spawn({ - let fs = fs.clone(); - async move { - while let Some(user) = current_user.recv().await { - // When the user logs out, `user` is None. - if user.is_none() { - continue; - } - - let user_name = user.unwrap().github_login.clone(); - - fs.save( - &*zed::paths::LAST_USERNAME, - &Rope::from(user_name.as_str()), - Default::default(), - ) - .await - .ok(); - } - } - }) - .detach(); - let (settings_file, keymap_file) = cx.background().block(config_files).unwrap(); //Setup settings global before binding actions - watch_settings_file( - default_settings, - settings_file, - themes.clone(), - internal, - cx, - ); + watch_settings_file(default_settings, settings_file, themes.clone(), cx); watch_keymap_file(keymap_file, cx); context_menu::init(cx); diff --git a/crates/zed/src/settings_file.rs b/crates/zed/src/settings_file.rs index 6d28efbcbc..14c9f63e95 100644 --- a/crates/zed/src/settings_file.rs +++ b/crates/zed/src/settings_file.rs @@ -60,19 +60,12 @@ pub fn watch_settings_file( defaults: Settings, mut file: WatchedJsonFile, theme_registry: Arc, - internal: bool, cx: &mut MutableAppContext, ) { - settings_updated( - &defaults, - file.0.borrow().clone(), - &theme_registry, - internal, - cx, - ); + settings_updated(&defaults, file.0.borrow().clone(), &theme_registry, cx); cx.spawn(|mut cx| async move { while let Some(content) = file.0.recv().await { - cx.update(|cx| settings_updated(&defaults, content, &theme_registry, internal, cx)); + cx.update(|cx| settings_updated(&defaults, content, &theme_registry, cx)); } }) .detach(); @@ -88,11 +81,10 @@ pub fn settings_updated( defaults: &Settings, content: SettingsFileContent, theme_registry: &Arc, - internal: bool, cx: &mut MutableAppContext, ) { let mut settings = defaults.clone(); - settings.set_user_settings(content, theme_registry, cx.font_cache(), internal); + settings.set_user_settings(content, theme_registry, cx.font_cache()); cx.set_global(settings); cx.refresh_windows(); } @@ -154,7 +146,6 @@ mod tests { default_settings.clone(), source, ThemeRegistry::new((), font_cache), - false, cx, ) }); diff --git a/crates/zed/src/zed.rs b/crates/zed/src/zed.rs index 18d0cfa76f..a8f10a1579 100644 --- a/crates/zed/src/zed.rs +++ b/crates/zed/src/zed.rs @@ -248,7 +248,10 @@ pub fn initialize_workspace( let theme_names = app_state .themes - .list(settings.internal, settings.experiments.experimental_themes) + .list( + settings.staff_mode, + settings.experiments.experimental_themes, + ) .map(|meta| meta.name) .collect(); let language_names = &languages::LANGUAGE_NAMES;