From a1889ad23665f1bf51ea1c7f6f09fe1cced892d4 Mon Sep 17 00:00:00 2001 From: Mikayla Maki Date: Thu, 8 Sep 2022 13:31:04 -0700 Subject: [PATCH 01/10] Added internal flag that checks the last logged in user --- crates/settings/src/settings.rs | 5 +++ crates/zed/src/main.rs | 58 +++++++++++++++++++++++++++++++-- crates/zed/src/paths.rs | 1 + crates/zed/src/settings_file.rs | 15 +++++++-- 4 files changed, 74 insertions(+), 5 deletions(-) diff --git a/crates/settings/src/settings.rs b/crates/settings/src/settings.rs index 895a0bc36341d31204a8dbb0eb0ea56bd8daf7b9..4e4bd8c8c349d0f33565113e6009fe577d897299 100644 --- a/crates/settings/src/settings.rs +++ b/crates/settings/src/settings.rs @@ -37,6 +37,7 @@ pub struct Settings { pub language_overrides: HashMap, EditorSettings>, pub lsp: HashMap, LspSettings>, pub theme: Arc, + pub internal: bool, } #[derive(Copy, Clone, Debug, Default, Deserialize, JsonSchema)] @@ -226,6 +227,7 @@ impl Settings { language_overrides: Default::default(), lsp: defaults.lsp.clone(), theme: themes.get(&defaults.theme.unwrap()).unwrap(), + internal: false, } } @@ -234,6 +236,7 @@ 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() { @@ -271,6 +274,7 @@ impl Settings { self.terminal_overrides = data.terminal; self.language_overrides = data.languages; self.lsp = data.lsp; + self.internal = internal } pub fn with_language_defaults( @@ -345,6 +349,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, } } diff --git a/crates/zed/src/main.rs b/crates/zed/src/main.rs index 141355742a5c8c960ef9371fd409f51e6f2fca7c..1db6656fb3967987219b4e74982e481067576ce9 100644 --- a/crates/zed/src/main.rs +++ b/crates/zed/src/main.rs @@ -21,9 +21,10 @@ use futures::{ }; use gpui::{executor::Background, App, AssetSource, AsyncAppContext, Task}; use isahc::{config::Configurable, AsyncBody, Request}; -use language::LanguageRegistry; +use language::{LanguageRegistry, Rope}; 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}; @@ -60,6 +61,30 @@ fn main() { load_embedded_fonts(&app); 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 == "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); @@ -95,10 +120,39 @@ 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 { + let user_name = user + .map(|user| user.github_login.clone()) + .unwrap_or_else(|| String::new()); + + 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(), cx); + watch_settings_file( + default_settings, + settings_file, + themes.clone(), + internal, + cx, + ); watch_keymap_file(keymap_file, cx); context_menu::init(cx); diff --git a/crates/zed/src/paths.rs b/crates/zed/src/paths.rs index 6643cc0fe6d40c7d91038e0634eab8b8f27de0cf..d6d99288c771f5260d5cd452fc97a04f15c87969 100644 --- a/crates/zed/src/paths.rs +++ b/crates/zed/src/paths.rs @@ -9,6 +9,7 @@ lazy_static::lazy_static! { pub static ref DB: PathBuf = DB_DIR.join("zed.db"); pub static ref SETTINGS: PathBuf = CONFIG_DIR.join("settings.json"); pub static ref KEYMAP: PathBuf = CONFIG_DIR.join("keymap.json"); + pub static ref LAST_USERNAME: PathBuf = CONFIG_DIR.join("last-username.txt"); pub static ref LOG: PathBuf = LOGS_DIR.join("Zed.log"); pub static ref OLD_LOG: PathBuf = LOGS_DIR.join("Zed.log.old"); } diff --git a/crates/zed/src/settings_file.rs b/crates/zed/src/settings_file.rs index 14c9f63e95e65e0d04d615403cf3e8796e95274f..6d28efbcbccbd837af7427f4b2431e4e6bce9431 100644 --- a/crates/zed/src/settings_file.rs +++ b/crates/zed/src/settings_file.rs @@ -60,12 +60,19 @@ 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, cx); + settings_updated( + &defaults, + file.0.borrow().clone(), + &theme_registry, + internal, + cx, + ); cx.spawn(|mut cx| async move { while let Some(content) = file.0.recv().await { - cx.update(|cx| settings_updated(&defaults, content, &theme_registry, cx)); + cx.update(|cx| settings_updated(&defaults, content, &theme_registry, internal, cx)); } }) .detach(); @@ -81,10 +88,11 @@ 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()); + settings.set_user_settings(content, theme_registry, cx.font_cache(), internal); cx.set_global(settings); cx.refresh_windows(); } @@ -146,6 +154,7 @@ mod tests { default_settings.clone(), source, ThemeRegistry::new((), font_cache), + false, cx, ) }); From bdf655d75716a14b35625f2e498c56da2050070f Mon Sep 17 00:00:00 2001 From: Mikayla Maki Date: Thu, 8 Sep 2022 14:11:48 -0700 Subject: [PATCH 02/10] Sorted themes correctly --- crates/theme/src/theme.rs | 8 +++++- crates/theme/src/theme_registry.rs | 8 +++--- crates/theme_selector/src/theme_selector.rs | 29 +++++++++++---------- crates/zed/src/zed.rs | 8 +++--- styles/src/styleTree/app.ts | 4 +++ 5 files changed, 34 insertions(+), 23 deletions(-) diff --git a/crates/theme/src/theme.rs b/crates/theme/src/theme.rs index ff13a233144c762d692e38cb2f5e08fb85810b7a..9d90b44402c41d0128af41669c4eb19ad9e827c9 100644 --- a/crates/theme/src/theme.rs +++ b/crates/theme/src/theme.rs @@ -15,7 +15,7 @@ pub use theme_registry::*; #[derive(Deserialize, Default)] pub struct Theme { #[serde(default)] - pub name: String, + pub meta: ThemeMeta, pub workspace: Workspace, pub context_menu: ContextMenu, pub chat_panel: ChatPanel, @@ -34,6 +34,12 @@ pub struct Theme { pub terminal: TerminalStyle, } +#[derive(Deserialize, Default, Clone)] +pub struct ThemeMeta { + pub name: String, + pub is_light: bool, +} + #[derive(Deserialize, Default)] pub struct Workspace { pub background: Color, diff --git a/crates/theme/src/theme_registry.rs b/crates/theme/src/theme_registry.rs index 219828b65083b08f1d7d0a105831acfc27bdf50a..af4b02a86a574f3da78edbd58eef0d2919ca6a59 100644 --- a/crates/theme/src/theme_registry.rs +++ b/crates/theme/src/theme_registry.rs @@ -1,4 +1,4 @@ -use crate::Theme; +use crate::{Theme, ThemeMeta}; use anyhow::{Context, Result}; use gpui::{fonts, AssetSource, FontCache}; use parking_lot::Mutex; @@ -22,11 +22,11 @@ impl ThemeRegistry { }) } - pub fn list(&self) -> impl Iterator { + pub fn list(&self) -> impl Iterator + '_ { self.assets.list("themes/").into_iter().filter_map(|path| { let filename = path.strip_prefix("themes/")?; let theme_name = filename.strip_suffix(".json")?; - Some(theme_name.to_string()) + self.get(theme_name).ok().map(|theme| theme.meta.clone()) }) } @@ -50,7 +50,7 @@ impl ThemeRegistry { serde_path_to_error::deserialize(&mut serde_json::Deserializer::from_slice(&theme_json)) })?; - theme.name = name.into(); + theme.meta.name = name.into(); let theme = Arc::new(theme); self.themes.lock().insert(name.to_string(), theme.clone()); Ok(theme) diff --git a/crates/theme_selector/src/theme_selector.rs b/crates/theme_selector/src/theme_selector.rs index d09e3b298dc0fa2b15982d056edafe7e790d4aca..76c426e29044c0008e28f91270674abced3d1d97 100644 --- a/crates/theme_selector/src/theme_selector.rs +++ b/crates/theme_selector/src/theme_selector.rs @@ -6,12 +6,12 @@ use gpui::{ use picker::{Picker, PickerDelegate}; use settings::Settings; use std::sync::Arc; -use theme::{Theme, ThemeRegistry}; +use theme::{Theme, ThemeMeta, ThemeRegistry}; use workspace::{AppState, Workspace}; pub struct ThemeSelector { registry: Arc, - theme_names: Vec, + theme_data: Vec, matches: Vec, original_theme: Arc, picker: ViewHandle>, @@ -42,29 +42,30 @@ impl ThemeSelector { let original_theme = cx.global::().theme.clone(); let mut theme_names = registry.list().collect::>(); theme_names.sort_unstable_by(|a, b| { - a.ends_with("dark") - .cmp(&b.ends_with("dark")) - .then_with(|| a.cmp(b)) + a.is_light.cmp(&b.is_light).reverse() + // a.ends_with("dark") + // .cmp(&b.ends_with("dark")) + // .then_with(|| a.cmp(b)) }); let matches = theme_names .iter() - .map(|name| StringMatch { + .map(|meta| StringMatch { candidate_id: 0, score: 0.0, positions: Default::default(), - string: name.clone(), + string: meta.name.clone(), }) .collect(); let mut this = Self { registry, - theme_names, + theme_data: theme_names, matches, picker, original_theme: original_theme.clone(), selected_index: 0, selection_completed: false, }; - this.select_if_matching(&original_theme.name); + this.select_if_matching(&original_theme.meta.name); this } @@ -82,7 +83,7 @@ impl ThemeSelector { #[cfg(debug_assertions)] pub fn reload(themes: Arc, cx: &mut MutableAppContext) { - let current_theme_name = cx.global::().theme.name.clone(); + let current_theme_name = cx.global::().theme.meta.name.clone(); themes.clear(); match themes.get(¤t_theme_name) { Ok(theme) => { @@ -165,13 +166,13 @@ impl PickerDelegate for ThemeSelector { fn update_matches(&mut self, query: String, cx: &mut ViewContext) -> gpui::Task<()> { let background = cx.background().clone(); let candidates = self - .theme_names + .theme_data .iter() .enumerate() - .map(|(id, name)| StringMatchCandidate { + .map(|(id, meta)| StringMatchCandidate { id, - char_bag: name.as_str().into(), - string: name.clone(), + char_bag: meta.name.as_str().into(), + string: meta.name.clone(), }) .collect::>(); diff --git a/crates/zed/src/zed.rs b/crates/zed/src/zed.rs index f64da9c1c89d340147ffa4f6d2196447e74dfe3f..cadca586da8772122bc90e6b848306bc083e3d24 100644 --- a/crates/zed/src/zed.rs +++ b/crates/zed/src/zed.rs @@ -244,7 +244,7 @@ pub fn initialize_workspace( cx.emit(workspace::Event::PaneAdded(workspace.active_pane().clone())); - let theme_names = app_state.themes.list().collect(); + let theme_names = app_state.themes.list().map(|meta| meta.name).collect(); let language_names = &languages::LANGUAGE_NAMES; workspace.project().update(cx, |project, cx| { @@ -1668,12 +1668,12 @@ mod tests { let settings = Settings::defaults(Assets, cx.font_cache(), &themes); let mut has_default_theme = false; - for theme_name in themes.list() { + for theme_name in themes.list().map(|meta| meta.name) { let theme = themes.get(&theme_name).unwrap(); - if theme.name == settings.theme.name { + if theme.meta.name == settings.theme.meta.name { has_default_theme = true; } - assert_eq!(theme.name, theme_name); + assert_eq!(theme.meta.name, theme_name); } assert!(has_default_theme); } diff --git a/styles/src/styleTree/app.ts b/styles/src/styleTree/app.ts index fe67cf701d2071206d8faed0bfe74a8a3412e909..1345d4e8554658ea9fe1686884f7b9e98b271db1 100644 --- a/styles/src/styleTree/app.ts +++ b/styles/src/styleTree/app.ts @@ -22,6 +22,10 @@ export const panel = { export default function app(theme: Theme): Object { return { + meta: { + name: theme.name, + isLight: theme.isLight + }, picker: picker(theme), workspace: workspace(theme), contextMenu: contextMenu(theme), From 3171a0c312a6f3ddcac6bd7eb1be8a2e84f3a610 Mon Sep 17 00:00:00 2001 From: Mikayla Maki Date: Thu, 8 Sep 2022 14:34:21 -0700 Subject: [PATCH 03/10] Updated theme compilation to use internal --- .../themes/internal/cave-internal-dark.json | 2283 +++++++++++++++++ .../themes/internal/cave-internal-light.json | 2283 +++++++++++++++++ styles/src/buildThemes.ts | 44 +- styles/src/themes.ts | 23 +- styles/src/themes/internal/cave-internal.ts | 28 + 5 files changed, 4637 insertions(+), 24 deletions(-) create mode 100644 assets/themes/internal/cave-internal-dark.json create mode 100644 assets/themes/internal/cave-internal-light.json create mode 100644 styles/src/themes/internal/cave-internal.ts diff --git a/assets/themes/internal/cave-internal-dark.json b/assets/themes/internal/cave-internal-dark.json new file mode 100644 index 0000000000000000000000000000000000000000..82e878218e4274ca39801fa095c0c55564ca9795 --- /dev/null +++ b/assets/themes/internal/cave-internal-dark.json @@ -0,0 +1,2283 @@ +{ + "meta": { + "name": "cave-internal-dark", + "is_light": false + }, + "picker": { + "background": "#222222", + "corner_radius": 8, + "padding": 8, + "item": { + "padding": { + "bottom": 4, + "left": 12, + "right": 12, + "top": 4 + }, + "corner_radius": 8, + "text": { + "family": "Zed Sans", + "color": "#888888", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#ffffff", + "weight": "bold", + "size": 14 + }, + "active": { + "background": "#2b2b2b", + "text": { + "family": "Zed Sans", + "color": "#000000", + "size": 14 + } + }, + "hover": { + "background": "#262626" + } + }, + "border": { + "color": "#111111", + "width": 1 + }, + "empty": { + "text": { + "family": "Zed Sans", + "color": "#555555", + "size": 14 + }, + "padding": { + "bottom": 4, + "left": 12, + "right": 12, + "top": 8 + } + }, + "input_editor": { + "background": "#111111", + "corner_radius": 8, + "placeholder_text": { + "family": "Zed Sans", + "color": "#444444", + "size": 14 + }, + "selection": { + "cursor": "#ffffff", + "selection": "#ffffff3d" + }, + "text": { + "family": "Zed Mono", + "color": "#999999", + "size": 14 + }, + "border": { + "color": "#222222", + "width": 1 + }, + "padding": { + "bottom": 7, + "left": 16, + "right": 16, + "top": 7 + } + }, + "shadow": { + "blur": 16, + "color": "#0000003d", + "offset": [ + 0, + 2 + ] + } + }, + "workspace": { + "background": "#222222", + "joining_project_avatar": { + "corner_radius": 40, + "width": 80 + }, + "joining_project_message": { + "padding": 12, + "family": "Zed Sans", + "color": "#999999", + "size": 18 + }, + "leader_border_opacity": 0.7, + "leader_border_width": 2, + "tab_bar": { + "height": 32, + "background": "#222222", + "drop_target_overlay_color": "#55555599", + "border": { + "color": "#111111", + "width": 1, + "left": true, + "bottom": true, + "overlay": true + }, + "active_pane": { + "active_tab": { + "height": 32, + "background": "#111111", + "border": { + "color": "#111111", + "width": 1, + "left": true, + "bottom": false, + "overlay": true + }, + "icon_close": "#555555", + "icon_close_active": "#000000", + "icon_conflict": "#cccccc", + "icon_dirty": "#ffffff", + "icon_width": 8, + "spacing": 8, + "text": { + "family": "Zed Sans", + "color": "#000000", + "size": 14 + }, + "padding": { + "left": 8, + "right": 8 + }, + "description": { + "margin": { + "left": 6, + "top": 1 + }, + "family": "Zed Sans", + "color": "#555555", + "size": 10 + } + }, + "inactive_tab": { + "height": 32, + "background": "#222222", + "border": { + "color": "#111111", + "width": 1, + "left": true, + "bottom": true, + "overlay": true + }, + "icon_close": "#555555", + "icon_close_active": "#000000", + "icon_conflict": "#cccccc", + "icon_dirty": "#ffffff", + "icon_width": 8, + "spacing": 8, + "text": { + "family": "Zed Sans", + "color": "#888888", + "size": 14 + }, + "padding": { + "left": 8, + "right": 8 + }, + "description": { + "margin": { + "left": 6, + "top": 1 + }, + "family": "Zed Sans", + "color": "#555555", + "size": 10 + } + } + }, + "inactive_pane": { + "active_tab": { + "height": 32, + "background": "#111111", + "border": { + "color": "#111111", + "width": 1, + "left": true, + "bottom": false, + "overlay": true + }, + "icon_close": "#555555", + "icon_close_active": "#000000", + "icon_conflict": "#cccccc", + "icon_dirty": "#ffffff", + "icon_width": 8, + "spacing": 8, + "text": { + "family": "Zed Sans", + "color": "#888888", + "size": 14 + }, + "padding": { + "left": 8, + "right": 8 + }, + "description": { + "margin": { + "left": 6, + "top": 1 + }, + "family": "Zed Sans", + "color": "#555555", + "size": 10 + } + }, + "inactive_tab": { + "height": 32, + "background": "#222222", + "border": { + "color": "#111111", + "width": 1, + "left": true, + "bottom": true, + "overlay": true + }, + "icon_close": "#555555", + "icon_close_active": "#000000", + "icon_conflict": "#cccccc", + "icon_dirty": "#ffffff", + "icon_width": 8, + "spacing": 8, + "text": { + "family": "Zed Sans", + "color": "#555555", + "size": 14 + }, + "padding": { + "left": 8, + "right": 8 + }, + "description": { + "margin": { + "left": 6, + "top": 1 + }, + "family": "Zed Sans", + "color": "#555555", + "size": 10 + } + } + }, + "dragged_tab": { + "height": 32, + "background": "#222222cc", + "border": { + "color": "#111111", + "width": 1, + "left": false, + "bottom": false, + "overlay": true, + "top": false, + "right": false + }, + "icon_close": "#555555", + "icon_close_active": "#000000", + "icon_conflict": "#cccccc", + "icon_dirty": "#ffffff", + "icon_width": 8, + "spacing": 8, + "text": { + "family": "Zed Sans", + "color": "#000000", + "size": 14 + }, + "padding": { + "left": 8, + "right": 8 + }, + "description": { + "margin": { + "left": 6, + "top": 1 + }, + "family": "Zed Sans", + "color": "#555555", + "size": 10 + }, + "shadow": { + "blur": 6, + "color": "#0000003d", + "offset": [ + 1, + 2 + ] + } + }, + "pane_button": { + "color": "#888888", + "border": { + "color": "#111111", + "width": 1, + "left": true, + "bottom": true, + "overlay": true + }, + "icon_width": 12, + "button_width": 32, + "hover": { + "color": "#000000", + "background": "#222222" + } + } + }, + "modal": { + "margin": { + "bottom": 52, + "top": 52 + }, + "cursor": "Arrow" + }, + "sidebar_resize_handle": { + "background": "#111111", + "padding": { + "left": 1 + } + }, + "pane_divider": { + "color": "#222222", + "width": 1 + }, + "status_bar": { + "height": 30, + "item_spacing": 8, + "padding": { + "top": 1, + "bottom": 1, + "left": 6, + "right": 6 + }, + "border": { + "color": "#111111", + "width": 1, + "top": true, + "overlay": true + }, + "cursor_position": { + "family": "Zed Sans", + "color": "#888888", + "size": 14 + }, + "auto_update_progress_message": { + "family": "Zed Sans", + "color": "#888888", + "size": 14 + }, + "auto_update_done_message": { + "family": "Zed Sans", + "color": "#888888", + "size": 14 + }, + "lsp_status": { + "corner_radius": 6, + "padding": { + "top": 1, + "bottom": 1, + "left": 6, + "right": 6 + }, + "icon_spacing": 4, + "icon_width": 14, + "height": 18, + "message": { + "family": "Zed Sans", + "color": "#888888", + "size": 14 + }, + "icon_color": "#555555", + "hover": { + "message": { + "family": "Zed Sans", + "color": "#999999", + "size": 14 + }, + "icon_color": "#999999", + "background": "#262626" + } + }, + "diagnostic_message": { + "family": "Zed Sans", + "color": "#888888", + "size": 14, + "hover": { + "family": "Zed Sans", + "color": "#000000", + "size": 14 + } + }, + "feedback": { + "family": "Zed Sans", + "color": "#888888", + "size": 14, + "hover": { + "family": "Zed Sans", + "color": "#000000", + "size": 14 + } + }, + "diagnostic_summary": { + "height": 16, + "icon_width": 16, + "icon_spacing": 2, + "summary_spacing": 6, + "text": { + "family": "Zed Sans", + "color": "#999999", + "size": 14 + }, + "icon_color_ok": "#555555", + "icon_color_warning": "#cccccc", + "icon_color_error": "#aaaaaa", + "container_ok": { + "corner_radius": 6, + "padding": { + "top": 3, + "bottom": 3, + "left": 7, + "right": 7 + } + }, + "container_warning": { + "corner_radius": 6, + "padding": { + "top": 1, + "bottom": 1, + "left": 6, + "right": 6 + }, + "background": "#cccccc26", + "border": { + "color": "#7e7e7e", + "width": 1 + } + }, + "container_error": { + "corner_radius": 6, + "padding": { + "top": 1, + "bottom": 1, + "left": 6, + "right": 6 + }, + "background": "#aaaaaa26", + "border": { + "color": "#6a6a6a", + "width": 1 + } + }, + "hover": { + "icon_color_ok": "#000000", + "container_ok": { + "corner_radius": 6, + "padding": { + "top": 3, + "bottom": 3, + "left": 7, + "right": 7 + }, + "background": "#262626" + }, + "container_warning": { + "corner_radius": 6, + "padding": { + "top": 1, + "bottom": 1, + "left": 6, + "right": 6 + }, + "background": "#cccccc33", + "border": { + "color": "#7e7e7e", + "width": 1 + } + }, + "container_error": { + "corner_radius": 6, + "padding": { + "top": 1, + "bottom": 1, + "left": 6, + "right": 6 + }, + "background": "#aaaaaa33", + "border": { + "color": "#6a6a6a", + "width": 1 + } + } + } + }, + "sidebar_buttons": { + "group_left": {}, + "group_right": {}, + "item": { + "corner_radius": 6, + "padding": { + "top": 3, + "bottom": 3, + "left": 6, + "right": 6 + }, + "icon_size": 16, + "icon_color": "#555555", + "hover": { + "icon_color": "#000000", + "background": "#262626" + }, + "active": { + "icon_color": "#000000", + "background": "#2b2b2b" + } + }, + "badge": { + "corner_radius": 3, + "padding": 2, + "margin": { + "bottom": -1, + "right": -1 + }, + "border": { + "width": 1, + "color": "#222222" + }, + "background": "#ffffff" + } + } + }, + "titlebar": { + "avatar_width": 18, + "avatar_margin": 8, + "height": 33, + "background": "#262626", + "padding": { + "left": 80, + "right": 6 + }, + "title": { + "family": "Zed Sans", + "color": "#999999", + "size": 14 + }, + "avatar": { + "corner_radius": 10, + "border": { + "color": "#00000088", + "width": 1 + } + }, + "avatar_ribbon": { + "height": 3, + "width": 12 + }, + "border": { + "color": "#111111", + "width": 1, + "bottom": true, + "overlay": true + }, + "sign_in_prompt": { + "background": "#262626", + "border": { + "color": "#222222", + "width": 1 + }, + "corner_radius": 6, + "margin": { + "top": 1 + }, + "padding": { + "top": 1, + "bottom": 1, + "left": 7, + "right": 7 + }, + "family": "Zed Sans", + "color": "#888888", + "size": 12, + "hover": { + "family": "Zed Sans", + "color": "#000000", + "size": 12, + "background": "#1a1a1a", + "border": { + "color": "#111111", + "width": 1 + } + } + }, + "offline_icon": { + "color": "#888888", + "width": 16, + "margin": { + "left": 6 + }, + "padding": { + "right": 4 + } + }, + "outdated_warning": { + "family": "Zed Sans", + "color": "#cccccc", + "size": 12, + "background": "#cccccc26", + "border": { + "color": "#7e7e7e", + "width": 1 + }, + "margin": { + "left": 6 + }, + "padding": { + "left": 6, + "right": 6 + }, + "corner_radius": 6 + } + }, + "toolbar": { + "height": 34, + "background": "#111111", + "border": { + "color": "#222222", + "width": 1, + "bottom": true + }, + "item_spacing": 8, + "nav_button": { + "color": "#999999", + "icon_width": 12, + "button_width": 24, + "corner_radius": 6, + "hover": { + "color": "#000000", + "background": "#2b2b2b" + }, + "disabled": { + "color": "#55555599" + } + }, + "padding": { + "left": 8, + "right": 8, + "top": 4, + "bottom": 4 + } + }, + "breadcrumbs": { + "family": "Zed Mono", + "color": "#888888", + "size": 14, + "padding": { + "left": 6 + } + }, + "disconnected_overlay": { + "family": "Zed Sans", + "color": "#000000", + "size": 14, + "background": "#111111cc" + }, + "notification": { + "margin": { + "top": 10 + }, + "background": "#222222", + "corner_radius": 6, + "padding": 12, + "border": { + "color": "#111111", + "width": 1 + }, + "shadow": { + "blur": 16, + "color": "#0000003d", + "offset": [ + 0, + 2 + ] + } + }, + "notifications": { + "width": 400, + "margin": { + "right": 10, + "bottom": 10 + } + } + }, + "context_menu": { + "background": "#222222", + "corner_radius": 6, + "padding": 6, + "shadow": { + "blur": 4, + "color": "#0000003d", + "offset": [ + 1, + 2 + ] + }, + "border": { + "color": "#111111", + "width": 1 + }, + "keystroke_margin": 30, + "item": { + "icon_spacing": 8, + "icon_width": 14, + "padding": { + "left": 4, + "right": 4, + "top": 2, + "bottom": 2 + }, + "corner_radius": 6, + "label": { + "family": "Zed Sans", + "color": "#999999", + "size": 14 + }, + "keystroke": { + "family": "Zed Sans", + "color": "#555555", + "size": 14, + "weight": "bold", + "padding": { + "left": 3, + "right": 3 + } + }, + "hover": { + "background": "#262626", + "text": { + "family": "Zed Sans", + "color": "#999999", + "size": 14 + } + }, + "active": { + "background": "#2b2b2b", + "text": { + "family": "Zed Sans", + "color": "#000000", + "size": 14 + } + }, + "active_hover": { + "background": "#262626", + "text": { + "family": "Zed Sans", + "color": "#000000", + "size": 14 + } + } + }, + "separator": { + "background": "#111111", + "margin": { + "top": 2, + "bottom": 2 + } + } + }, + "editor": { + "text_color": "#000000", + "background": "#111111", + "active_line_background": "#222222", + "code_actions": { + "indicator": "#888888", + "vertical_scale": 0.618 + }, + "diff_background_deleted": "#aaaaaa26", + "diff_background_inserted": "#dddddd26", + "document_highlight_read_background": "#4d4d4d3d", + "document_highlight_write_background": "#4d4d4d7a", + "error_color": "#aaaaaa", + "gutter_background": "#111111", + "gutter_padding_factor": 3.5, + "highlighted_line_background": "#262626", + "line_number": "#444444", + "line_number_active": "#000000", + "rename_fade": 0.6, + "unnecessary_code_fade": 0.5, + "selection": { + "cursor": "#ffffff", + "selection": "#ffffff3d" + }, + "guest_selections": [ + { + "cursor": "#dddddd", + "selection": "#dddddd3d" + }, + { + "cursor": "#cdcdcd", + "selection": "#cdcdcd3d" + }, + { + "cursor": "#bbbbbb", + "selection": "#bbbbbb3d" + }, + { + "cursor": "#ababab", + "selection": "#ababab3d" + }, + { + "cursor": "#eeeeee", + "selection": "#eeeeee3d" + }, + { + "cursor": "#aaaaaa", + "selection": "#aaaaaa3d" + }, + { + "cursor": "#cccccc", + "selection": "#cccccc3d" + } + ], + "autocomplete": { + "background": "#111111", + "corner_radius": 8, + "padding": 4, + "border": { + "color": "#222222", + "width": 1 + }, + "shadow": { + "blur": 4, + "color": "#0000003d", + "offset": [ + 1, + 2 + ] + }, + "item": { + "corner_radius": 6, + "padding": { + "bottom": 2, + "left": 6, + "right": 6, + "top": 2 + } + }, + "hovered_item": { + "corner_radius": 6, + "padding": { + "bottom": 2, + "left": 6, + "right": 6, + "top": 2 + }, + "background": "#151515" + }, + "margin": { + "left": -14 + }, + "match_highlight": { + "family": "Zed Mono", + "color": "#ffffff", + "size": 14 + }, + "selected_item": { + "corner_radius": 6, + "padding": { + "bottom": 2, + "left": 6, + "right": 6, + "top": 2 + }, + "background": "#1a1a1a" + } + }, + "diagnostic_header": { + "background": "#222222", + "icon_width_factor": 1.5, + "text_scale_factor": 0.857, + "border": { + "color": "#222222", + "width": 1, + "bottom": true, + "top": true + }, + "code": { + "family": "Zed Mono", + "color": "#888888", + "size": 14, + "margin": { + "left": 10 + } + }, + "message": { + "highlight_text": { + "family": "Zed Sans", + "color": "#999999", + "size": 14, + "weight": "bold" + }, + "text": { + "family": "Zed Sans", + "color": "#888888", + "size": 14 + } + } + }, + "diagnostic_path_header": { + "background": "#222222", + "text_scale_factor": 0.857, + "filename": { + "family": "Zed Mono", + "color": "#999999", + "size": 14 + }, + "path": { + "family": "Zed Mono", + "color": "#555555", + "size": 14, + "margin": { + "left": 12 + } + } + }, + "error_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#111111", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#aaaaaa", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#aaaaaa", + "size": 14, + "weight": "bold" + } + } + }, + "warning_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#111111", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#cccccc", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#cccccc", + "size": 14, + "weight": "bold" + } + } + }, + "information_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#111111", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#ffffff", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#ffffff", + "size": 14, + "weight": "bold" + } + } + }, + "hint_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#111111", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#ffffff", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#ffffff", + "size": 14, + "weight": "bold" + } + } + }, + "invalid_error_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#111111", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#888888", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#888888", + "size": 14, + "weight": "bold" + } + } + }, + "invalid_hint_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#111111", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#888888", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#888888", + "size": 14, + "weight": "bold" + } + } + }, + "invalid_information_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#111111", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#888888", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#888888", + "size": 14, + "weight": "bold" + } + } + }, + "invalid_warning_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#111111", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#888888", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#888888", + "size": 14, + "weight": "bold" + } + } + }, + "hover_popover": { + "container": { + "background": "#222222", + "corner_radius": 8, + "padding": { + "left": 8, + "right": 8, + "top": 4, + "bottom": 4 + }, + "shadow": { + "blur": 4, + "color": "#0000003d", + "offset": [ + 1, + 2 + ] + }, + "border": { + "color": "#222222", + "width": 1 + }, + "margin": { + "left": -8 + } + }, + "info_container": { + "background": "#232323", + "corner_radius": 8, + "padding": { + "left": 8, + "right": 8, + "top": 4, + "bottom": 4 + }, + "shadow": { + "blur": 4, + "color": "#0000003d", + "offset": [ + 1, + 2 + ] + }, + "border": { + "color": "#0a0a0a", + "width": 1 + }, + "margin": { + "left": -8 + } + }, + "warning_container": { + "background": "#1d1d1d", + "corner_radius": 8, + "padding": { + "left": 8, + "right": 8, + "top": 4, + "bottom": 4 + }, + "shadow": { + "blur": 4, + "color": "#0000003d", + "offset": [ + 1, + 2 + ] + }, + "border": { + "color": "#0a0a0a", + "width": 1 + }, + "margin": { + "left": -8 + } + }, + "error_container": { + "background": "#1a1a1a", + "corner_radius": 8, + "padding": { + "left": 8, + "right": 8, + "top": 4, + "bottom": 4 + }, + "shadow": { + "blur": 4, + "color": "#0000003d", + "offset": [ + 1, + 2 + ] + }, + "border": { + "color": "#0a0a0a", + "width": 1 + }, + "margin": { + "left": -8 + } + }, + "block_style": { + "padding": { + "top": 4 + } + }, + "prose": { + "family": "Zed Sans", + "color": "#999999", + "size": 14 + }, + "highlight": "#4d4d4d3d" + }, + "link_definition": { + "color": "#dddddd", + "underline": true + }, + "jump_icon": { + "color": "#888888", + "icon_width": 20, + "button_width": 20, + "corner_radius": 6, + "padding": { + "top": 6, + "bottom": 6, + "left": 6, + "right": 6 + }, + "hover": { + "color": "#000000", + "background": "#222222" + } + }, + "composition_mark": { + "underline": { + "thickness": 1, + "color": "#444444" + } + }, + "syntax": { + "primary": { + "color": "#000000", + "weight": "normal" + }, + "comment": { + "color": "#888888", + "weight": "normal" + }, + "punctuation": { + "color": "#999999", + "weight": "normal" + }, + "constant": { + "color": "#555555", + "weight": "normal" + }, + "keyword": { + "color": "#ffffff", + "weight": "normal" + }, + "function": { + "color": "#cccccc", + "weight": "normal" + }, + "type": { + "color": "#eeeeee", + "weight": "normal" + }, + "constructor": { + "color": "#ffffff", + "weight": "normal" + }, + "variant": { + "color": "#ffffff", + "weight": "normal" + }, + "property": { + "color": "#ffffff", + "weight": "normal" + }, + "enum": { + "color": "#bbbbbb", + "weight": "normal" + }, + "operator": { + "color": "#bbbbbb", + "weight": "normal" + }, + "string": { + "color": "#bbbbbb", + "weight": "normal" + }, + "number": { + "color": "#dddddd", + "weight": "normal" + }, + "boolean": { + "color": "#dddddd", + "weight": "normal" + }, + "predictive": { + "color": "#555555", + "weight": "normal" + }, + "title": { + "color": "#cccccc", + "weight": "bold" + }, + "emphasis": { + "color": "#ffffff", + "weight": "normal" + }, + "emphasis.strong": { + "color": "#ffffff", + "weight": "bold" + }, + "link_uri": { + "color": "#dddddd", + "weight": "normal", + "underline": true + }, + "link_text": { + "color": "#bbbbbb", + "weight": "normal", + "italic": true + } + } + }, + "project_diagnostics": { + "background": "#111111", + "tab_icon_spacing": 4, + "tab_icon_width": 13, + "tab_summary_spacing": 10, + "empty_message": { + "family": "Zed Sans", + "color": "#888888", + "size": 16 + } + }, + "command_palette": { + "keystroke_spacing": 8, + "key": { + "text": { + "family": "Zed Mono", + "color": "#888888", + "size": 12 + }, + "corner_radius": 4, + "background": "#111111", + "border": { + "color": "#222222", + "width": 1 + }, + "padding": { + "top": 2, + "bottom": 2, + "left": 8, + "right": 8 + }, + "margin": { + "left": 2 + }, + "active": { + "text": { + "family": "Zed Mono", + "color": "#000000", + "size": 12 + } + } + } + }, + "project_panel": { + "padding": { + "left": 12, + "right": 12, + "top": 6, + "bottom": 6 + }, + "indent_width": 8, + "entry": { + "height": 24, + "icon_color": "#555555", + "icon_size": 8, + "icon_spacing": 8, + "text": { + "family": "Zed Mono", + "color": "#888888", + "size": 14 + }, + "hover": { + "background": "#262626" + }, + "active": { + "background": "#2b2b2b", + "text": { + "family": "Zed Mono", + "color": "#000000", + "size": 14 + } + }, + "active_hover": { + "background": "#2b2b2b", + "text": { + "family": "Zed Mono", + "color": "#000000", + "size": 14 + } + } + }, + "cut_entry_fade": 0.4, + "ignored_entry_fade": 0.6, + "filename_editor": { + "background": "#111111", + "text": { + "family": "Zed Mono", + "color": "#000000", + "size": 14 + }, + "selection": { + "cursor": "#ffffff", + "selection": "#ffffff3d" + } + } + }, + "chat_panel": { + "padding": { + "top": 12, + "bottom": 12 + }, + "channel_name": { + "family": "Zed Sans", + "color": "#999999", + "weight": "bold", + "size": 14 + }, + "channel_name_hash": { + "family": "Zed Sans", + "color": "#555555", + "size": 14, + "padding": { + "right": 8 + } + }, + "channel_select": { + "header": { + "name": { + "family": "Zed Sans", + "color": "#999999", + "size": 14 + }, + "padding": { + "bottom": 4, + "left": 0 + }, + "hash": { + "family": "Zed Sans", + "color": "#555555", + "size": 14, + "margin": { + "right": 8 + } + }, + "corner_radius": 0 + }, + "item": { + "name": { + "family": "Zed Sans", + "color": "#888888", + "size": 14 + }, + "padding": 4, + "hash": { + "family": "Zed Sans", + "color": "#555555", + "size": 14, + "margin": { + "right": 8 + } + }, + "corner_radius": 0 + }, + "hovered_item": { + "name": { + "family": "Zed Sans", + "color": "#888888", + "size": 14 + }, + "padding": 4, + "hash": { + "family": "Zed Sans", + "color": "#555555", + "size": 14, + "margin": { + "right": 8 + } + }, + "background": "#262626", + "corner_radius": 6 + }, + "active_item": { + "name": { + "family": "Zed Sans", + "color": "#999999", + "size": 14 + }, + "padding": 4, + "hash": { + "family": "Zed Sans", + "color": "#555555", + "size": 14, + "margin": { + "right": 8 + } + }, + "corner_radius": 0 + }, + "hovered_active_item": { + "name": { + "family": "Zed Sans", + "color": "#999999", + "size": 14 + }, + "padding": 4, + "hash": { + "family": "Zed Sans", + "color": "#555555", + "size": 14, + "margin": { + "right": 8 + } + }, + "background": "#262626", + "corner_radius": 6 + }, + "menu": { + "background": "#111111", + "corner_radius": 6, + "padding": 4, + "border": { + "color": "#111111", + "width": 1 + }, + "shadow": { + "blur": 4, + "color": "#0000003d", + "offset": [ + 1, + 2 + ] + } + } + }, + "sign_in_prompt": { + "family": "Zed Sans", + "color": "#888888", + "underline": true, + "size": 14 + }, + "hovered_sign_in_prompt": { + "family": "Zed Sans", + "color": "#999999", + "underline": true, + "size": 14 + }, + "message": { + "body": { + "family": "Zed Sans", + "color": "#888888", + "size": 14 + }, + "timestamp": { + "family": "Zed Sans", + "color": "#555555", + "size": 14 + }, + "padding": { + "bottom": 6 + }, + "sender": { + "family": "Zed Sans", + "color": "#999999", + "weight": "bold", + "size": 14, + "margin": { + "right": 8 + } + } + }, + "pending_message": { + "body": { + "family": "Zed Sans", + "color": "#555555", + "size": 14 + }, + "timestamp": { + "family": "Zed Sans", + "color": "#555555", + "size": 14 + }, + "padding": { + "bottom": 6 + }, + "sender": { + "family": "Zed Sans", + "color": "#555555", + "weight": "bold", + "size": 14, + "margin": { + "right": 8 + } + } + }, + "input_editor": { + "background": "#111111", + "corner_radius": 6, + "text": { + "family": "Zed Mono", + "color": "#999999", + "size": 14 + }, + "placeholder_text": { + "family": "Zed Mono", + "color": "#444444", + "size": 14 + }, + "selection": { + "cursor": "#ffffff", + "selection": "#ffffff3d" + }, + "border": { + "color": "#222222", + "width": 1 + }, + "padding": { + "bottom": 7, + "left": 8, + "right": 8, + "top": 7 + } + } + }, + "contacts_panel": { + "padding": { + "top": 12, + "bottom": 0 + }, + "user_query_editor": { + "background": "#111111", + "corner_radius": 6, + "text": { + "family": "Zed Mono", + "color": "#999999", + "size": 14 + }, + "placeholder_text": { + "family": "Zed Mono", + "color": "#444444", + "size": 14 + }, + "selection": { + "cursor": "#ffffff", + "selection": "#ffffff3d" + }, + "border": { + "color": "#222222", + "width": 1 + }, + "padding": { + "bottom": 4, + "left": 8, + "right": 8, + "top": 4 + }, + "margin": { + "left": 12, + "right": 12 + } + }, + "user_query_editor_height": 32, + "add_contact_button": { + "margin": { + "left": 6, + "right": 12 + }, + "color": "#999999", + "button_width": 16, + "icon_width": 16 + }, + "private_button": { + "icon_width": 12, + "color": "#999999", + "corner_radius": 5, + "button_width": 12 + }, + "row_height": 28, + "section_icon_size": 8, + "header_row": { + "family": "Zed Mono", + "color": "#888888", + "size": 14, + "margin": { + "top": 14 + }, + "padding": { + "left": 12, + "right": 12 + }, + "active": { + "family": "Zed Mono", + "color": "#999999", + "size": 14, + "background": "#2f2f2f" + } + }, + "contact_row": { + "padding": { + "left": 12, + "right": 12 + }, + "active": { + "background": "#2f2f2f" + } + }, + "tree_branch": { + "color": "#444444", + "width": 1, + "hover": { + "color": "#444444" + }, + "active": { + "color": "#444444" + } + }, + "contact_avatar": { + "corner_radius": 10, + "width": 18 + }, + "contact_username": { + "family": "Zed Mono", + "color": "#999999", + "size": 14, + "margin": { + "left": 8 + } + }, + "contact_button_spacing": 8, + "contact_button": { + "background": "#262626", + "color": "#999999", + "icon_width": 8, + "button_width": 16, + "corner_radius": 8, + "hover": { + "background": "#1a1a1a" + } + }, + "disabled_button": { + "background": "#262626", + "color": "#555555", + "icon_width": 8, + "button_width": 16, + "corner_radius": 8 + }, + "project_row": { + "guest_avatar_spacing": 4, + "height": 24, + "guest_avatar": { + "corner_radius": 8, + "width": 14 + }, + "name": { + "family": "Zed Mono", + "color": "#888888", + "size": 14, + "margin": { + "left": 8, + "right": 6 + } + }, + "guests": { + "margin": { + "left": 8, + "right": 8 + } + }, + "padding": { + "left": 12, + "right": 12 + }, + "background": "#222222", + "hover": { + "background": "#262626" + }, + "active": { + "background": "#2b2b2b" + } + }, + "invite_row": { + "padding": { + "left": 12, + "right": 12 + }, + "border": { + "top": true, + "width": 1, + "color": "#111111" + }, + "text": { + "family": "Zed Sans", + "color": "#888888", + "size": 14 + }, + "hover": { + "text": { + "family": "Zed Sans", + "color": "#000000", + "size": 14 + } + } + } + }, + "contact_finder": { + "background": "#222222", + "corner_radius": 8, + "padding": 8, + "item": { + "padding": { + "bottom": 4, + "left": 12, + "right": 12, + "top": 4 + }, + "corner_radius": 8, + "text": { + "family": "Zed Sans", + "color": "#888888", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#ffffff", + "weight": "bold", + "size": 14 + }, + "active": { + "background": "#2b2b2b", + "text": { + "family": "Zed Sans", + "color": "#000000", + "size": 14 + } + }, + "hover": { + "background": "#262626" + } + }, + "border": { + "color": "#111111", + "width": 1 + }, + "empty": { + "text": { + "family": "Zed Sans", + "color": "#555555", + "size": 14 + }, + "padding": { + "bottom": 4, + "left": 12, + "right": 12, + "top": 8 + } + }, + "input_editor": { + "background": "#111111", + "corner_radius": 8, + "placeholder_text": { + "family": "Zed Sans", + "color": "#444444", + "size": 14 + }, + "selection": { + "cursor": "#ffffff", + "selection": "#ffffff3d" + }, + "text": { + "family": "Zed Mono", + "color": "#999999", + "size": 14 + }, + "border": { + "color": "#222222", + "width": 1 + }, + "padding": { + "bottom": 7, + "left": 16, + "right": 16, + "top": 7 + } + }, + "shadow": { + "blur": 16, + "color": "#0000003d", + "offset": [ + 0, + 2 + ] + }, + "row_height": 28, + "contact_avatar": { + "corner_radius": 10, + "width": 18 + }, + "contact_username": { + "padding": { + "left": 8 + } + }, + "contact_button": { + "background": "#262626", + "color": "#999999", + "icon_width": 8, + "button_width": 16, + "corner_radius": 8, + "hover": { + "background": "#2b2b2b" + } + }, + "disabled_contact_button": { + "background": "#262626", + "color": "#555555", + "icon_width": 8, + "button_width": 16, + "corner_radius": 8 + } + }, + "search": { + "match_background": "#3a3a3a", + "tab_icon_spacing": 8, + "tab_icon_width": 14, + "option_button": { + "family": "Zed Mono", + "color": "#888888", + "size": 14, + "background": "#222222", + "corner_radius": 6, + "border": { + "color": "#222222", + "width": 1 + }, + "margin": { + "right": 4 + }, + "padding": { + "bottom": 2, + "left": 10, + "right": 10, + "top": 2 + }, + "active": { + "family": "Zed Mono", + "color": "#000000", + "size": 14, + "background": "#333333", + "border": { + "color": "#444444", + "width": 1 + } + }, + "hover": { + "family": "Zed Mono", + "color": "#000000", + "size": 14, + "background": "#2b2b2b", + "border": { + "color": "#444444", + "width": 1 + } + } + }, + "editor": { + "background": "#111111", + "corner_radius": 8, + "min_width": 200, + "max_width": 500, + "placeholder_text": { + "family": "Zed Mono", + "color": "#444444", + "size": 14 + }, + "selection": { + "cursor": "#ffffff", + "selection": "#ffffff3d" + }, + "text": { + "family": "Zed Mono", + "color": "#000000", + "size": 14 + }, + "border": { + "color": "#222222", + "width": 1 + }, + "margin": { + "right": 12 + }, + "padding": { + "top": 3, + "bottom": 3, + "left": 12, + "right": 8 + } + }, + "invalid_editor": { + "background": "#111111", + "corner_radius": 8, + "min_width": 200, + "max_width": 500, + "placeholder_text": { + "family": "Zed Mono", + "color": "#444444", + "size": 14 + }, + "selection": { + "cursor": "#ffffff", + "selection": "#ffffff3d" + }, + "text": { + "family": "Zed Mono", + "color": "#000000", + "size": 14 + }, + "border": { + "color": "#6a6a6a", + "width": 1 + }, + "margin": { + "right": 12 + }, + "padding": { + "top": 3, + "bottom": 3, + "left": 12, + "right": 8 + } + }, + "match_index": { + "family": "Zed Mono", + "color": "#555555", + "size": 14, + "padding": 6 + }, + "option_button_group": { + "padding": { + "left": 12, + "right": 12 + } + }, + "results_status": { + "family": "Zed Mono", + "color": "#999999", + "size": 18 + } + }, + "breadcrumbs": { + "family": "Zed Sans", + "color": "#888888", + "size": 14, + "padding": { + "left": 6 + } + }, + "contact_notification": { + "header_avatar": { + "height": 12, + "width": 12, + "corner_radius": 6 + }, + "header_message": { + "family": "Zed Sans", + "color": "#999999", + "size": 12, + "margin": { + "left": 8, + "right": 8 + } + }, + "header_height": 18, + "body_message": { + "family": "Zed Sans", + "color": "#888888", + "size": 12, + "margin": { + "left": 20, + "top": 6, + "bottom": 6 + } + }, + "button": { + "family": "Zed Sans", + "color": "#999999", + "size": 12, + "background": "#111111", + "padding": 4, + "corner_radius": 6, + "margin": { + "left": 6 + }, + "hover": { + "background": "#1a1a1a" + } + }, + "dismiss_button": { + "color": "#888888", + "icon_width": 8, + "icon_height": 8, + "button_width": 8, + "button_height": 8, + "hover": { + "color": "#999999" + } + } + }, + "update_notification": { + "message": { + "family": "Zed Sans", + "color": "#999999", + "size": 12, + "margin": { + "left": 8, + "right": 8 + } + }, + "action_message": { + "family": "Zed Sans", + "color": "#888888", + "size": 12, + "margin": { + "left": 8, + "top": 6, + "bottom": 6 + }, + "hover": { + "color": "#000000" + } + }, + "dismiss_button": { + "color": "#888888", + "icon_width": 8, + "icon_height": 8, + "button_width": 8, + "button_height": 8, + "hover": { + "color": "#999999" + } + } + }, + "tooltip": { + "background": "#111111", + "border": { + "color": "#222222", + "width": 1 + }, + "padding": { + "top": 4, + "bottom": 4, + "left": 8, + "right": 8 + }, + "margin": { + "top": 6, + "left": 6 + }, + "shadow": { + "blur": 4, + "color": "#0000003d", + "offset": [ + 1, + 2 + ] + }, + "corner_radius": 6, + "text": { + "family": "Zed Sans", + "color": "#999999", + "size": 12 + }, + "keystroke": { + "background": "#222222", + "corner_radius": 4, + "margin": { + "left": 6 + }, + "padding": { + "left": 4, + "right": 4 + }, + "family": "Zed Mono", + "color": "#888888", + "size": 12, + "weight": "bold" + }, + "max_text_width": 200 + }, + "terminal": { + "colors": { + "black": "#111111", + "red": "#aaaaaa", + "green": "#dddddd", + "yellow": "#cccccc", + "blue": "#ffffff", + "magenta": "#cdcdcd", + "cyan": "#eeeeee", + "white": "#000000", + "bright_black": "#555555", + "bright_red": "#5a5a5a", + "bright_green": "#747474", + "bright_yellow": "#6b6b6b", + "bright_blue": "#858585", + "bright_magenta": "#6c6c6c", + "bright_cyan": "#7c7c7c", + "bright_white": "#000000", + "foreground": "#000000", + "background": "#111111", + "modal_background": "#222222", + "cursor": "#ffffff", + "dim_black": "#000000", + "dim_red": "#cbcbcb", + "dim_green": "#e5e5e5", + "dim_yellow": "#dcdcdc", + "dim_blue": "#f6f6f6", + "dim_magenta": "#dddddd", + "dim_cyan": "#ededed", + "dim_white": "#888888", + "bright_foreground": "#000000", + "dim_foreground": "#111111" + }, + "modal_container": { + "background": "#222222", + "corner_radius": 8, + "padding": 8, + "margin": 25, + "border": { + "color": "#111111", + "width": 1 + }, + "shadow": { + "blur": 16, + "color": "#0000003d", + "offset": [ + 0, + 2 + ] + } + } + } +} \ No newline at end of file diff --git a/assets/themes/internal/cave-internal-light.json b/assets/themes/internal/cave-internal-light.json new file mode 100644 index 0000000000000000000000000000000000000000..bf0d070805a579aac8f8eeaed7ebe86f5ee73b87 --- /dev/null +++ b/assets/themes/internal/cave-internal-light.json @@ -0,0 +1,2283 @@ +{ + "meta": { + "name": "cave-internal-light", + "is_light": true + }, + "picker": { + "background": "#999999", + "corner_radius": 8, + "padding": 8, + "item": { + "padding": { + "bottom": 4, + "left": 12, + "right": 12, + "top": 4 + }, + "corner_radius": 8, + "text": { + "family": "Zed Sans", + "color": "#333333", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#ffffff", + "weight": "bold", + "size": 14 + }, + "active": { + "background": "#919191", + "text": { + "family": "Zed Sans", + "color": "#111111", + "size": 14 + } + }, + "hover": { + "background": "#959595" + } + }, + "border": { + "color": "#919191", + "width": 1 + }, + "empty": { + "text": { + "family": "Zed Sans", + "color": "#444444", + "size": 14 + }, + "padding": { + "bottom": 4, + "left": 12, + "right": 12, + "top": 8 + } + }, + "input_editor": { + "background": "#000000", + "corner_radius": 8, + "placeholder_text": { + "family": "Zed Sans", + "color": "#555555", + "size": 14 + }, + "selection": { + "cursor": "#ffffff", + "selection": "#ffffff3d" + }, + "text": { + "family": "Zed Mono", + "color": "#222222", + "size": 14 + }, + "border": { + "color": "#959595", + "width": 1 + }, + "padding": { + "bottom": 7, + "left": 16, + "right": 16, + "top": 7 + } + }, + "shadow": { + "blur": 16, + "color": "#0000001f", + "offset": [ + 0, + 2 + ] + } + }, + "workspace": { + "background": "#999999", + "joining_project_avatar": { + "corner_radius": 40, + "width": 80 + }, + "joining_project_message": { + "padding": 12, + "family": "Zed Sans", + "color": "#222222", + "size": 18 + }, + "leader_border_opacity": 0.7, + "leader_border_width": 2, + "tab_bar": { + "height": 32, + "background": "#999999", + "drop_target_overlay_color": "#44444499", + "border": { + "color": "#919191", + "width": 1, + "left": true, + "bottom": true, + "overlay": true + }, + "active_pane": { + "active_tab": { + "height": 32, + "background": "#000000", + "border": { + "color": "#919191", + "width": 1, + "left": true, + "bottom": false, + "overlay": true + }, + "icon_close": "#444444", + "icon_close_active": "#111111", + "icon_conflict": "#cccccc", + "icon_dirty": "#ffffff", + "icon_width": 8, + "spacing": 8, + "text": { + "family": "Zed Sans", + "color": "#111111", + "size": 14 + }, + "padding": { + "left": 8, + "right": 8 + }, + "description": { + "margin": { + "left": 6, + "top": 1 + }, + "family": "Zed Sans", + "color": "#444444", + "size": 10 + } + }, + "inactive_tab": { + "height": 32, + "background": "#999999", + "border": { + "color": "#919191", + "width": 1, + "left": true, + "bottom": true, + "overlay": true + }, + "icon_close": "#444444", + "icon_close_active": "#111111", + "icon_conflict": "#cccccc", + "icon_dirty": "#ffffff", + "icon_width": 8, + "spacing": 8, + "text": { + "family": "Zed Sans", + "color": "#333333", + "size": 14 + }, + "padding": { + "left": 8, + "right": 8 + }, + "description": { + "margin": { + "left": 6, + "top": 1 + }, + "family": "Zed Sans", + "color": "#444444", + "size": 10 + } + } + }, + "inactive_pane": { + "active_tab": { + "height": 32, + "background": "#000000", + "border": { + "color": "#919191", + "width": 1, + "left": true, + "bottom": false, + "overlay": true + }, + "icon_close": "#444444", + "icon_close_active": "#111111", + "icon_conflict": "#cccccc", + "icon_dirty": "#ffffff", + "icon_width": 8, + "spacing": 8, + "text": { + "family": "Zed Sans", + "color": "#333333", + "size": 14 + }, + "padding": { + "left": 8, + "right": 8 + }, + "description": { + "margin": { + "left": 6, + "top": 1 + }, + "family": "Zed Sans", + "color": "#444444", + "size": 10 + } + }, + "inactive_tab": { + "height": 32, + "background": "#999999", + "border": { + "color": "#919191", + "width": 1, + "left": true, + "bottom": true, + "overlay": true + }, + "icon_close": "#444444", + "icon_close_active": "#111111", + "icon_conflict": "#cccccc", + "icon_dirty": "#ffffff", + "icon_width": 8, + "spacing": 8, + "text": { + "family": "Zed Sans", + "color": "#444444", + "size": 14 + }, + "padding": { + "left": 8, + "right": 8 + }, + "description": { + "margin": { + "left": 6, + "top": 1 + }, + "family": "Zed Sans", + "color": "#444444", + "size": 10 + } + } + }, + "dragged_tab": { + "height": 32, + "background": "#999999cc", + "border": { + "color": "#919191", + "width": 1, + "left": false, + "bottom": false, + "overlay": true, + "top": false, + "right": false + }, + "icon_close": "#444444", + "icon_close_active": "#111111", + "icon_conflict": "#cccccc", + "icon_dirty": "#ffffff", + "icon_width": 8, + "spacing": 8, + "text": { + "family": "Zed Sans", + "color": "#111111", + "size": 14 + }, + "padding": { + "left": 8, + "right": 8 + }, + "description": { + "margin": { + "left": 6, + "top": 1 + }, + "family": "Zed Sans", + "color": "#444444", + "size": 10 + }, + "shadow": { + "blur": 6, + "color": "#0000001f", + "offset": [ + 1, + 2 + ] + } + }, + "pane_button": { + "color": "#333333", + "border": { + "color": "#919191", + "width": 1, + "left": true, + "bottom": true, + "overlay": true + }, + "icon_width": 12, + "button_width": 32, + "hover": { + "color": "#111111", + "background": "#999999" + } + } + }, + "modal": { + "margin": { + "bottom": 52, + "top": 52 + }, + "cursor": "Arrow" + }, + "sidebar_resize_handle": { + "background": "#919191", + "padding": { + "left": 1 + } + }, + "pane_divider": { + "color": "#959595", + "width": 1 + }, + "status_bar": { + "height": 30, + "item_spacing": 8, + "padding": { + "top": 1, + "bottom": 1, + "left": 6, + "right": 6 + }, + "border": { + "color": "#919191", + "width": 1, + "top": true, + "overlay": true + }, + "cursor_position": { + "family": "Zed Sans", + "color": "#333333", + "size": 14 + }, + "auto_update_progress_message": { + "family": "Zed Sans", + "color": "#333333", + "size": 14 + }, + "auto_update_done_message": { + "family": "Zed Sans", + "color": "#333333", + "size": 14 + }, + "lsp_status": { + "corner_radius": 6, + "padding": { + "top": 1, + "bottom": 1, + "left": 6, + "right": 6 + }, + "icon_spacing": 4, + "icon_width": 14, + "height": 18, + "message": { + "family": "Zed Sans", + "color": "#333333", + "size": 14 + }, + "icon_color": "#444444", + "hover": { + "message": { + "family": "Zed Sans", + "color": "#222222", + "size": 14 + }, + "icon_color": "#222222", + "background": "#959595" + } + }, + "diagnostic_message": { + "family": "Zed Sans", + "color": "#333333", + "size": 14, + "hover": { + "family": "Zed Sans", + "color": "#111111", + "size": 14 + } + }, + "feedback": { + "family": "Zed Sans", + "color": "#333333", + "size": 14, + "hover": { + "family": "Zed Sans", + "color": "#111111", + "size": 14 + } + }, + "diagnostic_summary": { + "height": 16, + "icon_width": 16, + "icon_spacing": 2, + "summary_spacing": 6, + "text": { + "family": "Zed Sans", + "color": "#222222", + "size": 14 + }, + "icon_color_ok": "#444444", + "icon_color_warning": "#cccccc", + "icon_color_error": "#aaaaaa", + "container_ok": { + "corner_radius": 6, + "padding": { + "top": 3, + "bottom": 3, + "left": 7, + "right": 7 + } + }, + "container_warning": { + "corner_radius": 6, + "padding": { + "top": 1, + "bottom": 1, + "left": 6, + "right": 6 + }, + "background": "#cccccc26", + "border": { + "color": "#d9d9d9", + "width": 1 + } + }, + "container_error": { + "corner_radius": 6, + "padding": { + "top": 1, + "bottom": 1, + "left": 6, + "right": 6 + }, + "background": "#aaaaaa26", + "border": { + "color": "#c4c4c4", + "width": 1 + } + }, + "hover": { + "icon_color_ok": "#111111", + "container_ok": { + "corner_radius": 6, + "padding": { + "top": 3, + "bottom": 3, + "left": 7, + "right": 7 + }, + "background": "#959595" + }, + "container_warning": { + "corner_radius": 6, + "padding": { + "top": 1, + "bottom": 1, + "left": 6, + "right": 6 + }, + "background": "#cccccc33", + "border": { + "color": "#d9d9d9", + "width": 1 + } + }, + "container_error": { + "corner_radius": 6, + "padding": { + "top": 1, + "bottom": 1, + "left": 6, + "right": 6 + }, + "background": "#aaaaaa33", + "border": { + "color": "#c4c4c4", + "width": 1 + } + } + } + }, + "sidebar_buttons": { + "group_left": {}, + "group_right": {}, + "item": { + "corner_radius": 6, + "padding": { + "top": 3, + "bottom": 3, + "left": 6, + "right": 6 + }, + "icon_size": 16, + "icon_color": "#444444", + "hover": { + "icon_color": "#111111", + "background": "#959595" + }, + "active": { + "icon_color": "#111111", + "background": "#919191" + } + }, + "badge": { + "corner_radius": 3, + "padding": 2, + "margin": { + "bottom": -1, + "right": -1 + }, + "border": { + "width": 1, + "color": "#999999" + }, + "background": "#ffffff" + } + } + }, + "titlebar": { + "avatar_width": 18, + "avatar_margin": 8, + "height": 33, + "background": "#959595", + "padding": { + "left": 80, + "right": 6 + }, + "title": { + "family": "Zed Sans", + "color": "#222222", + "size": 14 + }, + "avatar": { + "corner_radius": 10, + "border": { + "color": "#00000088", + "width": 1 + } + }, + "avatar_ribbon": { + "height": 3, + "width": 12 + }, + "border": { + "color": "#919191", + "width": 1, + "bottom": true, + "overlay": true + }, + "sign_in_prompt": { + "background": "#959595", + "border": { + "color": "#959595", + "width": 1 + }, + "corner_radius": 6, + "margin": { + "top": 1 + }, + "padding": { + "top": 1, + "bottom": 1, + "left": 7, + "right": 7 + }, + "family": "Zed Sans", + "color": "#333333", + "size": 12, + "hover": { + "family": "Zed Sans", + "color": "#111111", + "size": 12, + "background": "#4c4c4c", + "border": { + "color": "#919191", + "width": 1 + } + } + }, + "offline_icon": { + "color": "#333333", + "width": 16, + "margin": { + "left": 6 + }, + "padding": { + "right": 4 + } + }, + "outdated_warning": { + "family": "Zed Sans", + "color": "#cccccc", + "size": 12, + "background": "#cccccc26", + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "margin": { + "left": 6 + }, + "padding": { + "left": 6, + "right": 6 + }, + "corner_radius": 6 + } + }, + "toolbar": { + "height": 34, + "background": "#000000", + "border": { + "color": "#959595", + "width": 1, + "bottom": true + }, + "item_spacing": 8, + "nav_button": { + "color": "#222222", + "icon_width": 12, + "button_width": 24, + "corner_radius": 6, + "hover": { + "color": "#111111", + "background": "#919191" + }, + "disabled": { + "color": "#44444499" + } + }, + "padding": { + "left": 8, + "right": 8, + "top": 4, + "bottom": 4 + } + }, + "breadcrumbs": { + "family": "Zed Mono", + "color": "#333333", + "size": 14, + "padding": { + "left": 6 + } + }, + "disconnected_overlay": { + "family": "Zed Sans", + "color": "#111111", + "size": 14, + "background": "#000000cc" + }, + "notification": { + "margin": { + "top": 10 + }, + "background": "#999999", + "corner_radius": 6, + "padding": 12, + "border": { + "color": "#919191", + "width": 1 + }, + "shadow": { + "blur": 16, + "color": "#0000001f", + "offset": [ + 0, + 2 + ] + } + }, + "notifications": { + "width": 400, + "margin": { + "right": 10, + "bottom": 10 + } + } + }, + "context_menu": { + "background": "#999999", + "corner_radius": 6, + "padding": 6, + "shadow": { + "blur": 4, + "color": "#0000001f", + "offset": [ + 1, + 2 + ] + }, + "border": { + "color": "#919191", + "width": 1 + }, + "keystroke_margin": 30, + "item": { + "icon_spacing": 8, + "icon_width": 14, + "padding": { + "left": 4, + "right": 4, + "top": 2, + "bottom": 2 + }, + "corner_radius": 6, + "label": { + "family": "Zed Sans", + "color": "#222222", + "size": 14 + }, + "keystroke": { + "family": "Zed Sans", + "color": "#444444", + "size": 14, + "weight": "bold", + "padding": { + "left": 3, + "right": 3 + } + }, + "hover": { + "background": "#959595", + "text": { + "family": "Zed Sans", + "color": "#222222", + "size": 14 + } + }, + "active": { + "background": "#919191", + "text": { + "family": "Zed Sans", + "color": "#111111", + "size": 14 + } + }, + "active_hover": { + "background": "#959595", + "text": { + "family": "Zed Sans", + "color": "#111111", + "size": 14 + } + } + }, + "separator": { + "background": "#919191", + "margin": { + "top": 2, + "bottom": 2 + } + } + }, + "editor": { + "text_color": "#111111", + "background": "#000000", + "active_line_background": "#999999", + "code_actions": { + "indicator": "#333333", + "vertical_scale": 0.618 + }, + "diff_background_deleted": "#aaaaaa26", + "diff_background_inserted": "#dddddd26", + "document_highlight_read_background": "#4d4d4d1f", + "document_highlight_write_background": "#4d4d4d3d", + "error_color": "#aaaaaa", + "gutter_background": "#000000", + "gutter_padding_factor": 3.5, + "highlighted_line_background": "#959595", + "line_number": "#555555", + "line_number_active": "#111111", + "rename_fade": 0.6, + "unnecessary_code_fade": 0.5, + "selection": { + "cursor": "#ffffff", + "selection": "#ffffff3d" + }, + "guest_selections": [ + { + "cursor": "#dddddd", + "selection": "#dddddd3d" + }, + { + "cursor": "#cdcdcd", + "selection": "#cdcdcd3d" + }, + { + "cursor": "#bbbbbb", + "selection": "#bbbbbb3d" + }, + { + "cursor": "#ababab", + "selection": "#ababab3d" + }, + { + "cursor": "#eeeeee", + "selection": "#eeeeee3d" + }, + { + "cursor": "#aaaaaa", + "selection": "#aaaaaa3d" + }, + { + "cursor": "#cccccc", + "selection": "#cccccc3d" + } + ], + "autocomplete": { + "background": "#000000", + "corner_radius": 8, + "padding": 4, + "border": { + "color": "#959595", + "width": 1 + }, + "shadow": { + "blur": 4, + "color": "#0000001f", + "offset": [ + 1, + 2 + ] + }, + "item": { + "corner_radius": 6, + "padding": { + "bottom": 2, + "left": 6, + "right": 6, + "top": 2 + } + }, + "hovered_item": { + "corner_radius": 6, + "padding": { + "bottom": 2, + "left": 6, + "right": 6, + "top": 2 + }, + "background": "#262626" + }, + "margin": { + "left": -14 + }, + "match_highlight": { + "family": "Zed Mono", + "color": "#ffffff", + "size": 14 + }, + "selected_item": { + "corner_radius": 6, + "padding": { + "bottom": 2, + "left": 6, + "right": 6, + "top": 2 + }, + "background": "#4c4c4c" + } + }, + "diagnostic_header": { + "background": "#999999", + "icon_width_factor": 1.5, + "text_scale_factor": 0.857, + "border": { + "color": "#959595", + "width": 1, + "bottom": true, + "top": true + }, + "code": { + "family": "Zed Mono", + "color": "#333333", + "size": 14, + "margin": { + "left": 10 + } + }, + "message": { + "highlight_text": { + "family": "Zed Sans", + "color": "#222222", + "size": 14, + "weight": "bold" + }, + "text": { + "family": "Zed Sans", + "color": "#333333", + "size": 14 + } + } + }, + "diagnostic_path_header": { + "background": "#999999", + "text_scale_factor": 0.857, + "filename": { + "family": "Zed Mono", + "color": "#222222", + "size": 14 + }, + "path": { + "family": "Zed Mono", + "color": "#444444", + "size": 14, + "margin": { + "left": 12 + } + } + }, + "error_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#919191", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#aaaaaa", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#aaaaaa", + "size": 14, + "weight": "bold" + } + } + }, + "warning_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#919191", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#cccccc", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#cccccc", + "size": 14, + "weight": "bold" + } + } + }, + "information_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#919191", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#ffffff", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#ffffff", + "size": 14, + "weight": "bold" + } + } + }, + "hint_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#919191", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#ffffff", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#ffffff", + "size": 14, + "weight": "bold" + } + } + }, + "invalid_error_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#919191", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#333333", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#333333", + "size": 14, + "weight": "bold" + } + } + }, + "invalid_hint_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#919191", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#333333", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#333333", + "size": 14, + "weight": "bold" + } + } + }, + "invalid_information_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#919191", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#333333", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#333333", + "size": 14, + "weight": "bold" + } + } + }, + "invalid_warning_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#919191", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#333333", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#333333", + "size": 14, + "weight": "bold" + } + } + }, + "hover_popover": { + "container": { + "background": "#999999", + "corner_radius": 8, + "padding": { + "left": 8, + "right": 8, + "top": 4, + "bottom": 4 + }, + "shadow": { + "blur": 4, + "color": "#0000001f", + "offset": [ + 1, + 2 + ] + }, + "border": { + "color": "#959595", + "width": 1 + }, + "margin": { + "left": -8 + } + }, + "info_container": { + "background": "#eeeeee", + "corner_radius": 8, + "padding": { + "left": 8, + "right": 8, + "top": 4, + "bottom": 4 + }, + "shadow": { + "blur": 4, + "color": "#0000001f", + "offset": [ + 1, + 2 + ] + }, + "border": { + "color": "#ececec", + "width": 1 + }, + "margin": { + "left": -8 + } + }, + "warning_container": { + "background": "#e9e9e9", + "corner_radius": 8, + "padding": { + "left": 8, + "right": 8, + "top": 4, + "bottom": 4 + }, + "shadow": { + "blur": 4, + "color": "#0000001f", + "offset": [ + 1, + 2 + ] + }, + "border": { + "color": "#ececec", + "width": 1 + }, + "margin": { + "left": -8 + } + }, + "error_container": { + "background": "#e5e5e5", + "corner_radius": 8, + "padding": { + "left": 8, + "right": 8, + "top": 4, + "bottom": 4 + }, + "shadow": { + "blur": 4, + "color": "#0000001f", + "offset": [ + 1, + 2 + ] + }, + "border": { + "color": "#ececec", + "width": 1 + }, + "margin": { + "left": -8 + } + }, + "block_style": { + "padding": { + "top": 4 + } + }, + "prose": { + "family": "Zed Sans", + "color": "#222222", + "size": 14 + }, + "highlight": "#4d4d4d1f" + }, + "link_definition": { + "color": "#dddddd", + "underline": true + }, + "jump_icon": { + "color": "#333333", + "icon_width": 20, + "button_width": 20, + "corner_radius": 6, + "padding": { + "top": 6, + "bottom": 6, + "left": 6, + "right": 6 + }, + "hover": { + "color": "#111111", + "background": "#999999" + } + }, + "composition_mark": { + "underline": { + "thickness": 1, + "color": "#444444" + } + }, + "syntax": { + "primary": { + "color": "#111111", + "weight": "normal" + }, + "comment": { + "color": "#333333", + "weight": "normal" + }, + "punctuation": { + "color": "#222222", + "weight": "normal" + }, + "constant": { + "color": "#444444", + "weight": "normal" + }, + "keyword": { + "color": "#ffffff", + "weight": "normal" + }, + "function": { + "color": "#cccccc", + "weight": "normal" + }, + "type": { + "color": "#eeeeee", + "weight": "normal" + }, + "constructor": { + "color": "#ffffff", + "weight": "normal" + }, + "variant": { + "color": "#ffffff", + "weight": "normal" + }, + "property": { + "color": "#ffffff", + "weight": "normal" + }, + "enum": { + "color": "#bbbbbb", + "weight": "normal" + }, + "operator": { + "color": "#bbbbbb", + "weight": "normal" + }, + "string": { + "color": "#bbbbbb", + "weight": "normal" + }, + "number": { + "color": "#dddddd", + "weight": "normal" + }, + "boolean": { + "color": "#dddddd", + "weight": "normal" + }, + "predictive": { + "color": "#444444", + "weight": "normal" + }, + "title": { + "color": "#cccccc", + "weight": "bold" + }, + "emphasis": { + "color": "#ffffff", + "weight": "normal" + }, + "emphasis.strong": { + "color": "#ffffff", + "weight": "bold" + }, + "link_uri": { + "color": "#dddddd", + "weight": "normal", + "underline": true + }, + "link_text": { + "color": "#bbbbbb", + "weight": "normal", + "italic": true + } + } + }, + "project_diagnostics": { + "background": "#000000", + "tab_icon_spacing": 4, + "tab_icon_width": 13, + "tab_summary_spacing": 10, + "empty_message": { + "family": "Zed Sans", + "color": "#333333", + "size": 16 + } + }, + "command_palette": { + "keystroke_spacing": 8, + "key": { + "text": { + "family": "Zed Mono", + "color": "#333333", + "size": 12 + }, + "corner_radius": 4, + "background": "#000000", + "border": { + "color": "#959595", + "width": 1 + }, + "padding": { + "top": 2, + "bottom": 2, + "left": 8, + "right": 8 + }, + "margin": { + "left": 2 + }, + "active": { + "text": { + "family": "Zed Mono", + "color": "#111111", + "size": 12 + } + } + } + }, + "project_panel": { + "padding": { + "left": 12, + "right": 12, + "top": 6, + "bottom": 6 + }, + "indent_width": 8, + "entry": { + "height": 24, + "icon_color": "#444444", + "icon_size": 8, + "icon_spacing": 8, + "text": { + "family": "Zed Mono", + "color": "#333333", + "size": 14 + }, + "hover": { + "background": "#959595" + }, + "active": { + "background": "#919191", + "text": { + "family": "Zed Mono", + "color": "#111111", + "size": 14 + } + }, + "active_hover": { + "background": "#919191", + "text": { + "family": "Zed Mono", + "color": "#111111", + "size": 14 + } + } + }, + "cut_entry_fade": 0.4, + "ignored_entry_fade": 0.6, + "filename_editor": { + "background": "#000000", + "text": { + "family": "Zed Mono", + "color": "#111111", + "size": 14 + }, + "selection": { + "cursor": "#ffffff", + "selection": "#ffffff3d" + } + } + }, + "chat_panel": { + "padding": { + "top": 12, + "bottom": 12 + }, + "channel_name": { + "family": "Zed Sans", + "color": "#222222", + "weight": "bold", + "size": 14 + }, + "channel_name_hash": { + "family": "Zed Sans", + "color": "#444444", + "size": 14, + "padding": { + "right": 8 + } + }, + "channel_select": { + "header": { + "name": { + "family": "Zed Sans", + "color": "#222222", + "size": 14 + }, + "padding": { + "bottom": 4, + "left": 0 + }, + "hash": { + "family": "Zed Sans", + "color": "#444444", + "size": 14, + "margin": { + "right": 8 + } + }, + "corner_radius": 0 + }, + "item": { + "name": { + "family": "Zed Sans", + "color": "#333333", + "size": 14 + }, + "padding": 4, + "hash": { + "family": "Zed Sans", + "color": "#444444", + "size": 14, + "margin": { + "right": 8 + } + }, + "corner_radius": 0 + }, + "hovered_item": { + "name": { + "family": "Zed Sans", + "color": "#333333", + "size": 14 + }, + "padding": 4, + "hash": { + "family": "Zed Sans", + "color": "#444444", + "size": 14, + "margin": { + "right": 8 + } + }, + "background": "#959595", + "corner_radius": 6 + }, + "active_item": { + "name": { + "family": "Zed Sans", + "color": "#222222", + "size": 14 + }, + "padding": 4, + "hash": { + "family": "Zed Sans", + "color": "#444444", + "size": 14, + "margin": { + "right": 8 + } + }, + "corner_radius": 0 + }, + "hovered_active_item": { + "name": { + "family": "Zed Sans", + "color": "#222222", + "size": 14 + }, + "padding": 4, + "hash": { + "family": "Zed Sans", + "color": "#444444", + "size": 14, + "margin": { + "right": 8 + } + }, + "background": "#959595", + "corner_radius": 6 + }, + "menu": { + "background": "#000000", + "corner_radius": 6, + "padding": 4, + "border": { + "color": "#919191", + "width": 1 + }, + "shadow": { + "blur": 4, + "color": "#0000001f", + "offset": [ + 1, + 2 + ] + } + } + }, + "sign_in_prompt": { + "family": "Zed Sans", + "color": "#333333", + "underline": true, + "size": 14 + }, + "hovered_sign_in_prompt": { + "family": "Zed Sans", + "color": "#222222", + "underline": true, + "size": 14 + }, + "message": { + "body": { + "family": "Zed Sans", + "color": "#333333", + "size": 14 + }, + "timestamp": { + "family": "Zed Sans", + "color": "#444444", + "size": 14 + }, + "padding": { + "bottom": 6 + }, + "sender": { + "family": "Zed Sans", + "color": "#222222", + "weight": "bold", + "size": 14, + "margin": { + "right": 8 + } + } + }, + "pending_message": { + "body": { + "family": "Zed Sans", + "color": "#444444", + "size": 14 + }, + "timestamp": { + "family": "Zed Sans", + "color": "#444444", + "size": 14 + }, + "padding": { + "bottom": 6 + }, + "sender": { + "family": "Zed Sans", + "color": "#444444", + "weight": "bold", + "size": 14, + "margin": { + "right": 8 + } + } + }, + "input_editor": { + "background": "#000000", + "corner_radius": 6, + "text": { + "family": "Zed Mono", + "color": "#222222", + "size": 14 + }, + "placeholder_text": { + "family": "Zed Mono", + "color": "#555555", + "size": 14 + }, + "selection": { + "cursor": "#ffffff", + "selection": "#ffffff3d" + }, + "border": { + "color": "#959595", + "width": 1 + }, + "padding": { + "bottom": 7, + "left": 8, + "right": 8, + "top": 7 + } + } + }, + "contacts_panel": { + "padding": { + "top": 12, + "bottom": 0 + }, + "user_query_editor": { + "background": "#000000", + "corner_radius": 6, + "text": { + "family": "Zed Mono", + "color": "#222222", + "size": 14 + }, + "placeholder_text": { + "family": "Zed Mono", + "color": "#555555", + "size": 14 + }, + "selection": { + "cursor": "#ffffff", + "selection": "#ffffff3d" + }, + "border": { + "color": "#959595", + "width": 1 + }, + "padding": { + "bottom": 4, + "left": 8, + "right": 8, + "top": 4 + }, + "margin": { + "left": 12, + "right": 12 + } + }, + "user_query_editor_height": 32, + "add_contact_button": { + "margin": { + "left": 6, + "right": 12 + }, + "color": "#222222", + "button_width": 16, + "icon_width": 16 + }, + "private_button": { + "icon_width": 12, + "color": "#222222", + "corner_radius": 5, + "button_width": 12 + }, + "row_height": 28, + "section_icon_size": 8, + "header_row": { + "family": "Zed Mono", + "color": "#333333", + "size": 14, + "margin": { + "top": 14 + }, + "padding": { + "left": 12, + "right": 12 + }, + "active": { + "family": "Zed Mono", + "color": "#222222", + "size": 14, + "background": "#8c8c8c" + } + }, + "contact_row": { + "padding": { + "left": 12, + "right": 12 + }, + "active": { + "background": "#8c8c8c" + } + }, + "tree_branch": { + "color": "#444444", + "width": 1, + "hover": { + "color": "#444444" + }, + "active": { + "color": "#444444" + } + }, + "contact_avatar": { + "corner_radius": 10, + "width": 18 + }, + "contact_username": { + "family": "Zed Mono", + "color": "#222222", + "size": 14, + "margin": { + "left": 8 + } + }, + "contact_button_spacing": 8, + "contact_button": { + "background": "#959595", + "color": "#222222", + "icon_width": 8, + "button_width": 16, + "corner_radius": 8, + "hover": { + "background": "#4c4c4c" + } + }, + "disabled_button": { + "background": "#959595", + "color": "#444444", + "icon_width": 8, + "button_width": 16, + "corner_radius": 8 + }, + "project_row": { + "guest_avatar_spacing": 4, + "height": 24, + "guest_avatar": { + "corner_radius": 8, + "width": 14 + }, + "name": { + "family": "Zed Mono", + "color": "#333333", + "size": 14, + "margin": { + "left": 8, + "right": 6 + } + }, + "guests": { + "margin": { + "left": 8, + "right": 8 + } + }, + "padding": { + "left": 12, + "right": 12 + }, + "background": "#999999", + "hover": { + "background": "#959595" + }, + "active": { + "background": "#919191" + } + }, + "invite_row": { + "padding": { + "left": 12, + "right": 12 + }, + "border": { + "top": true, + "width": 1, + "color": "#919191" + }, + "text": { + "family": "Zed Sans", + "color": "#333333", + "size": 14 + }, + "hover": { + "text": { + "family": "Zed Sans", + "color": "#111111", + "size": 14 + } + } + } + }, + "contact_finder": { + "background": "#999999", + "corner_radius": 8, + "padding": 8, + "item": { + "padding": { + "bottom": 4, + "left": 12, + "right": 12, + "top": 4 + }, + "corner_radius": 8, + "text": { + "family": "Zed Sans", + "color": "#333333", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#ffffff", + "weight": "bold", + "size": 14 + }, + "active": { + "background": "#919191", + "text": { + "family": "Zed Sans", + "color": "#111111", + "size": 14 + } + }, + "hover": { + "background": "#959595" + } + }, + "border": { + "color": "#919191", + "width": 1 + }, + "empty": { + "text": { + "family": "Zed Sans", + "color": "#444444", + "size": 14 + }, + "padding": { + "bottom": 4, + "left": 12, + "right": 12, + "top": 8 + } + }, + "input_editor": { + "background": "#000000", + "corner_radius": 8, + "placeholder_text": { + "family": "Zed Sans", + "color": "#555555", + "size": 14 + }, + "selection": { + "cursor": "#ffffff", + "selection": "#ffffff3d" + }, + "text": { + "family": "Zed Mono", + "color": "#222222", + "size": 14 + }, + "border": { + "color": "#959595", + "width": 1 + }, + "padding": { + "bottom": 7, + "left": 16, + "right": 16, + "top": 7 + } + }, + "shadow": { + "blur": 16, + "color": "#0000001f", + "offset": [ + 0, + 2 + ] + }, + "row_height": 28, + "contact_avatar": { + "corner_radius": 10, + "width": 18 + }, + "contact_username": { + "padding": { + "left": 8 + } + }, + "contact_button": { + "background": "#959595", + "color": "#222222", + "icon_width": 8, + "button_width": 16, + "corner_radius": 8, + "hover": { + "background": "#919191" + } + }, + "disabled_contact_button": { + "background": "#959595", + "color": "#444444", + "icon_width": 8, + "button_width": 16, + "corner_radius": 8 + } + }, + "search": { + "match_background": "#d9d9d9", + "tab_icon_spacing": 8, + "tab_icon_width": 14, + "option_button": { + "family": "Zed Mono", + "color": "#333333", + "size": 14, + "background": "#999999", + "corner_radius": 6, + "border": { + "color": "#959595", + "width": 1 + }, + "margin": { + "right": 4 + }, + "padding": { + "bottom": 2, + "left": 10, + "right": 10, + "top": 2 + }, + "active": { + "family": "Zed Mono", + "color": "#111111", + "size": 14, + "background": "#888888", + "border": { + "color": "#999999", + "width": 1 + } + }, + "hover": { + "family": "Zed Mono", + "color": "#111111", + "size": 14, + "background": "#919191", + "border": { + "color": "#999999", + "width": 1 + } + } + }, + "editor": { + "background": "#000000", + "corner_radius": 8, + "min_width": 200, + "max_width": 500, + "placeholder_text": { + "family": "Zed Mono", + "color": "#555555", + "size": 14 + }, + "selection": { + "cursor": "#ffffff", + "selection": "#ffffff3d" + }, + "text": { + "family": "Zed Mono", + "color": "#111111", + "size": 14 + }, + "border": { + "color": "#959595", + "width": 1 + }, + "margin": { + "right": 12 + }, + "padding": { + "top": 3, + "bottom": 3, + "left": 12, + "right": 8 + } + }, + "invalid_editor": { + "background": "#000000", + "corner_radius": 8, + "min_width": 200, + "max_width": 500, + "placeholder_text": { + "family": "Zed Mono", + "color": "#555555", + "size": 14 + }, + "selection": { + "cursor": "#ffffff", + "selection": "#ffffff3d" + }, + "text": { + "family": "Zed Mono", + "color": "#111111", + "size": 14 + }, + "border": { + "color": "#c4c4c4", + "width": 1 + }, + "margin": { + "right": 12 + }, + "padding": { + "top": 3, + "bottom": 3, + "left": 12, + "right": 8 + } + }, + "match_index": { + "family": "Zed Mono", + "color": "#444444", + "size": 14, + "padding": 6 + }, + "option_button_group": { + "padding": { + "left": 12, + "right": 12 + } + }, + "results_status": { + "family": "Zed Mono", + "color": "#222222", + "size": 18 + } + }, + "breadcrumbs": { + "family": "Zed Sans", + "color": "#333333", + "size": 14, + "padding": { + "left": 6 + } + }, + "contact_notification": { + "header_avatar": { + "height": 12, + "width": 12, + "corner_radius": 6 + }, + "header_message": { + "family": "Zed Sans", + "color": "#222222", + "size": 12, + "margin": { + "left": 8, + "right": 8 + } + }, + "header_height": 18, + "body_message": { + "family": "Zed Sans", + "color": "#333333", + "size": 12, + "margin": { + "left": 20, + "top": 6, + "bottom": 6 + } + }, + "button": { + "family": "Zed Sans", + "color": "#222222", + "size": 12, + "background": "#000000", + "padding": 4, + "corner_radius": 6, + "margin": { + "left": 6 + }, + "hover": { + "background": "#4c4c4c" + } + }, + "dismiss_button": { + "color": "#333333", + "icon_width": 8, + "icon_height": 8, + "button_width": 8, + "button_height": 8, + "hover": { + "color": "#222222" + } + } + }, + "update_notification": { + "message": { + "family": "Zed Sans", + "color": "#222222", + "size": 12, + "margin": { + "left": 8, + "right": 8 + } + }, + "action_message": { + "family": "Zed Sans", + "color": "#333333", + "size": 12, + "margin": { + "left": 8, + "top": 6, + "bottom": 6 + }, + "hover": { + "color": "#111111" + } + }, + "dismiss_button": { + "color": "#333333", + "icon_width": 8, + "icon_height": 8, + "button_width": 8, + "button_height": 8, + "hover": { + "color": "#222222" + } + } + }, + "tooltip": { + "background": "#000000", + "border": { + "color": "#959595", + "width": 1 + }, + "padding": { + "top": 4, + "bottom": 4, + "left": 8, + "right": 8 + }, + "margin": { + "top": 6, + "left": 6 + }, + "shadow": { + "blur": 4, + "color": "#0000001f", + "offset": [ + 1, + 2 + ] + }, + "corner_radius": 6, + "text": { + "family": "Zed Sans", + "color": "#222222", + "size": 12 + }, + "keystroke": { + "background": "#999999", + "corner_radius": 4, + "margin": { + "left": 6 + }, + "padding": { + "left": 4, + "right": 4 + }, + "family": "Zed Mono", + "color": "#333333", + "size": 12, + "weight": "bold" + }, + "max_text_width": 200 + }, + "terminal": { + "colors": { + "black": "#000000", + "red": "#aaaaaa", + "green": "#dddddd", + "yellow": "#cccccc", + "blue": "#ffffff", + "magenta": "#cdcdcd", + "cyan": "#eeeeee", + "white": "#111111", + "bright_black": "#444444", + "bright_red": "#cbcbcb", + "bright_green": "#e5e5e5", + "bright_yellow": "#dcdcdc", + "bright_blue": "#f6f6f6", + "bright_magenta": "#dddddd", + "bright_cyan": "#ededed", + "bright_white": "#111111", + "foreground": "#111111", + "background": "#000000", + "modal_background": "#999999", + "cursor": "#ffffff", + "dim_black": "#111111", + "dim_red": "#5a5a5a", + "dim_green": "#747474", + "dim_yellow": "#6b6b6b", + "dim_blue": "#858585", + "dim_magenta": "#6c6c6c", + "dim_cyan": "#7c7c7c", + "dim_white": "#333333", + "bright_foreground": "#111111", + "dim_foreground": "#000000" + }, + "modal_container": { + "background": "#999999", + "corner_radius": 8, + "padding": 8, + "margin": 25, + "border": { + "color": "#919191", + "width": 1 + }, + "shadow": { + "blur": 16, + "color": "#0000001f", + "offset": [ + 0, + 2 + ] + } + } + } +} \ No newline at end of file diff --git a/styles/src/buildThemes.ts b/styles/src/buildThemes.ts index 22178163b6bd6642c255049a978def6dd840518a..47444eb077496594755d6681041d6b63fd0253c2 100644 --- a/styles/src/buildThemes.ts +++ b/styles/src/buildThemes.ts @@ -2,29 +2,41 @@ import * as fs from "fs"; import * as path from "path"; import { tmpdir } from "os"; import app from "./styleTree/app"; -import themes from "./themes"; +import themes, { internalThemes } from "./themes"; import snakeCase from "./utils/snakeCase"; +import Theme from "./themes/common/theme"; -const themeDirectory = `${__dirname}/../../assets/themes/`; +const themeDirectory = `${__dirname}/../../assets/themes`; +const internalDirectory = `${themeDirectory}/internal`; const tempDirectory = fs.mkdtempSync(path.join(tmpdir(), "build-themes")); // Clear existing themes -for (const file of fs.readdirSync(themeDirectory)) { - if (file.endsWith(".json")) { - const name = file.replace(/\.json$/, ""); - if (!themes.find((theme) => theme.name === name)) { - fs.unlinkSync(path.join(themeDirectory, file)); +function clearThemes(themeDirectory: string) { + for (const file of fs.readdirSync(themeDirectory)) { + if (file.endsWith(".json")) { + const name = file.replace(/\.json$/, ""); + if (!themes.find((theme) => theme.name === name)) { + fs.unlinkSync(path.join(themeDirectory, file)); + } } } } -// Write new themes to theme directory -for (let theme of themes) { - let styleTree = snakeCase(app(theme)); - let styleTreeJSON = JSON.stringify(styleTree, null, 2); - let tempPath = path.join(tempDirectory, `${theme.name}.json`); - let outPath = path.join(themeDirectory, `${theme.name}.json`); - fs.writeFileSync(tempPath, styleTreeJSON); - fs.renameSync(tempPath, outPath); - console.log(`- ${outPath} created`); +clearThemes(themeDirectory); +clearThemes(internalDirectory); + +function writeThemes(themes: Theme[], outputDirectory: string) { + for (let theme of themes) { + let styleTree = snakeCase(app(theme)); + let styleTreeJSON = JSON.stringify(styleTree, null, 2); + let tempPath = path.join(tempDirectory, `${theme.name}.json`); + let outPath = path.join(outputDirectory, `${theme.name}.json`); + fs.writeFileSync(tempPath, styleTreeJSON); + fs.renameSync(tempPath, outPath); + console.log(`- ${outPath} created`); + } } + +// Write new themes to theme directory +writeThemes(themes, themeDirectory); +writeThemes(internalThemes, internalDirectory); diff --git a/styles/src/themes.ts b/styles/src/themes.ts index 8d1782fd8472937f2ae97c3536139c35db1971de..e8bf8fc390daadb2c0798b3c77dc6298ac41abbe 100644 --- a/styles/src/themes.ts +++ b/styles/src/themes.ts @@ -5,14 +5,21 @@ import Theme from "./themes/common/theme"; const themes: Theme[] = []; export default themes; -const themesPath = path.resolve(`${__dirname}/themes`); -for (const fileName of fs.readdirSync(themesPath)) { - if (fileName == "template.ts") continue; - const filePath = path.join(themesPath, fileName); +const internalThemes: Theme[] = []; +export { internalThemes } - if (fs.statSync(filePath).isFile()) { - const theme = require(filePath); - if (theme.dark) themes.push(theme.dark); - if (theme.light) themes.push(theme.light); +function fillThemes(themesPath: string, themes: Theme[]) { + for (const fileName of fs.readdirSync(themesPath)) { + if (fileName == "template.ts") continue; + const filePath = path.join(themesPath, fileName); + + if (fs.statSync(filePath).isFile()) { + const theme = require(filePath); + if (theme.dark) themes.push(theme.dark); + if (theme.light) themes.push(theme.light); + } } } + +fillThemes(path.resolve(`${__dirname}/themes`), themes) +fillThemes(path.resolve(`${__dirname}/themes/internal`), internalThemes) diff --git a/styles/src/themes/internal/cave-internal.ts b/styles/src/themes/internal/cave-internal.ts new file mode 100644 index 0000000000000000000000000000000000000000..db7af1b5ec8a9d9e0c706d0d4aefdf61cd0bd5e9 --- /dev/null +++ b/styles/src/themes/internal/cave-internal.ts @@ -0,0 +1,28 @@ +import chroma from "chroma-js"; +import { colorRamp, createTheme } from "../common/base16"; + +const name = "cave-internal"; + +const ramps = { + neutral: chroma.scale([ + "#111111", + "#222222", + "#333333", + "#444444", + "#555555", + "#888888", + "#999999", + "#000000", + ]), + red: colorRamp(chroma("#aaaaaa")), + orange: colorRamp(chroma("#bbbbbb")), + yellow: colorRamp(chroma("#cccccc")), + green: colorRamp(chroma("#dddddd")), + cyan: colorRamp(chroma("#eeeeee")), + blue: colorRamp(chroma("#ffffff")), + violet: colorRamp(chroma("#ababab")), + magenta: colorRamp(chroma("#cdcdcd")), +}; + +export const dark = createTheme(`${name}-dark`, false, ramps); +export const light = createTheme(`${name}-light`, true, ramps); From d88132034587a36704ef81f748c678389ac24ac7 Mon Sep 17 00:00:00 2001 From: Mikayla Maki Date: Thu, 8 Sep 2022 15:06:08 -0700 Subject: [PATCH 04/10] Finished internal themes --- .gitignore | 1 + assets/themes/.gitkeep | 0 crates/collab/src/integration_tests.rs | 2 +- crates/theme/src/theme_registry.rs | 13 +++++++++++-- crates/workspace/src/workspace.rs | 2 +- crates/zed/src/main.rs | 2 +- crates/zed/src/settings_file.rs | 2 +- crates/zed/src/zed.rs | 2 +- 8 files changed, 17 insertions(+), 7 deletions(-) delete mode 100644 assets/themes/.gitkeep diff --git a/.gitignore b/.gitignore index fcebdc84a2126b9d974ed64942896caf576434f0..1b39c0720cf06c157ad43de534328abe01542bcf 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ /crates/collab/static/styles.css /vendor/bin /assets/themes/*.json +/assets/themes/internal/*.json \ No newline at end of file diff --git a/assets/themes/.gitkeep b/assets/themes/.gitkeep deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/crates/collab/src/integration_tests.rs b/crates/collab/src/integration_tests.rs index 905aa328f2a6bc3211006606a628f09d434fa964..c037d9719a05a38541435d87bb1a871f7c22ffcd 100644 --- a/crates/collab/src/integration_tests.rs +++ b/crates/collab/src/integration_tests.rs @@ -5220,7 +5220,7 @@ impl TestServer { user_store: user_store.clone(), project_store: project_store.clone(), languages: Arc::new(LanguageRegistry::new(Task::ready(()))), - themes: ThemeRegistry::new((), cx.font_cache()), + themes: ThemeRegistry::new((), cx.font_cache(), false), fs: fs.clone(), build_window_options: Default::default, initialize_workspace: |_, _, _| unimplemented!(), diff --git a/crates/theme/src/theme_registry.rs b/crates/theme/src/theme_registry.rs index af4b02a86a574f3da78edbd58eef0d2919ca6a59..98bd4e301e154515987cecb0123028d59cfe5fa1 100644 --- a/crates/theme/src/theme_registry.rs +++ b/crates/theme/src/theme_registry.rs @@ -10,20 +10,28 @@ pub struct ThemeRegistry { themes: Mutex>>, theme_data: Mutex>>, font_cache: Arc, + internal: bool, } impl ThemeRegistry { - pub fn new(source: impl AssetSource, font_cache: Arc) -> Arc { + pub fn new(source: impl AssetSource, font_cache: Arc, internal: bool) -> Arc { Arc::new(Self { assets: Box::new(source), themes: Default::default(), theme_data: Default::default(), font_cache, + internal, }) } pub fn list(&self) -> impl Iterator + '_ { - self.assets.list("themes/").into_iter().filter_map(|path| { + let mut dirs = self.assets.list("themes/"); + + if self.internal { + dirs.extend(self.assets.list("themes/internal/")) + }; + + dirs.into_iter().filter_map(|path| { let filename = path.strip_prefix("themes/")?; let theme_name = filename.strip_suffix(".json")?; self.get(theme_name).ok().map(|theme| theme.meta.clone()) @@ -50,6 +58,7 @@ impl ThemeRegistry { serde_path_to_error::deserialize(&mut serde_json::Deserializer::from_slice(&theme_json)) })?; + // Reset name to be the file path, so that we can use it to access the stored themes theme.meta.name = name.into(); let theme = Arc::new(theme); self.themes.lock().insert(name.to_string(), theme.clone()); diff --git a/crates/workspace/src/workspace.rs b/crates/workspace/src/workspace.rs index 9f6c7f16122a1b8dbd4121720dbceb010ad600f3..1d4bed7a94d048291e304999a9d61a59992ff6a7 100644 --- a/crates/workspace/src/workspace.rs +++ b/crates/workspace/src/workspace.rs @@ -860,7 +860,7 @@ impl AppState { let client = Client::new(http_client.clone()); let project_store = cx.add_model(|_| ProjectStore::new(project::Db::open_fake())); let user_store = cx.add_model(|cx| UserStore::new(client.clone(), http_client, cx)); - let themes = ThemeRegistry::new((), cx.font_cache().clone()); + let themes = ThemeRegistry::new((), cx.font_cache().clone(), false); Arc::new(Self { client, themes, diff --git a/crates/zed/src/main.rs b/crates/zed/src/main.rs index 1db6656fb3967987219b4e74982e481067576ce9..0edebeed7ea6a34d88bce1c19358c2392bd433e6 100644 --- a/crates/zed/src/main.rs +++ b/crates/zed/src/main.rs @@ -85,7 +85,7 @@ fn main() { } }); - let themes = ThemeRegistry::new(Assets, app.font_cache()); + let themes = ThemeRegistry::new(Assets, app.font_cache(), internal); let default_settings = Settings::defaults(Assets, &app.font_cache(), &themes); let config_files = load_config_files(&app, fs.clone()); diff --git a/crates/zed/src/settings_file.rs b/crates/zed/src/settings_file.rs index 6d28efbcbccbd837af7427f4b2431e4e6bce9431..77ac6f8b6405213601467ea4d1f5b344ddfa6dfd 100644 --- a/crates/zed/src/settings_file.rs +++ b/crates/zed/src/settings_file.rs @@ -153,7 +153,7 @@ mod tests { watch_settings_file( default_settings.clone(), source, - ThemeRegistry::new((), font_cache), + ThemeRegistry::new((), font_cache, false), false, cx, ) diff --git a/crates/zed/src/zed.rs b/crates/zed/src/zed.rs index cadca586da8772122bc90e6b848306bc083e3d24..e3fd2ee8d1e010614c6f5b315885d0f0f74da0a7 100644 --- a/crates/zed/src/zed.rs +++ b/crates/zed/src/zed.rs @@ -1664,7 +1664,7 @@ mod tests { .into(), ]) .unwrap(); - let themes = ThemeRegistry::new(Assets, cx.font_cache().clone()); + let themes = ThemeRegistry::new(Assets, cx.font_cache().clone(), false); let settings = Settings::defaults(Assets, cx.font_cache(), &themes); let mut has_default_theme = false; From 2b4db9b16e6bed94a60e1566f97c5838d22cd68d Mon Sep 17 00:00:00 2001 From: Mikayla Maki Date: Thu, 8 Sep 2022 15:47:27 -0700 Subject: [PATCH 05/10] Added experimental themes flag --- .gitignore | 3 +- crates/collab/src/integration_tests.rs | 2 +- crates/settings/src/settings.rs | 4 ++- crates/theme/src/theme_registry.rs | 22 ++++++++++----- crates/theme_selector/src/theme_selector.rs | 16 +++++++---- crates/workspace/src/workspace.rs | 2 +- crates/zed/src/main.rs | 12 ++++---- crates/zed/src/settings_file.rs | 2 +- crates/zed/src/zed.rs | 12 ++++++-- styles/src/buildThemes.ts | 5 +++- styles/src/themes.ts | 6 ++++ .../themes/experiments/cave-experiments.ts | 28 +++++++++++++++++++ 12 files changed, 87 insertions(+), 27 deletions(-) create mode 100644 styles/src/themes/experiments/cave-experiments.ts diff --git a/.gitignore b/.gitignore index 1b39c0720cf06c157ad43de534328abe01542bcf..5e6963ba8b899780ec067d64b42eac6d934c4d36 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,5 @@ /crates/collab/static/styles.css /vendor/bin /assets/themes/*.json -/assets/themes/internal/*.json \ No newline at end of file +/assets/themes/internal/*.json +/assets/themes/experiments/*.json \ No newline at end of file diff --git a/crates/collab/src/integration_tests.rs b/crates/collab/src/integration_tests.rs index c037d9719a05a38541435d87bb1a871f7c22ffcd..905aa328f2a6bc3211006606a628f09d434fa964 100644 --- a/crates/collab/src/integration_tests.rs +++ b/crates/collab/src/integration_tests.rs @@ -5220,7 +5220,7 @@ impl TestServer { user_store: user_store.clone(), project_store: project_store.clone(), languages: Arc::new(LanguageRegistry::new(Task::ready(()))), - themes: ThemeRegistry::new((), cx.font_cache(), false), + themes: ThemeRegistry::new((), cx.font_cache()), fs: fs.clone(), build_window_options: Default::default, initialize_workspace: |_, _, _| unimplemented!(), diff --git a/crates/settings/src/settings.rs b/crates/settings/src/settings.rs index 4e4bd8c8c349d0f33565113e6009fe577d897299..c0eb858e48a52258b50783362eb73884cfa7b6e3 100644 --- a/crates/settings/src/settings.rs +++ b/crates/settings/src/settings.rs @@ -41,7 +41,9 @@ pub struct Settings { } #[derive(Copy, Clone, Debug, Default, Deserialize, JsonSchema)] -pub struct FeatureFlags {} +pub struct FeatureFlags { + pub experimental_themes: bool, +} impl FeatureFlags { pub fn keymap_files(&self) -> Vec<&'static str> { diff --git a/crates/theme/src/theme_registry.rs b/crates/theme/src/theme_registry.rs index 98bd4e301e154515987cecb0123028d59cfe5fa1..5735f13b14fda153c0a9580d1d786cfbb4069a35 100644 --- a/crates/theme/src/theme_registry.rs +++ b/crates/theme/src/theme_registry.rs @@ -10,26 +10,34 @@ pub struct ThemeRegistry { themes: Mutex>>, theme_data: Mutex>>, font_cache: Arc, - internal: bool, } impl ThemeRegistry { - pub fn new(source: impl AssetSource, font_cache: Arc, internal: bool) -> Arc { + pub fn new(source: impl AssetSource, font_cache: Arc) -> Arc { Arc::new(Self { assets: Box::new(source), themes: Default::default(), theme_data: Default::default(), font_cache, - internal, }) } - pub fn list(&self) -> impl Iterator + '_ { + pub fn list(&self, internal: bool, experiments: bool) -> impl Iterator + '_ { let mut dirs = self.assets.list("themes/"); - if self.internal { - dirs.extend(self.assets.list("themes/internal/")) - }; + if !internal { + dirs = dirs + .into_iter() + .filter(|path| !path.starts_with("themes/internal")) + .collect() + } + + if !experiments { + dirs = dirs + .into_iter() + .filter(|path| !path.starts_with("themes/experiments")) + .collect() + } dirs.into_iter().filter_map(|path| { let filename = path.strip_prefix("themes/")?; diff --git a/crates/theme_selector/src/theme_selector.rs b/crates/theme_selector/src/theme_selector.rs index 76c426e29044c0008e28f91270674abced3d1d97..32a7736659aae53812ae657f6357d3d6d42eb274 100644 --- a/crates/theme_selector/src/theme_selector.rs +++ b/crates/theme_selector/src/theme_selector.rs @@ -39,13 +39,17 @@ impl ThemeSelector { fn new(registry: Arc, cx: &mut ViewContext) -> Self { let handle = cx.weak_handle(); let picker = cx.add_view(|cx| Picker::new(handle, cx)); - let original_theme = cx.global::().theme.clone(); - let mut theme_names = registry.list().collect::>(); + let settings = cx.global::(); + let original_theme = settings.theme.clone(); + + let mut theme_names = registry + .list(settings.internal, settings.experiments.experimental_themes) + .collect::>(); theme_names.sort_unstable_by(|a, b| { - a.is_light.cmp(&b.is_light).reverse() - // a.ends_with("dark") - // .cmp(&b.ends_with("dark")) - // .then_with(|| a.cmp(b)) + a.is_light + .cmp(&b.is_light) + .reverse() + .then(a.name.cmp(&b.name)) }); let matches = theme_names .iter() diff --git a/crates/workspace/src/workspace.rs b/crates/workspace/src/workspace.rs index 1d4bed7a94d048291e304999a9d61a59992ff6a7..9f6c7f16122a1b8dbd4121720dbceb010ad600f3 100644 --- a/crates/workspace/src/workspace.rs +++ b/crates/workspace/src/workspace.rs @@ -860,7 +860,7 @@ impl AppState { let client = Client::new(http_client.clone()); let project_store = cx.add_model(|_| ProjectStore::new(project::Db::open_fake())); let user_store = cx.add_model(|cx| UserStore::new(client.clone(), http_client, cx)); - let themes = ThemeRegistry::new((), cx.font_cache().clone(), false); + let themes = ThemeRegistry::new((), cx.font_cache().clone()); Arc::new(Self { client, themes, diff --git a/crates/zed/src/main.rs b/crates/zed/src/main.rs index 0edebeed7ea6a34d88bce1c19358c2392bd433e6..e3ae35bc08b057c493f8cb5d9c22954083adfec5 100644 --- a/crates/zed/src/main.rs +++ b/crates/zed/src/main.rs @@ -70,7 +70,6 @@ fn main() { .await .map(|github| { &github == "as-cii" - || &github == "ForLoveOfCats" || &github == "ForLoveOfCats" || &github == "gibusu" || &github == "iamnbutler" @@ -85,7 +84,7 @@ fn main() { } }); - let themes = ThemeRegistry::new(Assets, app.font_cache(), internal); + let themes = ThemeRegistry::new(Assets, app.font_cache()); let default_settings = Settings::defaults(Assets, &app.font_cache(), &themes); let config_files = load_config_files(&app, fs.clone()); @@ -127,9 +126,12 @@ fn main() { let fs = fs.clone(); async move { while let Some(user) = current_user.recv().await { - let user_name = user - .map(|user| user.github_login.clone()) - .unwrap_or_else(|| String::new()); + // 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, diff --git a/crates/zed/src/settings_file.rs b/crates/zed/src/settings_file.rs index 77ac6f8b6405213601467ea4d1f5b344ddfa6dfd..6d28efbcbccbd837af7427f4b2431e4e6bce9431 100644 --- a/crates/zed/src/settings_file.rs +++ b/crates/zed/src/settings_file.rs @@ -153,7 +153,7 @@ mod tests { watch_settings_file( default_settings.clone(), source, - ThemeRegistry::new((), font_cache, false), + ThemeRegistry::new((), font_cache), false, cx, ) diff --git a/crates/zed/src/zed.rs b/crates/zed/src/zed.rs index e3fd2ee8d1e010614c6f5b315885d0f0f74da0a7..18d0cfa76f4d50640c5d6cb95393f77b3d532976 100644 --- a/crates/zed/src/zed.rs +++ b/crates/zed/src/zed.rs @@ -244,7 +244,13 @@ pub fn initialize_workspace( cx.emit(workspace::Event::PaneAdded(workspace.active_pane().clone())); - let theme_names = app_state.themes.list().map(|meta| meta.name).collect(); + let settings = cx.global::(); + + let theme_names = app_state + .themes + .list(settings.internal, settings.experiments.experimental_themes) + .map(|meta| meta.name) + .collect(); let language_names = &languages::LANGUAGE_NAMES; workspace.project().update(cx, |project, cx| { @@ -1664,11 +1670,11 @@ mod tests { .into(), ]) .unwrap(); - let themes = ThemeRegistry::new(Assets, cx.font_cache().clone(), false); + let themes = ThemeRegistry::new(Assets, cx.font_cache().clone()); let settings = Settings::defaults(Assets, cx.font_cache(), &themes); let mut has_default_theme = false; - for theme_name in themes.list().map(|meta| meta.name) { + for theme_name in themes.list(false, false).map(|meta| meta.name) { let theme = themes.get(&theme_name).unwrap(); if theme.meta.name == settings.theme.meta.name { has_default_theme = true; diff --git a/styles/src/buildThemes.ts b/styles/src/buildThemes.ts index 47444eb077496594755d6681041d6b63fd0253c2..10fb62bdd31948316934b6291cdc17f556382de9 100644 --- a/styles/src/buildThemes.ts +++ b/styles/src/buildThemes.ts @@ -2,12 +2,13 @@ import * as fs from "fs"; import * as path from "path"; import { tmpdir } from "os"; import app from "./styleTree/app"; -import themes, { internalThemes } from "./themes"; +import themes, { internalThemes, experimentalThemes } from "./themes"; import snakeCase from "./utils/snakeCase"; import Theme from "./themes/common/theme"; const themeDirectory = `${__dirname}/../../assets/themes`; const internalDirectory = `${themeDirectory}/internal`; +const experimentsDirectory = `${themeDirectory}/experiments`; const tempDirectory = fs.mkdtempSync(path.join(tmpdir(), "build-themes")); // Clear existing themes @@ -24,6 +25,7 @@ function clearThemes(themeDirectory: string) { clearThemes(themeDirectory); clearThemes(internalDirectory); +clearThemes(experimentsDirectory); function writeThemes(themes: Theme[], outputDirectory: string) { for (let theme of themes) { @@ -40,3 +42,4 @@ function writeThemes(themes: Theme[], outputDirectory: string) { // Write new themes to theme directory writeThemes(themes, themeDirectory); writeThemes(internalThemes, internalDirectory); +writeThemes(experimentalThemes, experimentsDirectory); diff --git a/styles/src/themes.ts b/styles/src/themes.ts index e8bf8fc390daadb2c0798b3c77dc6298ac41abbe..fb9b05d786d16e2f36bd42c7a5008f3a3855ff7a 100644 --- a/styles/src/themes.ts +++ b/styles/src/themes.ts @@ -8,6 +8,10 @@ export default themes; const internalThemes: Theme[] = []; export { internalThemes } +const experimentalThemes: Theme[] = []; +export { experimentalThemes } + + function fillThemes(themesPath: string, themes: Theme[]) { for (const fileName of fs.readdirSync(themesPath)) { if (fileName == "template.ts") continue; @@ -23,3 +27,5 @@ function fillThemes(themesPath: string, themes: Theme[]) { fillThemes(path.resolve(`${__dirname}/themes`), themes) fillThemes(path.resolve(`${__dirname}/themes/internal`), internalThemes) +fillThemes(path.resolve(`${__dirname}/themes/experiments`), experimentalThemes) + diff --git a/styles/src/themes/experiments/cave-experiments.ts b/styles/src/themes/experiments/cave-experiments.ts new file mode 100644 index 0000000000000000000000000000000000000000..4b2dd582bf0a323db732d0cf0f6beaa6a12dd830 --- /dev/null +++ b/styles/src/themes/experiments/cave-experiments.ts @@ -0,0 +1,28 @@ +import chroma from "chroma-js"; +import { colorRamp, createTheme } from "../common/base16"; + +const name = "cave-experiments"; + +const ramps = { + neutral: chroma.scale([ + "#555555", + "#555555", + "#555555", + "#555555", + "#555555", + "#555555", + "#555555", + "#555555", + ]), + red: colorRamp(chroma("#555555")), + orange: colorRamp(chroma("#555555")), + yellow: colorRamp(chroma("#555555")), + green: colorRamp(chroma("#555555")), + cyan: colorRamp(chroma("#555555")), + blue: colorRamp(chroma("#555555")), + violet: colorRamp(chroma("#555555")), + magenta: colorRamp(chroma("#555555")), +}; + +export const dark = createTheme(`${name}-dark`, false, ramps); +export const light = createTheme(`${name}-light`, true, ramps); From 4de82c4103077e4c2360370fc635e7d095e1c170 Mon Sep 17 00:00:00 2001 From: Mikayla Maki Date: Thu, 8 Sep 2022 15:51:39 -0700 Subject: [PATCH 06/10] Removed stray compiled theme files --- assets/themes/.gitkeep | 0 assets/themes/experiments/.gitkeep | 0 assets/themes/internal/.gitkeep | 0 .../themes/internal/cave-internal-dark.json | 2283 ----------------- .../themes/internal/cave-internal-light.json | 2283 ----------------- 5 files changed, 4566 deletions(-) create mode 100644 assets/themes/.gitkeep create mode 100644 assets/themes/experiments/.gitkeep create mode 100644 assets/themes/internal/.gitkeep delete mode 100644 assets/themes/internal/cave-internal-dark.json delete mode 100644 assets/themes/internal/cave-internal-light.json diff --git a/assets/themes/.gitkeep b/assets/themes/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/assets/themes/experiments/.gitkeep b/assets/themes/experiments/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/assets/themes/internal/.gitkeep b/assets/themes/internal/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/assets/themes/internal/cave-internal-dark.json b/assets/themes/internal/cave-internal-dark.json deleted file mode 100644 index 82e878218e4274ca39801fa095c0c55564ca9795..0000000000000000000000000000000000000000 --- a/assets/themes/internal/cave-internal-dark.json +++ /dev/null @@ -1,2283 +0,0 @@ -{ - "meta": { - "name": "cave-internal-dark", - "is_light": false - }, - "picker": { - "background": "#222222", - "corner_radius": 8, - "padding": 8, - "item": { - "padding": { - "bottom": 4, - "left": 12, - "right": 12, - "top": 4 - }, - "corner_radius": 8, - "text": { - "family": "Zed Sans", - "color": "#888888", - "size": 14 - }, - "highlight_text": { - "family": "Zed Sans", - "color": "#ffffff", - "weight": "bold", - "size": 14 - }, - "active": { - "background": "#2b2b2b", - "text": { - "family": "Zed Sans", - "color": "#000000", - "size": 14 - } - }, - "hover": { - "background": "#262626" - } - }, - "border": { - "color": "#111111", - "width": 1 - }, - "empty": { - "text": { - "family": "Zed Sans", - "color": "#555555", - "size": 14 - }, - "padding": { - "bottom": 4, - "left": 12, - "right": 12, - "top": 8 - } - }, - "input_editor": { - "background": "#111111", - "corner_radius": 8, - "placeholder_text": { - "family": "Zed Sans", - "color": "#444444", - "size": 14 - }, - "selection": { - "cursor": "#ffffff", - "selection": "#ffffff3d" - }, - "text": { - "family": "Zed Mono", - "color": "#999999", - "size": 14 - }, - "border": { - "color": "#222222", - "width": 1 - }, - "padding": { - "bottom": 7, - "left": 16, - "right": 16, - "top": 7 - } - }, - "shadow": { - "blur": 16, - "color": "#0000003d", - "offset": [ - 0, - 2 - ] - } - }, - "workspace": { - "background": "#222222", - "joining_project_avatar": { - "corner_radius": 40, - "width": 80 - }, - "joining_project_message": { - "padding": 12, - "family": "Zed Sans", - "color": "#999999", - "size": 18 - }, - "leader_border_opacity": 0.7, - "leader_border_width": 2, - "tab_bar": { - "height": 32, - "background": "#222222", - "drop_target_overlay_color": "#55555599", - "border": { - "color": "#111111", - "width": 1, - "left": true, - "bottom": true, - "overlay": true - }, - "active_pane": { - "active_tab": { - "height": 32, - "background": "#111111", - "border": { - "color": "#111111", - "width": 1, - "left": true, - "bottom": false, - "overlay": true - }, - "icon_close": "#555555", - "icon_close_active": "#000000", - "icon_conflict": "#cccccc", - "icon_dirty": "#ffffff", - "icon_width": 8, - "spacing": 8, - "text": { - "family": "Zed Sans", - "color": "#000000", - "size": 14 - }, - "padding": { - "left": 8, - "right": 8 - }, - "description": { - "margin": { - "left": 6, - "top": 1 - }, - "family": "Zed Sans", - "color": "#555555", - "size": 10 - } - }, - "inactive_tab": { - "height": 32, - "background": "#222222", - "border": { - "color": "#111111", - "width": 1, - "left": true, - "bottom": true, - "overlay": true - }, - "icon_close": "#555555", - "icon_close_active": "#000000", - "icon_conflict": "#cccccc", - "icon_dirty": "#ffffff", - "icon_width": 8, - "spacing": 8, - "text": { - "family": "Zed Sans", - "color": "#888888", - "size": 14 - }, - "padding": { - "left": 8, - "right": 8 - }, - "description": { - "margin": { - "left": 6, - "top": 1 - }, - "family": "Zed Sans", - "color": "#555555", - "size": 10 - } - } - }, - "inactive_pane": { - "active_tab": { - "height": 32, - "background": "#111111", - "border": { - "color": "#111111", - "width": 1, - "left": true, - "bottom": false, - "overlay": true - }, - "icon_close": "#555555", - "icon_close_active": "#000000", - "icon_conflict": "#cccccc", - "icon_dirty": "#ffffff", - "icon_width": 8, - "spacing": 8, - "text": { - "family": "Zed Sans", - "color": "#888888", - "size": 14 - }, - "padding": { - "left": 8, - "right": 8 - }, - "description": { - "margin": { - "left": 6, - "top": 1 - }, - "family": "Zed Sans", - "color": "#555555", - "size": 10 - } - }, - "inactive_tab": { - "height": 32, - "background": "#222222", - "border": { - "color": "#111111", - "width": 1, - "left": true, - "bottom": true, - "overlay": true - }, - "icon_close": "#555555", - "icon_close_active": "#000000", - "icon_conflict": "#cccccc", - "icon_dirty": "#ffffff", - "icon_width": 8, - "spacing": 8, - "text": { - "family": "Zed Sans", - "color": "#555555", - "size": 14 - }, - "padding": { - "left": 8, - "right": 8 - }, - "description": { - "margin": { - "left": 6, - "top": 1 - }, - "family": "Zed Sans", - "color": "#555555", - "size": 10 - } - } - }, - "dragged_tab": { - "height": 32, - "background": "#222222cc", - "border": { - "color": "#111111", - "width": 1, - "left": false, - "bottom": false, - "overlay": true, - "top": false, - "right": false - }, - "icon_close": "#555555", - "icon_close_active": "#000000", - "icon_conflict": "#cccccc", - "icon_dirty": "#ffffff", - "icon_width": 8, - "spacing": 8, - "text": { - "family": "Zed Sans", - "color": "#000000", - "size": 14 - }, - "padding": { - "left": 8, - "right": 8 - }, - "description": { - "margin": { - "left": 6, - "top": 1 - }, - "family": "Zed Sans", - "color": "#555555", - "size": 10 - }, - "shadow": { - "blur": 6, - "color": "#0000003d", - "offset": [ - 1, - 2 - ] - } - }, - "pane_button": { - "color": "#888888", - "border": { - "color": "#111111", - "width": 1, - "left": true, - "bottom": true, - "overlay": true - }, - "icon_width": 12, - "button_width": 32, - "hover": { - "color": "#000000", - "background": "#222222" - } - } - }, - "modal": { - "margin": { - "bottom": 52, - "top": 52 - }, - "cursor": "Arrow" - }, - "sidebar_resize_handle": { - "background": "#111111", - "padding": { - "left": 1 - } - }, - "pane_divider": { - "color": "#222222", - "width": 1 - }, - "status_bar": { - "height": 30, - "item_spacing": 8, - "padding": { - "top": 1, - "bottom": 1, - "left": 6, - "right": 6 - }, - "border": { - "color": "#111111", - "width": 1, - "top": true, - "overlay": true - }, - "cursor_position": { - "family": "Zed Sans", - "color": "#888888", - "size": 14 - }, - "auto_update_progress_message": { - "family": "Zed Sans", - "color": "#888888", - "size": 14 - }, - "auto_update_done_message": { - "family": "Zed Sans", - "color": "#888888", - "size": 14 - }, - "lsp_status": { - "corner_radius": 6, - "padding": { - "top": 1, - "bottom": 1, - "left": 6, - "right": 6 - }, - "icon_spacing": 4, - "icon_width": 14, - "height": 18, - "message": { - "family": "Zed Sans", - "color": "#888888", - "size": 14 - }, - "icon_color": "#555555", - "hover": { - "message": { - "family": "Zed Sans", - "color": "#999999", - "size": 14 - }, - "icon_color": "#999999", - "background": "#262626" - } - }, - "diagnostic_message": { - "family": "Zed Sans", - "color": "#888888", - "size": 14, - "hover": { - "family": "Zed Sans", - "color": "#000000", - "size": 14 - } - }, - "feedback": { - "family": "Zed Sans", - "color": "#888888", - "size": 14, - "hover": { - "family": "Zed Sans", - "color": "#000000", - "size": 14 - } - }, - "diagnostic_summary": { - "height": 16, - "icon_width": 16, - "icon_spacing": 2, - "summary_spacing": 6, - "text": { - "family": "Zed Sans", - "color": "#999999", - "size": 14 - }, - "icon_color_ok": "#555555", - "icon_color_warning": "#cccccc", - "icon_color_error": "#aaaaaa", - "container_ok": { - "corner_radius": 6, - "padding": { - "top": 3, - "bottom": 3, - "left": 7, - "right": 7 - } - }, - "container_warning": { - "corner_radius": 6, - "padding": { - "top": 1, - "bottom": 1, - "left": 6, - "right": 6 - }, - "background": "#cccccc26", - "border": { - "color": "#7e7e7e", - "width": 1 - } - }, - "container_error": { - "corner_radius": 6, - "padding": { - "top": 1, - "bottom": 1, - "left": 6, - "right": 6 - }, - "background": "#aaaaaa26", - "border": { - "color": "#6a6a6a", - "width": 1 - } - }, - "hover": { - "icon_color_ok": "#000000", - "container_ok": { - "corner_radius": 6, - "padding": { - "top": 3, - "bottom": 3, - "left": 7, - "right": 7 - }, - "background": "#262626" - }, - "container_warning": { - "corner_radius": 6, - "padding": { - "top": 1, - "bottom": 1, - "left": 6, - "right": 6 - }, - "background": "#cccccc33", - "border": { - "color": "#7e7e7e", - "width": 1 - } - }, - "container_error": { - "corner_radius": 6, - "padding": { - "top": 1, - "bottom": 1, - "left": 6, - "right": 6 - }, - "background": "#aaaaaa33", - "border": { - "color": "#6a6a6a", - "width": 1 - } - } - } - }, - "sidebar_buttons": { - "group_left": {}, - "group_right": {}, - "item": { - "corner_radius": 6, - "padding": { - "top": 3, - "bottom": 3, - "left": 6, - "right": 6 - }, - "icon_size": 16, - "icon_color": "#555555", - "hover": { - "icon_color": "#000000", - "background": "#262626" - }, - "active": { - "icon_color": "#000000", - "background": "#2b2b2b" - } - }, - "badge": { - "corner_radius": 3, - "padding": 2, - "margin": { - "bottom": -1, - "right": -1 - }, - "border": { - "width": 1, - "color": "#222222" - }, - "background": "#ffffff" - } - } - }, - "titlebar": { - "avatar_width": 18, - "avatar_margin": 8, - "height": 33, - "background": "#262626", - "padding": { - "left": 80, - "right": 6 - }, - "title": { - "family": "Zed Sans", - "color": "#999999", - "size": 14 - }, - "avatar": { - "corner_radius": 10, - "border": { - "color": "#00000088", - "width": 1 - } - }, - "avatar_ribbon": { - "height": 3, - "width": 12 - }, - "border": { - "color": "#111111", - "width": 1, - "bottom": true, - "overlay": true - }, - "sign_in_prompt": { - "background": "#262626", - "border": { - "color": "#222222", - "width": 1 - }, - "corner_radius": 6, - "margin": { - "top": 1 - }, - "padding": { - "top": 1, - "bottom": 1, - "left": 7, - "right": 7 - }, - "family": "Zed Sans", - "color": "#888888", - "size": 12, - "hover": { - "family": "Zed Sans", - "color": "#000000", - "size": 12, - "background": "#1a1a1a", - "border": { - "color": "#111111", - "width": 1 - } - } - }, - "offline_icon": { - "color": "#888888", - "width": 16, - "margin": { - "left": 6 - }, - "padding": { - "right": 4 - } - }, - "outdated_warning": { - "family": "Zed Sans", - "color": "#cccccc", - "size": 12, - "background": "#cccccc26", - "border": { - "color": "#7e7e7e", - "width": 1 - }, - "margin": { - "left": 6 - }, - "padding": { - "left": 6, - "right": 6 - }, - "corner_radius": 6 - } - }, - "toolbar": { - "height": 34, - "background": "#111111", - "border": { - "color": "#222222", - "width": 1, - "bottom": true - }, - "item_spacing": 8, - "nav_button": { - "color": "#999999", - "icon_width": 12, - "button_width": 24, - "corner_radius": 6, - "hover": { - "color": "#000000", - "background": "#2b2b2b" - }, - "disabled": { - "color": "#55555599" - } - }, - "padding": { - "left": 8, - "right": 8, - "top": 4, - "bottom": 4 - } - }, - "breadcrumbs": { - "family": "Zed Mono", - "color": "#888888", - "size": 14, - "padding": { - "left": 6 - } - }, - "disconnected_overlay": { - "family": "Zed Sans", - "color": "#000000", - "size": 14, - "background": "#111111cc" - }, - "notification": { - "margin": { - "top": 10 - }, - "background": "#222222", - "corner_radius": 6, - "padding": 12, - "border": { - "color": "#111111", - "width": 1 - }, - "shadow": { - "blur": 16, - "color": "#0000003d", - "offset": [ - 0, - 2 - ] - } - }, - "notifications": { - "width": 400, - "margin": { - "right": 10, - "bottom": 10 - } - } - }, - "context_menu": { - "background": "#222222", - "corner_radius": 6, - "padding": 6, - "shadow": { - "blur": 4, - "color": "#0000003d", - "offset": [ - 1, - 2 - ] - }, - "border": { - "color": "#111111", - "width": 1 - }, - "keystroke_margin": 30, - "item": { - "icon_spacing": 8, - "icon_width": 14, - "padding": { - "left": 4, - "right": 4, - "top": 2, - "bottom": 2 - }, - "corner_radius": 6, - "label": { - "family": "Zed Sans", - "color": "#999999", - "size": 14 - }, - "keystroke": { - "family": "Zed Sans", - "color": "#555555", - "size": 14, - "weight": "bold", - "padding": { - "left": 3, - "right": 3 - } - }, - "hover": { - "background": "#262626", - "text": { - "family": "Zed Sans", - "color": "#999999", - "size": 14 - } - }, - "active": { - "background": "#2b2b2b", - "text": { - "family": "Zed Sans", - "color": "#000000", - "size": 14 - } - }, - "active_hover": { - "background": "#262626", - "text": { - "family": "Zed Sans", - "color": "#000000", - "size": 14 - } - } - }, - "separator": { - "background": "#111111", - "margin": { - "top": 2, - "bottom": 2 - } - } - }, - "editor": { - "text_color": "#000000", - "background": "#111111", - "active_line_background": "#222222", - "code_actions": { - "indicator": "#888888", - "vertical_scale": 0.618 - }, - "diff_background_deleted": "#aaaaaa26", - "diff_background_inserted": "#dddddd26", - "document_highlight_read_background": "#4d4d4d3d", - "document_highlight_write_background": "#4d4d4d7a", - "error_color": "#aaaaaa", - "gutter_background": "#111111", - "gutter_padding_factor": 3.5, - "highlighted_line_background": "#262626", - "line_number": "#444444", - "line_number_active": "#000000", - "rename_fade": 0.6, - "unnecessary_code_fade": 0.5, - "selection": { - "cursor": "#ffffff", - "selection": "#ffffff3d" - }, - "guest_selections": [ - { - "cursor": "#dddddd", - "selection": "#dddddd3d" - }, - { - "cursor": "#cdcdcd", - "selection": "#cdcdcd3d" - }, - { - "cursor": "#bbbbbb", - "selection": "#bbbbbb3d" - }, - { - "cursor": "#ababab", - "selection": "#ababab3d" - }, - { - "cursor": "#eeeeee", - "selection": "#eeeeee3d" - }, - { - "cursor": "#aaaaaa", - "selection": "#aaaaaa3d" - }, - { - "cursor": "#cccccc", - "selection": "#cccccc3d" - } - ], - "autocomplete": { - "background": "#111111", - "corner_radius": 8, - "padding": 4, - "border": { - "color": "#222222", - "width": 1 - }, - "shadow": { - "blur": 4, - "color": "#0000003d", - "offset": [ - 1, - 2 - ] - }, - "item": { - "corner_radius": 6, - "padding": { - "bottom": 2, - "left": 6, - "right": 6, - "top": 2 - } - }, - "hovered_item": { - "corner_radius": 6, - "padding": { - "bottom": 2, - "left": 6, - "right": 6, - "top": 2 - }, - "background": "#151515" - }, - "margin": { - "left": -14 - }, - "match_highlight": { - "family": "Zed Mono", - "color": "#ffffff", - "size": 14 - }, - "selected_item": { - "corner_radius": 6, - "padding": { - "bottom": 2, - "left": 6, - "right": 6, - "top": 2 - }, - "background": "#1a1a1a" - } - }, - "diagnostic_header": { - "background": "#222222", - "icon_width_factor": 1.5, - "text_scale_factor": 0.857, - "border": { - "color": "#222222", - "width": 1, - "bottom": true, - "top": true - }, - "code": { - "family": "Zed Mono", - "color": "#888888", - "size": 14, - "margin": { - "left": 10 - } - }, - "message": { - "highlight_text": { - "family": "Zed Sans", - "color": "#999999", - "size": 14, - "weight": "bold" - }, - "text": { - "family": "Zed Sans", - "color": "#888888", - "size": 14 - } - } - }, - "diagnostic_path_header": { - "background": "#222222", - "text_scale_factor": 0.857, - "filename": { - "family": "Zed Mono", - "color": "#999999", - "size": 14 - }, - "path": { - "family": "Zed Mono", - "color": "#555555", - "size": 14, - "margin": { - "left": 12 - } - } - }, - "error_diagnostic": { - "text_scale_factor": 0.857, - "header": { - "border": { - "color": "#111111", - "width": 1, - "top": true - } - }, - "message": { - "text": { - "family": "Zed Sans", - "color": "#aaaaaa", - "size": 14 - }, - "highlight_text": { - "family": "Zed Sans", - "color": "#aaaaaa", - "size": 14, - "weight": "bold" - } - } - }, - "warning_diagnostic": { - "text_scale_factor": 0.857, - "header": { - "border": { - "color": "#111111", - "width": 1, - "top": true - } - }, - "message": { - "text": { - "family": "Zed Sans", - "color": "#cccccc", - "size": 14 - }, - "highlight_text": { - "family": "Zed Sans", - "color": "#cccccc", - "size": 14, - "weight": "bold" - } - } - }, - "information_diagnostic": { - "text_scale_factor": 0.857, - "header": { - "border": { - "color": "#111111", - "width": 1, - "top": true - } - }, - "message": { - "text": { - "family": "Zed Sans", - "color": "#ffffff", - "size": 14 - }, - "highlight_text": { - "family": "Zed Sans", - "color": "#ffffff", - "size": 14, - "weight": "bold" - } - } - }, - "hint_diagnostic": { - "text_scale_factor": 0.857, - "header": { - "border": { - "color": "#111111", - "width": 1, - "top": true - } - }, - "message": { - "text": { - "family": "Zed Sans", - "color": "#ffffff", - "size": 14 - }, - "highlight_text": { - "family": "Zed Sans", - "color": "#ffffff", - "size": 14, - "weight": "bold" - } - } - }, - "invalid_error_diagnostic": { - "text_scale_factor": 0.857, - "header": { - "border": { - "color": "#111111", - "width": 1, - "top": true - } - }, - "message": { - "text": { - "family": "Zed Sans", - "color": "#888888", - "size": 14 - }, - "highlight_text": { - "family": "Zed Sans", - "color": "#888888", - "size": 14, - "weight": "bold" - } - } - }, - "invalid_hint_diagnostic": { - "text_scale_factor": 0.857, - "header": { - "border": { - "color": "#111111", - "width": 1, - "top": true - } - }, - "message": { - "text": { - "family": "Zed Sans", - "color": "#888888", - "size": 14 - }, - "highlight_text": { - "family": "Zed Sans", - "color": "#888888", - "size": 14, - "weight": "bold" - } - } - }, - "invalid_information_diagnostic": { - "text_scale_factor": 0.857, - "header": { - "border": { - "color": "#111111", - "width": 1, - "top": true - } - }, - "message": { - "text": { - "family": "Zed Sans", - "color": "#888888", - "size": 14 - }, - "highlight_text": { - "family": "Zed Sans", - "color": "#888888", - "size": 14, - "weight": "bold" - } - } - }, - "invalid_warning_diagnostic": { - "text_scale_factor": 0.857, - "header": { - "border": { - "color": "#111111", - "width": 1, - "top": true - } - }, - "message": { - "text": { - "family": "Zed Sans", - "color": "#888888", - "size": 14 - }, - "highlight_text": { - "family": "Zed Sans", - "color": "#888888", - "size": 14, - "weight": "bold" - } - } - }, - "hover_popover": { - "container": { - "background": "#222222", - "corner_radius": 8, - "padding": { - "left": 8, - "right": 8, - "top": 4, - "bottom": 4 - }, - "shadow": { - "blur": 4, - "color": "#0000003d", - "offset": [ - 1, - 2 - ] - }, - "border": { - "color": "#222222", - "width": 1 - }, - "margin": { - "left": -8 - } - }, - "info_container": { - "background": "#232323", - "corner_radius": 8, - "padding": { - "left": 8, - "right": 8, - "top": 4, - "bottom": 4 - }, - "shadow": { - "blur": 4, - "color": "#0000003d", - "offset": [ - 1, - 2 - ] - }, - "border": { - "color": "#0a0a0a", - "width": 1 - }, - "margin": { - "left": -8 - } - }, - "warning_container": { - "background": "#1d1d1d", - "corner_radius": 8, - "padding": { - "left": 8, - "right": 8, - "top": 4, - "bottom": 4 - }, - "shadow": { - "blur": 4, - "color": "#0000003d", - "offset": [ - 1, - 2 - ] - }, - "border": { - "color": "#0a0a0a", - "width": 1 - }, - "margin": { - "left": -8 - } - }, - "error_container": { - "background": "#1a1a1a", - "corner_radius": 8, - "padding": { - "left": 8, - "right": 8, - "top": 4, - "bottom": 4 - }, - "shadow": { - "blur": 4, - "color": "#0000003d", - "offset": [ - 1, - 2 - ] - }, - "border": { - "color": "#0a0a0a", - "width": 1 - }, - "margin": { - "left": -8 - } - }, - "block_style": { - "padding": { - "top": 4 - } - }, - "prose": { - "family": "Zed Sans", - "color": "#999999", - "size": 14 - }, - "highlight": "#4d4d4d3d" - }, - "link_definition": { - "color": "#dddddd", - "underline": true - }, - "jump_icon": { - "color": "#888888", - "icon_width": 20, - "button_width": 20, - "corner_radius": 6, - "padding": { - "top": 6, - "bottom": 6, - "left": 6, - "right": 6 - }, - "hover": { - "color": "#000000", - "background": "#222222" - } - }, - "composition_mark": { - "underline": { - "thickness": 1, - "color": "#444444" - } - }, - "syntax": { - "primary": { - "color": "#000000", - "weight": "normal" - }, - "comment": { - "color": "#888888", - "weight": "normal" - }, - "punctuation": { - "color": "#999999", - "weight": "normal" - }, - "constant": { - "color": "#555555", - "weight": "normal" - }, - "keyword": { - "color": "#ffffff", - "weight": "normal" - }, - "function": { - "color": "#cccccc", - "weight": "normal" - }, - "type": { - "color": "#eeeeee", - "weight": "normal" - }, - "constructor": { - "color": "#ffffff", - "weight": "normal" - }, - "variant": { - "color": "#ffffff", - "weight": "normal" - }, - "property": { - "color": "#ffffff", - "weight": "normal" - }, - "enum": { - "color": "#bbbbbb", - "weight": "normal" - }, - "operator": { - "color": "#bbbbbb", - "weight": "normal" - }, - "string": { - "color": "#bbbbbb", - "weight": "normal" - }, - "number": { - "color": "#dddddd", - "weight": "normal" - }, - "boolean": { - "color": "#dddddd", - "weight": "normal" - }, - "predictive": { - "color": "#555555", - "weight": "normal" - }, - "title": { - "color": "#cccccc", - "weight": "bold" - }, - "emphasis": { - "color": "#ffffff", - "weight": "normal" - }, - "emphasis.strong": { - "color": "#ffffff", - "weight": "bold" - }, - "link_uri": { - "color": "#dddddd", - "weight": "normal", - "underline": true - }, - "link_text": { - "color": "#bbbbbb", - "weight": "normal", - "italic": true - } - } - }, - "project_diagnostics": { - "background": "#111111", - "tab_icon_spacing": 4, - "tab_icon_width": 13, - "tab_summary_spacing": 10, - "empty_message": { - "family": "Zed Sans", - "color": "#888888", - "size": 16 - } - }, - "command_palette": { - "keystroke_spacing": 8, - "key": { - "text": { - "family": "Zed Mono", - "color": "#888888", - "size": 12 - }, - "corner_radius": 4, - "background": "#111111", - "border": { - "color": "#222222", - "width": 1 - }, - "padding": { - "top": 2, - "bottom": 2, - "left": 8, - "right": 8 - }, - "margin": { - "left": 2 - }, - "active": { - "text": { - "family": "Zed Mono", - "color": "#000000", - "size": 12 - } - } - } - }, - "project_panel": { - "padding": { - "left": 12, - "right": 12, - "top": 6, - "bottom": 6 - }, - "indent_width": 8, - "entry": { - "height": 24, - "icon_color": "#555555", - "icon_size": 8, - "icon_spacing": 8, - "text": { - "family": "Zed Mono", - "color": "#888888", - "size": 14 - }, - "hover": { - "background": "#262626" - }, - "active": { - "background": "#2b2b2b", - "text": { - "family": "Zed Mono", - "color": "#000000", - "size": 14 - } - }, - "active_hover": { - "background": "#2b2b2b", - "text": { - "family": "Zed Mono", - "color": "#000000", - "size": 14 - } - } - }, - "cut_entry_fade": 0.4, - "ignored_entry_fade": 0.6, - "filename_editor": { - "background": "#111111", - "text": { - "family": "Zed Mono", - "color": "#000000", - "size": 14 - }, - "selection": { - "cursor": "#ffffff", - "selection": "#ffffff3d" - } - } - }, - "chat_panel": { - "padding": { - "top": 12, - "bottom": 12 - }, - "channel_name": { - "family": "Zed Sans", - "color": "#999999", - "weight": "bold", - "size": 14 - }, - "channel_name_hash": { - "family": "Zed Sans", - "color": "#555555", - "size": 14, - "padding": { - "right": 8 - } - }, - "channel_select": { - "header": { - "name": { - "family": "Zed Sans", - "color": "#999999", - "size": 14 - }, - "padding": { - "bottom": 4, - "left": 0 - }, - "hash": { - "family": "Zed Sans", - "color": "#555555", - "size": 14, - "margin": { - "right": 8 - } - }, - "corner_radius": 0 - }, - "item": { - "name": { - "family": "Zed Sans", - "color": "#888888", - "size": 14 - }, - "padding": 4, - "hash": { - "family": "Zed Sans", - "color": "#555555", - "size": 14, - "margin": { - "right": 8 - } - }, - "corner_radius": 0 - }, - "hovered_item": { - "name": { - "family": "Zed Sans", - "color": "#888888", - "size": 14 - }, - "padding": 4, - "hash": { - "family": "Zed Sans", - "color": "#555555", - "size": 14, - "margin": { - "right": 8 - } - }, - "background": "#262626", - "corner_radius": 6 - }, - "active_item": { - "name": { - "family": "Zed Sans", - "color": "#999999", - "size": 14 - }, - "padding": 4, - "hash": { - "family": "Zed Sans", - "color": "#555555", - "size": 14, - "margin": { - "right": 8 - } - }, - "corner_radius": 0 - }, - "hovered_active_item": { - "name": { - "family": "Zed Sans", - "color": "#999999", - "size": 14 - }, - "padding": 4, - "hash": { - "family": "Zed Sans", - "color": "#555555", - "size": 14, - "margin": { - "right": 8 - } - }, - "background": "#262626", - "corner_radius": 6 - }, - "menu": { - "background": "#111111", - "corner_radius": 6, - "padding": 4, - "border": { - "color": "#111111", - "width": 1 - }, - "shadow": { - "blur": 4, - "color": "#0000003d", - "offset": [ - 1, - 2 - ] - } - } - }, - "sign_in_prompt": { - "family": "Zed Sans", - "color": "#888888", - "underline": true, - "size": 14 - }, - "hovered_sign_in_prompt": { - "family": "Zed Sans", - "color": "#999999", - "underline": true, - "size": 14 - }, - "message": { - "body": { - "family": "Zed Sans", - "color": "#888888", - "size": 14 - }, - "timestamp": { - "family": "Zed Sans", - "color": "#555555", - "size": 14 - }, - "padding": { - "bottom": 6 - }, - "sender": { - "family": "Zed Sans", - "color": "#999999", - "weight": "bold", - "size": 14, - "margin": { - "right": 8 - } - } - }, - "pending_message": { - "body": { - "family": "Zed Sans", - "color": "#555555", - "size": 14 - }, - "timestamp": { - "family": "Zed Sans", - "color": "#555555", - "size": 14 - }, - "padding": { - "bottom": 6 - }, - "sender": { - "family": "Zed Sans", - "color": "#555555", - "weight": "bold", - "size": 14, - "margin": { - "right": 8 - } - } - }, - "input_editor": { - "background": "#111111", - "corner_radius": 6, - "text": { - "family": "Zed Mono", - "color": "#999999", - "size": 14 - }, - "placeholder_text": { - "family": "Zed Mono", - "color": "#444444", - "size": 14 - }, - "selection": { - "cursor": "#ffffff", - "selection": "#ffffff3d" - }, - "border": { - "color": "#222222", - "width": 1 - }, - "padding": { - "bottom": 7, - "left": 8, - "right": 8, - "top": 7 - } - } - }, - "contacts_panel": { - "padding": { - "top": 12, - "bottom": 0 - }, - "user_query_editor": { - "background": "#111111", - "corner_radius": 6, - "text": { - "family": "Zed Mono", - "color": "#999999", - "size": 14 - }, - "placeholder_text": { - "family": "Zed Mono", - "color": "#444444", - "size": 14 - }, - "selection": { - "cursor": "#ffffff", - "selection": "#ffffff3d" - }, - "border": { - "color": "#222222", - "width": 1 - }, - "padding": { - "bottom": 4, - "left": 8, - "right": 8, - "top": 4 - }, - "margin": { - "left": 12, - "right": 12 - } - }, - "user_query_editor_height": 32, - "add_contact_button": { - "margin": { - "left": 6, - "right": 12 - }, - "color": "#999999", - "button_width": 16, - "icon_width": 16 - }, - "private_button": { - "icon_width": 12, - "color": "#999999", - "corner_radius": 5, - "button_width": 12 - }, - "row_height": 28, - "section_icon_size": 8, - "header_row": { - "family": "Zed Mono", - "color": "#888888", - "size": 14, - "margin": { - "top": 14 - }, - "padding": { - "left": 12, - "right": 12 - }, - "active": { - "family": "Zed Mono", - "color": "#999999", - "size": 14, - "background": "#2f2f2f" - } - }, - "contact_row": { - "padding": { - "left": 12, - "right": 12 - }, - "active": { - "background": "#2f2f2f" - } - }, - "tree_branch": { - "color": "#444444", - "width": 1, - "hover": { - "color": "#444444" - }, - "active": { - "color": "#444444" - } - }, - "contact_avatar": { - "corner_radius": 10, - "width": 18 - }, - "contact_username": { - "family": "Zed Mono", - "color": "#999999", - "size": 14, - "margin": { - "left": 8 - } - }, - "contact_button_spacing": 8, - "contact_button": { - "background": "#262626", - "color": "#999999", - "icon_width": 8, - "button_width": 16, - "corner_radius": 8, - "hover": { - "background": "#1a1a1a" - } - }, - "disabled_button": { - "background": "#262626", - "color": "#555555", - "icon_width": 8, - "button_width": 16, - "corner_radius": 8 - }, - "project_row": { - "guest_avatar_spacing": 4, - "height": 24, - "guest_avatar": { - "corner_radius": 8, - "width": 14 - }, - "name": { - "family": "Zed Mono", - "color": "#888888", - "size": 14, - "margin": { - "left": 8, - "right": 6 - } - }, - "guests": { - "margin": { - "left": 8, - "right": 8 - } - }, - "padding": { - "left": 12, - "right": 12 - }, - "background": "#222222", - "hover": { - "background": "#262626" - }, - "active": { - "background": "#2b2b2b" - } - }, - "invite_row": { - "padding": { - "left": 12, - "right": 12 - }, - "border": { - "top": true, - "width": 1, - "color": "#111111" - }, - "text": { - "family": "Zed Sans", - "color": "#888888", - "size": 14 - }, - "hover": { - "text": { - "family": "Zed Sans", - "color": "#000000", - "size": 14 - } - } - } - }, - "contact_finder": { - "background": "#222222", - "corner_radius": 8, - "padding": 8, - "item": { - "padding": { - "bottom": 4, - "left": 12, - "right": 12, - "top": 4 - }, - "corner_radius": 8, - "text": { - "family": "Zed Sans", - "color": "#888888", - "size": 14 - }, - "highlight_text": { - "family": "Zed Sans", - "color": "#ffffff", - "weight": "bold", - "size": 14 - }, - "active": { - "background": "#2b2b2b", - "text": { - "family": "Zed Sans", - "color": "#000000", - "size": 14 - } - }, - "hover": { - "background": "#262626" - } - }, - "border": { - "color": "#111111", - "width": 1 - }, - "empty": { - "text": { - "family": "Zed Sans", - "color": "#555555", - "size": 14 - }, - "padding": { - "bottom": 4, - "left": 12, - "right": 12, - "top": 8 - } - }, - "input_editor": { - "background": "#111111", - "corner_radius": 8, - "placeholder_text": { - "family": "Zed Sans", - "color": "#444444", - "size": 14 - }, - "selection": { - "cursor": "#ffffff", - "selection": "#ffffff3d" - }, - "text": { - "family": "Zed Mono", - "color": "#999999", - "size": 14 - }, - "border": { - "color": "#222222", - "width": 1 - }, - "padding": { - "bottom": 7, - "left": 16, - "right": 16, - "top": 7 - } - }, - "shadow": { - "blur": 16, - "color": "#0000003d", - "offset": [ - 0, - 2 - ] - }, - "row_height": 28, - "contact_avatar": { - "corner_radius": 10, - "width": 18 - }, - "contact_username": { - "padding": { - "left": 8 - } - }, - "contact_button": { - "background": "#262626", - "color": "#999999", - "icon_width": 8, - "button_width": 16, - "corner_radius": 8, - "hover": { - "background": "#2b2b2b" - } - }, - "disabled_contact_button": { - "background": "#262626", - "color": "#555555", - "icon_width": 8, - "button_width": 16, - "corner_radius": 8 - } - }, - "search": { - "match_background": "#3a3a3a", - "tab_icon_spacing": 8, - "tab_icon_width": 14, - "option_button": { - "family": "Zed Mono", - "color": "#888888", - "size": 14, - "background": "#222222", - "corner_radius": 6, - "border": { - "color": "#222222", - "width": 1 - }, - "margin": { - "right": 4 - }, - "padding": { - "bottom": 2, - "left": 10, - "right": 10, - "top": 2 - }, - "active": { - "family": "Zed Mono", - "color": "#000000", - "size": 14, - "background": "#333333", - "border": { - "color": "#444444", - "width": 1 - } - }, - "hover": { - "family": "Zed Mono", - "color": "#000000", - "size": 14, - "background": "#2b2b2b", - "border": { - "color": "#444444", - "width": 1 - } - } - }, - "editor": { - "background": "#111111", - "corner_radius": 8, - "min_width": 200, - "max_width": 500, - "placeholder_text": { - "family": "Zed Mono", - "color": "#444444", - "size": 14 - }, - "selection": { - "cursor": "#ffffff", - "selection": "#ffffff3d" - }, - "text": { - "family": "Zed Mono", - "color": "#000000", - "size": 14 - }, - "border": { - "color": "#222222", - "width": 1 - }, - "margin": { - "right": 12 - }, - "padding": { - "top": 3, - "bottom": 3, - "left": 12, - "right": 8 - } - }, - "invalid_editor": { - "background": "#111111", - "corner_radius": 8, - "min_width": 200, - "max_width": 500, - "placeholder_text": { - "family": "Zed Mono", - "color": "#444444", - "size": 14 - }, - "selection": { - "cursor": "#ffffff", - "selection": "#ffffff3d" - }, - "text": { - "family": "Zed Mono", - "color": "#000000", - "size": 14 - }, - "border": { - "color": "#6a6a6a", - "width": 1 - }, - "margin": { - "right": 12 - }, - "padding": { - "top": 3, - "bottom": 3, - "left": 12, - "right": 8 - } - }, - "match_index": { - "family": "Zed Mono", - "color": "#555555", - "size": 14, - "padding": 6 - }, - "option_button_group": { - "padding": { - "left": 12, - "right": 12 - } - }, - "results_status": { - "family": "Zed Mono", - "color": "#999999", - "size": 18 - } - }, - "breadcrumbs": { - "family": "Zed Sans", - "color": "#888888", - "size": 14, - "padding": { - "left": 6 - } - }, - "contact_notification": { - "header_avatar": { - "height": 12, - "width": 12, - "corner_radius": 6 - }, - "header_message": { - "family": "Zed Sans", - "color": "#999999", - "size": 12, - "margin": { - "left": 8, - "right": 8 - } - }, - "header_height": 18, - "body_message": { - "family": "Zed Sans", - "color": "#888888", - "size": 12, - "margin": { - "left": 20, - "top": 6, - "bottom": 6 - } - }, - "button": { - "family": "Zed Sans", - "color": "#999999", - "size": 12, - "background": "#111111", - "padding": 4, - "corner_radius": 6, - "margin": { - "left": 6 - }, - "hover": { - "background": "#1a1a1a" - } - }, - "dismiss_button": { - "color": "#888888", - "icon_width": 8, - "icon_height": 8, - "button_width": 8, - "button_height": 8, - "hover": { - "color": "#999999" - } - } - }, - "update_notification": { - "message": { - "family": "Zed Sans", - "color": "#999999", - "size": 12, - "margin": { - "left": 8, - "right": 8 - } - }, - "action_message": { - "family": "Zed Sans", - "color": "#888888", - "size": 12, - "margin": { - "left": 8, - "top": 6, - "bottom": 6 - }, - "hover": { - "color": "#000000" - } - }, - "dismiss_button": { - "color": "#888888", - "icon_width": 8, - "icon_height": 8, - "button_width": 8, - "button_height": 8, - "hover": { - "color": "#999999" - } - } - }, - "tooltip": { - "background": "#111111", - "border": { - "color": "#222222", - "width": 1 - }, - "padding": { - "top": 4, - "bottom": 4, - "left": 8, - "right": 8 - }, - "margin": { - "top": 6, - "left": 6 - }, - "shadow": { - "blur": 4, - "color": "#0000003d", - "offset": [ - 1, - 2 - ] - }, - "corner_radius": 6, - "text": { - "family": "Zed Sans", - "color": "#999999", - "size": 12 - }, - "keystroke": { - "background": "#222222", - "corner_radius": 4, - "margin": { - "left": 6 - }, - "padding": { - "left": 4, - "right": 4 - }, - "family": "Zed Mono", - "color": "#888888", - "size": 12, - "weight": "bold" - }, - "max_text_width": 200 - }, - "terminal": { - "colors": { - "black": "#111111", - "red": "#aaaaaa", - "green": "#dddddd", - "yellow": "#cccccc", - "blue": "#ffffff", - "magenta": "#cdcdcd", - "cyan": "#eeeeee", - "white": "#000000", - "bright_black": "#555555", - "bright_red": "#5a5a5a", - "bright_green": "#747474", - "bright_yellow": "#6b6b6b", - "bright_blue": "#858585", - "bright_magenta": "#6c6c6c", - "bright_cyan": "#7c7c7c", - "bright_white": "#000000", - "foreground": "#000000", - "background": "#111111", - "modal_background": "#222222", - "cursor": "#ffffff", - "dim_black": "#000000", - "dim_red": "#cbcbcb", - "dim_green": "#e5e5e5", - "dim_yellow": "#dcdcdc", - "dim_blue": "#f6f6f6", - "dim_magenta": "#dddddd", - "dim_cyan": "#ededed", - "dim_white": "#888888", - "bright_foreground": "#000000", - "dim_foreground": "#111111" - }, - "modal_container": { - "background": "#222222", - "corner_radius": 8, - "padding": 8, - "margin": 25, - "border": { - "color": "#111111", - "width": 1 - }, - "shadow": { - "blur": 16, - "color": "#0000003d", - "offset": [ - 0, - 2 - ] - } - } - } -} \ No newline at end of file diff --git a/assets/themes/internal/cave-internal-light.json b/assets/themes/internal/cave-internal-light.json deleted file mode 100644 index bf0d070805a579aac8f8eeaed7ebe86f5ee73b87..0000000000000000000000000000000000000000 --- a/assets/themes/internal/cave-internal-light.json +++ /dev/null @@ -1,2283 +0,0 @@ -{ - "meta": { - "name": "cave-internal-light", - "is_light": true - }, - "picker": { - "background": "#999999", - "corner_radius": 8, - "padding": 8, - "item": { - "padding": { - "bottom": 4, - "left": 12, - "right": 12, - "top": 4 - }, - "corner_radius": 8, - "text": { - "family": "Zed Sans", - "color": "#333333", - "size": 14 - }, - "highlight_text": { - "family": "Zed Sans", - "color": "#ffffff", - "weight": "bold", - "size": 14 - }, - "active": { - "background": "#919191", - "text": { - "family": "Zed Sans", - "color": "#111111", - "size": 14 - } - }, - "hover": { - "background": "#959595" - } - }, - "border": { - "color": "#919191", - "width": 1 - }, - "empty": { - "text": { - "family": "Zed Sans", - "color": "#444444", - "size": 14 - }, - "padding": { - "bottom": 4, - "left": 12, - "right": 12, - "top": 8 - } - }, - "input_editor": { - "background": "#000000", - "corner_radius": 8, - "placeholder_text": { - "family": "Zed Sans", - "color": "#555555", - "size": 14 - }, - "selection": { - "cursor": "#ffffff", - "selection": "#ffffff3d" - }, - "text": { - "family": "Zed Mono", - "color": "#222222", - "size": 14 - }, - "border": { - "color": "#959595", - "width": 1 - }, - "padding": { - "bottom": 7, - "left": 16, - "right": 16, - "top": 7 - } - }, - "shadow": { - "blur": 16, - "color": "#0000001f", - "offset": [ - 0, - 2 - ] - } - }, - "workspace": { - "background": "#999999", - "joining_project_avatar": { - "corner_radius": 40, - "width": 80 - }, - "joining_project_message": { - "padding": 12, - "family": "Zed Sans", - "color": "#222222", - "size": 18 - }, - "leader_border_opacity": 0.7, - "leader_border_width": 2, - "tab_bar": { - "height": 32, - "background": "#999999", - "drop_target_overlay_color": "#44444499", - "border": { - "color": "#919191", - "width": 1, - "left": true, - "bottom": true, - "overlay": true - }, - "active_pane": { - "active_tab": { - "height": 32, - "background": "#000000", - "border": { - "color": "#919191", - "width": 1, - "left": true, - "bottom": false, - "overlay": true - }, - "icon_close": "#444444", - "icon_close_active": "#111111", - "icon_conflict": "#cccccc", - "icon_dirty": "#ffffff", - "icon_width": 8, - "spacing": 8, - "text": { - "family": "Zed Sans", - "color": "#111111", - "size": 14 - }, - "padding": { - "left": 8, - "right": 8 - }, - "description": { - "margin": { - "left": 6, - "top": 1 - }, - "family": "Zed Sans", - "color": "#444444", - "size": 10 - } - }, - "inactive_tab": { - "height": 32, - "background": "#999999", - "border": { - "color": "#919191", - "width": 1, - "left": true, - "bottom": true, - "overlay": true - }, - "icon_close": "#444444", - "icon_close_active": "#111111", - "icon_conflict": "#cccccc", - "icon_dirty": "#ffffff", - "icon_width": 8, - "spacing": 8, - "text": { - "family": "Zed Sans", - "color": "#333333", - "size": 14 - }, - "padding": { - "left": 8, - "right": 8 - }, - "description": { - "margin": { - "left": 6, - "top": 1 - }, - "family": "Zed Sans", - "color": "#444444", - "size": 10 - } - } - }, - "inactive_pane": { - "active_tab": { - "height": 32, - "background": "#000000", - "border": { - "color": "#919191", - "width": 1, - "left": true, - "bottom": false, - "overlay": true - }, - "icon_close": "#444444", - "icon_close_active": "#111111", - "icon_conflict": "#cccccc", - "icon_dirty": "#ffffff", - "icon_width": 8, - "spacing": 8, - "text": { - "family": "Zed Sans", - "color": "#333333", - "size": 14 - }, - "padding": { - "left": 8, - "right": 8 - }, - "description": { - "margin": { - "left": 6, - "top": 1 - }, - "family": "Zed Sans", - "color": "#444444", - "size": 10 - } - }, - "inactive_tab": { - "height": 32, - "background": "#999999", - "border": { - "color": "#919191", - "width": 1, - "left": true, - "bottom": true, - "overlay": true - }, - "icon_close": "#444444", - "icon_close_active": "#111111", - "icon_conflict": "#cccccc", - "icon_dirty": "#ffffff", - "icon_width": 8, - "spacing": 8, - "text": { - "family": "Zed Sans", - "color": "#444444", - "size": 14 - }, - "padding": { - "left": 8, - "right": 8 - }, - "description": { - "margin": { - "left": 6, - "top": 1 - }, - "family": "Zed Sans", - "color": "#444444", - "size": 10 - } - } - }, - "dragged_tab": { - "height": 32, - "background": "#999999cc", - "border": { - "color": "#919191", - "width": 1, - "left": false, - "bottom": false, - "overlay": true, - "top": false, - "right": false - }, - "icon_close": "#444444", - "icon_close_active": "#111111", - "icon_conflict": "#cccccc", - "icon_dirty": "#ffffff", - "icon_width": 8, - "spacing": 8, - "text": { - "family": "Zed Sans", - "color": "#111111", - "size": 14 - }, - "padding": { - "left": 8, - "right": 8 - }, - "description": { - "margin": { - "left": 6, - "top": 1 - }, - "family": "Zed Sans", - "color": "#444444", - "size": 10 - }, - "shadow": { - "blur": 6, - "color": "#0000001f", - "offset": [ - 1, - 2 - ] - } - }, - "pane_button": { - "color": "#333333", - "border": { - "color": "#919191", - "width": 1, - "left": true, - "bottom": true, - "overlay": true - }, - "icon_width": 12, - "button_width": 32, - "hover": { - "color": "#111111", - "background": "#999999" - } - } - }, - "modal": { - "margin": { - "bottom": 52, - "top": 52 - }, - "cursor": "Arrow" - }, - "sidebar_resize_handle": { - "background": "#919191", - "padding": { - "left": 1 - } - }, - "pane_divider": { - "color": "#959595", - "width": 1 - }, - "status_bar": { - "height": 30, - "item_spacing": 8, - "padding": { - "top": 1, - "bottom": 1, - "left": 6, - "right": 6 - }, - "border": { - "color": "#919191", - "width": 1, - "top": true, - "overlay": true - }, - "cursor_position": { - "family": "Zed Sans", - "color": "#333333", - "size": 14 - }, - "auto_update_progress_message": { - "family": "Zed Sans", - "color": "#333333", - "size": 14 - }, - "auto_update_done_message": { - "family": "Zed Sans", - "color": "#333333", - "size": 14 - }, - "lsp_status": { - "corner_radius": 6, - "padding": { - "top": 1, - "bottom": 1, - "left": 6, - "right": 6 - }, - "icon_spacing": 4, - "icon_width": 14, - "height": 18, - "message": { - "family": "Zed Sans", - "color": "#333333", - "size": 14 - }, - "icon_color": "#444444", - "hover": { - "message": { - "family": "Zed Sans", - "color": "#222222", - "size": 14 - }, - "icon_color": "#222222", - "background": "#959595" - } - }, - "diagnostic_message": { - "family": "Zed Sans", - "color": "#333333", - "size": 14, - "hover": { - "family": "Zed Sans", - "color": "#111111", - "size": 14 - } - }, - "feedback": { - "family": "Zed Sans", - "color": "#333333", - "size": 14, - "hover": { - "family": "Zed Sans", - "color": "#111111", - "size": 14 - } - }, - "diagnostic_summary": { - "height": 16, - "icon_width": 16, - "icon_spacing": 2, - "summary_spacing": 6, - "text": { - "family": "Zed Sans", - "color": "#222222", - "size": 14 - }, - "icon_color_ok": "#444444", - "icon_color_warning": "#cccccc", - "icon_color_error": "#aaaaaa", - "container_ok": { - "corner_radius": 6, - "padding": { - "top": 3, - "bottom": 3, - "left": 7, - "right": 7 - } - }, - "container_warning": { - "corner_radius": 6, - "padding": { - "top": 1, - "bottom": 1, - "left": 6, - "right": 6 - }, - "background": "#cccccc26", - "border": { - "color": "#d9d9d9", - "width": 1 - } - }, - "container_error": { - "corner_radius": 6, - "padding": { - "top": 1, - "bottom": 1, - "left": 6, - "right": 6 - }, - "background": "#aaaaaa26", - "border": { - "color": "#c4c4c4", - "width": 1 - } - }, - "hover": { - "icon_color_ok": "#111111", - "container_ok": { - "corner_radius": 6, - "padding": { - "top": 3, - "bottom": 3, - "left": 7, - "right": 7 - }, - "background": "#959595" - }, - "container_warning": { - "corner_radius": 6, - "padding": { - "top": 1, - "bottom": 1, - "left": 6, - "right": 6 - }, - "background": "#cccccc33", - "border": { - "color": "#d9d9d9", - "width": 1 - } - }, - "container_error": { - "corner_radius": 6, - "padding": { - "top": 1, - "bottom": 1, - "left": 6, - "right": 6 - }, - "background": "#aaaaaa33", - "border": { - "color": "#c4c4c4", - "width": 1 - } - } - } - }, - "sidebar_buttons": { - "group_left": {}, - "group_right": {}, - "item": { - "corner_radius": 6, - "padding": { - "top": 3, - "bottom": 3, - "left": 6, - "right": 6 - }, - "icon_size": 16, - "icon_color": "#444444", - "hover": { - "icon_color": "#111111", - "background": "#959595" - }, - "active": { - "icon_color": "#111111", - "background": "#919191" - } - }, - "badge": { - "corner_radius": 3, - "padding": 2, - "margin": { - "bottom": -1, - "right": -1 - }, - "border": { - "width": 1, - "color": "#999999" - }, - "background": "#ffffff" - } - } - }, - "titlebar": { - "avatar_width": 18, - "avatar_margin": 8, - "height": 33, - "background": "#959595", - "padding": { - "left": 80, - "right": 6 - }, - "title": { - "family": "Zed Sans", - "color": "#222222", - "size": 14 - }, - "avatar": { - "corner_radius": 10, - "border": { - "color": "#00000088", - "width": 1 - } - }, - "avatar_ribbon": { - "height": 3, - "width": 12 - }, - "border": { - "color": "#919191", - "width": 1, - "bottom": true, - "overlay": true - }, - "sign_in_prompt": { - "background": "#959595", - "border": { - "color": "#959595", - "width": 1 - }, - "corner_radius": 6, - "margin": { - "top": 1 - }, - "padding": { - "top": 1, - "bottom": 1, - "left": 7, - "right": 7 - }, - "family": "Zed Sans", - "color": "#333333", - "size": 12, - "hover": { - "family": "Zed Sans", - "color": "#111111", - "size": 12, - "background": "#4c4c4c", - "border": { - "color": "#919191", - "width": 1 - } - } - }, - "offline_icon": { - "color": "#333333", - "width": 16, - "margin": { - "left": 6 - }, - "padding": { - "right": 4 - } - }, - "outdated_warning": { - "family": "Zed Sans", - "color": "#cccccc", - "size": 12, - "background": "#cccccc26", - "border": { - "color": "#d9d9d9", - "width": 1 - }, - "margin": { - "left": 6 - }, - "padding": { - "left": 6, - "right": 6 - }, - "corner_radius": 6 - } - }, - "toolbar": { - "height": 34, - "background": "#000000", - "border": { - "color": "#959595", - "width": 1, - "bottom": true - }, - "item_spacing": 8, - "nav_button": { - "color": "#222222", - "icon_width": 12, - "button_width": 24, - "corner_radius": 6, - "hover": { - "color": "#111111", - "background": "#919191" - }, - "disabled": { - "color": "#44444499" - } - }, - "padding": { - "left": 8, - "right": 8, - "top": 4, - "bottom": 4 - } - }, - "breadcrumbs": { - "family": "Zed Mono", - "color": "#333333", - "size": 14, - "padding": { - "left": 6 - } - }, - "disconnected_overlay": { - "family": "Zed Sans", - "color": "#111111", - "size": 14, - "background": "#000000cc" - }, - "notification": { - "margin": { - "top": 10 - }, - "background": "#999999", - "corner_radius": 6, - "padding": 12, - "border": { - "color": "#919191", - "width": 1 - }, - "shadow": { - "blur": 16, - "color": "#0000001f", - "offset": [ - 0, - 2 - ] - } - }, - "notifications": { - "width": 400, - "margin": { - "right": 10, - "bottom": 10 - } - } - }, - "context_menu": { - "background": "#999999", - "corner_radius": 6, - "padding": 6, - "shadow": { - "blur": 4, - "color": "#0000001f", - "offset": [ - 1, - 2 - ] - }, - "border": { - "color": "#919191", - "width": 1 - }, - "keystroke_margin": 30, - "item": { - "icon_spacing": 8, - "icon_width": 14, - "padding": { - "left": 4, - "right": 4, - "top": 2, - "bottom": 2 - }, - "corner_radius": 6, - "label": { - "family": "Zed Sans", - "color": "#222222", - "size": 14 - }, - "keystroke": { - "family": "Zed Sans", - "color": "#444444", - "size": 14, - "weight": "bold", - "padding": { - "left": 3, - "right": 3 - } - }, - "hover": { - "background": "#959595", - "text": { - "family": "Zed Sans", - "color": "#222222", - "size": 14 - } - }, - "active": { - "background": "#919191", - "text": { - "family": "Zed Sans", - "color": "#111111", - "size": 14 - } - }, - "active_hover": { - "background": "#959595", - "text": { - "family": "Zed Sans", - "color": "#111111", - "size": 14 - } - } - }, - "separator": { - "background": "#919191", - "margin": { - "top": 2, - "bottom": 2 - } - } - }, - "editor": { - "text_color": "#111111", - "background": "#000000", - "active_line_background": "#999999", - "code_actions": { - "indicator": "#333333", - "vertical_scale": 0.618 - }, - "diff_background_deleted": "#aaaaaa26", - "diff_background_inserted": "#dddddd26", - "document_highlight_read_background": "#4d4d4d1f", - "document_highlight_write_background": "#4d4d4d3d", - "error_color": "#aaaaaa", - "gutter_background": "#000000", - "gutter_padding_factor": 3.5, - "highlighted_line_background": "#959595", - "line_number": "#555555", - "line_number_active": "#111111", - "rename_fade": 0.6, - "unnecessary_code_fade": 0.5, - "selection": { - "cursor": "#ffffff", - "selection": "#ffffff3d" - }, - "guest_selections": [ - { - "cursor": "#dddddd", - "selection": "#dddddd3d" - }, - { - "cursor": "#cdcdcd", - "selection": "#cdcdcd3d" - }, - { - "cursor": "#bbbbbb", - "selection": "#bbbbbb3d" - }, - { - "cursor": "#ababab", - "selection": "#ababab3d" - }, - { - "cursor": "#eeeeee", - "selection": "#eeeeee3d" - }, - { - "cursor": "#aaaaaa", - "selection": "#aaaaaa3d" - }, - { - "cursor": "#cccccc", - "selection": "#cccccc3d" - } - ], - "autocomplete": { - "background": "#000000", - "corner_radius": 8, - "padding": 4, - "border": { - "color": "#959595", - "width": 1 - }, - "shadow": { - "blur": 4, - "color": "#0000001f", - "offset": [ - 1, - 2 - ] - }, - "item": { - "corner_radius": 6, - "padding": { - "bottom": 2, - "left": 6, - "right": 6, - "top": 2 - } - }, - "hovered_item": { - "corner_radius": 6, - "padding": { - "bottom": 2, - "left": 6, - "right": 6, - "top": 2 - }, - "background": "#262626" - }, - "margin": { - "left": -14 - }, - "match_highlight": { - "family": "Zed Mono", - "color": "#ffffff", - "size": 14 - }, - "selected_item": { - "corner_radius": 6, - "padding": { - "bottom": 2, - "left": 6, - "right": 6, - "top": 2 - }, - "background": "#4c4c4c" - } - }, - "diagnostic_header": { - "background": "#999999", - "icon_width_factor": 1.5, - "text_scale_factor": 0.857, - "border": { - "color": "#959595", - "width": 1, - "bottom": true, - "top": true - }, - "code": { - "family": "Zed Mono", - "color": "#333333", - "size": 14, - "margin": { - "left": 10 - } - }, - "message": { - "highlight_text": { - "family": "Zed Sans", - "color": "#222222", - "size": 14, - "weight": "bold" - }, - "text": { - "family": "Zed Sans", - "color": "#333333", - "size": 14 - } - } - }, - "diagnostic_path_header": { - "background": "#999999", - "text_scale_factor": 0.857, - "filename": { - "family": "Zed Mono", - "color": "#222222", - "size": 14 - }, - "path": { - "family": "Zed Mono", - "color": "#444444", - "size": 14, - "margin": { - "left": 12 - } - } - }, - "error_diagnostic": { - "text_scale_factor": 0.857, - "header": { - "border": { - "color": "#919191", - "width": 1, - "top": true - } - }, - "message": { - "text": { - "family": "Zed Sans", - "color": "#aaaaaa", - "size": 14 - }, - "highlight_text": { - "family": "Zed Sans", - "color": "#aaaaaa", - "size": 14, - "weight": "bold" - } - } - }, - "warning_diagnostic": { - "text_scale_factor": 0.857, - "header": { - "border": { - "color": "#919191", - "width": 1, - "top": true - } - }, - "message": { - "text": { - "family": "Zed Sans", - "color": "#cccccc", - "size": 14 - }, - "highlight_text": { - "family": "Zed Sans", - "color": "#cccccc", - "size": 14, - "weight": "bold" - } - } - }, - "information_diagnostic": { - "text_scale_factor": 0.857, - "header": { - "border": { - "color": "#919191", - "width": 1, - "top": true - } - }, - "message": { - "text": { - "family": "Zed Sans", - "color": "#ffffff", - "size": 14 - }, - "highlight_text": { - "family": "Zed Sans", - "color": "#ffffff", - "size": 14, - "weight": "bold" - } - } - }, - "hint_diagnostic": { - "text_scale_factor": 0.857, - "header": { - "border": { - "color": "#919191", - "width": 1, - "top": true - } - }, - "message": { - "text": { - "family": "Zed Sans", - "color": "#ffffff", - "size": 14 - }, - "highlight_text": { - "family": "Zed Sans", - "color": "#ffffff", - "size": 14, - "weight": "bold" - } - } - }, - "invalid_error_diagnostic": { - "text_scale_factor": 0.857, - "header": { - "border": { - "color": "#919191", - "width": 1, - "top": true - } - }, - "message": { - "text": { - "family": "Zed Sans", - "color": "#333333", - "size": 14 - }, - "highlight_text": { - "family": "Zed Sans", - "color": "#333333", - "size": 14, - "weight": "bold" - } - } - }, - "invalid_hint_diagnostic": { - "text_scale_factor": 0.857, - "header": { - "border": { - "color": "#919191", - "width": 1, - "top": true - } - }, - "message": { - "text": { - "family": "Zed Sans", - "color": "#333333", - "size": 14 - }, - "highlight_text": { - "family": "Zed Sans", - "color": "#333333", - "size": 14, - "weight": "bold" - } - } - }, - "invalid_information_diagnostic": { - "text_scale_factor": 0.857, - "header": { - "border": { - "color": "#919191", - "width": 1, - "top": true - } - }, - "message": { - "text": { - "family": "Zed Sans", - "color": "#333333", - "size": 14 - }, - "highlight_text": { - "family": "Zed Sans", - "color": "#333333", - "size": 14, - "weight": "bold" - } - } - }, - "invalid_warning_diagnostic": { - "text_scale_factor": 0.857, - "header": { - "border": { - "color": "#919191", - "width": 1, - "top": true - } - }, - "message": { - "text": { - "family": "Zed Sans", - "color": "#333333", - "size": 14 - }, - "highlight_text": { - "family": "Zed Sans", - "color": "#333333", - "size": 14, - "weight": "bold" - } - } - }, - "hover_popover": { - "container": { - "background": "#999999", - "corner_radius": 8, - "padding": { - "left": 8, - "right": 8, - "top": 4, - "bottom": 4 - }, - "shadow": { - "blur": 4, - "color": "#0000001f", - "offset": [ - 1, - 2 - ] - }, - "border": { - "color": "#959595", - "width": 1 - }, - "margin": { - "left": -8 - } - }, - "info_container": { - "background": "#eeeeee", - "corner_radius": 8, - "padding": { - "left": 8, - "right": 8, - "top": 4, - "bottom": 4 - }, - "shadow": { - "blur": 4, - "color": "#0000001f", - "offset": [ - 1, - 2 - ] - }, - "border": { - "color": "#ececec", - "width": 1 - }, - "margin": { - "left": -8 - } - }, - "warning_container": { - "background": "#e9e9e9", - "corner_radius": 8, - "padding": { - "left": 8, - "right": 8, - "top": 4, - "bottom": 4 - }, - "shadow": { - "blur": 4, - "color": "#0000001f", - "offset": [ - 1, - 2 - ] - }, - "border": { - "color": "#ececec", - "width": 1 - }, - "margin": { - "left": -8 - } - }, - "error_container": { - "background": "#e5e5e5", - "corner_radius": 8, - "padding": { - "left": 8, - "right": 8, - "top": 4, - "bottom": 4 - }, - "shadow": { - "blur": 4, - "color": "#0000001f", - "offset": [ - 1, - 2 - ] - }, - "border": { - "color": "#ececec", - "width": 1 - }, - "margin": { - "left": -8 - } - }, - "block_style": { - "padding": { - "top": 4 - } - }, - "prose": { - "family": "Zed Sans", - "color": "#222222", - "size": 14 - }, - "highlight": "#4d4d4d1f" - }, - "link_definition": { - "color": "#dddddd", - "underline": true - }, - "jump_icon": { - "color": "#333333", - "icon_width": 20, - "button_width": 20, - "corner_radius": 6, - "padding": { - "top": 6, - "bottom": 6, - "left": 6, - "right": 6 - }, - "hover": { - "color": "#111111", - "background": "#999999" - } - }, - "composition_mark": { - "underline": { - "thickness": 1, - "color": "#444444" - } - }, - "syntax": { - "primary": { - "color": "#111111", - "weight": "normal" - }, - "comment": { - "color": "#333333", - "weight": "normal" - }, - "punctuation": { - "color": "#222222", - "weight": "normal" - }, - "constant": { - "color": "#444444", - "weight": "normal" - }, - "keyword": { - "color": "#ffffff", - "weight": "normal" - }, - "function": { - "color": "#cccccc", - "weight": "normal" - }, - "type": { - "color": "#eeeeee", - "weight": "normal" - }, - "constructor": { - "color": "#ffffff", - "weight": "normal" - }, - "variant": { - "color": "#ffffff", - "weight": "normal" - }, - "property": { - "color": "#ffffff", - "weight": "normal" - }, - "enum": { - "color": "#bbbbbb", - "weight": "normal" - }, - "operator": { - "color": "#bbbbbb", - "weight": "normal" - }, - "string": { - "color": "#bbbbbb", - "weight": "normal" - }, - "number": { - "color": "#dddddd", - "weight": "normal" - }, - "boolean": { - "color": "#dddddd", - "weight": "normal" - }, - "predictive": { - "color": "#444444", - "weight": "normal" - }, - "title": { - "color": "#cccccc", - "weight": "bold" - }, - "emphasis": { - "color": "#ffffff", - "weight": "normal" - }, - "emphasis.strong": { - "color": "#ffffff", - "weight": "bold" - }, - "link_uri": { - "color": "#dddddd", - "weight": "normal", - "underline": true - }, - "link_text": { - "color": "#bbbbbb", - "weight": "normal", - "italic": true - } - } - }, - "project_diagnostics": { - "background": "#000000", - "tab_icon_spacing": 4, - "tab_icon_width": 13, - "tab_summary_spacing": 10, - "empty_message": { - "family": "Zed Sans", - "color": "#333333", - "size": 16 - } - }, - "command_palette": { - "keystroke_spacing": 8, - "key": { - "text": { - "family": "Zed Mono", - "color": "#333333", - "size": 12 - }, - "corner_radius": 4, - "background": "#000000", - "border": { - "color": "#959595", - "width": 1 - }, - "padding": { - "top": 2, - "bottom": 2, - "left": 8, - "right": 8 - }, - "margin": { - "left": 2 - }, - "active": { - "text": { - "family": "Zed Mono", - "color": "#111111", - "size": 12 - } - } - } - }, - "project_panel": { - "padding": { - "left": 12, - "right": 12, - "top": 6, - "bottom": 6 - }, - "indent_width": 8, - "entry": { - "height": 24, - "icon_color": "#444444", - "icon_size": 8, - "icon_spacing": 8, - "text": { - "family": "Zed Mono", - "color": "#333333", - "size": 14 - }, - "hover": { - "background": "#959595" - }, - "active": { - "background": "#919191", - "text": { - "family": "Zed Mono", - "color": "#111111", - "size": 14 - } - }, - "active_hover": { - "background": "#919191", - "text": { - "family": "Zed Mono", - "color": "#111111", - "size": 14 - } - } - }, - "cut_entry_fade": 0.4, - "ignored_entry_fade": 0.6, - "filename_editor": { - "background": "#000000", - "text": { - "family": "Zed Mono", - "color": "#111111", - "size": 14 - }, - "selection": { - "cursor": "#ffffff", - "selection": "#ffffff3d" - } - } - }, - "chat_panel": { - "padding": { - "top": 12, - "bottom": 12 - }, - "channel_name": { - "family": "Zed Sans", - "color": "#222222", - "weight": "bold", - "size": 14 - }, - "channel_name_hash": { - "family": "Zed Sans", - "color": "#444444", - "size": 14, - "padding": { - "right": 8 - } - }, - "channel_select": { - "header": { - "name": { - "family": "Zed Sans", - "color": "#222222", - "size": 14 - }, - "padding": { - "bottom": 4, - "left": 0 - }, - "hash": { - "family": "Zed Sans", - "color": "#444444", - "size": 14, - "margin": { - "right": 8 - } - }, - "corner_radius": 0 - }, - "item": { - "name": { - "family": "Zed Sans", - "color": "#333333", - "size": 14 - }, - "padding": 4, - "hash": { - "family": "Zed Sans", - "color": "#444444", - "size": 14, - "margin": { - "right": 8 - } - }, - "corner_radius": 0 - }, - "hovered_item": { - "name": { - "family": "Zed Sans", - "color": "#333333", - "size": 14 - }, - "padding": 4, - "hash": { - "family": "Zed Sans", - "color": "#444444", - "size": 14, - "margin": { - "right": 8 - } - }, - "background": "#959595", - "corner_radius": 6 - }, - "active_item": { - "name": { - "family": "Zed Sans", - "color": "#222222", - "size": 14 - }, - "padding": 4, - "hash": { - "family": "Zed Sans", - "color": "#444444", - "size": 14, - "margin": { - "right": 8 - } - }, - "corner_radius": 0 - }, - "hovered_active_item": { - "name": { - "family": "Zed Sans", - "color": "#222222", - "size": 14 - }, - "padding": 4, - "hash": { - "family": "Zed Sans", - "color": "#444444", - "size": 14, - "margin": { - "right": 8 - } - }, - "background": "#959595", - "corner_radius": 6 - }, - "menu": { - "background": "#000000", - "corner_radius": 6, - "padding": 4, - "border": { - "color": "#919191", - "width": 1 - }, - "shadow": { - "blur": 4, - "color": "#0000001f", - "offset": [ - 1, - 2 - ] - } - } - }, - "sign_in_prompt": { - "family": "Zed Sans", - "color": "#333333", - "underline": true, - "size": 14 - }, - "hovered_sign_in_prompt": { - "family": "Zed Sans", - "color": "#222222", - "underline": true, - "size": 14 - }, - "message": { - "body": { - "family": "Zed Sans", - "color": "#333333", - "size": 14 - }, - "timestamp": { - "family": "Zed Sans", - "color": "#444444", - "size": 14 - }, - "padding": { - "bottom": 6 - }, - "sender": { - "family": "Zed Sans", - "color": "#222222", - "weight": "bold", - "size": 14, - "margin": { - "right": 8 - } - } - }, - "pending_message": { - "body": { - "family": "Zed Sans", - "color": "#444444", - "size": 14 - }, - "timestamp": { - "family": "Zed Sans", - "color": "#444444", - "size": 14 - }, - "padding": { - "bottom": 6 - }, - "sender": { - "family": "Zed Sans", - "color": "#444444", - "weight": "bold", - "size": 14, - "margin": { - "right": 8 - } - } - }, - "input_editor": { - "background": "#000000", - "corner_radius": 6, - "text": { - "family": "Zed Mono", - "color": "#222222", - "size": 14 - }, - "placeholder_text": { - "family": "Zed Mono", - "color": "#555555", - "size": 14 - }, - "selection": { - "cursor": "#ffffff", - "selection": "#ffffff3d" - }, - "border": { - "color": "#959595", - "width": 1 - }, - "padding": { - "bottom": 7, - "left": 8, - "right": 8, - "top": 7 - } - } - }, - "contacts_panel": { - "padding": { - "top": 12, - "bottom": 0 - }, - "user_query_editor": { - "background": "#000000", - "corner_radius": 6, - "text": { - "family": "Zed Mono", - "color": "#222222", - "size": 14 - }, - "placeholder_text": { - "family": "Zed Mono", - "color": "#555555", - "size": 14 - }, - "selection": { - "cursor": "#ffffff", - "selection": "#ffffff3d" - }, - "border": { - "color": "#959595", - "width": 1 - }, - "padding": { - "bottom": 4, - "left": 8, - "right": 8, - "top": 4 - }, - "margin": { - "left": 12, - "right": 12 - } - }, - "user_query_editor_height": 32, - "add_contact_button": { - "margin": { - "left": 6, - "right": 12 - }, - "color": "#222222", - "button_width": 16, - "icon_width": 16 - }, - "private_button": { - "icon_width": 12, - "color": "#222222", - "corner_radius": 5, - "button_width": 12 - }, - "row_height": 28, - "section_icon_size": 8, - "header_row": { - "family": "Zed Mono", - "color": "#333333", - "size": 14, - "margin": { - "top": 14 - }, - "padding": { - "left": 12, - "right": 12 - }, - "active": { - "family": "Zed Mono", - "color": "#222222", - "size": 14, - "background": "#8c8c8c" - } - }, - "contact_row": { - "padding": { - "left": 12, - "right": 12 - }, - "active": { - "background": "#8c8c8c" - } - }, - "tree_branch": { - "color": "#444444", - "width": 1, - "hover": { - "color": "#444444" - }, - "active": { - "color": "#444444" - } - }, - "contact_avatar": { - "corner_radius": 10, - "width": 18 - }, - "contact_username": { - "family": "Zed Mono", - "color": "#222222", - "size": 14, - "margin": { - "left": 8 - } - }, - "contact_button_spacing": 8, - "contact_button": { - "background": "#959595", - "color": "#222222", - "icon_width": 8, - "button_width": 16, - "corner_radius": 8, - "hover": { - "background": "#4c4c4c" - } - }, - "disabled_button": { - "background": "#959595", - "color": "#444444", - "icon_width": 8, - "button_width": 16, - "corner_radius": 8 - }, - "project_row": { - "guest_avatar_spacing": 4, - "height": 24, - "guest_avatar": { - "corner_radius": 8, - "width": 14 - }, - "name": { - "family": "Zed Mono", - "color": "#333333", - "size": 14, - "margin": { - "left": 8, - "right": 6 - } - }, - "guests": { - "margin": { - "left": 8, - "right": 8 - } - }, - "padding": { - "left": 12, - "right": 12 - }, - "background": "#999999", - "hover": { - "background": "#959595" - }, - "active": { - "background": "#919191" - } - }, - "invite_row": { - "padding": { - "left": 12, - "right": 12 - }, - "border": { - "top": true, - "width": 1, - "color": "#919191" - }, - "text": { - "family": "Zed Sans", - "color": "#333333", - "size": 14 - }, - "hover": { - "text": { - "family": "Zed Sans", - "color": "#111111", - "size": 14 - } - } - } - }, - "contact_finder": { - "background": "#999999", - "corner_radius": 8, - "padding": 8, - "item": { - "padding": { - "bottom": 4, - "left": 12, - "right": 12, - "top": 4 - }, - "corner_radius": 8, - "text": { - "family": "Zed Sans", - "color": "#333333", - "size": 14 - }, - "highlight_text": { - "family": "Zed Sans", - "color": "#ffffff", - "weight": "bold", - "size": 14 - }, - "active": { - "background": "#919191", - "text": { - "family": "Zed Sans", - "color": "#111111", - "size": 14 - } - }, - "hover": { - "background": "#959595" - } - }, - "border": { - "color": "#919191", - "width": 1 - }, - "empty": { - "text": { - "family": "Zed Sans", - "color": "#444444", - "size": 14 - }, - "padding": { - "bottom": 4, - "left": 12, - "right": 12, - "top": 8 - } - }, - "input_editor": { - "background": "#000000", - "corner_radius": 8, - "placeholder_text": { - "family": "Zed Sans", - "color": "#555555", - "size": 14 - }, - "selection": { - "cursor": "#ffffff", - "selection": "#ffffff3d" - }, - "text": { - "family": "Zed Mono", - "color": "#222222", - "size": 14 - }, - "border": { - "color": "#959595", - "width": 1 - }, - "padding": { - "bottom": 7, - "left": 16, - "right": 16, - "top": 7 - } - }, - "shadow": { - "blur": 16, - "color": "#0000001f", - "offset": [ - 0, - 2 - ] - }, - "row_height": 28, - "contact_avatar": { - "corner_radius": 10, - "width": 18 - }, - "contact_username": { - "padding": { - "left": 8 - } - }, - "contact_button": { - "background": "#959595", - "color": "#222222", - "icon_width": 8, - "button_width": 16, - "corner_radius": 8, - "hover": { - "background": "#919191" - } - }, - "disabled_contact_button": { - "background": "#959595", - "color": "#444444", - "icon_width": 8, - "button_width": 16, - "corner_radius": 8 - } - }, - "search": { - "match_background": "#d9d9d9", - "tab_icon_spacing": 8, - "tab_icon_width": 14, - "option_button": { - "family": "Zed Mono", - "color": "#333333", - "size": 14, - "background": "#999999", - "corner_radius": 6, - "border": { - "color": "#959595", - "width": 1 - }, - "margin": { - "right": 4 - }, - "padding": { - "bottom": 2, - "left": 10, - "right": 10, - "top": 2 - }, - "active": { - "family": "Zed Mono", - "color": "#111111", - "size": 14, - "background": "#888888", - "border": { - "color": "#999999", - "width": 1 - } - }, - "hover": { - "family": "Zed Mono", - "color": "#111111", - "size": 14, - "background": "#919191", - "border": { - "color": "#999999", - "width": 1 - } - } - }, - "editor": { - "background": "#000000", - "corner_radius": 8, - "min_width": 200, - "max_width": 500, - "placeholder_text": { - "family": "Zed Mono", - "color": "#555555", - "size": 14 - }, - "selection": { - "cursor": "#ffffff", - "selection": "#ffffff3d" - }, - "text": { - "family": "Zed Mono", - "color": "#111111", - "size": 14 - }, - "border": { - "color": "#959595", - "width": 1 - }, - "margin": { - "right": 12 - }, - "padding": { - "top": 3, - "bottom": 3, - "left": 12, - "right": 8 - } - }, - "invalid_editor": { - "background": "#000000", - "corner_radius": 8, - "min_width": 200, - "max_width": 500, - "placeholder_text": { - "family": "Zed Mono", - "color": "#555555", - "size": 14 - }, - "selection": { - "cursor": "#ffffff", - "selection": "#ffffff3d" - }, - "text": { - "family": "Zed Mono", - "color": "#111111", - "size": 14 - }, - "border": { - "color": "#c4c4c4", - "width": 1 - }, - "margin": { - "right": 12 - }, - "padding": { - "top": 3, - "bottom": 3, - "left": 12, - "right": 8 - } - }, - "match_index": { - "family": "Zed Mono", - "color": "#444444", - "size": 14, - "padding": 6 - }, - "option_button_group": { - "padding": { - "left": 12, - "right": 12 - } - }, - "results_status": { - "family": "Zed Mono", - "color": "#222222", - "size": 18 - } - }, - "breadcrumbs": { - "family": "Zed Sans", - "color": "#333333", - "size": 14, - "padding": { - "left": 6 - } - }, - "contact_notification": { - "header_avatar": { - "height": 12, - "width": 12, - "corner_radius": 6 - }, - "header_message": { - "family": "Zed Sans", - "color": "#222222", - "size": 12, - "margin": { - "left": 8, - "right": 8 - } - }, - "header_height": 18, - "body_message": { - "family": "Zed Sans", - "color": "#333333", - "size": 12, - "margin": { - "left": 20, - "top": 6, - "bottom": 6 - } - }, - "button": { - "family": "Zed Sans", - "color": "#222222", - "size": 12, - "background": "#000000", - "padding": 4, - "corner_radius": 6, - "margin": { - "left": 6 - }, - "hover": { - "background": "#4c4c4c" - } - }, - "dismiss_button": { - "color": "#333333", - "icon_width": 8, - "icon_height": 8, - "button_width": 8, - "button_height": 8, - "hover": { - "color": "#222222" - } - } - }, - "update_notification": { - "message": { - "family": "Zed Sans", - "color": "#222222", - "size": 12, - "margin": { - "left": 8, - "right": 8 - } - }, - "action_message": { - "family": "Zed Sans", - "color": "#333333", - "size": 12, - "margin": { - "left": 8, - "top": 6, - "bottom": 6 - }, - "hover": { - "color": "#111111" - } - }, - "dismiss_button": { - "color": "#333333", - "icon_width": 8, - "icon_height": 8, - "button_width": 8, - "button_height": 8, - "hover": { - "color": "#222222" - } - } - }, - "tooltip": { - "background": "#000000", - "border": { - "color": "#959595", - "width": 1 - }, - "padding": { - "top": 4, - "bottom": 4, - "left": 8, - "right": 8 - }, - "margin": { - "top": 6, - "left": 6 - }, - "shadow": { - "blur": 4, - "color": "#0000001f", - "offset": [ - 1, - 2 - ] - }, - "corner_radius": 6, - "text": { - "family": "Zed Sans", - "color": "#222222", - "size": 12 - }, - "keystroke": { - "background": "#999999", - "corner_radius": 4, - "margin": { - "left": 6 - }, - "padding": { - "left": 4, - "right": 4 - }, - "family": "Zed Mono", - "color": "#333333", - "size": 12, - "weight": "bold" - }, - "max_text_width": 200 - }, - "terminal": { - "colors": { - "black": "#000000", - "red": "#aaaaaa", - "green": "#dddddd", - "yellow": "#cccccc", - "blue": "#ffffff", - "magenta": "#cdcdcd", - "cyan": "#eeeeee", - "white": "#111111", - "bright_black": "#444444", - "bright_red": "#cbcbcb", - "bright_green": "#e5e5e5", - "bright_yellow": "#dcdcdc", - "bright_blue": "#f6f6f6", - "bright_magenta": "#dddddd", - "bright_cyan": "#ededed", - "bright_white": "#111111", - "foreground": "#111111", - "background": "#000000", - "modal_background": "#999999", - "cursor": "#ffffff", - "dim_black": "#111111", - "dim_red": "#5a5a5a", - "dim_green": "#747474", - "dim_yellow": "#6b6b6b", - "dim_blue": "#858585", - "dim_magenta": "#6c6c6c", - "dim_cyan": "#7c7c7c", - "dim_white": "#333333", - "bright_foreground": "#111111", - "dim_foreground": "#000000" - }, - "modal_container": { - "background": "#999999", - "corner_radius": 8, - "padding": 8, - "margin": 25, - "border": { - "color": "#919191", - "width": 1 - }, - "shadow": { - "blur": 16, - "color": "#0000001f", - "offset": [ - 0, - 2 - ] - } - } - } -} \ No newline at end of file From afc3f3fe9cebd7242167161b350ef6bd89e91f0b Mon Sep 17 00:00:00 2001 From: Mikayla Maki Date: Thu, 8 Sep 2022 15:53:56 -0700 Subject: [PATCH 07/10] Removed test theme files --- styles/src/themes/experiments/.gitkeep | 0 .../themes/experiments/cave-experiments.ts | 28 ------------------- styles/src/themes/internal/.gitkeep | 0 styles/src/themes/internal/cave-internal.ts | 28 ------------------- 4 files changed, 56 deletions(-) create mode 100644 styles/src/themes/experiments/.gitkeep delete mode 100644 styles/src/themes/experiments/cave-experiments.ts create mode 100644 styles/src/themes/internal/.gitkeep delete mode 100644 styles/src/themes/internal/cave-internal.ts diff --git a/styles/src/themes/experiments/.gitkeep b/styles/src/themes/experiments/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/styles/src/themes/experiments/cave-experiments.ts b/styles/src/themes/experiments/cave-experiments.ts deleted file mode 100644 index 4b2dd582bf0a323db732d0cf0f6beaa6a12dd830..0000000000000000000000000000000000000000 --- a/styles/src/themes/experiments/cave-experiments.ts +++ /dev/null @@ -1,28 +0,0 @@ -import chroma from "chroma-js"; -import { colorRamp, createTheme } from "../common/base16"; - -const name = "cave-experiments"; - -const ramps = { - neutral: chroma.scale([ - "#555555", - "#555555", - "#555555", - "#555555", - "#555555", - "#555555", - "#555555", - "#555555", - ]), - red: colorRamp(chroma("#555555")), - orange: colorRamp(chroma("#555555")), - yellow: colorRamp(chroma("#555555")), - green: colorRamp(chroma("#555555")), - cyan: colorRamp(chroma("#555555")), - blue: colorRamp(chroma("#555555")), - violet: colorRamp(chroma("#555555")), - magenta: colorRamp(chroma("#555555")), -}; - -export const dark = createTheme(`${name}-dark`, false, ramps); -export const light = createTheme(`${name}-light`, true, ramps); diff --git a/styles/src/themes/internal/.gitkeep b/styles/src/themes/internal/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/styles/src/themes/internal/cave-internal.ts b/styles/src/themes/internal/cave-internal.ts deleted file mode 100644 index db7af1b5ec8a9d9e0c706d0d4aefdf61cd0bd5e9..0000000000000000000000000000000000000000 --- a/styles/src/themes/internal/cave-internal.ts +++ /dev/null @@ -1,28 +0,0 @@ -import chroma from "chroma-js"; -import { colorRamp, createTheme } from "../common/base16"; - -const name = "cave-internal"; - -const ramps = { - neutral: chroma.scale([ - "#111111", - "#222222", - "#333333", - "#444444", - "#555555", - "#888888", - "#999999", - "#000000", - ]), - red: colorRamp(chroma("#aaaaaa")), - orange: colorRamp(chroma("#bbbbbb")), - yellow: colorRamp(chroma("#cccccc")), - green: colorRamp(chroma("#dddddd")), - cyan: colorRamp(chroma("#eeeeee")), - blue: colorRamp(chroma("#ffffff")), - violet: colorRamp(chroma("#ababab")), - magenta: colorRamp(chroma("#cdcdcd")), -}; - -export const dark = createTheme(`${name}-dark`, false, ramps); -export const light = createTheme(`${name}-light`, true, ramps); From ec5d8f8c7cfc59a856172bb29f1726031018eeb3 Mon Sep 17 00:00:00 2001 From: Mikayla Maki Date: Thu, 8 Sep 2022 16:27:46 -0700 Subject: [PATCH 08/10] 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 c0eb858e48a52258b50783362eb73884cfa7b6e3..1095f289ebb94382449ea346e6af827331fc0e32 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 32a7736659aae53812ae657f6357d3d6d42eb274..59b0bc7e6a8c4e3cd205da3f1f55c2fa6a116f11 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 e3ae35bc08b057c493f8cb5d9c22954083adfec5..fc3616d59287f184d79c4895fda4bd6ce7368ea7 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 6d28efbcbccbd837af7427f4b2431e4e6bce9431..14c9f63e95e65e0d04d615403cf3e8796e95274f 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 18d0cfa76f4d50640c5d6cb95393f77b3d532976..a8f10a1579f09ecdaaced6763d2305307ff8fc88 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; From 7571899f085f8be4fd838d4c9bca32750ef9d1e7 Mon Sep 17 00:00:00 2001 From: Mikayla Maki Date: Thu, 8 Sep 2022 16:37:04 -0700 Subject: [PATCH 09/10] Added internal keymaps as well, just for the hell of it --- assets/keymaps/experiments/.gitkeep | 0 assets/keymaps/internal.json | 1 + crates/settings/src/keymap_file.rs | 9 ++++++++- 3 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 assets/keymaps/experiments/.gitkeep create mode 100644 assets/keymaps/internal.json diff --git a/assets/keymaps/experiments/.gitkeep b/assets/keymaps/experiments/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/assets/keymaps/internal.json b/assets/keymaps/internal.json new file mode 100644 index 0000000000000000000000000000000000000000..9e26dfeeb6e641a33dae4961196235bdb965b21b --- /dev/null +++ b/assets/keymaps/internal.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/crates/settings/src/keymap_file.rs b/crates/settings/src/keymap_file.rs index c7cff927219ce8531e2779d1ec192bd2eb30af37..4dcb5a6fb0c27943ec49d94ddb6ff88b3beea75f 100644 --- a/crates/settings/src/keymap_file.rs +++ b/crates/settings/src/keymap_file.rs @@ -42,8 +42,15 @@ struct ActionWithData(Box, Box); impl KeymapFileContent { pub fn load_defaults(cx: &mut MutableAppContext) { + let settings = cx.global::(); let mut paths = vec!["keymaps/default.json", "keymaps/vim.json"]; - paths.extend(cx.global::().experiments.keymap_files()); + + if settings.staff_mode { + paths.push("keymaps/internal.json") + } + + paths.extend(settings.experiments.keymap_files()); + for path in paths { Self::load(path, cx).unwrap(); } From 334ca4f420b221df7c7910bb53e1a265b7343fb1 Mon Sep 17 00:00:00 2001 From: Mikayla Maki Date: Thu, 8 Sep 2022 16:42:00 -0700 Subject: [PATCH 10/10] Fixed keymap file --- assets/keymaps/internal.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/keymaps/internal.json b/assets/keymaps/internal.json index 9e26dfeeb6e641a33dae4961196235bdb965b21b..0637a088a01e8ddab3bf3fa98dbe804cbde1a0dc 100644 --- a/assets/keymaps/internal.json +++ b/assets/keymaps/internal.json @@ -1 +1 @@ -{} \ No newline at end of file +[] \ No newline at end of file