From 7a1eb541061ec99de9804cd3d5dc0502d21dc6b4 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Thu, 7 Dec 2023 00:33:24 -0500 Subject: [PATCH 001/115] checkpoint --- crates/feedback2/src/feedback_modal.rs | 152 +++++++++++++----------- crates/ui2/src/components/keybinding.rs | 12 +- 2 files changed, 87 insertions(+), 77 deletions(-) diff --git a/crates/feedback2/src/feedback_modal.rs b/crates/feedback2/src/feedback_modal.rs index 68fbcfb3a30f69e462bf98b323d189a3b8a9675d..b4d4b08d54aa19027d8f26cf767a4070e1355a51 100644 --- a/crates/feedback2/src/feedback_modal.rs +++ b/crates/feedback2/src/feedback_modal.rs @@ -292,91 +292,99 @@ impl Render for FeedbackModal { .on_action(cx.listener(Self::cancel)) .min_w(rems(40.)) .max_w(rems(96.)) - .border() - .border_color(red()) - .h(rems(40.)) - .p_2() + .min_h(rems(24.)) + .max_h(rems(42.)) .gap_2() .child( - v_stack().child( + v_stack() + .p_4() + .child( div() .size_full() .child(Label::new("Give Feedback").color(Color::Default)) .child(Label::new("This editor supports markdown").color(Color::Muted)), ), ) - .child( - div() - .flex_1() + .child(v_stack() + .p_4() + .child( + div() + .flex_1() + .bg(cx.theme().colors().editor_background) + .border() + .border_color(cx.theme().colors().border) + .child(self.feedback_editor.clone()), + ) + .child( + div().child( + Label::new(format!( + "Characters: {}", + characters_remaining + )) + .map(|this| + if valid_character_count { + this.color(Color::Success) + } else { + this.color(Color::Error) + + } + ) + ), + ) + .child( + div() .bg(cx.theme().colors().editor_background) .border() .border_color(cx.theme().colors().border) - .child(self.feedback_editor.clone()), - ) - .child( - div().child( - Label::new(format!( - "Characters: {}", - characters_remaining - )) - .when_else( - valid_character_count, - |this| this.color(Color::Success), - |this| this.color(Color::Error) - ) - ), - ) - .child( - div() - .bg(cx.theme().colors().editor_background) - .border() - .border_color(cx.theme().colors().border) - .child(self.email_address_editor.clone()) - ) - .child( - h_stack() - .justify_between() - .gap_1() - .child(Button::new("community_repo", "Community Repo") - .style(ButtonStyle::Filled) - .color(Color::Muted) - .on_click(open_community_repo) - ) - .child(h_stack().justify_between().gap_1() - .child( - Button::new("cancel_feedback", "Cancel") - .style(ButtonStyle::Subtle) - .color(Color::Muted) - // TODO: replicate this logic when clicking outside the modal - // TODO: Will require somehow overriding the modal dismal default behavior - .when_else( - has_feedback, - |this| this.on_click(dismiss_prompt), - |this| this.on_click(dismiss) - ) + .child(self.email_address_editor.clone()) + ) + .child( + h_stack() + .justify_between() + .gap_1() + .child(Button::new("community_repo", "Community Repo") + .style(ButtonStyle::Filled) + .color(Color::Muted) + .on_click(open_community_repo) + ) + .child(h_stack().justify_between().gap_1() + .child( + Button::new("cancel_feedback", "Cancel") + .style(ButtonStyle::Subtle) + .color(Color::Muted) + // TODO: replicate this logic when clicking outside the modal + // TODO: Will require somehow overriding the modal dismal default behavior + .map(|this| { + if has_feedback { + this.on_click(dismiss_prompt) + } else { + this.on_click(dismiss) + } + }) + ) + .child( + Button::new("send_feedback", submit_button_text) + .color(Color::Accent) + .style(ButtonStyle::Filled) + // TODO: Ensure that while submitting, "Sending..." is shown and disable the button + // TODO: If submit errors: show popup with error, don't close modal, set text back to "Send Feedback", and re-enable button + // TODO: If submit is successful, close the modal + .on_click(cx.listener(|this, _, cx| { + let _ = this.submit(cx); + })) + .tooltip(|cx| { + Tooltip::with_meta( + "Submit feedback to the Zed team.", + None, + "Provide an email address if you want us to be able to reply.", + cx, + ) + }) + .when(!allow_submission, |this| this.disabled(true)) + ), ) - .child( - Button::new("send_feedback", submit_button_text) - .color(Color::Accent) - .style(ButtonStyle::Filled) - // TODO: Ensure that while submitting, "Sending..." is shown and disable the button - // TODO: If submit errors: show popup with error, don't close modal, set text back to "Send Feedback", and re-enable button - // TODO: If submit is successful, close the modal - .on_click(cx.listener(|this, _, cx| { - let _ = this.submit(cx); - })) - .tooltip(|cx| { - Tooltip::with_meta( - "Submit feedback to the Zed team.", - None, - "Provide an email address if you want us to be able to reply.", - cx, - ) - }) - .when(!allow_submission, |this| this.disabled(true)) - ), - ) + ) ) } } diff --git a/crates/ui2/src/components/keybinding.rs b/crates/ui2/src/components/keybinding.rs index 29586fd1941ba1fe69608e14d6f7fb01e053d56c..25a77f59e191f74ab445d564613f8ebe0859b7e2 100644 --- a/crates/ui2/src/components/keybinding.rs +++ b/crates/ui2/src/components/keybinding.rs @@ -98,11 +98,13 @@ impl RenderOnce for Key { div() .py_0() - .when_else( - single_char, - |el| el.w(rems(14. / 16.)).flex().flex_none().justify_center(), - |el| el.px_0p5(), - ) + .map(|el| { + if single_char { + el.w(rems(14. / 16.)).flex().flex_none().justify_center() + } else { + el.px_0p5() + } + }) .h(rems(14. / 16.)) .text_ui() .line_height(relative(1.)) From 197f355729e804ed2b9ced4bcf40d86f775924d2 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Thu, 7 Dec 2023 01:17:18 -0500 Subject: [PATCH 002/115] Add `row-reverse` and `col-reverse` to styled --- crates/gpui2/src/styled.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/crates/gpui2/src/styled.rs b/crates/gpui2/src/styled.rs index 346c1a760d6a56105440bfd2a3a788497d103a66..209169a9a6ecf0d4b70c8c40af3e59b6722ff9de 100644 --- a/crates/gpui2/src/styled.rs +++ b/crates/gpui2/src/styled.rs @@ -245,6 +245,13 @@ pub trait Styled: Sized { self } + /// Sets the flex direction of the element to `column-reverse`. + /// [Docs](https://tailwindcss.com/docs/flex-direction#column-reverse) + fn flex_col_reverse(mut self) -> Self { + self.style().flex_direction = Some(FlexDirection::ColumnReverse); + self + } + /// Sets the flex direction of the element to `row`. /// [Docs](https://tailwindcss.com/docs/flex-direction#row) fn flex_row(mut self) -> Self { @@ -252,6 +259,13 @@ pub trait Styled: Sized { self } + /// Sets the flex direction of the element to `row-reverse`. + /// [Docs](https://tailwindcss.com/docs/flex-direction#row-reverse) + fn flex_row_reverse(mut self) -> Self { + self.style().flex_direction = Some(FlexDirection::RowReverse); + self + } + /// Sets the element to allow a flex item to grow and shrink as needed, ignoring its initial size. /// [Docs](https://tailwindcss.com/docs/flex#flex-1) fn flex_1(mut self) -> Self { From f798b193d0d40c91abcc67a57e571ae744a33e15 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Thu, 7 Dec 2023 01:46:28 -0500 Subject: [PATCH 003/115] WIP --- crates/feedback2/src/feedback_modal.rs | 65 ++++++++++--------- crates/ui2/src/components/button/button.rs | 48 +++++++++----- .../ui2/src/components/button/button_like.rs | 8 +++ crates/ui2/src/components/icon.rs | 3 +- crates/ui2/src/prelude.rs | 2 +- 5 files changed, 79 insertions(+), 47 deletions(-) diff --git a/crates/feedback2/src/feedback_modal.rs b/crates/feedback2/src/feedback_modal.rs index b4d4b08d54aa19027d8f26cf767a4070e1355a51..aa6f3910a1bec92ac60562c5e45aea7c2391a34b 100644 --- a/crates/feedback2/src/feedback_modal.rs +++ b/crates/feedback2/src/feedback_modal.rs @@ -6,15 +6,15 @@ use db::kvp::KEY_VALUE_STORE; use editor::{Editor, EditorEvent}; use futures::AsyncReadExt; use gpui::{ - div, red, rems, serde_json, AppContext, DismissEvent, Div, EventEmitter, FocusHandle, - FocusableView, Model, PromptLevel, Render, Task, View, ViewContext, + div, rems, serde_json, AppContext, DismissEvent, Div, EventEmitter, FocusHandle, FocusableView, + Model, PromptLevel, Render, Task, View, ViewContext, }; use isahc::Request; use language::Buffer; use project::Project; use regex::Regex; use serde_derive::Serialize; -use ui::{prelude::*, Button, ButtonStyle, Label, Tooltip}; +use ui::{prelude::*, Button, ButtonStyle, IconPosition, Label, Tooltip}; use util::ResultExt; use workspace::Workspace; @@ -285,29 +285,22 @@ impl Render for FeedbackModal { let open_community_repo = cx.listener(|_, _, cx| cx.dispatch_action(Box::new(OpenZedCommunityRepo))); - // TODO: Nate UI pass v_stack() .elevation_3(cx) .key_context("GiveFeedback") .on_action(cx.listener(Self::cancel)) .min_w(rems(40.)) .max_w(rems(96.)) - .min_h(rems(24.)) - .max_h(rems(42.)) - .gap_2() + .h(rems(32.)) .child( v_stack() - .p_4() - .child( - div() - .size_full() - .child(Label::new("Give Feedback").color(Color::Default)) - .child(Label::new("This editor supports markdown").color(Color::Muted)), - ), + .px_4() + .pt_4() + .pb_2() + .child(Label::new("Give Feedback").color(Color::Default)) + .child(Label::new("This editor supports markdown").color(Color::Muted)), ) - .child(v_stack() - .p_4() - .child( + .child( div() .flex_1() .bg(cx.theme().colors().editor_background) @@ -317,37 +310,49 @@ impl Render for FeedbackModal { ) .child( div().child( - Label::new(format!( - "Characters: {}", - characters_remaining - )) + Label::new( + if !valid_character_count && characters_remaining < 0 { + "Feedback must be at least 10 characters.".to_string() + } else if !valid_character_count && characters_remaining > 5000 { + "Feedback must be less than 5000 characters.".to_string() + } else { + format!( + "Characters: {}", + characters_remaining + ) + } + ) .map(|this| if valid_character_count { this.color(Color::Success) } else { this.color(Color::Error) - } ) - ), - ) - .child( - div() + ) + .child( + v_stack() + .p_4() + .child( + h_stack() .bg(cx.theme().colors().editor_background) .border() .border_color(cx.theme().colors().border) - .child(self.email_address_editor.clone()) + .child(self.email_address_editor.clone())) ) .child( h_stack() + .p_4() .justify_between() .gap_1() .child(Button::new("community_repo", "Community Repo") - .style(ButtonStyle::Filled) - .color(Color::Muted) + .style(ButtonStyle::Transparent) + .icon(Icon::ExternalLink) + .icon_position(IconPosition::End) + .icon_size(IconSize::Small) .on_click(open_community_repo) ) - .child(h_stack().justify_between().gap_1() + .child(h_stack().gap_1() .child( Button::new("cancel_feedback", "Cancel") .style(ButtonStyle::Subtle) diff --git a/crates/ui2/src/components/button/button.rs b/crates/ui2/src/components/button/button.rs index c1262321cede804c65199ae9e206138796e9024f..607b6c8a61df5cc6e8ccf4dc3adebc1addb886d4 100644 --- a/crates/ui2/src/components/button/button.rs +++ b/crates/ui2/src/components/button/button.rs @@ -1,6 +1,6 @@ use gpui::{AnyView, DefiniteLength}; -use crate::prelude::*; +use crate::{prelude::*, IconPosition}; use crate::{ ButtonCommon, ButtonLike, ButtonSize, ButtonStyle, Icon, IconSize, Label, LineHeightStyle, }; @@ -14,6 +14,7 @@ pub struct Button { label_color: Option, selected_label: Option, icon: Option, + icon_position: Option, icon_size: Option, icon_color: Option, selected_icon: Option, @@ -27,6 +28,7 @@ impl Button { label_color: None, selected_label: None, icon: None, + icon_position: None, icon_size: None, icon_color: None, selected_icon: None, @@ -48,6 +50,11 @@ impl Button { self } + pub fn icon_position(mut self, icon_position: impl Into>) -> Self { + self.icon_position = icon_position.into(); + self + } + pub fn icon_size(mut self, icon_size: impl Into>) -> Self { self.icon_size = icon_size.into(); self @@ -141,19 +148,30 @@ impl RenderOnce for Button { self.label_color.unwrap_or_default() }; - self.base - .children(self.icon.map(|icon| { - ButtonIcon::new(icon) - .disabled(is_disabled) - .selected(is_selected) - .selected_icon(self.selected_icon) - .size(self.icon_size) - .color(self.icon_color) - })) - .child( - Label::new(label) - .color(label_color) - .line_height_style(LineHeightStyle::UILabel), - ) + self.base.child( + h_stack() + .gap_1() + .map(|this| { + if self.icon_position == Some(IconPosition::End) { + this.flex_row_reverse() + } else { + this + } + }) + .flex_row_reverse() + .child( + Label::new(label) + .color(label_color) + .line_height_style(LineHeightStyle::UILabel), + ) + .children(self.icon.map(|icon| { + ButtonIcon::new(icon) + .disabled(is_disabled) + .selected(is_selected) + .selected_icon(self.selected_icon) + .size(self.icon_size) + .color(self.icon_color) + })), + ) } } diff --git a/crates/ui2/src/components/button/button_like.rs b/crates/ui2/src/components/button/button_like.rs index 1a33eb2845eef9e767181bb2cc5f65ba7eb8957f..9f42c95e7e76b2f0878f30f07d9726f7356aeb6c 100644 --- a/crates/ui2/src/components/button/button_like.rs +++ b/crates/ui2/src/components/button/button_like.rs @@ -30,6 +30,13 @@ pub trait ButtonCommon: Clickable + Disableable { fn tooltip(self, tooltip: impl Fn(&mut WindowContext) -> AnyView + 'static) -> Self; } +#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Clone, Copy, Default)] +pub enum IconPosition { + #[default] + Start, + End, +} + #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Clone, Copy, Default)] pub enum ButtonStyle { /// A filled button with a solid background color. Provides emphasis versus @@ -344,6 +351,7 @@ impl RenderOnce for ButtonLike { .gap_1() .px_1() .bg(self.style.enabled(cx).background) + .when(self.disabled, |this| this.cursor_not_allowed()) .when(!self.disabled, |this| { this.cursor_pointer() .hover(|hover| hover.bg(self.style.hovered(cx).background)) diff --git a/crates/ui2/src/components/icon.rs b/crates/ui2/src/components/icon.rs index a5b09782f569c46b1b7d26c61fe09deef4d7e90e..88af3847f55a8ad4b5dddf9effdffa11a7204a73 100644 --- a/crates/ui2/src/components/icon.rs +++ b/crates/ui2/src/components/icon.rs @@ -51,6 +51,7 @@ pub enum Icon { CopilotDisabled, Dash, Envelope, + ExternalLink, ExclamationTriangle, Exit, File, @@ -122,13 +123,13 @@ impl Icon { Icon::Close => "icons/x.svg", Icon::Collab => "icons/user_group_16.svg", Icon::Copilot => "icons/copilot.svg", - Icon::CopilotInit => "icons/copilot_init.svg", Icon::CopilotError => "icons/copilot_error.svg", Icon::CopilotDisabled => "icons/copilot_disabled.svg", Icon::Dash => "icons/dash.svg", Icon::Envelope => "icons/feedback.svg", Icon::ExclamationTriangle => "icons/warning.svg", + Icon::ExternalLink => "icons/external_link.svg", Icon::Exit => "icons/exit.svg", Icon::File => "icons/file.svg", Icon::FileDoc => "icons/file_icons/book.svg", diff --git a/crates/ui2/src/prelude.rs b/crates/ui2/src/prelude.rs index 42fb44ed4dda4f60b7623e3985d4b7cc5482e1aa..076d34644c931a0a930efd51d1ff88d01d7af4d7 100644 --- a/crates/ui2/src/prelude.rs +++ b/crates/ui2/src/prelude.rs @@ -12,6 +12,6 @@ pub use crate::selectable::*; pub use crate::{h_stack, v_stack}; pub use crate::{Button, ButtonSize, ButtonStyle, IconButton}; pub use crate::{ButtonCommon, Color, StyledExt}; -pub use crate::{Icon, IconElement, IconSize}; +pub use crate::{Icon, IconElement, IconPosition, IconSize}; pub use crate::{Label, LabelCommon, LabelSize, LineHeightStyle}; pub use theme::ActiveTheme; From 0c23e6738b85cbb557223812286294791dbccef8 Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Thu, 7 Dec 2023 14:36:45 +0100 Subject: [PATCH 004/115] Barebones project search (no UI, but the crate compiles) --- Cargo.lock | 1 + crates/editor2/src/editor.rs | 12 +- crates/search2/Cargo.toml | 2 +- crates/search2/src/project_search.rs | 1515 +++++++++++++------------- crates/search2/src/search.rs | 5 +- 5 files changed, 772 insertions(+), 763 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1f15c9c8e657035f0a9a65898b5d77cf4c9fd2ff..203dfe991a2462079a0360aeb1e4e52c15091149 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8252,6 +8252,7 @@ dependencies = [ "menu2", "postage", "project2", + "semantic_index2", "serde", "serde_derive", "serde_json", diff --git a/crates/editor2/src/editor.rs b/crates/editor2/src/editor.rs index 46d64fcf9d4c8f0860d741be8dc3016c17d18bc0..9fffdbccf341a5507eb9d064861916e2e72f3a36 100644 --- a/crates/editor2/src/editor.rs +++ b/crates/editor2/src/editor.rs @@ -8682,13 +8682,13 @@ impl Editor { ); } - // pub fn set_searchable(&mut self, searchable: bool) { - // self.searchable = searchable; - // } + pub fn set_searchable(&mut self, searchable: bool) { + self.searchable = searchable; + } - // pub fn searchable(&self) -> bool { - // self.searchable - // } + pub fn searchable(&self) -> bool { + self.searchable + } fn open_excerpts(&mut self, _: &OpenExcerpts, cx: &mut ViewContext) { let buffer = self.buffer.read(cx); diff --git a/crates/search2/Cargo.toml b/crates/search2/Cargo.toml index 97cfdd6494099eb802a2fd629df1e74edada4232..34158e7416d67d368cca763931baf89412c76174 100644 --- a/crates/search2/Cargo.toml +++ b/crates/search2/Cargo.toml @@ -21,7 +21,7 @@ theme = { package = "theme2", path = "../theme2" } util = { path = "../util" } ui = {package = "ui2", path = "../ui2"} workspace = { package = "workspace2", path = "../workspace2" } -#semantic_index = { path = "../semantic_index" } +semantic_index = { package = "semantic_index2", path = "../semantic_index2" } anyhow.workspace = true futures.workspace = true log.workspace = true diff --git a/crates/search2/src/project_search.rs b/crates/search2/src/project_search.rs index 41dd87d4d3f34d6e45c1ca3af913d7305aed7cb9..e75b4f26b1519fbe8b781f9c41258630a6368fdc 100644 --- a/crates/search2/src/project_search.rs +++ b/crates/search2/src/project_search.rs @@ -1,24 +1,21 @@ use crate::{ history::SearchHistory, - mode::{SearchMode, Side}, - search_bar::{render_nav_button, render_option_button_icon, render_search_mode_button}, + mode::SearchMode, + search_bar::{render_nav_button, render_search_mode_button}, ActivateRegexMode, ActivateSemanticMode, ActivateTextMode, CycleMode, NextHistoryQuery, PreviousHistoryQuery, ReplaceAll, ReplaceNext, SearchOptions, SelectNextMatch, SelectPrevMatch, ToggleCaseSensitive, ToggleReplace, ToggleWholeWord, }; -use anyhow::{Context, Result}; +use anyhow::{Context as _, Result}; use collections::HashMap; use editor::{ - items::active_match_index, scroll::autoscroll::Autoscroll, Anchor, Editor, MultiBuffer, - SelectAll, MAX_TAB_TITLE_LEN, + items::active_match_index, scroll::autoscroll::Autoscroll, Anchor, Editor, EditorEvent, + MultiBuffer, SelectAll, MAX_TAB_TITLE_LEN, }; -use futures::StreamExt; use gpui::{ - actions, - elements::*, - platform::{MouseButton, PromptLevel}, - Action, AnyElement, AnyViewHandle, AppContext, Entity, ModelContext, ModelHandle, Subscription, - Task, View, ViewContext, ViewHandle, WeakModelHandle, WeakViewHandle, + actions, div, Action, AnyElement, AnyView, AppContext, Context as _, Div, Element, Entity, + EntityId, EventEmitter, FocusableView, Model, ModelContext, PromptLevel, Render, SharedString, + Subscription, Task, View, ViewContext, VisualContext, WeakModel, WeakView, WindowContext, }; use menu::Confirm; use project::{ @@ -27,6 +24,7 @@ use project::{ }; use semantic_index::{SemanticIndex, SemanticIndexStatus}; use smallvec::SmallVec; +use smol::stream::StreamExt; use std::{ any::{Any, TypeId}, borrow::Cow, @@ -41,81 +39,87 @@ use util::{paths::PathMatcher, ResultExt as _}; use workspace::{ item::{BreadcrumbText, Item, ItemEvent, ItemHandle}, searchable::{Direction, SearchableItem, SearchableItemHandle}, - ItemNavHistory, Pane, ToolbarItemLocation, ToolbarItemView, Workspace, WorkspaceId, + ItemNavHistory, Pane, ToolbarItemEvent, ToolbarItemLocation, ToolbarItemView, Workspace, + WorkspaceId, }; -actions!( - project_search, - [SearchInNew, ToggleFocus, NextField, ToggleFilters,] -); +actions!(SearchInNew, ToggleFocus, NextField, ToggleFilters,); #[derive(Default)] -struct ActiveSearches(HashMap, WeakViewHandle>); +struct ActiveSearches(HashMap, WeakView>); #[derive(Default)] -struct ActiveSettings(HashMap, ProjectSearchSettings>); +struct ActiveSettings(HashMap, ProjectSearchSettings>); pub fn init(cx: &mut AppContext) { + // todo!() po cx.set_global(ActiveSearches::default()); cx.set_global(ActiveSettings::default()); - cx.add_action(ProjectSearchView::deploy); - cx.add_action(ProjectSearchView::move_focus_to_results); - cx.add_action(ProjectSearchBar::confirm); - cx.add_action(ProjectSearchBar::search_in_new); - cx.add_action(ProjectSearchBar::select_next_match); - cx.add_action(ProjectSearchBar::select_prev_match); - cx.add_action(ProjectSearchBar::replace_next); - cx.add_action(ProjectSearchBar::replace_all); - cx.add_action(ProjectSearchBar::cycle_mode); - cx.add_action(ProjectSearchBar::next_history_query); - cx.add_action(ProjectSearchBar::previous_history_query); - cx.add_action(ProjectSearchBar::activate_regex_mode); - cx.add_action(ProjectSearchBar::toggle_replace); - cx.add_action(ProjectSearchBar::toggle_replace_on_a_pane); - cx.add_action(ProjectSearchBar::activate_text_mode); - - // This action should only be registered if the semantic index is enabled - // We are registering it all the time, as I dont want to introduce a dependency - // for Semantic Index Settings globally whenever search is tested. - cx.add_action(ProjectSearchBar::activate_semantic_mode); - - cx.capture_action(ProjectSearchBar::tab); - cx.capture_action(ProjectSearchBar::tab_previous); - cx.capture_action(ProjectSearchView::replace_all); - cx.capture_action(ProjectSearchView::replace_next); - add_toggle_option_action::(SearchOptions::CASE_SENSITIVE, cx); - add_toggle_option_action::(SearchOptions::WHOLE_WORD, cx); - add_toggle_option_action::(SearchOptions::INCLUDE_IGNORED, cx); - add_toggle_filters_action::(cx); + cx.observe_new_views(|workspace: &mut Workspace, cx| { + workspace.register_action(ProjectSearchView::deploy); + }) + .detach(); + + // cx.add_action(ProjectSearchView::deploy); + // cx.add_action(ProjectSearchView::move_focus_to_results); + // cx.add_action(ProjectSearchBar::confirm); + // cx.add_action(ProjectSearchBar::search_in_new); + // cx.add_action(ProjectSearchBar::select_next_match); + // cx.add_action(ProjectSearchBar::select_prev_match); + // cx.add_action(ProjectSearchBar::replace_next); + // cx.add_action(ProjectSearchBar::replace_all); + // cx.add_action(ProjectSearchBar::cycle_mode); + // cx.add_action(ProjectSearchBar::next_history_query); + // cx.add_action(ProjectSearchBar::previous_history_query); + // cx.add_action(ProjectSearchBar::activate_regex_mode); + // cx.add_action(ProjectSearchBar::toggle_replace); + // cx.add_action(ProjectSearchBar::toggle_replace_on_a_pane); + // cx.add_action(ProjectSearchBar::activate_text_mode); + + // // This action should only be registered if the semantic index is enabled + // // We are registering it all the time, as I dont want to introduce a dependency + // // for Semantic Index Settings globally whenever search is tested. + // cx.add_action(ProjectSearchBar::activate_semantic_mode); + + // cx.capture_action(ProjectSearchBar::tab); + // cx.capture_action(ProjectSearchBar::tab_previous); + // cx.capture_action(ProjectSearchView::replace_all); + // cx.capture_action(ProjectSearchView::replace_next); + // add_toggle_option_action::(SearchOptions::CASE_SENSITIVE, cx); + // add_toggle_option_action::(SearchOptions::WHOLE_WORD, cx); + // add_toggle_option_action::(SearchOptions::INCLUDE_IGNORED, cx); + // add_toggle_filters_action::(cx); } fn add_toggle_filters_action(cx: &mut AppContext) { - cx.add_action(move |pane: &mut Pane, _: &A, cx: &mut ViewContext| { - if let Some(search_bar) = pane.toolbar().read(cx).item_of_type::() { - if search_bar.update(cx, |search_bar, cx| search_bar.toggle_filters(cx)) { - return; - } - } - cx.propagate_action(); - }); + // todo!() po + // cx.register_action(move |pane: &mut Pane, _: &A, cx: &mut ViewContext| { + // if let Some(search_bar) = pane.toolbar().read(cx).item_of_type::() { + // if search_bar.update(cx, |search_bar, cx| search_bar.toggle_filters(cx)) { + // cx.stop_propagation(); + // return; + // } + // } + // }); } fn add_toggle_option_action(option: SearchOptions, cx: &mut AppContext) { - cx.add_action(move |pane: &mut Pane, _: &A, cx: &mut ViewContext| { - if let Some(search_bar) = pane.toolbar().read(cx).item_of_type::() { - if search_bar.update(cx, |search_bar, cx| { - search_bar.toggle_search_option(option, cx) - }) { - return; - } - } - cx.propagate_action(); - }); + // todo!() po + // cx.add_action(move |pane: &mut Pane, _: &A, cx: &mut ViewContext| { + // if let Some(search_bar) = pane.toolbar().read(cx).item_of_type::() { + // if search_bar.update(cx, |search_bar, cx| { + // search_bar.toggle_search_option(option, cx) + // }) { + // cx.stop_propagation(); + // return; + // } + // } + // }); } struct ProjectSearch { - project: ModelHandle, - excerpts: ModelHandle, + project: Model, + excerpts: Model, pending_search: Option>>, match_ranges: Vec>, active_query: Option, @@ -132,10 +136,10 @@ enum InputPanel { } pub struct ProjectSearchView { - model: ModelHandle, - query_editor: ViewHandle, - replacement_editor: ViewHandle, - results_editor: ViewHandle, + model: Model, + query_editor: View, + replacement_editor: View, + results_editor: View, semantic_state: Option, semantic_permissioned: Option, search_options: SearchOptions, @@ -143,8 +147,8 @@ pub struct ProjectSearchView { active_match_index: Option, search_id: usize, query_editor_was_focused: bool, - included_files_editor: ViewHandle, - excluded_files_editor: ViewHandle, + included_files_editor: View, + excluded_files_editor: View, filters_enabled: bool, replace_enabled: bool, current_mode: SearchMode, @@ -164,20 +168,16 @@ struct ProjectSearchSettings { } pub struct ProjectSearchBar { - active_project_search: Option>, + active_project_search: Option>, subscription: Option, } -impl Entity for ProjectSearch { - type Event = (); -} - impl ProjectSearch { - fn new(project: ModelHandle, cx: &mut ModelContext) -> Self { + fn new(project: Model, cx: &mut ModelContext) -> Self { let replica_id = project.read(cx).replica_id(); Self { project, - excerpts: cx.add_model(|_| MultiBuffer::new(replica_id)), + excerpts: cx.build_model(|_| MultiBuffer::new(replica_id)), pending_search: Default::default(), match_ranges: Default::default(), active_query: None, @@ -187,12 +187,12 @@ impl ProjectSearch { } } - fn clone(&self, cx: &mut ModelContext) -> ModelHandle { - cx.add_model(|cx| Self { + fn clone(&self, cx: &mut ModelContext) -> Model { + cx.build_model(|cx| Self { project: self.project.clone(), excerpts: self .excerpts - .update(cx, |excerpts, cx| cx.add_model(|cx| excerpts.clone(cx))), + .update(cx, |excerpts, cx| cx.build_model(|cx| excerpts.clone(cx))), pending_search: Default::default(), match_ranges: self.match_ranges.clone(), active_query: self.active_query.clone(), @@ -210,9 +210,9 @@ impl ProjectSearch { self.search_history.add(query.as_str().to_string()); self.active_query = Some(query); self.match_ranges.clear(); - self.pending_search = Some(cx.spawn_weak(|this, mut cx| async move { + self.pending_search = Some(cx.spawn(|this, mut cx| async move { let mut matches = search; - let this = this.upgrade(&cx)?; + let this = this.upgrade()?; this.update(&mut cx, |this, cx| { this.match_ranges.clear(); this.excerpts.update(cx, |this, cx| this.clear(cx)); @@ -220,12 +220,14 @@ impl ProjectSearch { }); while let Some((buffer, anchors)) = matches.next().await { - let mut ranges = this.update(&mut cx, |this, cx| { - this.no_results = Some(false); - this.excerpts.update(cx, |excerpts, cx| { - excerpts.stream_excerpts_with_context_lines(buffer, anchors, 1, cx) + let mut ranges = this + .update(&mut cx, |this, cx| { + this.no_results = Some(false); + this.excerpts.update(cx, |excerpts, cx| { + excerpts.stream_excerpts_with_context_lines(buffer, anchors, 1, cx) + }) }) - }); + .ok()?; while let Some(range) = ranges.next().await { this.update(&mut cx, |this, _| this.match_ranges.push(range)); @@ -273,12 +275,14 @@ impl ProjectSearch { }); }); for (buffer, ranges) in matches { - let mut match_ranges = this.update(&mut cx, |this, cx| { - this.no_results = Some(false); - this.excerpts.update(cx, |excerpts, cx| { - excerpts.stream_excerpts_with_context_lines(buffer, ranges, 3, cx) + let mut match_ranges = this + .update(&mut cx, |this, cx| { + this.no_results = Some(false); + this.excerpts.update(cx, |excerpts, cx| { + excerpts.stream_excerpts_with_context_lines(buffer, ranges, 3, cx) + }) }) - }); + .ok()?; while let Some(match_range) = match_ranges.next().await { this.update(&mut cx, |this, cx| { this.match_ranges.push(match_range); @@ -305,221 +309,236 @@ impl ProjectSearch { pub enum ViewEvent { UpdateTab, Activate, - EditorEvent(editor::Event), + EditorEvent(editor::EditorEvent), Dismiss, } -impl Entity for ProjectSearchView { - type Event = ViewEvent; -} +impl EventEmitter for ProjectSearchView {} -impl View for ProjectSearchView { - fn ui_name() -> &'static str { - "ProjectSearchView" +impl Render for ProjectSearchView { + type Element = Div; + fn render(&mut self, cx: &mut ViewContext) -> Self::Element { + div() } - - fn render(&mut self, cx: &mut ViewContext) -> AnyElement { - let model = &self.model.read(cx); - if model.match_ranges.is_empty() { - enum Status {} - - let theme = theme::current(cx).clone(); - - // If Search is Active -> Major: Searching..., Minor: None - // If Semantic -> Major: "Search using Natural Language", Minor: {Status}/n{ex...}/n{ex...} - // If Regex -> Major: "Search using Regex", Minor: {ex...} - // If Text -> Major: "Text search all files and folders", Minor: {...} - - let current_mode = self.current_mode; - let mut major_text = if model.pending_search.is_some() { - Cow::Borrowed("Searching...") - } else if model.no_results.is_some_and(|v| v) { - Cow::Borrowed("No Results") - } else { - match current_mode { - SearchMode::Text => Cow::Borrowed("Text search all files and folders"), - SearchMode::Semantic => { - Cow::Borrowed("Search all code objects using Natural Language") - } - SearchMode::Regex => Cow::Borrowed("Regex search all files and folders"), - } - }; - - let mut show_minor_text = true; - let semantic_status = self.semantic_state.as_ref().and_then(|semantic| { - let status = semantic.index_status; - match status { - SemanticIndexStatus::NotAuthenticated => { - major_text = Cow::Borrowed("Not Authenticated"); - show_minor_text = false; - Some(vec![ - "API Key Missing: Please set 'OPENAI_API_KEY' in Environment Variables." - .to_string(), "If you authenticated using the Assistant Panel, please restart Zed to Authenticate.".to_string()]) - } - SemanticIndexStatus::Indexed => Some(vec!["Indexing complete".to_string()]), - SemanticIndexStatus::Indexing { - remaining_files, - rate_limit_expiry, - } => { - if remaining_files == 0 { - Some(vec![format!("Indexing...")]) - } else { - if let Some(rate_limit_expiry) = rate_limit_expiry { - let remaining_seconds = - rate_limit_expiry.duration_since(Instant::now()); - if remaining_seconds > Duration::from_secs(0) { - Some(vec![format!( - "Remaining files to index (rate limit resets in {}s): {}", - remaining_seconds.as_secs(), - remaining_files - )]) - } else { - Some(vec![format!("Remaining files to index: {}", remaining_files)]) - } - } else { - Some(vec![format!("Remaining files to index: {}", remaining_files)]) - } - } - } - SemanticIndexStatus::NotIndexed => None, - } - }); - - let minor_text = if let Some(no_results) = model.no_results { - if model.pending_search.is_none() && no_results { - vec!["No results found in this project for the provided query".to_owned()] - } else { - vec![] - } - } else { - match current_mode { - SearchMode::Semantic => { - let mut minor_text: Vec = Vec::new(); - minor_text.push("".into()); - if let Some(semantic_status) = semantic_status { - minor_text.extend(semantic_status); - } - if show_minor_text { - minor_text - .push("Simply explain the code you are looking to find.".into()); - minor_text.push( - "ex. 'prompt user for permissions to index their project'".into(), - ); - } - minor_text - } - _ => vec![ - "".to_owned(), - "Include/exclude specific paths with the filter option.".to_owned(), - "Matching exact word and/or casing is available too.".to_owned(), - ], - } - }; - - let previous_query_keystrokes = - cx.binding_for_action(&PreviousHistoryQuery {}) - .map(|binding| { - binding - .keystrokes() - .iter() - .map(|k| k.to_string()) - .collect::>() - }); - let next_query_keystrokes = - cx.binding_for_action(&NextHistoryQuery {}).map(|binding| { - binding - .keystrokes() - .iter() - .map(|k| k.to_string()) - .collect::>() - }); - let new_placeholder_text = match (previous_query_keystrokes, next_query_keystrokes) { - (Some(previous_query_keystrokes), Some(next_query_keystrokes)) => { - format!( - "Search ({}/{} for previous/next query)", - previous_query_keystrokes.join(" "), - next_query_keystrokes.join(" ") - ) - } - (None, Some(next_query_keystrokes)) => { - format!( - "Search ({} for next query)", - next_query_keystrokes.join(" ") - ) - } - (Some(previous_query_keystrokes), None) => { - format!( - "Search ({} for previous query)", - previous_query_keystrokes.join(" ") - ) - } - (None, None) => String::new(), - }; - self.query_editor.update(cx, |editor, cx| { - editor.set_placeholder_text(new_placeholder_text, cx); - }); - - MouseEventHandler::new::(0, cx, |_, _| { - Flex::column() - .with_child(Flex::column().contained().flex(1., true)) - .with_child( - Flex::column() - .align_children_center() - .with_child(Label::new( - major_text, - theme.search.major_results_status.clone(), - )) - .with_children( - minor_text.into_iter().map(|x| { - Label::new(x, theme.search.minor_results_status.clone()) - }), - ) - .aligned() - .top() - .contained() - .flex(7., true), - ) - .contained() - .with_background_color(theme.editor.background) - }) - .on_down(MouseButton::Left, |_, _, cx| { - cx.focus_parent(); - }) - .into_any_named("project search view") - } else { - ChildView::new(&self.results_editor, cx) - .flex(1., true) - .into_any_named("project search view") - } - } - - fn focus_in(&mut self, _: AnyViewHandle, cx: &mut ViewContext) { - let handle = cx.weak_handle(); - cx.update_global(|state: &mut ActiveSearches, cx| { - state - .0 - .insert(self.model.read(cx).project.downgrade(), handle) - }); - - cx.update_global(|state: &mut ActiveSettings, cx| { - state.0.insert( - self.model.read(cx).project.downgrade(), - self.current_settings(), - ); - }); - - if cx.is_self_focused() { - if self.query_editor_was_focused { - cx.focus(&self.query_editor); - } else { - cx.focus(&self.results_editor); - } - } +} +// impl Entity for ProjectSearchView { +// type Event = ViewEvent; +// } + +// impl View for ProjectSearchView { +// fn ui_name() -> &'static str { +// "ProjectSearchView" +// } + +// fn render(&mut self, cx: &mut ViewContext) -> AnyElement { +// let model = &self.model.read(cx); +// if model.match_ranges.is_empty() { +// enum Status {} + +// let theme = theme::current(cx).clone(); + +// // If Search is Active -> Major: Searching..., Minor: None +// // If Semantic -> Major: "Search using Natural Language", Minor: {Status}/n{ex...}/n{ex...} +// // If Regex -> Major: "Search using Regex", Minor: {ex...} +// // If Text -> Major: "Text search all files and folders", Minor: {...} + +// let current_mode = self.current_mode; +// let mut major_text = if model.pending_search.is_some() { +// Cow::Borrowed("Searching...") +// } else if model.no_results.is_some_and(|v| v) { +// Cow::Borrowed("No Results") +// } else { +// match current_mode { +// SearchMode::Text => Cow::Borrowed("Text search all files and folders"), +// SearchMode::Semantic => { +// Cow::Borrowed("Search all code objects using Natural Language") +// } +// SearchMode::Regex => Cow::Borrowed("Regex search all files and folders"), +// } +// }; + +// let mut show_minor_text = true; +// let semantic_status = self.semantic_state.as_ref().and_then(|semantic| { +// let status = semantic.index_status; +// match status { +// SemanticIndexStatus::NotAuthenticated => { +// major_text = Cow::Borrowed("Not Authenticated"); +// show_minor_text = false; +// Some(vec![ +// "API Key Missing: Please set 'OPENAI_API_KEY' in Environment Variables." +// .to_string(), "If you authenticated using the Assistant Panel, please restart Zed to Authenticate.".to_string()]) +// } +// SemanticIndexStatus::Indexed => Some(vec!["Indexing complete".to_string()]), +// SemanticIndexStatus::Indexing { +// remaining_files, +// rate_limit_expiry, +// } => { +// if remaining_files == 0 { +// Some(vec![format!("Indexing...")]) +// } else { +// if let Some(rate_limit_expiry) = rate_limit_expiry { +// let remaining_seconds = +// rate_limit_expiry.duration_since(Instant::now()); +// if remaining_seconds > Duration::from_secs(0) { +// Some(vec![format!( +// "Remaining files to index (rate limit resets in {}s): {}", +// remaining_seconds.as_secs(), +// remaining_files +// )]) +// } else { +// Some(vec![format!("Remaining files to index: {}", remaining_files)]) +// } +// } else { +// Some(vec![format!("Remaining files to index: {}", remaining_files)]) +// } +// } +// } +// SemanticIndexStatus::NotIndexed => None, +// } +// }); + +// let minor_text = if let Some(no_results) = model.no_results { +// if model.pending_search.is_none() && no_results { +// vec!["No results found in this project for the provided query".to_owned()] +// } else { +// vec![] +// } +// } else { +// match current_mode { +// SearchMode::Semantic => { +// let mut minor_text: Vec = Vec::new(); +// minor_text.push("".into()); +// if let Some(semantic_status) = semantic_status { +// minor_text.extend(semantic_status); +// } +// if show_minor_text { +// minor_text +// .push("Simply explain the code you are looking to find.".into()); +// minor_text.push( +// "ex. 'prompt user for permissions to index their project'".into(), +// ); +// } +// minor_text +// } +// _ => vec![ +// "".to_owned(), +// "Include/exclude specific paths with the filter option.".to_owned(), +// "Matching exact word and/or casing is available too.".to_owned(), +// ], +// } +// }; + +// let previous_query_keystrokes = +// cx.binding_for_action(&PreviousHistoryQuery {}) +// .map(|binding| { +// binding +// .keystrokes() +// .iter() +// .map(|k| k.to_string()) +// .collect::>() +// }); +// let next_query_keystrokes = +// cx.binding_for_action(&NextHistoryQuery {}).map(|binding| { +// binding +// .keystrokes() +// .iter() +// .map(|k| k.to_string()) +// .collect::>() +// }); +// let new_placeholder_text = match (previous_query_keystrokes, next_query_keystrokes) { +// (Some(previous_query_keystrokes), Some(next_query_keystrokes)) => { +// format!( +// "Search ({}/{} for previous/next query)", +// previous_query_keystrokes.join(" "), +// next_query_keystrokes.join(" ") +// ) +// } +// (None, Some(next_query_keystrokes)) => { +// format!( +// "Search ({} for next query)", +// next_query_keystrokes.join(" ") +// ) +// } +// (Some(previous_query_keystrokes), None) => { +// format!( +// "Search ({} for previous query)", +// previous_query_keystrokes.join(" ") +// ) +// } +// (None, None) => String::new(), +// }; +// self.query_editor.update(cx, |editor, cx| { +// editor.set_placeholder_text(new_placeholder_text, cx); +// }); + +// MouseEventHandler::new::(0, cx, |_, _| { +// Flex::column() +// .with_child(Flex::column().contained().flex(1., true)) +// .with_child( +// Flex::column() +// .align_children_center() +// .with_child(Label::new( +// major_text, +// theme.search.major_results_status.clone(), +// )) +// .with_children( +// minor_text.into_iter().map(|x| { +// Label::new(x, theme.search.minor_results_status.clone()) +// }), +// ) +// .aligned() +// .top() +// .contained() +// .flex(7., true), +// ) +// .contained() +// .with_background_color(theme.editor.background) +// }) +// .on_down(MouseButton::Left, |_, _, cx| { +// cx.focus_parent(); +// }) +// .into_any_named("project search view") +// } else { +// ChildView::new(&self.results_editor, cx) +// .flex(1., true) +// .into_any_named("project search view") +// } +// } + +// fn focus_in(&mut self, _: AnyView, cx: &mut ViewContext) { +// let handle = cx.weak_handle(); +// cx.update_global(|state: &mut ActiveSearches, cx| { +// state +// .0 +// .insert(self.model.read(cx).project.downgrade(), handle) +// }); + +// cx.update_global(|state: &mut ActiveSettings, cx| { +// state.0.insert( +// self.model.read(cx).project.downgrade(), +// self.current_settings(), +// ); +// }); + +// if cx.is_self_focused() { +// if self.query_editor_was_focused { +// cx.focus(&self.query_editor); +// } else { +// cx.focus(&self.results_editor); +// } +// } +// } +// } + +impl FocusableView for ProjectSearchView { + fn focus_handle(&self, cx: &AppContext) -> gpui::FocusHandle { + self.results_editor.focus_handle(cx) } } impl Item for ProjectSearchView { - fn tab_tooltip_text(&self, cx: &AppContext) -> Option> { + type Event = ViewEvent; + fn tab_tooltip_text(&self, cx: &AppContext) -> Option { let query_text = self.query_editor.read(cx).text(cx); query_text @@ -528,20 +547,17 @@ impl Item for ProjectSearchView { .then(|| query_text.into()) .or_else(|| Some("Project Search".into())) } - fn should_close_item_on_event(event: &Self::Event) -> bool { - event == &Self::Event::Dismiss - } fn act_as_type<'a>( &'a self, type_id: TypeId, - self_handle: &'a ViewHandle, + self_handle: &'a View, _: &'a AppContext, - ) -> Option<&'a AnyViewHandle> { + ) -> Option { if type_id == TypeId::of::() { - Some(self_handle) + Some(self_handle.clone().into()) } else if type_id == TypeId::of::() { - Some(&self.results_editor) + Some(self.results_editor.clone().into()) } else { None } @@ -552,45 +568,44 @@ impl Item for ProjectSearchView { .update(cx, |editor, cx| editor.deactivated(cx)); } - fn tab_content( + fn tab_content(&self, _: Option, cx: &WindowContext<'_>) -> AnyElement { + // Flex::row() + // .with_child( + // Svg::new("icons/magnifying_glass.svg") + // .with_color(tab_theme.label.text.color) + // .constrained() + // .with_width(tab_theme.type_icon_width) + // .aligned() + // .contained() + // .with_margin_right(tab_theme.spacing), + // ) + // .with_child({ + // let tab_name: Option> = self + // .model + // .read(cx) + // .search_history + // .current() + // .as_ref() + // .map(|query| { + // let query_text = util::truncate_and_trailoff(query, MAX_TAB_TITLE_LEN); + // query_text.into() + // }); + // Label::new( + // tab_name + // .filter(|name| !name.is_empty()) + // .unwrap_or("Project search".into()), + // tab_theme.label.clone(), + // ) + // .aligned() + // }) + div().into_any() + } + + fn for_each_project_item( &self, - _detail: Option, - tab_theme: &theme::Tab, cx: &AppContext, - ) -> AnyElement { - Flex::row() - .with_child( - Svg::new("icons/magnifying_glass.svg") - .with_color(tab_theme.label.text.color) - .constrained() - .with_width(tab_theme.type_icon_width) - .aligned() - .contained() - .with_margin_right(tab_theme.spacing), - ) - .with_child({ - let tab_name: Option> = self - .model - .read(cx) - .search_history - .current() - .as_ref() - .map(|query| { - let query_text = util::truncate_and_trailoff(query, MAX_TAB_TITLE_LEN); - query_text.into() - }); - Label::new( - tab_name - .filter(|name| !name.is_empty()) - .unwrap_or("Project search".into()), - tab_theme.label.clone(), - ) - .aligned() - }) - .into_any() - } - - fn for_each_project_item(&self, cx: &AppContext, f: &mut dyn FnMut(usize, &dyn project::Item)) { + f: &mut dyn FnMut(EntityId, &dyn project::Item), + ) { self.results_editor.for_each_project_item(cx, f) } @@ -612,7 +627,7 @@ impl Item for ProjectSearchView { fn save( &mut self, - project: ModelHandle, + project: Model, cx: &mut ViewContext, ) -> Task> { self.results_editor @@ -621,7 +636,7 @@ impl Item for ProjectSearchView { fn save_as( &mut self, - _: ModelHandle, + _: Model, _: PathBuf, _: &mut ViewContext, ) -> Task> { @@ -630,19 +645,23 @@ impl Item for ProjectSearchView { fn reload( &mut self, - project: ModelHandle, + project: Model, cx: &mut ViewContext, ) -> Task> { self.results_editor .update(cx, |editor, cx| editor.reload(project, cx)) } - fn clone_on_split(&self, _workspace_id: WorkspaceId, cx: &mut ViewContext) -> Option + fn clone_on_split( + &self, + _workspace_id: WorkspaceId, + cx: &mut ViewContext, + ) -> Option> where Self: Sized, { let model = self.model.update(cx, |model, cx| model.clone(cx)); - Some(Self::new(model, cx, None)) + Some(cx.build_view(|cx| Self::new(model, cx, None))) } fn added_to_workspace(&mut self, workspace: &mut Workspace, cx: &mut ViewContext) { @@ -661,14 +680,17 @@ impl Item for ProjectSearchView { .update(cx, |editor, cx| editor.navigate(data, cx)) } - fn to_item_events(event: &Self::Event) -> SmallVec<[ItemEvent; 2]> { + fn to_item_events(event: &Self::Event, mut f: impl FnMut(ItemEvent)) { match event { ViewEvent::UpdateTab => { - smallvec::smallvec![ItemEvent::UpdateBreadcrumbs, ItemEvent::UpdateTab] + f(ItemEvent::UpdateBreadcrumbs); + f(ItemEvent::UpdateTab); + } + ViewEvent::EditorEvent(editor_event) => { + Editor::to_item_events(editor_event, f); } - ViewEvent::EditorEvent(editor_event) => Editor::to_item_events(editor_event), - ViewEvent::Dismiss => smallvec::smallvec![ItemEvent::CloseItem], - _ => SmallVec::new(), + ViewEvent::Dismiss => f(ItemEvent::CloseItem), + _ => {} } } @@ -689,12 +711,12 @@ impl Item for ProjectSearchView { } fn deserialize( - _project: ModelHandle, - _workspace: WeakViewHandle, + _project: Model, + _workspace: WeakView, _workspace_id: workspace::WorkspaceId, _item_id: workspace::ItemId, _cx: &mut ViewContext, - ) -> Task>> { + ) -> Task>> { unimplemented!() } } @@ -751,7 +773,7 @@ impl ProjectSearchView { fn semantic_index_changed( &mut self, - semantic_index: ModelHandle, + semantic_index: Model, cx: &mut ViewContext, ) { let project = self.model.read(cx).project.clone(); @@ -767,7 +789,7 @@ impl ProjectSearchView { semantic_state.maintain_rate_limit = Some(cx.spawn(|this, mut cx| async move { loop { - cx.background().timer(Duration::from_secs(1)).await; + cx.background_executor().timer(Duration::from_secs(1)).await; this.update(&mut cx, |_, cx| cx.notify()).log_err(); } })); @@ -829,7 +851,7 @@ impl ProjectSearchView { ) })?; - if answer.next().await == Some(0) { + if answer.await? == 0 { this.update(&mut cx, |this, _| { this.semantic_permissioned = Some(true); })?; @@ -907,7 +929,7 @@ impl ProjectSearchView { } fn new( - model: ModelHandle, + model: Model, cx: &mut ViewContext, settings: Option, ) -> Self { @@ -940,32 +962,26 @@ impl ProjectSearchView { cx.observe(&model, |this, _, cx| this.model_changed(cx)) .detach(); - let query_editor = cx.add_view(|cx| { - let mut editor = Editor::single_line( - Some(Arc::new(|theme| theme.search.editor.input.clone())), - cx, - ); + let query_editor = cx.build_view(|cx| { + let mut editor = Editor::single_line(cx); editor.set_placeholder_text("Text search all files", cx); editor.set_text(query_text, cx); editor }); // Subscribe to query_editor in order to reraise editor events for workspace item activation purposes - cx.subscribe(&query_editor, |_, _, event, cx| { + cx.subscribe(&query_editor, |_, _, event: &EditorEvent, cx| { cx.emit(ViewEvent::EditorEvent(event.clone())) }) .detach(); - let replacement_editor = cx.add_view(|cx| { - let mut editor = Editor::single_line( - Some(Arc::new(|theme| theme.search.editor.input.clone())), - cx, - ); + let replacement_editor = cx.build_view(|cx| { + let mut editor = Editor::single_line(cx); editor.set_placeholder_text("Replace in project..", cx); if let Some(text) = replacement_text { editor.set_text(text, cx); } editor }); - let results_editor = cx.add_view(|cx| { + let results_editor = cx.build_view(|cx| { let mut editor = Editor::for_multibuffer(excerpts, Some(project.clone()), cx); editor.set_searchable(false); editor @@ -973,8 +989,8 @@ impl ProjectSearchView { cx.observe(&results_editor, |_, _, cx| cx.emit(ViewEvent::UpdateTab)) .detach(); - cx.subscribe(&results_editor, |this, _, event, cx| { - if matches!(event, editor::Event::SelectionsChanged { .. }) { + cx.subscribe(&results_editor, |this, _, event: &EditorEvent, cx| { + if matches!(event, editor::EditorEvent::SelectionsChanged { .. }) { this.update_match_index(cx); } // Reraise editor events for workspace item activation purposes @@ -982,36 +998,26 @@ impl ProjectSearchView { }) .detach(); - let included_files_editor = cx.add_view(|cx| { - let mut editor = Editor::single_line( - Some(Arc::new(|theme| { - theme.search.include_exclude_editor.input.clone() - })), - cx, - ); + let included_files_editor = cx.build_view(|cx| { + let mut editor = Editor::single_line(cx); editor.set_placeholder_text("Include: crates/**/*.toml", cx); editor }); // Subscribe to include_files_editor in order to reraise editor events for workspace item activation purposes - cx.subscribe(&included_files_editor, |_, _, event, cx| { + cx.subscribe(&included_files_editor, |_, _, event: &EditorEvent, cx| { cx.emit(ViewEvent::EditorEvent(event.clone())) }) .detach(); - let excluded_files_editor = cx.add_view(|cx| { - let mut editor = Editor::single_line( - Some(Arc::new(|theme| { - theme.search.include_exclude_editor.input.clone() - })), - cx, - ); + let excluded_files_editor = cx.build_view(|cx| { + let mut editor = Editor::single_line(cx); editor.set_placeholder_text("Exclude: vendor/*, *.lock", cx); editor }); // Subscribe to excluded_files_editor in order to reraise editor events for workspace item activation purposes - cx.subscribe(&excluded_files_editor, |_, _, event, cx| { + cx.subscribe(&excluded_files_editor, |_, _, event: &EditorEvent, cx| { cx.emit(ViewEvent::EditorEvent(event.clone())) }) .detach(); @@ -1063,8 +1069,8 @@ impl ProjectSearchView { return; }; - let model = cx.add_model(|cx| ProjectSearch::new(workspace.project().clone(), cx)); - let search = cx.add_view(|cx| ProjectSearchView::new(model, cx, None)); + let model = cx.build_model(|cx| ProjectSearch::new(workspace.project().clone(), cx)); + let search = cx.build_view(|cx| ProjectSearchView::new(model, cx, None)); workspace.add_item(Box::new(search.clone()), cx); search.update(cx, |search, cx| { search @@ -1084,19 +1090,20 @@ impl ProjectSearchView { ) { // Clean up entries for dropped projects cx.update_global(|state: &mut ActiveSearches, cx| { - state.0.retain(|project, _| project.is_upgradable(cx)) + state.0.retain(|project, _| project.is_upgradable()) }); let active_search = cx .global::() .0 - .get(&workspace.project().downgrade()); + .get(&workspace.project().downgrade()) + .and_then(WeakView::upgrade); let existing = active_search .and_then(|active_search| { workspace .items_of_type::(cx) - .find(|search| search == active_search) + .find(|search| search == &active_search) }) .or_else(|| workspace.item_of_type::(cx)); @@ -1125,8 +1132,8 @@ impl ProjectSearchView { None }; - let model = cx.add_model(|cx| ProjectSearch::new(workspace.project().clone(), cx)); - let view = cx.add_view(|cx| ProjectSearchView::new(model, cx, settings)); + let model = cx.build_model(|cx| ProjectSearch::new(workspace.project().clone(), cx)); + let view = cx.build_view(|cx| ProjectSearchView::new(model, cx, settings)); workspace.add_item(Box::new(view.clone()), cx); view @@ -1263,7 +1270,8 @@ impl ProjectSearchView { query_editor.select_all(&SelectAll, cx); }); self.query_editor_was_focused = true; - cx.focus(&self.query_editor); + let editor_handle = self.query_editor.focus_handle(cx); + cx.focus(&editor_handle); } fn set_query(&mut self, query: &str, cx: &mut ViewContext) { @@ -1277,7 +1285,8 @@ impl ProjectSearchView { query_editor.change_selections(None, cx, |s| s.select_ranges([cursor.clone()..cursor])); }); self.query_editor_was_focused = false; - cx.focus(&self.results_editor); + let results_handle = self.results_editor.focus_handle(cx); + cx.focus(&results_handle); } fn model_changed(&mut self, cx: &mut ViewContext) { @@ -1301,11 +1310,11 @@ impl ProjectSearchView { } editor.highlight_background::( match_ranges, - |theme| theme.search.match_background, + |theme| theme.search_match_background, cx, ); }); - if is_new_search && self.query_editor.is_focused(cx) { + if is_new_search && self.query_editor.focus_handle(cx).is_focused(cx) { self.focus_results_editor(cx); } } @@ -1337,15 +1346,14 @@ impl ProjectSearchView { .and_then(|item| item.downcast::()) { search_view.update(cx, |search_view, cx| { - if !search_view.results_editor.is_focused(cx) + if !search_view.results_editor.focus_handle(cx).is_focused(cx) && !search_view.model.read(cx).match_ranges.is_empty() { + cx.stop_propagation(); return search_view.focus_results_editor(cx); } }); } - - cx.propagate_action(); } } @@ -1371,23 +1379,24 @@ impl ProjectSearchBar { let new_mode = crate::mode::next_mode(&this.current_mode, SemanticIndex::enabled(cx)); this.activate_search_mode(new_mode, cx); - cx.focus(&this.query_editor); + let editor_handle = this.query_editor.focus_handle(cx); + cx.focus(&editor_handle); }) } } fn confirm(&mut self, _: &Confirm, cx: &mut ViewContext) { - let mut should_propagate = true; if let Some(search_view) = self.active_project_search.as_ref() { search_view.update(cx, |search_view, cx| { - if !search_view.replacement_editor.is_focused(cx) { - should_propagate = false; + if !search_view + .replacement_editor + .focus_handle(cx) + .is_focused(cx) + { + cx.stop_propagation(); search_view.search(cx); } }); } - if should_propagate { - cx.propagate_action(); - } } fn search_in_new(workspace: &mut Workspace, _: &SearchInNew, cx: &mut ViewContext) { @@ -1408,13 +1417,13 @@ impl ProjectSearchBar { new_query }); if let Some(new_query) = new_query { - let model = cx.add_model(|cx| { + let model = cx.build_model(|cx| { let mut model = ProjectSearch::new(workspace.project().clone(), cx); model.search(new_query, cx); model }); workspace.add_item( - Box::new(cx.add_view(|cx| ProjectSearchView::new(model, cx, None))), + Box::new(cx.build_view(|cx| ProjectSearchView::new(model, cx, None))), cx, ); } @@ -1427,8 +1436,7 @@ impl ProjectSearchBar { .and_then(|item| item.downcast::()) { search_view.update(cx, |view, cx| view.select_match(Direction::Next, cx)); - } else { - cx.propagate_action(); + cx.stop_propagation(); } } @@ -1438,8 +1446,7 @@ impl ProjectSearchBar { .and_then(|item| item.downcast::()) { search_view.update(cx, |view, cx| view.replace_next(&ReplaceNext, cx)); - } else { - cx.propagate_action(); + cx.stop_propagation(); } } fn replace_all(pane: &mut Pane, _: &ReplaceAll, cx: &mut ViewContext) { @@ -1448,8 +1455,7 @@ impl ProjectSearchBar { .and_then(|item| item.downcast::()) { search_view.update(cx, |view, cx| view.replace_all(&ReplaceAll, cx)); - } else { - cx.propagate_action(); + cx.stop_propagation(); } } fn select_prev_match(pane: &mut Pane, _: &SelectPrevMatch, cx: &mut ViewContext) { @@ -1458,8 +1464,7 @@ impl ProjectSearchBar { .and_then(|item| item.downcast::()) { search_view.update(cx, |view, cx| view.select_match(Direction::Prev, cx)); - } else { - cx.propagate_action(); + cx.stop_propagation(); } } @@ -1476,7 +1481,6 @@ impl ProjectSearchBar { Some(active_project_search) => active_project_search, None => { - cx.propagate_action(); return; } }; @@ -1495,12 +1499,11 @@ impl ProjectSearchBar { let current_index = match views .iter() .enumerate() - .find(|(_, view)| view.is_focused(cx)) + .find(|(_, view)| view.focus_handle(cx).is_focused(cx)) { Some((index, _)) => index, None => { - cx.propagate_action(); return; } }; @@ -1510,7 +1513,9 @@ impl ProjectSearchBar { Direction::Prev if current_index == 0 => views.len() - 1, Direction::Prev => (current_index - 1) % views.len(), }; - cx.focus(views[new_index]); + let next_focus_handle = views[new_index].focus_handle(cx); + cx.focus(&next_focus_handle); + cx.stop_propagation(); }); } @@ -1532,30 +1537,28 @@ impl ProjectSearchBar { search.update(cx, |this, cx| { this.replace_enabled = !this.replace_enabled; if !this.replace_enabled { - cx.focus(&this.query_editor); + let editor_handle = this.query_editor.focus_handle(cx); + cx.focus(&editor_handle); } cx.notify(); }); } } fn toggle_replace_on_a_pane(pane: &mut Pane, _: &ToggleReplace, cx: &mut ViewContext) { - let mut should_propagate = true; if let Some(search_view) = pane .active_item() .and_then(|item| item.downcast::()) { search_view.update(cx, |this, cx| { - should_propagate = false; + cx.stop_propagation(); this.replace_enabled = !this.replace_enabled; if !this.replace_enabled { - cx.focus(&this.query_editor); + let editor_handle = this.query_editor.focus_handle(cx); + cx.focus(&editor_handle); } cx.notify(); }); } - if should_propagate { - cx.propagate_action(); - } } fn activate_text_mode(pane: &mut Pane, _: &ActivateTextMode, cx: &mut ViewContext) { if let Some(search_view) = pane @@ -1565,8 +1568,7 @@ impl ProjectSearchBar { search_view.update(cx, |view, cx| { view.activate_search_mode(SearchMode::Text, cx) }); - } else { - cx.propagate_action(); + cx.stop_propagation(); } } @@ -1578,8 +1580,7 @@ impl ProjectSearchBar { search_view.update(cx, |view, cx| { view.activate_search_mode(SearchMode::Regex, cx) }); - } else { - cx.propagate_action(); + cx.stop_propagation(); } } @@ -1596,8 +1597,7 @@ impl ProjectSearchBar { search_view.update(cx, |view, cx| { view.activate_search_mode(SearchMode::Semantic, cx) }); - } else { - cx.propagate_action(); + cx.stop_propagation(); } } } @@ -1612,7 +1612,7 @@ impl ProjectSearchBar { search_view .excluded_files_editor .update(cx, |_, cx| cx.notify()); - cx.refresh_windows(); + cx.refresh(); cx.notify(); }); cx.notify(); @@ -1682,314 +1682,323 @@ impl ProjectSearchBar { } } -impl Entity for ProjectSearchBar { - type Event = (); -} - -impl View for ProjectSearchBar { - fn ui_name() -> &'static str { - "ProjectSearchBar" - } - - fn update_keymap_context( - &self, - keymap: &mut gpui::keymap_matcher::KeymapContext, - cx: &AppContext, - ) { - Self::reset_to_default_keymap_context(keymap); - let in_replace = self - .active_project_search - .as_ref() - .map(|search| { - search - .read(cx) - .replacement_editor - .read_with(cx, |_, cx| cx.is_self_focused()) - }) - .flatten() - .unwrap_or(false); - if in_replace { - keymap.add_identifier("in_replace"); - } - } - - fn render(&mut self, cx: &mut ViewContext) -> AnyElement { - if let Some(_search) = self.active_project_search.as_ref() { - let search = _search.read(cx); - let theme = theme::current(cx).clone(); - let query_container_style = if search.panels_with_errors.contains(&InputPanel::Query) { - theme.search.invalid_editor - } else { - theme.search.editor.input.container - }; - - let search = _search.read(cx); - let filter_button = render_option_button_icon( - search.filters_enabled, - "icons/filter.svg", - 0, - "Toggle filters", - Box::new(ToggleFilters), - move |_, this, cx| { - this.toggle_filters(cx); - }, - cx, - ); - - let search = _search.read(cx); - let is_semantic_available = SemanticIndex::enabled(cx); - let is_semantic_disabled = search.semantic_state.is_none(); - let icon_style = theme.search.editor_icon.clone(); - let is_active = search.active_match_index.is_some(); - - let render_option_button_icon = |path, option, cx: &mut ViewContext| { - crate::search_bar::render_option_button_icon( - self.is_option_enabled(option, cx), - path, - option.bits as usize, - format!("Toggle {}", option.label()), - option.to_toggle_action(), - move |_, this, cx| { - this.toggle_search_option(option, cx); - }, - cx, - ) - }; - let case_sensitive = is_semantic_disabled.then(|| { - render_option_button_icon( - "icons/case_insensitive.svg", - SearchOptions::CASE_SENSITIVE, - cx, - ) - }); - - let whole_word = is_semantic_disabled.then(|| { - render_option_button_icon("icons/word_search.svg", SearchOptions::WHOLE_WORD, cx) - }); - - let include_ignored = is_semantic_disabled.then(|| { - render_option_button_icon( - "icons/file_icons/git.svg", - SearchOptions::INCLUDE_IGNORED, - cx, - ) - }); - - let search_button_for_mode = |mode, side, cx: &mut ViewContext| { - let is_active = if let Some(search) = self.active_project_search.as_ref() { - let search = search.read(cx); - search.current_mode == mode - } else { - false - }; - render_search_mode_button( - mode, - side, - is_active, - move |_, this, cx| { - this.activate_search_mode(mode, cx); - }, - cx, - ) - }; +impl Render for ProjectSearchBar { + type Element = Div; - let search = _search.read(cx); - - let include_container_style = - if search.panels_with_errors.contains(&InputPanel::Include) { - theme.search.invalid_include_exclude_editor - } else { - theme.search.include_exclude_editor.input.container - }; - - let exclude_container_style = - if search.panels_with_errors.contains(&InputPanel::Exclude) { - theme.search.invalid_include_exclude_editor - } else { - theme.search.include_exclude_editor.input.container - }; - - let matches = search.active_match_index.map(|match_ix| { - Label::new( - format!( - "{}/{}", - match_ix + 1, - search.model.read(cx).match_ranges.len() - ), - theme.search.match_index.text.clone(), - ) - .contained() - .with_style(theme.search.match_index.container) - .aligned() - }); - let should_show_replace_input = search.replace_enabled; - let replacement = should_show_replace_input.then(|| { - Flex::row() - .with_child( - Svg::for_style(theme.search.replace_icon.clone().icon) - .contained() - .with_style(theme.search.replace_icon.clone().container), - ) - .with_child(ChildView::new(&search.replacement_editor, cx).flex(1., true)) - .align_children_center() - .flex(1., true) - .contained() - .with_style(query_container_style) - .constrained() - .with_min_width(theme.search.editor.min_width) - .with_max_width(theme.search.editor.max_width) - .with_height(theme.search.search_bar_row_height) - .flex(1., false) - }); - let replace_all = should_show_replace_input.then(|| { - super::replace_action( - ReplaceAll, - "Replace all", - "icons/replace_all.svg", - theme.tooltip.clone(), - theme.search.action_button.clone(), - ) - }); - let replace_next = should_show_replace_input.then(|| { - super::replace_action( - ReplaceNext, - "Replace next", - "icons/replace_next.svg", - theme.tooltip.clone(), - theme.search.action_button.clone(), - ) - }); - let query_column = Flex::column() - .with_spacing(theme.search.search_row_spacing) - .with_child( - Flex::row() - .with_child( - Svg::for_style(icon_style.icon) - .contained() - .with_style(icon_style.container), - ) - .with_child(ChildView::new(&search.query_editor, cx).flex(1., true)) - .with_child( - Flex::row() - .with_child(filter_button) - .with_children(case_sensitive) - .with_children(whole_word) - .flex(1., false) - .constrained() - .contained(), - ) - .align_children_center() - .contained() - .with_style(query_container_style) - .constrained() - .with_min_width(theme.search.editor.min_width) - .with_max_width(theme.search.editor.max_width) - .with_height(theme.search.search_bar_row_height) - .flex(1., false), - ) - .with_children(search.filters_enabled.then(|| { - Flex::row() - .with_child( - Flex::row() - .with_child( - ChildView::new(&search.included_files_editor, cx) - .contained() - .constrained() - .with_height(theme.search.search_bar_row_height) - .flex(1., true), - ) - .with_children(include_ignored) - .contained() - .with_style(include_container_style) - .constrained() - .with_height(theme.search.search_bar_row_height) - .flex(1., true), - ) - .with_child( - ChildView::new(&search.excluded_files_editor, cx) - .contained() - .with_style(exclude_container_style) - .constrained() - .with_height(theme.search.search_bar_row_height) - .flex(1., true), - ) - .constrained() - .with_min_width(theme.search.editor.min_width) - .with_max_width(theme.search.editor.max_width) - .flex(1., false) - })) - .flex(1., false); - let switches_column = Flex::row() - .align_children_center() - .with_child(super::toggle_replace_button( - search.replace_enabled, - theme.tooltip.clone(), - theme.search.option_button_component.clone(), - )) - .constrained() - .with_height(theme.search.search_bar_row_height) - .contained() - .with_style(theme.search.option_button_group); - let mode_column = - Flex::row() - .with_child(search_button_for_mode( - SearchMode::Text, - Some(Side::Left), - cx, - )) - .with_child(search_button_for_mode( - SearchMode::Regex, - if is_semantic_available { - None - } else { - Some(Side::Right) - }, - cx, - )) - .with_children(is_semantic_available.then(|| { - search_button_for_mode(SearchMode::Semantic, Some(Side::Right), cx) - })) - .contained() - .with_style(theme.search.modes_container); - - let nav_button_for_direction = |label, direction, cx: &mut ViewContext| { - render_nav_button( - label, - direction, - is_active, - move |_, this, cx| { - if let Some(search) = this.active_project_search.as_ref() { - search.update(cx, |search, cx| search.select_match(direction, cx)); - } - }, - cx, - ) - }; - - let nav_column = Flex::row() - .with_children(replace_next) - .with_children(replace_all) - .with_child(Flex::row().with_children(matches)) - .with_child(nav_button_for_direction("<", Direction::Prev, cx)) - .with_child(nav_button_for_direction(">", Direction::Next, cx)) - .constrained() - .with_height(theme.search.search_bar_row_height) - .flex_float(); - - Flex::row() - .with_child(query_column) - .with_child(mode_column) - .with_child(switches_column) - .with_children(replacement) - .with_child(nav_column) - .contained() - .with_style(theme.search.container) - .into_any_named("project search") - } else { - Empty::new().into_any() - } + fn render(&mut self, cx: &mut ViewContext) -> Self::Element { + div() } } +// impl Entity for ProjectSearchBar { +// type Event = (); +// } + +// impl View for ProjectSearchBar { +// fn ui_name() -> &'static str { +// "ProjectSearchBar" +// } + +// fn update_keymap_context( +// &self, +// keymap: &mut gpui::keymap_matcher::KeymapContext, +// cx: &AppContext, +// ) { +// Self::reset_to_default_keymap_context(keymap); +// let in_replace = self +// .active_project_search +// .as_ref() +// .map(|search| { +// search +// .read(cx) +// .replacement_editor +// .read_with(cx, |_, cx| cx.is_self_focused()) +// }) +// .flatten() +// .unwrap_or(false); +// if in_replace { +// keymap.add_identifier("in_replace"); +// } +// } + +// fn render(&mut self, cx: &mut ViewContext) -> AnyElement { +// if let Some(_search) = self.active_project_search.as_ref() { +// let search = _search.read(cx); +// let theme = theme::current(cx).clone(); +// let query_container_style = if search.panels_with_errors.contains(&InputPanel::Query) { +// theme.search.invalid_editor +// } else { +// theme.search.editor.input.container +// }; + +// let search = _search.read(cx); +// let filter_button = render_option_button_icon( +// search.filters_enabled, +// "icons/filter.svg", +// 0, +// "Toggle filters", +// Box::new(ToggleFilters), +// move |_, this, cx| { +// this.toggle_filters(cx); +// }, +// cx, +// ); + +// let search = _search.read(cx); +// let is_semantic_available = SemanticIndex::enabled(cx); +// let is_semantic_disabled = search.semantic_state.is_none(); +// let icon_style = theme.search.editor_icon.clone(); +// let is_active = search.active_match_index.is_some(); + +// let render_option_button_icon = |path, option, cx: &mut ViewContext| { +// crate::search_bar::render_option_button_icon( +// self.is_option_enabled(option, cx), +// path, +// option.bits as usize, +// format!("Toggle {}", option.label()), +// option.to_toggle_action(), +// move |_, this, cx| { +// this.toggle_search_option(option, cx); +// }, +// cx, +// ) +// }; +// let case_sensitive = is_semantic_disabled.then(|| { +// render_option_button_icon( +// "icons/case_insensitive.svg", +// SearchOptions::CASE_SENSITIVE, +// cx, +// ) +// }); + +// let whole_word = is_semantic_disabled.then(|| { +// render_option_button_icon("icons/word_search.svg", SearchOptions::WHOLE_WORD, cx) +// }); + +// let include_ignored = is_semantic_disabled.then(|| { +// render_option_button_icon( +// "icons/file_icons/git.svg", +// SearchOptions::INCLUDE_IGNORED, +// cx, +// ) +// }); + +// let search_button_for_mode = |mode, side, cx: &mut ViewContext| { +// let is_active = if let Some(search) = self.active_project_search.as_ref() { +// let search = search.read(cx); +// search.current_mode == mode +// } else { +// false +// }; +// render_search_mode_button( +// mode, +// side, +// is_active, +// move |_, this, cx| { +// this.activate_search_mode(mode, cx); +// }, +// cx, +// ) +// }; + +// let search = _search.read(cx); + +// let include_container_style = +// if search.panels_with_errors.contains(&InputPanel::Include) { +// theme.search.invalid_include_exclude_editor +// } else { +// theme.search.include_exclude_editor.input.container +// }; + +// let exclude_container_style = +// if search.panels_with_errors.contains(&InputPanel::Exclude) { +// theme.search.invalid_include_exclude_editor +// } else { +// theme.search.include_exclude_editor.input.container +// }; + +// let matches = search.active_match_index.map(|match_ix| { +// Label::new( +// format!( +// "{}/{}", +// match_ix + 1, +// search.model.read(cx).match_ranges.len() +// ), +// theme.search.match_index.text.clone(), +// ) +// .contained() +// .with_style(theme.search.match_index.container) +// .aligned() +// }); +// let should_show_replace_input = search.replace_enabled; +// let replacement = should_show_replace_input.then(|| { +// Flex::row() +// .with_child( +// Svg::for_style(theme.search.replace_icon.clone().icon) +// .contained() +// .with_style(theme.search.replace_icon.clone().container), +// ) +// .with_child(ChildView::new(&search.replacement_editor, cx).flex(1., true)) +// .align_children_center() +// .flex(1., true) +// .contained() +// .with_style(query_container_style) +// .constrained() +// .with_min_width(theme.search.editor.min_width) +// .with_max_width(theme.search.editor.max_width) +// .with_height(theme.search.search_bar_row_height) +// .flex(1., false) +// }); +// let replace_all = should_show_replace_input.then(|| { +// super::replace_action( +// ReplaceAll, +// "Replace all", +// "icons/replace_all.svg", +// theme.tooltip.clone(), +// theme.search.action_button.clone(), +// ) +// }); +// let replace_next = should_show_replace_input.then(|| { +// super::replace_action( +// ReplaceNext, +// "Replace next", +// "icons/replace_next.svg", +// theme.tooltip.clone(), +// theme.search.action_button.clone(), +// ) +// }); +// let query_column = Flex::column() +// .with_spacing(theme.search.search_row_spacing) +// .with_child( +// Flex::row() +// .with_child( +// Svg::for_style(icon_style.icon) +// .contained() +// .with_style(icon_style.container), +// ) +// .with_child(ChildView::new(&search.query_editor, cx).flex(1., true)) +// .with_child( +// Flex::row() +// .with_child(filter_button) +// .with_children(case_sensitive) +// .with_children(whole_word) +// .flex(1., false) +// .constrained() +// .contained(), +// ) +// .align_children_center() +// .contained() +// .with_style(query_container_style) +// .constrained() +// .with_min_width(theme.search.editor.min_width) +// .with_max_width(theme.search.editor.max_width) +// .with_height(theme.search.search_bar_row_height) +// .flex(1., false), +// ) +// .with_children(search.filters_enabled.then(|| { +// Flex::row() +// .with_child( +// Flex::row() +// .with_child( +// ChildView::new(&search.included_files_editor, cx) +// .contained() +// .constrained() +// .with_height(theme.search.search_bar_row_height) +// .flex(1., true), +// ) +// .with_children(include_ignored) +// .contained() +// .with_style(include_container_style) +// .constrained() +// .with_height(theme.search.search_bar_row_height) +// .flex(1., true), +// ) +// .with_child( +// ChildView::new(&search.excluded_files_editor, cx) +// .contained() +// .with_style(exclude_container_style) +// .constrained() +// .with_height(theme.search.search_bar_row_height) +// .flex(1., true), +// ) +// .constrained() +// .with_min_width(theme.search.editor.min_width) +// .with_max_width(theme.search.editor.max_width) +// .flex(1., false) +// })) +// .flex(1., false); +// let switches_column = Flex::row() +// .align_children_center() +// .with_child(super::toggle_replace_button( +// search.replace_enabled, +// theme.tooltip.clone(), +// theme.search.option_button_component.clone(), +// )) +// .constrained() +// .with_height(theme.search.search_bar_row_height) +// .contained() +// .with_style(theme.search.option_button_group); +// let mode_column = +// Flex::row() +// .with_child(search_button_for_mode( +// SearchMode::Text, +// Some(Side::Left), +// cx, +// )) +// .with_child(search_button_for_mode( +// SearchMode::Regex, +// if is_semantic_available { +// None +// } else { +// Some(Side::Right) +// }, +// cx, +// )) +// .with_children(is_semantic_available.then(|| { +// search_button_for_mode(SearchMode::Semantic, Some(Side::Right), cx) +// })) +// .contained() +// .with_style(theme.search.modes_container); + +// let nav_button_for_direction = |label, direction, cx: &mut ViewContext| { +// render_nav_button( +// label, +// direction, +// is_active, +// move |_, this, cx| { +// if let Some(search) = this.active_project_search.as_ref() { +// search.update(cx, |search, cx| search.select_match(direction, cx)); +// } +// }, +// cx, +// ) +// }; + +// let nav_column = Flex::row() +// .with_children(replace_next) +// .with_children(replace_all) +// .with_child(Flex::row().with_children(matches)) +// .with_child(nav_button_for_direction("<", Direction::Prev, cx)) +// .with_child(nav_button_for_direction(">", Direction::Next, cx)) +// .constrained() +// .with_height(theme.search.search_bar_row_height) +// .flex_float(); + +// Flex::row() +// .with_child(query_column) +// .with_child(mode_column) +// .with_child(switches_column) +// .with_children(replacement) +// .with_child(nav_column) +// .contained() +// .with_style(theme.search.container) +// .into_any_named("project search") +// } else { +// Empty::new().into_any() +// } +// } +// } + +impl EventEmitter for ProjectSearchBar {} impl ToolbarItemView for ProjectSearchBar { fn set_active_pane_item( @@ -2009,15 +2018,13 @@ impl ToolbarItemView for ProjectSearchBar { self.subscription = Some(cx.observe(&search, |_, _, cx| cx.notify())); self.active_project_search = Some(search); - ToolbarItemLocation::PrimaryLeft { - flex: Some((1., true)), - } + ToolbarItemLocation::PrimaryLeft {} } else { ToolbarItemLocation::Hidden } } - fn row_count(&self, cx: &ViewContext) -> usize { + fn row_count(&self, cx: &WindowContext<'_>) -> usize { if let Some(search) = self.active_project_search.as_ref() { if search.read(cx).filters_enabled { return 2; @@ -2043,7 +2050,7 @@ pub mod tests { async fn test_project_search(deterministic: Arc, cx: &mut TestAppContext) { init_test(cx); - let fs = FakeFs::new(cx.background()); + let fs = FakeFs::new(cx.background_executor()); fs.insert_tree( "/dir", json!({ @@ -2163,7 +2170,7 @@ pub mod tests { async fn test_project_search_focus(deterministic: Arc, cx: &mut TestAppContext) { init_test(cx); - let fs = FakeFs::new(cx.background()); + let fs = FakeFs::new(cx.background_executor()); fs.insert_tree( "/dir", json!({ @@ -2341,7 +2348,7 @@ pub mod tests { ) { init_test(cx); - let fs = FakeFs::new(cx.background()); + let fs = FakeFs::new(cx.background_executor()); fs.insert_tree( "/dir", json!({ @@ -2468,7 +2475,7 @@ pub mod tests { async fn test_search_query_history(cx: &mut TestAppContext) { init_test(cx); - let fs = FakeFs::new(cx.background()); + let fs = FakeFs::new(cx.background_executor()); fs.insert_tree( "/dir", json!({ diff --git a/crates/search2/src/search.rs b/crates/search2/src/search.rs index 13def6b4a7ea4d6918353f117e37d5ee8fd3a96c..eb540b50135220d775cb7075f76d21804190a44c 100644 --- a/crates/search2/src/search.rs +++ b/crates/search2/src/search.rs @@ -13,12 +13,12 @@ use ui::{ButtonStyle, Icon, IconButton}; pub mod buffer_search; mod history; mod mode; -//pub mod project_search; +pub mod project_search; pub(crate) mod search_bar; pub fn init(cx: &mut AppContext) { buffer_search::init(cx); - //project_search::init(cx); + project_search::init(cx); } actions!( @@ -44,6 +44,7 @@ bitflags! { const NONE = 0b000; const WHOLE_WORD = 0b001; const CASE_SENSITIVE = 0b010; + const INCLUDE_IGNORED = 0b100; } } From b04838c23a7964eea393797d977fecfc2089ad53 Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Thu, 7 Dec 2023 16:26:40 +0100 Subject: [PATCH 005/115] WIP, search bar looks kinda okay --- crates/search2/src/buffer_search.rs | 2 +- crates/search2/src/project_search.rs | 183 ++++++++++++++++++++++----- crates/ui2/src/components/icon.rs | 4 + crates/zed2/src/zed2.rs | 5 +- 4 files changed, 156 insertions(+), 38 deletions(-) diff --git a/crates/search2/src/buffer_search.rs b/crates/search2/src/buffer_search.rs index cbbeeb0f1260a57a9907e854c9aeb666c078fd90..798277893608c2772812b7100166c3b2a09cdb62 100644 --- a/crates/search2/src/buffer_search.rs +++ b/crates/search2/src/buffer_search.rs @@ -165,7 +165,7 @@ impl Render for BufferSearchBar { let replace_all = should_show_replace_input .then(|| super::render_replace_button(ReplaceAll, ui::Icon::ReplaceAll)); let replace_next = should_show_replace_input - .then(|| super::render_replace_button(ReplaceNext, ui::Icon::Replace)); + .then(|| super::render_replace_button(ReplaceNext, ui::Icon::ReplaceNext)); let in_replace = self.replacement_editor.focus_handle(cx).is_focused(cx); h_stack() diff --git a/crates/search2/src/project_search.rs b/crates/search2/src/project_search.rs index e75b4f26b1519fbe8b781f9c41258630a6368fdc..c0147bad1ef7fe19f9934479172476b1e9957bac 100644 --- a/crates/search2/src/project_search.rs +++ b/crates/search2/src/project_search.rs @@ -13,9 +13,10 @@ use editor::{ MultiBuffer, SelectAll, MAX_TAB_TITLE_LEN, }; use gpui::{ - actions, div, Action, AnyElement, AnyView, AppContext, Context as _, Div, Element, Entity, - EntityId, EventEmitter, FocusableView, Model, ModelContext, PromptLevel, Render, SharedString, - Subscription, Task, View, ViewContext, VisualContext, WeakModel, WeakView, WindowContext, + actions, div, white, Action, AnyElement, AnyView, AppContext, Context as _, Div, Element, + Entity, EntityId, EventEmitter, FocusableView, InteractiveElement, IntoElement, Model, + ModelContext, ParentElement, PromptLevel, Render, SharedString, Styled, Subscription, Task, + View, ViewContext, VisualContext, WeakModel, WeakView, WindowContext, }; use menu::Confirm; use project::{ @@ -35,6 +36,11 @@ use std::{ sync::Arc, time::{Duration, Instant}, }; +use theme::ActiveTheme; +use ui::{ + h_stack, v_stack, Button, Clickable, Color, Disableable, Icon, IconButton, IconElement, Label, + Selectable, +}; use util::{paths::PathMatcher, ResultExt as _}; use workspace::{ item::{BreadcrumbText, Item, ItemEvent, ItemHandle}, @@ -318,7 +324,7 @@ impl EventEmitter for ProjectSearchView {} impl Render for ProjectSearchView { type Element = Div; fn render(&mut self, cx: &mut ViewContext) -> Self::Element { - div() + div().child(Label::new("xd")) } } // impl Entity for ProjectSearchView { @@ -569,36 +575,23 @@ impl Item for ProjectSearchView { } fn tab_content(&self, _: Option, cx: &WindowContext<'_>) -> AnyElement { - // Flex::row() - // .with_child( - // Svg::new("icons/magnifying_glass.svg") - // .with_color(tab_theme.label.text.color) - // .constrained() - // .with_width(tab_theme.type_icon_width) - // .aligned() - // .contained() - // .with_margin_right(tab_theme.spacing), - // ) - // .with_child({ - // let tab_name: Option> = self - // .model - // .read(cx) - // .search_history - // .current() - // .as_ref() - // .map(|query| { - // let query_text = util::truncate_and_trailoff(query, MAX_TAB_TITLE_LEN); - // query_text.into() - // }); - // Label::new( - // tab_name - // .filter(|name| !name.is_empty()) - // .unwrap_or("Project search".into()), - // tab_theme.label.clone(), - // ) - // .aligned() - // }) - div().into_any() + let last_query: Option = self + .model + .read(cx) + .search_history + .current() + .as_ref() + .map(|query| { + let query_text = util::truncate_and_trailoff(query, MAX_TAB_TITLE_LEN); + query_text.into() + }); + let tab_name = last_query + .filter(|query| !query.is_empty()) + .unwrap_or_else(|| "Project search".into()); + h_stack() + .child(IconElement::new(Icon::MagnifyingGlass)) + .child(Label::new(tab_name)) + .into_any() } fn for_each_project_item( @@ -1686,7 +1679,127 @@ impl Render for ProjectSearchBar { type Element = Div; fn render(&mut self, cx: &mut ViewContext) -> Self::Element { - div() + let Some(search) = self.active_project_search.clone() else { + return div(); + }; + let search = search.read(cx); + let query_column = v_stack() + .flex_1() + .child( + h_stack() + .min_w_80() + .on_action(cx.listener(|this, _: &ToggleFilters, cx| { + this.toggle_filters(cx); + })) + .on_action(cx.listener(|this, _: &ToggleWholeWord, cx| { + this.toggle_search_option(SearchOptions::WHOLE_WORD, cx); + })) + .on_action(cx.listener(|this, _: &ToggleCaseSensitive, cx| { + this.toggle_search_option(SearchOptions::CASE_SENSITIVE, cx); + })) + .on_action(cx.listener(|this, action: &ToggleReplace, cx| { + this.toggle_replace(action, cx); + })) + .on_action(cx.listener(|this, action: &ActivateTextMode, cx| { + this.activate_search_mode(SearchMode::Text, cx) + })) + .on_action(cx.listener(|this, action: &ActivateRegexMode, cx| { + this.activate_search_mode(SearchMode::Regex, cx) + })) + .child(IconElement::new(Icon::MagnifyingGlass)) + .child(search.query_editor.clone()) + .child( + h_stack() + .child( + IconButton::new("project-search-filter-button", Icon::Filter) + .on_click(|_, cx| { + cx.dispatch_action(ToggleFilters.boxed_clone()) + }), + ) + .child(IconButton::new( + "project-search-case-sensitive", + Icon::CaseSensitive, + )) + .child(IconButton::new( + "project-search-whole-word", + Icon::WholeWord, + )), + ) + .border_2() + .bg(white()) + .rounded_lg(), + ) + .when(search.filters_enabled, |this| { + this.child( + h_stack() + .child(search.included_files_editor.clone()) + .child(search.excluded_files_editor.clone()), + ) + }); + let mode_column = h_stack() + .child( + h_stack() + .child( + Button::new("project-search-text-button", "Text") + .selected(search.current_mode == SearchMode::Text) + .on_click(|_, cx| cx.dispatch_action(ActivateTextMode.boxed_clone())), + ) + .child( + Button::new("project-search-regex-button", "Regex") + .selected(search.current_mode == SearchMode::Regex) + .on_click(|_, cx| cx.dispatch_action(ActivateRegexMode.boxed_clone())), + ), + ) + .child( + IconButton::new("project-search-toggle-replace", Icon::Replace).on_click( + |_, cx| { + cx.dispatch_action(ToggleReplace.boxed_clone()); + }, + ), + ); + let replace_column = if search.replace_enabled { + h_stack() + .bg(white()) + .flex_1() + .border_2() + .rounded_lg() + .child(IconElement::new(Icon::Replace).size(ui::IconSize::Small)) + .child(search.replacement_editor.clone()) + } else { + // Fill out the space if we don't have a replacement editor. + h_stack().size_full() + }; + let actions_column = h_stack() + .when(search.replace_enabled, |this| { + this.children([ + IconButton::new("project-search-replace-next", Icon::ReplaceNext), + IconButton::new("project-search-replace-all", Icon::ReplaceAll), + ]) + }) + .when_some(search.active_match_index, |this, index| { + let match_quantity = search.model.read(cx).match_ranges.len(); + debug_assert!(match_quantity > index); + this.child(IconButton::new( + "project-search-select-all", + Icon::SelectAll, + )) + .child(Label::new(format!("{index}/{match_quantity}"))) + }) + .children([ + IconButton::new("project-search-prev-match", Icon::ChevronLeft) + .disabled(search.active_match_index.is_none()), + IconButton::new("project-search-next-match", Icon::ChevronRight) + .disabled(search.active_match_index.is_none()), + ]); + h_stack() + .size_full() + .p_1() + .m_2() + .justify_between() + .child(query_column) + .child(mode_column) + .child(replace_column) + .child(actions_column) } } // impl Entity for ProjectSearchBar { diff --git a/crates/ui2/src/components/icon.rs b/crates/ui2/src/components/icon.rs index a5b09782f569c46b1b7d26c61fe09deef4d7e90e..78df9569697718bef1cf5b456b7d54c850c377bd 100644 --- a/crates/ui2/src/components/icon.rs +++ b/crates/ui2/src/components/icon.rs @@ -61,6 +61,7 @@ pub enum Icon { FileRust, FileToml, FileTree, + Filter, Folder, FolderOpen, FolderX, @@ -80,6 +81,7 @@ pub enum Icon { Quote, Replace, ReplaceAll, + ReplaceNext, Screen, SelectAll, Split, @@ -138,6 +140,7 @@ impl Icon { Icon::FileRust => "icons/file_icons/rust.svg", Icon::FileToml => "icons/file_icons/toml.svg", Icon::FileTree => "icons/project.svg", + Icon::Filter => "icons/filter.svg", Icon::Folder => "icons/file_icons/folder.svg", Icon::FolderOpen => "icons/file_icons/folder_open.svg", Icon::FolderX => "icons/stop_sharing.svg", @@ -157,6 +160,7 @@ impl Icon { Icon::Quote => "icons/quote.svg", Icon::Replace => "icons/replace.svg", Icon::ReplaceAll => "icons/replace_all.svg", + Icon::ReplaceNext => "icons/replace_next.svg", Icon::Screen => "icons/desktop.svg", Icon::SelectAll => "icons/select-all.svg", Icon::Split => "icons/split.svg", diff --git a/crates/zed2/src/zed2.rs b/crates/zed2/src/zed2.rs index d36d16a654791ddf8cc6ad885bf62408124e4ad3..3fab03aa93034a29cb53688d1ab191d532f2cc89 100644 --- a/crates/zed2/src/zed2.rs +++ b/crates/zed2/src/zed2.rs @@ -24,6 +24,7 @@ use anyhow::{anyhow, Context as _}; use futures::{channel::mpsc, StreamExt}; use project_panel::ProjectPanel; use quick_action_bar::QuickActionBar; +use search::project_search::ProjectSearchBar; use settings::{initial_local_settings_content, load_default_keymap, KeymapFile, Settings}; use std::{borrow::Cow, ops::Deref, sync::Arc}; use terminal_view::terminal_panel::TerminalPanel; @@ -426,8 +427,8 @@ fn initialize_pane(workspace: &mut Workspace, pane: &View, cx: &mut ViewCo toolbar.add_item(quick_action_bar, cx); let diagnostic_editor_controls = cx.build_view(|_| diagnostics::ToolbarControls::new()); // toolbar.add_item(diagnostic_editor_controls, cx); - // let project_search_bar = cx.add_view(|_| ProjectSearchBar::new()); - // toolbar.add_item(project_search_bar, cx); + let project_search_bar = cx.build_view(|_| ProjectSearchBar::new()); + toolbar.add_item(project_search_bar, cx); // let lsp_log_item = // cx.add_view(|_| language_tools::LspLogToolbarItemView::new()); // toolbar.add_item(lsp_log_item, cx); From ed5c05b272aec8e240ebeb178717d2a00e5cd008 Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Thu, 7 Dec 2023 16:43:34 +0100 Subject: [PATCH 006/115] Searches work, but the results are not displayed --- crates/search2/src/project_search.rs | 32 +++++++++++++++++++--------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/crates/search2/src/project_search.rs b/crates/search2/src/project_search.rs index c0147bad1ef7fe19f9934479172476b1e9957bac..56fb66d7e116e44af5bc64bb136786206c79a195 100644 --- a/crates/search2/src/project_search.rs +++ b/crates/search2/src/project_search.rs @@ -324,7 +324,7 @@ impl EventEmitter for ProjectSearchView {} impl Render for ProjectSearchView { type Element = Div; fn render(&mut self, cx: &mut ViewContext) -> Self::Element { - div().child(Label::new("xd")) + div().child(self.results_editor.clone()) } } // impl Entity for ProjectSearchView { @@ -1688,6 +1688,7 @@ impl Render for ProjectSearchBar { .child( h_stack() .min_w_80() + .on_action(cx.listener(|this, action, cx| this.confirm(action, cx))) .on_action(cx.listener(|this, _: &ToggleFilters, cx| { this.toggle_filters(cx); })) @@ -1697,7 +1698,7 @@ impl Render for ProjectSearchBar { .on_action(cx.listener(|this, _: &ToggleCaseSensitive, cx| { this.toggle_search_option(SearchOptions::CASE_SENSITIVE, cx); })) - .on_action(cx.listener(|this, action: &ToggleReplace, cx| { + .on_action(cx.listener(|this, action, cx| { this.toggle_replace(action, cx); })) .on_action(cx.listener(|this, action: &ActivateTextMode, cx| { @@ -1760,6 +1761,7 @@ impl Render for ProjectSearchBar { let replace_column = if search.replace_enabled { h_stack() .bg(white()) + .p_1() .flex_1() .border_2() .rounded_lg() @@ -1772,24 +1774,34 @@ impl Render for ProjectSearchBar { let actions_column = h_stack() .when(search.replace_enabled, |this| { this.children([ - IconButton::new("project-search-replace-next", Icon::ReplaceNext), - IconButton::new("project-search-replace-all", Icon::ReplaceAll), + IconButton::new("project-search-replace-next", Icon::ReplaceNext).on_click( + |_, cx| { + cx.dispatch_action(ReplaceNext.boxed_clone()); + }, + ), + IconButton::new("project-search-replace-all", Icon::ReplaceAll).on_click( + |_, cx| { + cx.dispatch_action(ReplaceAll.boxed_clone()); + }, + ), ]) }) .when_some(search.active_match_index, |this, index| { let match_quantity = search.model.read(cx).match_ranges.len(); debug_assert!(match_quantity > index); - this.child(IconButton::new( - "project-search-select-all", - Icon::SelectAll, - )) + this.child( + IconButton::new("project-search-select-all", Icon::SelectAll) + .on_click(|_, cx| cx.dispatch_action(SelectAll.boxed_clone())), + ) .child(Label::new(format!("{index}/{match_quantity}"))) }) .children([ IconButton::new("project-search-prev-match", Icon::ChevronLeft) - .disabled(search.active_match_index.is_none()), + .disabled(search.active_match_index.is_none()) + .on_click(|_, cx| cx.dispatch_action(SelectPrevMatch.boxed_clone())), IconButton::new("project-search-next-match", Icon::ChevronRight) - .disabled(search.active_match_index.is_none()), + .disabled(search.active_match_index.is_none()) + .on_click(|_, cx| cx.dispatch_action(SelectNextMatch.boxed_clone())), ]); h_stack() .size_full() From 5e5eb25aab7e4cf3aa157af47e726d11ca11a364 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Thu, 7 Dec 2023 10:50:07 -0500 Subject: [PATCH 007/115] WIP [no-ci] --- crates/feedback2/src/feedback_modal.rs | 26 +++++++++++++--------- crates/ui2/src/components/button/button.rs | 1 - 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/crates/feedback2/src/feedback_modal.rs b/crates/feedback2/src/feedback_modal.rs index aa6f3910a1bec92ac60562c5e45aea7c2391a34b..32619578ed3866b0928a027260100bf75ec1e22f 100644 --- a/crates/feedback2/src/feedback_modal.rs +++ b/crates/feedback2/src/feedback_modal.rs @@ -104,6 +104,11 @@ impl FeedbackModal { let feedback_editor = cx.build_view(|cx| { let mut editor = Editor::for_buffer(buffer, Some(project.clone()), cx); + editor.set_placeholder_text( + "You can use markdown to add links or organize feedback.", + cx, + ); + // editor.set_show_gutter(false, cx); editor.set_vertical_scroll_margin(5, cx); editor }); @@ -292,19 +297,21 @@ impl Render for FeedbackModal { .min_w(rems(40.)) .max_w(rems(96.)) .h(rems(32.)) + .p_4() + .gap_4() .child( v_stack() - .px_4() - .pt_4() - .pb_2() - .child(Label::new("Give Feedback").color(Color::Default)) - .child(Label::new("This editor supports markdown").color(Color::Muted)), + .child( + // TODO: Add Headline component to `ui2` + div().text_xl().child("Share Feedback")) ) .child( div() .flex_1() .bg(cx.theme().colors().editor_background) + .p_2() .border() + .rounded_md() .border_color(cx.theme().colors().border) .child(self.feedback_editor.clone()), ) @@ -330,19 +337,18 @@ impl Render for FeedbackModal { } ) ) - .child( - v_stack() - .p_4() + .child( h_stack() .bg(cx.theme().colors().editor_background) + .p_2() .border() + .rounded_md() .border_color(cx.theme().colors().border) .child(self.email_address_editor.clone())) - ) + .child( h_stack() - .p_4() .justify_between() .gap_1() .child(Button::new("community_repo", "Community Repo") diff --git a/crates/ui2/src/components/button/button.rs b/crates/ui2/src/components/button/button.rs index 607b6c8a61df5cc6e8ccf4dc3adebc1addb886d4..fc7ca2c12872142e5e41a8a2a96e6c8fe764697a 100644 --- a/crates/ui2/src/components/button/button.rs +++ b/crates/ui2/src/components/button/button.rs @@ -158,7 +158,6 @@ impl RenderOnce for Button { this } }) - .flex_row_reverse() .child( Label::new(label) .color(label_color) From e9c40963ab03a4cdeec356273417fd726fa9f111 Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Thu, 7 Dec 2023 17:48:53 +0100 Subject: [PATCH 008/115] Render multibuffer --- crates/search2/src/project_search.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/crates/search2/src/project_search.rs b/crates/search2/src/project_search.rs index 56fb66d7e116e44af5bc64bb136786206c79a195..b2144587be8af17e9ac22fdf26b9819d601451f7 100644 --- a/crates/search2/src/project_search.rs +++ b/crates/search2/src/project_search.rs @@ -324,7 +324,10 @@ impl EventEmitter for ProjectSearchView {} impl Render for ProjectSearchView { type Element = Div; fn render(&mut self, cx: &mut ViewContext) -> Self::Element { - div().child(self.results_editor.clone()) + div() + .flex_1() + .size_full() + .child(self.results_editor.clone()) } } // impl Entity for ProjectSearchView { From 1bf94f025169d75902d4624423fc770482de2620 Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Thu, 7 Dec 2023 17:55:03 +0100 Subject: [PATCH 009/115] Do not render multibuffer without matches --- crates/search2/src/project_search.rs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/crates/search2/src/project_search.rs b/crates/search2/src/project_search.rs index b2144587be8af17e9ac22fdf26b9819d601451f7..18c101088bb20b88ad7a577ddcea4793b7b5366f 100644 --- a/crates/search2/src/project_search.rs +++ b/crates/search2/src/project_search.rs @@ -324,10 +324,14 @@ impl EventEmitter for ProjectSearchView {} impl Render for ProjectSearchView { type Element = Div; fn render(&mut self, cx: &mut ViewContext) -> Self::Element { - div() - .flex_1() - .size_full() - .child(self.results_editor.clone()) + if self.has_matches() { + div() + .flex_1() + .size_full() + .child(self.results_editor.clone()) + } else { + div() + } } } // impl Entity for ProjectSearchView { From 794b79580010e115aa23e16331bfb7d863837506 Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Thu, 7 Dec 2023 12:04:04 -0500 Subject: [PATCH 010/115] Add TODO --- crates/feedback2/src/feedback_modal.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/crates/feedback2/src/feedback_modal.rs b/crates/feedback2/src/feedback_modal.rs index 32619578ed3866b0928a027260100bf75ec1e22f..148772c296039272ef30deaf93ca9edd181d1fbe 100644 --- a/crates/feedback2/src/feedback_modal.rs +++ b/crates/feedback2/src/feedback_modal.rs @@ -399,3 +399,5 @@ impl Render for FeedbackModal { ) } } + +// TODO: Add compilation flags to enable debug mode, where we can simulate sending feedback that both succeeds and fails, so we can test the UI From ef4bc5e20b6839dbad93e52c9aec5a6036d7ba08 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Thu, 7 Dec 2023 12:59:51 -0500 Subject: [PATCH 011/115] Remove static status bar icons --- crates/workspace2/src/status_bar.rs | 25 +------------------------ 1 file changed, 1 insertion(+), 24 deletions(-) diff --git a/crates/workspace2/src/status_bar.rs b/crates/workspace2/src/status_bar.rs index 07c48293b5ca720dbc295003e2a3b578f999655c..22e2fa128d24697782a92c6ccfdde3d08bba7fc4 100644 --- a/crates/workspace2/src/status_bar.rs +++ b/crates/workspace2/src/status_bar.rs @@ -48,30 +48,7 @@ impl Render for StatusBar { .h_8() .bg(cx.theme().colors().status_bar_background) .child(h_stack().gap_1().child(self.render_left_tools(cx))) - .child( - h_stack() - .gap_4() - .child( - h_stack().gap_1().child( - // Feedback Tool - div() - .border() - .border_color(gpui::red()) - .child(IconButton::new("status-feedback", Icon::Envelope)), - ), - ) - .child( - // Right Dock - h_stack().gap_1().child( - // Terminal - div() - .border() - .border_color(gpui::red()) - .child(IconButton::new("status-chat", Icon::MessageBubbles)), - ), - ) - .child(self.render_right_tools(cx)), - ) + .child(h_stack().gap_4().child(self.render_right_tools(cx))) } } From 0ee4ad6ba0c4dcaf48a5a568f0e1c3593b7e6aa6 Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Thu, 7 Dec 2023 13:00:49 -0500 Subject: [PATCH 012/115] Skip using map --- crates/feedback2/src/feedback_modal.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/crates/feedback2/src/feedback_modal.rs b/crates/feedback2/src/feedback_modal.rs index 148772c296039272ef30deaf93ca9edd181d1fbe..c61d17d63c256f270578234f76acfdfdaac1d3cd 100644 --- a/crates/feedback2/src/feedback_modal.rs +++ b/crates/feedback2/src/feedback_modal.rs @@ -329,11 +329,11 @@ impl Render for FeedbackModal { ) } ) - .map(|this| + .color( if valid_character_count { - this.color(Color::Success) + Color::Success } else { - this.color(Color::Error) + Color::Error } ) ) From 8b9b19195d02f104b9fc51805d07ea6ca2c83503 Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Thu, 7 Dec 2023 13:19:03 -0500 Subject: [PATCH 013/115] Fix bug with how characters limits are being displayed --- crates/feedback2/src/feedback_modal.rs | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/crates/feedback2/src/feedback_modal.rs b/crates/feedback2/src/feedback_modal.rs index c61d17d63c256f270578234f76acfdfdaac1d3cd..1b746e1f1f2abd06644e003562b3188b40238aff 100644 --- a/crates/feedback2/src/feedback_modal.rs +++ b/crates/feedback2/src/feedback_modal.rs @@ -256,12 +256,6 @@ impl Render for FeedbackModal { }; let valid_character_count = FEEDBACK_CHAR_LIMIT.contains(&self.character_count); - let characters_remaining = - if valid_character_count || self.character_count > *FEEDBACK_CHAR_LIMIT.end() { - *FEEDBACK_CHAR_LIMIT.end() as i32 - self.character_count as i32 - } else { - self.character_count as i32 - *FEEDBACK_CHAR_LIMIT.start() as i32 - }; let allow_submission = valid_character_count && valid_email_address && !self.pending_submission; @@ -318,14 +312,14 @@ impl Render for FeedbackModal { .child( div().child( Label::new( - if !valid_character_count && characters_remaining < 0 { - "Feedback must be at least 10 characters.".to_string() - } else if !valid_character_count && characters_remaining > 5000 { - "Feedback must be less than 5000 characters.".to_string() + if self.character_count < *FEEDBACK_CHAR_LIMIT.start() { + format!("Feedback must be at least {} characters.", FEEDBACK_CHAR_LIMIT.start()) + } else if self.character_count > *FEEDBACK_CHAR_LIMIT.end() { + format!("Feedback must be less than {} characters.", FEEDBACK_CHAR_LIMIT.end()) } else { format!( "Characters: {}", - characters_remaining + *FEEDBACK_CHAR_LIMIT.end() - self.character_count ) } ) From 808a0626c0d45db67f069df8e173299dac8a48ea Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Thu, 7 Dec 2023 16:49:27 -0800 Subject: [PATCH 014/115] Show a notification on auto-update check action if updates are disabled --- crates/auto_update2/src/auto_update.rs | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/crates/auto_update2/src/auto_update.rs b/crates/auto_update2/src/auto_update.rs index 72dbe32b5a6fbf53304896d9d5d2fbb64d44f8d3..dbccd269b797273277ad98e34d238166fe68df1c 100644 --- a/crates/auto_update2/src/auto_update.rs +++ b/crates/auto_update2/src/auto_update.rs @@ -85,15 +85,7 @@ pub fn init(http_client: Arc, server_url: String, cx: &mut AppCo AutoUpdateSetting::register(cx); cx.observe_new_views(|workspace: &mut Workspace, _cx| { - workspace - .register_action(|_, action: &Check, cx| check(action, cx)) - .register_action(|_, _action: &CheckThatAutoUpdaterWorks, cx| { - let prompt = cx.prompt(gpui::PromptLevel::Info, "It does!", &["Ok"]); - cx.spawn(|_, _cx| async move { - prompt.await.ok(); - }) - .detach(); - }); + workspace.register_action(|_, action: &Check, cx| check(action, cx)); // @nate - code to trigger update notification on launch // workspace.show_notification(0, _cx, |cx| { @@ -130,9 +122,15 @@ pub fn init(http_client: Arc, server_url: String, cx: &mut AppCo } } -pub fn check(_: &Check, cx: &mut AppContext) { +pub fn check(_: &Check, cx: &mut ViewContext) { if let Some(updater) = AutoUpdater::get(cx) { updater.update(cx, |updater, cx| updater.poll(cx)); + } else { + drop(cx.prompt( + gpui::PromptLevel::Info, + "Auto-updates disabled for non-bundled app.", + &["Ok"], + )); } } From f9d569f1b83529f1bd0801c7e57de2c57b127241 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Thu, 7 Dec 2023 16:51:53 -0800 Subject: [PATCH 015/115] Remove '-nightly' suffix from nightly build version number It breaks our semver parsing, and the release channel is already 'nightly'. --- .github/workflows/release_nightly.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/release_nightly.yml b/.github/workflows/release_nightly.yml index 0e0fd18e25324984f64405facb2d876f2e68405a..38552646c343d5f44975e33146a4cd38dc3ab4d3 100644 --- a/.github/workflows/release_nightly.yml +++ b/.github/workflows/release_nightly.yml @@ -81,12 +81,11 @@ jobs: - name: Limit target directory size run: script/clear-target-dir-if-larger-than 100 - - name: Set release channel to nightly, add nightly prefix to the final version + - name: Set release channel to nightly run: | set -eu version=$(git rev-parse --short HEAD) echo "Publishing version: ${version} on release channel nightly" - sed -i '' "s/version = \"\(.*\)\"/version = \"\1-nightly\"/" crates/zed2/Cargo.toml echo "nightly" > crates/zed/RELEASE_CHANNEL - name: Generate license file From f272881a6b69efa7295aa85990c91af1f92c4cf3 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Thu, 7 Dec 2023 22:11:31 -0500 Subject: [PATCH 016/115] theme_importer: Improve syntax token matching (#3549) This PR improves the approach we use to match syntax tokens between Zed and VS Code in the `theme_importer`. We now use the list of scopes assigned to each Zed syntax token to rank the possible candidates in the VS Code and then pick the candidate with the highest rank. So far this has proved to provide better colors across the board, but we'll continue to refine the matching over time. Release Notes: - N/A --- crates/theme2/src/themes/andromeda.rs | 36 +- crates/theme2/src/themes/ayu.rs | 48 ++- crates/theme2/src/themes/dracula.rs | 10 +- crates/theme2/src/themes/gruvbox.rs | 72 +++- crates/theme2/src/themes/night_owl.rs | 30 +- crates/theme2/src/themes/noctis.rs | 374 ++++++------------ crates/theme2/src/themes/nord.rs | 12 +- crates/theme2/src/themes/palenight.rs | 36 +- crates/theme2/src/themes/rose_pine.rs | 48 ++- crates/theme2/src/themes/solarized.rs | 30 +- crates/theme2/src/themes/synthwave_84.rs | 11 +- crates/theme_importer/src/main.rs | 30 +- crates/theme_importer/src/vscode/converter.rs | 31 +- crates/theme_importer/src/vscode/syntax.rs | 91 ++++- 14 files changed, 487 insertions(+), 372 deletions(-) diff --git a/crates/theme2/src/themes/andromeda.rs b/crates/theme2/src/themes/andromeda.rs index fb606c1650798ebdd3a2dafaec324014edcafd11..8dfc32d8b5fba7f2b625afd3970edb9e7892e10f 100644 --- a/crates/theme2/src/themes/andromeda.rs +++ b/crates/theme2/src/themes/andromeda.rs @@ -66,7 +66,7 @@ pub fn andromeda() -> UserThemeFamily { ( "attribute".into(), UserHighlightStyle { - color: Some(rgba(0xf39c12ff).into()), + color: Some(rgba(0xffe66dff).into()), ..Default::default() }, ), @@ -77,6 +77,13 @@ pub fn andromeda() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0xa0a1a7cc).into()), + ..Default::default() + }, + ), ( "emphasis".into(), UserHighlightStyle { @@ -143,7 +150,7 @@ pub fn andromeda() -> UserThemeFamily { ( "type".into(), UserHighlightStyle { - color: Some(rgba(0xffe66dff).into()), + color: Some(rgba(0xee5d43ff).into()), ..Default::default() }, ), @@ -154,6 +161,13 @@ pub fn andromeda() -> UserThemeFamily { ..Default::default() }, ), + ( + "variable.special".into(), + UserHighlightStyle { + color: Some(rgba(0x00e8c6ff).into()), + ..Default::default() + }, + ), ], }), }, @@ -210,7 +224,7 @@ pub fn andromeda() -> UserThemeFamily { ( "attribute".into(), UserHighlightStyle { - color: Some(rgba(0xf39c12ff).into()), + color: Some(rgba(0xffe66dff).into()), ..Default::default() }, ), @@ -221,6 +235,13 @@ pub fn andromeda() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0xa0a1a7cc).into()), + ..Default::default() + }, + ), ( "emphasis".into(), UserHighlightStyle { @@ -287,7 +308,7 @@ pub fn andromeda() -> UserThemeFamily { ( "type".into(), UserHighlightStyle { - color: Some(rgba(0xffe66dff).into()), + color: Some(rgba(0xee5d43ff).into()), ..Default::default() }, ), @@ -298,6 +319,13 @@ pub fn andromeda() -> UserThemeFamily { ..Default::default() }, ), + ( + "variable.special".into(), + UserHighlightStyle { + color: Some(rgba(0x00e8c6ff).into()), + ..Default::default() + }, + ), ], }), }, diff --git a/crates/theme2/src/themes/ayu.rs b/crates/theme2/src/themes/ayu.rs index 39ac2660e65d1f058a0d57517a22fb1c08e851e6..fe9d750461e81e038a9d647d8c1345e8544f0498 100644 --- a/crates/theme2/src/themes/ayu.rs +++ b/crates/theme2/src/themes/ayu.rs @@ -89,6 +89,14 @@ pub fn ayu() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0x787b8099).into()), + font_style: Some(UserFontStyle::Italic), + ..Default::default() + }, + ), ( "constant".into(), UserHighlightStyle { @@ -122,14 +130,14 @@ pub fn ayu() -> UserThemeFamily { ( "function".into(), UserHighlightStyle { - color: Some(rgba(0xf2ae49ff).into()), + color: Some(rgba(0xf07171ff).into()), ..Default::default() }, ), ( "keyword".into(), UserHighlightStyle { - color: Some(rgba(0xfa8d3eff).into()), + color: Some(rgba(0x55b4d4ff).into()), ..Default::default() }, ), @@ -171,7 +179,7 @@ pub fn ayu() -> UserThemeFamily { ( "property".into(), UserHighlightStyle { - color: Some(rgba(0xf07171ff).into()), + color: Some(rgba(0x55b4d4ff).into()), ..Default::default() }, ), @@ -269,7 +277,7 @@ pub fn ayu() -> UserThemeFamily { ( "variable.special".into(), UserHighlightStyle { - color: Some(rgba(0xf07171ff).into()), + color: Some(rgba(0xf2ae49ff).into()), ..Default::default() }, ), @@ -352,6 +360,14 @@ pub fn ayu() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0xb8cfe680).into()), + font_style: Some(UserFontStyle::Italic), + ..Default::default() + }, + ), ( "constant".into(), UserHighlightStyle { @@ -385,14 +401,14 @@ pub fn ayu() -> UserThemeFamily { ( "function".into(), UserHighlightStyle { - color: Some(rgba(0xffd173ff).into()), + color: Some(rgba(0xf28779ff).into()), ..Default::default() }, ), ( "keyword".into(), UserHighlightStyle { - color: Some(rgba(0xffad66ff).into()), + color: Some(rgba(0x5ccfe6ff).into()), ..Default::default() }, ), @@ -434,7 +450,7 @@ pub fn ayu() -> UserThemeFamily { ( "property".into(), UserHighlightStyle { - color: Some(rgba(0xf28779ff).into()), + color: Some(rgba(0x5ccfe6ff).into()), ..Default::default() }, ), @@ -532,7 +548,7 @@ pub fn ayu() -> UserThemeFamily { ( "variable.special".into(), UserHighlightStyle { - color: Some(rgba(0xf28779ff).into()), + color: Some(rgba(0xffd173ff).into()), ..Default::default() }, ), @@ -615,6 +631,14 @@ pub fn ayu() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0xacb6bf8c).into()), + font_style: Some(UserFontStyle::Italic), + ..Default::default() + }, + ), ( "constant".into(), UserHighlightStyle { @@ -648,14 +672,14 @@ pub fn ayu() -> UserThemeFamily { ( "function".into(), UserHighlightStyle { - color: Some(rgba(0xffb454ff).into()), + color: Some(rgba(0xf07178ff).into()), ..Default::default() }, ), ( "keyword".into(), UserHighlightStyle { - color: Some(rgba(0xff8f40ff).into()), + color: Some(rgba(0x39bae6ff).into()), ..Default::default() }, ), @@ -697,7 +721,7 @@ pub fn ayu() -> UserThemeFamily { ( "property".into(), UserHighlightStyle { - color: Some(rgba(0xf07178ff).into()), + color: Some(rgba(0x39bae6ff).into()), ..Default::default() }, ), @@ -795,7 +819,7 @@ pub fn ayu() -> UserThemeFamily { ( "variable.special".into(), UserHighlightStyle { - color: Some(rgba(0xf07178ff).into()), + color: Some(rgba(0xffb454ff).into()), ..Default::default() }, ), diff --git a/crates/theme2/src/themes/dracula.rs b/crates/theme2/src/themes/dracula.rs index 49caf3cff95318e7dcfc3d59449b9e45d12ee7f3..bf8fc12b8aaaca4a5c34f65f2158fcfbb76bbb6a 100644 --- a/crates/theme2/src/themes/dracula.rs +++ b/crates/theme2/src/themes/dracula.rs @@ -83,6 +83,13 @@ pub fn dracula() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0x6272a4ff).into()), + ..Default::default() + }, + ), ( "emphasis".into(), UserHighlightStyle { @@ -159,8 +166,7 @@ pub fn dracula() -> UserThemeFamily { ( "variable".into(), UserHighlightStyle { - color: Some(rgba(0xbd93f9ff).into()), - font_style: Some(UserFontStyle::Italic), + color: Some(rgba(0xf8f8f2ff).into()), ..Default::default() }, ), diff --git a/crates/theme2/src/themes/gruvbox.rs b/crates/theme2/src/themes/gruvbox.rs index 7de52df753a1d306bd786bb652183ed244103e52..44d779071a22140f5f1788a4bda14c998d1bb273 100644 --- a/crates/theme2/src/themes/gruvbox.rs +++ b/crates/theme2/src/themes/gruvbox.rs @@ -82,8 +82,9 @@ pub fn gruvbox() -> UserThemeFamily { }, ), ( - "emphasis".into(), + "comment.doc".into(), UserHighlightStyle { + color: Some(rgba(0x928374ff).into()), font_style: Some(UserFontStyle::Italic), ..Default::default() }, @@ -148,7 +149,7 @@ pub fn gruvbox() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0xa89984ff).into()), + color: Some(rgba(0x83a598ff).into()), ..Default::default() }, ), @@ -201,6 +202,13 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "variable.special".into(), + UserHighlightStyle { + color: Some(rgba(0x83a598ff).into()), + ..Default::default() + }, + ), ], }), }, @@ -273,8 +281,9 @@ pub fn gruvbox() -> UserThemeFamily { }, ), ( - "emphasis".into(), + "comment.doc".into(), UserHighlightStyle { + color: Some(rgba(0x928374ff).into()), font_style: Some(UserFontStyle::Italic), ..Default::default() }, @@ -339,7 +348,7 @@ pub fn gruvbox() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0xa89984ff).into()), + color: Some(rgba(0x83a598ff).into()), ..Default::default() }, ), @@ -392,6 +401,13 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "variable.special".into(), + UserHighlightStyle { + color: Some(rgba(0x83a598ff).into()), + ..Default::default() + }, + ), ], }), }, @@ -464,8 +480,9 @@ pub fn gruvbox() -> UserThemeFamily { }, ), ( - "emphasis".into(), + "comment.doc".into(), UserHighlightStyle { + color: Some(rgba(0x928374ff).into()), font_style: Some(UserFontStyle::Italic), ..Default::default() }, @@ -530,7 +547,7 @@ pub fn gruvbox() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0xa89984ff).into()), + color: Some(rgba(0x83a598ff).into()), ..Default::default() }, ), @@ -583,6 +600,13 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "variable.special".into(), + UserHighlightStyle { + color: Some(rgba(0x83a598ff).into()), + ..Default::default() + }, + ), ], }), }, @@ -655,8 +679,9 @@ pub fn gruvbox() -> UserThemeFamily { }, ), ( - "emphasis".into(), + "comment.doc".into(), UserHighlightStyle { + color: Some(rgba(0x928374ff).into()), font_style: Some(UserFontStyle::Italic), ..Default::default() }, @@ -721,7 +746,7 @@ pub fn gruvbox() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0x7c6f64ff).into()), + color: Some(rgba(0x076678ff).into()), ..Default::default() }, ), @@ -774,6 +799,13 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "variable.special".into(), + UserHighlightStyle { + color: Some(rgba(0x076678ff).into()), + ..Default::default() + }, + ), ], }), }, @@ -846,8 +878,9 @@ pub fn gruvbox() -> UserThemeFamily { }, ), ( - "emphasis".into(), + "comment.doc".into(), UserHighlightStyle { + color: Some(rgba(0x928374ff).into()), font_style: Some(UserFontStyle::Italic), ..Default::default() }, @@ -912,7 +945,7 @@ pub fn gruvbox() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0x7c6f64ff).into()), + color: Some(rgba(0x076678ff).into()), ..Default::default() }, ), @@ -965,6 +998,13 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "variable.special".into(), + UserHighlightStyle { + color: Some(rgba(0x076678ff).into()), + ..Default::default() + }, + ), ], }), }, @@ -1037,8 +1077,9 @@ pub fn gruvbox() -> UserThemeFamily { }, ), ( - "emphasis".into(), + "comment.doc".into(), UserHighlightStyle { + color: Some(rgba(0x928374ff).into()), font_style: Some(UserFontStyle::Italic), ..Default::default() }, @@ -1103,7 +1144,7 @@ pub fn gruvbox() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0x7c6f64ff).into()), + color: Some(rgba(0x076678ff).into()), ..Default::default() }, ), @@ -1156,6 +1197,13 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "variable.special".into(), + UserHighlightStyle { + color: Some(rgba(0x076678ff).into()), + ..Default::default() + }, + ), ], }), }, diff --git a/crates/theme2/src/themes/night_owl.rs b/crates/theme2/src/themes/night_owl.rs index ef9b8c59a089a35d1c5736b9ab57afc2ac017442..13a931453b882e3e095f0e985706f5978c58f520 100644 --- a/crates/theme2/src/themes/night_owl.rs +++ b/crates/theme2/src/themes/night_owl.rs @@ -90,6 +90,14 @@ pub fn night_owl() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0x637777ff).into()), + font_style: Some(UserFontStyle::Italic), + ..Default::default() + }, + ), ( "constant".into(), UserHighlightStyle { @@ -100,8 +108,7 @@ pub fn night_owl() -> UserThemeFamily { ( "function".into(), UserHighlightStyle { - color: Some(rgba(0xc792eaff).into()), - font_style: Some(UserFontStyle::Italic), + color: Some(rgba(0x82aaffff).into()), ..Default::default() }, ), @@ -137,8 +144,7 @@ pub fn night_owl() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0xc792eaff).into()), - font_style: Some(UserFontStyle::Italic), + color: Some(rgba(0x7fdbcaff).into()), ..Default::default() }, ), @@ -180,7 +186,7 @@ pub fn night_owl() -> UserThemeFamily { ( "variable".into(), UserHighlightStyle { - color: Some(rgba(0xc5e478ff).into()), + color: Some(rgba(0xd7dbe0ff).into()), ..Default::default() }, ), @@ -272,6 +278,14 @@ pub fn night_owl() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0x989fb1ff).into()), + font_style: Some(UserFontStyle::Italic), + ..Default::default() + }, + ), ( "constant".into(), UserHighlightStyle { @@ -282,8 +296,7 @@ pub fn night_owl() -> UserThemeFamily { ( "function".into(), UserHighlightStyle { - color: Some(rgba(0x994cc3ff).into()), - font_style: Some(UserFontStyle::Italic), + color: Some(rgba(0x4876d6ff).into()), ..Default::default() }, ), @@ -320,7 +333,6 @@ pub fn night_owl() -> UserThemeFamily { "punctuation".into(), UserHighlightStyle { color: Some(rgba(0x994cc3ff).into()), - font_style: Some(UserFontStyle::Italic), ..Default::default() }, ), @@ -362,7 +374,7 @@ pub fn night_owl() -> UserThemeFamily { ( "variable".into(), UserHighlightStyle { - color: Some(rgba(0x4876d6ff).into()), + color: Some(rgba(0x403f53ff).into()), ..Default::default() }, ), diff --git a/crates/theme2/src/themes/noctis.rs b/crates/theme2/src/themes/noctis.rs index 5598635ff2f2597e672233c84a97c472d5333bce..d19aeb61d3b41ac5089f951975335b8b8e79a272 100644 --- a/crates/theme2/src/themes/noctis.rs +++ b/crates/theme2/src/themes/noctis.rs @@ -84,23 +84,16 @@ pub fn noctis() -> UserThemeFamily { }, ), ( - "constant".into(), + "comment.doc".into(), UserHighlightStyle { - color: Some(rgba(0xbecfdaff).into()), - ..Default::default() - }, - ), - ( - "constructor".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), + color: Some(rgba(0x5988a6ff).into()), ..Default::default() }, ), ( - "emphasis".into(), + "constant".into(), UserHighlightStyle { - font_style: Some(UserFontStyle::Italic), + color: Some(rgba(0xbecfdaff).into()), ..Default::default() }, ), @@ -114,7 +107,7 @@ pub fn noctis() -> UserThemeFamily { ( "keyword".into(), UserHighlightStyle { - color: Some(rgba(0xdf769bff).into()), + color: Some(rgba(0xe66533ff).into()), ..Default::default() }, ), @@ -128,14 +121,14 @@ pub fn noctis() -> UserThemeFamily { ( "link_text".into(), UserHighlightStyle { - color: Some(rgba(0x16a3b6ff).into()), + color: Some(rgba(0x49d6e9ff).into()), ..Default::default() }, ), ( "link_uri".into(), UserHighlightStyle { - color: Some(rgba(0x16a3b6ff).into()), + color: Some(rgba(0x49d6e9ff).into()), ..Default::default() }, ), @@ -146,13 +139,6 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), - ( - "operator".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), - ..Default::default() - }, - ), ( "property".into(), UserHighlightStyle { @@ -163,7 +149,7 @@ pub fn noctis() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0x5988a6ff).into()), + color: Some(rgba(0xbecfdaff).into()), ..Default::default() }, ), @@ -191,7 +177,7 @@ pub fn noctis() -> UserThemeFamily { ( "tag".into(), UserHighlightStyle { - color: Some(rgba(0xdf769bff).into()), + color: Some(rgba(0xe66533ff).into()), ..Default::default() }, ), @@ -212,7 +198,7 @@ pub fn noctis() -> UserThemeFamily { ( "type".into(), UserHighlightStyle { - color: Some(rgba(0x49d6e9ff).into()), + color: Some(rgba(0xd67e5cff).into()), ..Default::default() }, ), @@ -304,23 +290,16 @@ pub fn noctis() -> UserThemeFamily { }, ), ( - "constant".into(), - UserHighlightStyle { - color: Some(rgba(0xcbbec2ff).into()), - ..Default::default() - }, - ), - ( - "constructor".into(), + "comment.doc".into(), UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), + color: Some(rgba(0x8b747cff).into()), ..Default::default() }, ), ( - "emphasis".into(), + "constant".into(), UserHighlightStyle { - font_style: Some(UserFontStyle::Italic), + color: Some(rgba(0xcbbec2ff).into()), ..Default::default() }, ), @@ -334,7 +313,7 @@ pub fn noctis() -> UserThemeFamily { ( "keyword".into(), UserHighlightStyle { - color: Some(rgba(0xdf769bff).into()), + color: Some(rgba(0xe66533ff).into()), ..Default::default() }, ), @@ -348,14 +327,14 @@ pub fn noctis() -> UserThemeFamily { ( "link_text".into(), UserHighlightStyle { - color: Some(rgba(0x16a3b6ff).into()), + color: Some(rgba(0x49d6e9ff).into()), ..Default::default() }, ), ( "link_uri".into(), UserHighlightStyle { - color: Some(rgba(0x16a3b6ff).into()), + color: Some(rgba(0x49d6e9ff).into()), ..Default::default() }, ), @@ -366,13 +345,6 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), - ( - "operator".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), - ..Default::default() - }, - ), ( "property".into(), UserHighlightStyle { @@ -383,7 +355,7 @@ pub fn noctis() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0x8b747cff).into()), + color: Some(rgba(0xcbbec2ff).into()), ..Default::default() }, ), @@ -411,7 +383,7 @@ pub fn noctis() -> UserThemeFamily { ( "tag".into(), UserHighlightStyle { - color: Some(rgba(0xdf769bff).into()), + color: Some(rgba(0xe66533ff).into()), ..Default::default() }, ), @@ -432,7 +404,7 @@ pub fn noctis() -> UserThemeFamily { ( "type".into(), UserHighlightStyle { - color: Some(rgba(0x49d6e9ff).into()), + color: Some(rgba(0xd67e5cff).into()), ..Default::default() }, ), @@ -524,23 +496,16 @@ pub fn noctis() -> UserThemeFamily { }, ), ( - "constant".into(), + "comment.doc".into(), UserHighlightStyle { - color: Some(rgba(0x004d57ff).into()), - ..Default::default() - }, - ), - ( - "constructor".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), + color: Some(rgba(0x8ca6a6ff).into()), ..Default::default() }, ), ( - "emphasis".into(), + "constant".into(), UserHighlightStyle { - font_style: Some(UserFontStyle::Italic), + color: Some(rgba(0x004d57ff).into()), ..Default::default() }, ), @@ -554,7 +519,7 @@ pub fn noctis() -> UserThemeFamily { ( "keyword".into(), UserHighlightStyle { - color: Some(rgba(0xff5792ff).into()), + color: Some(rgba(0xe64100ff).into()), ..Default::default() }, ), @@ -568,14 +533,14 @@ pub fn noctis() -> UserThemeFamily { ( "link_text".into(), UserHighlightStyle { - color: Some(rgba(0x0095a8ff).into()), + color: Some(rgba(0x00bdd6ff).into()), ..Default::default() }, ), ( "link_uri".into(), UserHighlightStyle { - color: Some(rgba(0x0095a8ff).into()), + color: Some(rgba(0x00bdd6ff).into()), ..Default::default() }, ), @@ -586,13 +551,6 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), - ( - "operator".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), - ..Default::default() - }, - ), ( "property".into(), UserHighlightStyle { @@ -603,7 +561,7 @@ pub fn noctis() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0x8ca6a6ff).into()), + color: Some(rgba(0x004d57ff).into()), ..Default::default() }, ), @@ -631,7 +589,7 @@ pub fn noctis() -> UserThemeFamily { ( "tag".into(), UserHighlightStyle { - color: Some(rgba(0xff5792ff).into()), + color: Some(rgba(0xe64100ff).into()), ..Default::default() }, ), @@ -652,7 +610,7 @@ pub fn noctis() -> UserThemeFamily { ( "type".into(), UserHighlightStyle { - color: Some(rgba(0x00bdd6ff).into()), + color: Some(rgba(0xb3694dff).into()), ..Default::default() }, ), @@ -744,23 +702,16 @@ pub fn noctis() -> UserThemeFamily { }, ), ( - "constant".into(), + "comment.doc".into(), UserHighlightStyle { - color: Some(rgba(0x0c006bff).into()), - ..Default::default() - }, - ), - ( - "constructor".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), + color: Some(rgba(0x9995b7ff).into()), ..Default::default() }, ), ( - "emphasis".into(), + "constant".into(), UserHighlightStyle { - font_style: Some(UserFontStyle::Italic), + color: Some(rgba(0x0c006bff).into()), ..Default::default() }, ), @@ -774,7 +725,7 @@ pub fn noctis() -> UserThemeFamily { ( "keyword".into(), UserHighlightStyle { - color: Some(rgba(0xff5792ff).into()), + color: Some(rgba(0xe64100ff).into()), ..Default::default() }, ), @@ -788,14 +739,14 @@ pub fn noctis() -> UserThemeFamily { ( "link_text".into(), UserHighlightStyle { - color: Some(rgba(0x0095a8ff).into()), + color: Some(rgba(0x00bdd6ff).into()), ..Default::default() }, ), ( "link_uri".into(), UserHighlightStyle { - color: Some(rgba(0x0095a8ff).into()), + color: Some(rgba(0x00bdd6ff).into()), ..Default::default() }, ), @@ -806,13 +757,6 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), - ( - "operator".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), - ..Default::default() - }, - ), ( "property".into(), UserHighlightStyle { @@ -823,7 +767,7 @@ pub fn noctis() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0x9995b7ff).into()), + color: Some(rgba(0x0c006bff).into()), ..Default::default() }, ), @@ -851,7 +795,7 @@ pub fn noctis() -> UserThemeFamily { ( "tag".into(), UserHighlightStyle { - color: Some(rgba(0xff5792ff).into()), + color: Some(rgba(0xe64100ff).into()), ..Default::default() }, ), @@ -872,7 +816,7 @@ pub fn noctis() -> UserThemeFamily { ( "type".into(), UserHighlightStyle { - color: Some(rgba(0x00bdd6ff).into()), + color: Some(rgba(0xb3694dff).into()), ..Default::default() }, ), @@ -964,23 +908,16 @@ pub fn noctis() -> UserThemeFamily { }, ), ( - "constant".into(), - UserHighlightStyle { - color: Some(rgba(0x004d57ff).into()), - ..Default::default() - }, - ), - ( - "constructor".into(), + "comment.doc".into(), UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), + color: Some(rgba(0x8ca6a6ff).into()), ..Default::default() }, ), ( - "emphasis".into(), + "constant".into(), UserHighlightStyle { - font_style: Some(UserFontStyle::Italic), + color: Some(rgba(0x004d57ff).into()), ..Default::default() }, ), @@ -994,7 +931,7 @@ pub fn noctis() -> UserThemeFamily { ( "keyword".into(), UserHighlightStyle { - color: Some(rgba(0xff5792ff).into()), + color: Some(rgba(0xe64100ff).into()), ..Default::default() }, ), @@ -1008,14 +945,14 @@ pub fn noctis() -> UserThemeFamily { ( "link_text".into(), UserHighlightStyle { - color: Some(rgba(0x0095a8ff).into()), + color: Some(rgba(0x00bdd6ff).into()), ..Default::default() }, ), ( "link_uri".into(), UserHighlightStyle { - color: Some(rgba(0x0095a8ff).into()), + color: Some(rgba(0x00bdd6ff).into()), ..Default::default() }, ), @@ -1026,13 +963,6 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), - ( - "operator".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), - ..Default::default() - }, - ), ( "property".into(), UserHighlightStyle { @@ -1043,7 +973,7 @@ pub fn noctis() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0x8ca6a6ff).into()), + color: Some(rgba(0x004d57ff).into()), ..Default::default() }, ), @@ -1071,7 +1001,7 @@ pub fn noctis() -> UserThemeFamily { ( "tag".into(), UserHighlightStyle { - color: Some(rgba(0xff5792ff).into()), + color: Some(rgba(0xe64100ff).into()), ..Default::default() }, ), @@ -1092,7 +1022,7 @@ pub fn noctis() -> UserThemeFamily { ( "type".into(), UserHighlightStyle { - color: Some(rgba(0x00bdd6ff).into()), + color: Some(rgba(0xb3694dff).into()), ..Default::default() }, ), @@ -1184,23 +1114,16 @@ pub fn noctis() -> UserThemeFamily { }, ), ( - "constant".into(), - UserHighlightStyle { - color: Some(rgba(0xc5cdd3ff).into()), - ..Default::default() - }, - ), - ( - "constructor".into(), + "comment.doc".into(), UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), + color: Some(rgba(0x5e7887ff).into()), ..Default::default() }, ), ( - "emphasis".into(), + "constant".into(), UserHighlightStyle { - font_style: Some(UserFontStyle::Italic), + color: Some(rgba(0xc5cdd3ff).into()), ..Default::default() }, ), @@ -1214,7 +1137,7 @@ pub fn noctis() -> UserThemeFamily { ( "keyword".into(), UserHighlightStyle { - color: Some(rgba(0xc88da2ff).into()), + color: Some(rgba(0xc37455ff).into()), ..Default::default() }, ), @@ -1228,14 +1151,14 @@ pub fn noctis() -> UserThemeFamily { ( "link_text".into(), UserHighlightStyle { - color: Some(rgba(0x3f848dff).into()), + color: Some(rgba(0x72b7c0ff).into()), ..Default::default() }, ), ( "link_uri".into(), UserHighlightStyle { - color: Some(rgba(0x3f848dff).into()), + color: Some(rgba(0x72b7c0ff).into()), ..Default::default() }, ), @@ -1246,13 +1169,6 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), - ( - "operator".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), - ..Default::default() - }, - ), ( "property".into(), UserHighlightStyle { @@ -1263,7 +1179,7 @@ pub fn noctis() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0x5e7887ff).into()), + color: Some(rgba(0xc5cdd3ff).into()), ..Default::default() }, ), @@ -1291,7 +1207,7 @@ pub fn noctis() -> UserThemeFamily { ( "tag".into(), UserHighlightStyle { - color: Some(rgba(0xc88da2ff).into()), + color: Some(rgba(0xc37455ff).into()), ..Default::default() }, ), @@ -1312,7 +1228,7 @@ pub fn noctis() -> UserThemeFamily { ( "type".into(), UserHighlightStyle { - color: Some(rgba(0x72b7c0ff).into()), + color: Some(rgba(0xbe856fff).into()), ..Default::default() }, ), @@ -1404,23 +1320,16 @@ pub fn noctis() -> UserThemeFamily { }, ), ( - "constant".into(), + "comment.doc".into(), UserHighlightStyle { - color: Some(rgba(0xb2cacdff).into()), - ..Default::default() - }, - ), - ( - "constructor".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), + color: Some(rgba(0x5b858bff).into()), ..Default::default() }, ), ( - "emphasis".into(), + "constant".into(), UserHighlightStyle { - font_style: Some(UserFontStyle::Italic), + color: Some(rgba(0xb2cacdff).into()), ..Default::default() }, ), @@ -1434,7 +1343,7 @@ pub fn noctis() -> UserThemeFamily { ( "keyword".into(), UserHighlightStyle { - color: Some(rgba(0xdf769bff).into()), + color: Some(rgba(0xe66533ff).into()), ..Default::default() }, ), @@ -1448,14 +1357,14 @@ pub fn noctis() -> UserThemeFamily { ( "link_text".into(), UserHighlightStyle { - color: Some(rgba(0x16a3b6ff).into()), + color: Some(rgba(0x49d6e9ff).into()), ..Default::default() }, ), ( "link_uri".into(), UserHighlightStyle { - color: Some(rgba(0x16a3b6ff).into()), + color: Some(rgba(0x49d6e9ff).into()), ..Default::default() }, ), @@ -1466,13 +1375,6 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), - ( - "operator".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), - ..Default::default() - }, - ), ( "property".into(), UserHighlightStyle { @@ -1483,7 +1385,7 @@ pub fn noctis() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0x5b858bff).into()), + color: Some(rgba(0xb2cacdff).into()), ..Default::default() }, ), @@ -1511,7 +1413,7 @@ pub fn noctis() -> UserThemeFamily { ( "tag".into(), UserHighlightStyle { - color: Some(rgba(0xdf769bff).into()), + color: Some(rgba(0xe66533ff).into()), ..Default::default() }, ), @@ -1532,7 +1434,7 @@ pub fn noctis() -> UserThemeFamily { ( "type".into(), UserHighlightStyle { - color: Some(rgba(0x49d6e9ff).into()), + color: Some(rgba(0xd67e5cff).into()), ..Default::default() }, ), @@ -1624,23 +1526,16 @@ pub fn noctis() -> UserThemeFamily { }, ), ( - "constant".into(), + "comment.doc".into(), UserHighlightStyle { - color: Some(rgba(0xb2cacdff).into()), - ..Default::default() - }, - ), - ( - "constructor".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), + color: Some(rgba(0x5b858bff).into()), ..Default::default() }, ), ( - "emphasis".into(), + "constant".into(), UserHighlightStyle { - font_style: Some(UserFontStyle::Italic), + color: Some(rgba(0xb2cacdff).into()), ..Default::default() }, ), @@ -1654,7 +1549,7 @@ pub fn noctis() -> UserThemeFamily { ( "keyword".into(), UserHighlightStyle { - color: Some(rgba(0xdf769bff).into()), + color: Some(rgba(0xe66533ff).into()), ..Default::default() }, ), @@ -1668,14 +1563,14 @@ pub fn noctis() -> UserThemeFamily { ( "link_text".into(), UserHighlightStyle { - color: Some(rgba(0x16a3b6ff).into()), + color: Some(rgba(0x49d6e9ff).into()), ..Default::default() }, ), ( "link_uri".into(), UserHighlightStyle { - color: Some(rgba(0x16a3b6ff).into()), + color: Some(rgba(0x49d6e9ff).into()), ..Default::default() }, ), @@ -1686,13 +1581,6 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), - ( - "operator".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), - ..Default::default() - }, - ), ( "property".into(), UserHighlightStyle { @@ -1703,7 +1591,7 @@ pub fn noctis() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0x5b858bff).into()), + color: Some(rgba(0xb2cacdff).into()), ..Default::default() }, ), @@ -1731,7 +1619,7 @@ pub fn noctis() -> UserThemeFamily { ( "tag".into(), UserHighlightStyle { - color: Some(rgba(0xdf769bff).into()), + color: Some(rgba(0xe66533ff).into()), ..Default::default() }, ), @@ -1752,7 +1640,7 @@ pub fn noctis() -> UserThemeFamily { ( "type".into(), UserHighlightStyle { - color: Some(rgba(0x49d6e9ff).into()), + color: Some(rgba(0xd67e5cff).into()), ..Default::default() }, ), @@ -1844,23 +1732,16 @@ pub fn noctis() -> UserThemeFamily { }, ), ( - "constant".into(), - UserHighlightStyle { - color: Some(rgba(0xb2cacdff).into()), - ..Default::default() - }, - ), - ( - "constructor".into(), + "comment.doc".into(), UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), + color: Some(rgba(0x5b858bff).into()), ..Default::default() }, ), ( - "emphasis".into(), + "constant".into(), UserHighlightStyle { - font_style: Some(UserFontStyle::Italic), + color: Some(rgba(0xb2cacdff).into()), ..Default::default() }, ), @@ -1874,7 +1755,7 @@ pub fn noctis() -> UserThemeFamily { ( "keyword".into(), UserHighlightStyle { - color: Some(rgba(0xdf769bff).into()), + color: Some(rgba(0xe66533ff).into()), ..Default::default() }, ), @@ -1888,14 +1769,14 @@ pub fn noctis() -> UserThemeFamily { ( "link_text".into(), UserHighlightStyle { - color: Some(rgba(0x16a3b6ff).into()), + color: Some(rgba(0x49d6e9ff).into()), ..Default::default() }, ), ( "link_uri".into(), UserHighlightStyle { - color: Some(rgba(0x16a3b6ff).into()), + color: Some(rgba(0x49d6e9ff).into()), ..Default::default() }, ), @@ -1906,13 +1787,6 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), - ( - "operator".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), - ..Default::default() - }, - ), ( "property".into(), UserHighlightStyle { @@ -1923,7 +1797,7 @@ pub fn noctis() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0x5b858bff).into()), + color: Some(rgba(0xb2cacdff).into()), ..Default::default() }, ), @@ -1951,7 +1825,7 @@ pub fn noctis() -> UserThemeFamily { ( "tag".into(), UserHighlightStyle { - color: Some(rgba(0xdf769bff).into()), + color: Some(rgba(0xe66533ff).into()), ..Default::default() }, ), @@ -1972,7 +1846,7 @@ pub fn noctis() -> UserThemeFamily { ( "type".into(), UserHighlightStyle { - color: Some(rgba(0x49d6e9ff).into()), + color: Some(rgba(0xd67e5cff).into()), ..Default::default() }, ), @@ -2064,23 +1938,16 @@ pub fn noctis() -> UserThemeFamily { }, ), ( - "constant".into(), - UserHighlightStyle { - color: Some(rgba(0xc5c2d6ff).into()), - ..Default::default() - }, - ), - ( - "constructor".into(), + "comment.doc".into(), UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), + color: Some(rgba(0x716c93ff).into()), ..Default::default() }, ), ( - "emphasis".into(), + "constant".into(), UserHighlightStyle { - font_style: Some(UserFontStyle::Italic), + color: Some(rgba(0xc5c2d6ff).into()), ..Default::default() }, ), @@ -2094,7 +1961,7 @@ pub fn noctis() -> UserThemeFamily { ( "keyword".into(), UserHighlightStyle { - color: Some(rgba(0xdf769bff).into()), + color: Some(rgba(0xe66533ff).into()), ..Default::default() }, ), @@ -2108,14 +1975,14 @@ pub fn noctis() -> UserThemeFamily { ( "link_text".into(), UserHighlightStyle { - color: Some(rgba(0x16a3b6ff).into()), + color: Some(rgba(0x49d6e9ff).into()), ..Default::default() }, ), ( "link_uri".into(), UserHighlightStyle { - color: Some(rgba(0x16a3b6ff).into()), + color: Some(rgba(0x49d6e9ff).into()), ..Default::default() }, ), @@ -2126,13 +1993,6 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), - ( - "operator".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), - ..Default::default() - }, - ), ( "property".into(), UserHighlightStyle { @@ -2143,7 +2003,7 @@ pub fn noctis() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0x716c93ff).into()), + color: Some(rgba(0xc5c2d6ff).into()), ..Default::default() }, ), @@ -2171,7 +2031,7 @@ pub fn noctis() -> UserThemeFamily { ( "tag".into(), UserHighlightStyle { - color: Some(rgba(0xdf769bff).into()), + color: Some(rgba(0xe66533ff).into()), ..Default::default() }, ), @@ -2192,7 +2052,7 @@ pub fn noctis() -> UserThemeFamily { ( "type".into(), UserHighlightStyle { - color: Some(rgba(0x49d6e9ff).into()), + color: Some(rgba(0xd67e5cff).into()), ..Default::default() }, ), @@ -2284,23 +2144,16 @@ pub fn noctis() -> UserThemeFamily { }, ), ( - "constant".into(), - UserHighlightStyle { - color: Some(rgba(0xccbfd9ff).into()), - ..Default::default() - }, - ), - ( - "constructor".into(), + "comment.doc".into(), UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), + color: Some(rgba(0x7f659aff).into()), ..Default::default() }, ), ( - "emphasis".into(), + "constant".into(), UserHighlightStyle { - font_style: Some(UserFontStyle::Italic), + color: Some(rgba(0xccbfd9ff).into()), ..Default::default() }, ), @@ -2314,7 +2167,7 @@ pub fn noctis() -> UserThemeFamily { ( "keyword".into(), UserHighlightStyle { - color: Some(rgba(0xdf769bff).into()), + color: Some(rgba(0xe66533ff).into()), ..Default::default() }, ), @@ -2328,14 +2181,14 @@ pub fn noctis() -> UserThemeFamily { ( "link_text".into(), UserHighlightStyle { - color: Some(rgba(0x16a3b6ff).into()), + color: Some(rgba(0x49d6e9ff).into()), ..Default::default() }, ), ( "link_uri".into(), UserHighlightStyle { - color: Some(rgba(0x16a3b6ff).into()), + color: Some(rgba(0x49d6e9ff).into()), ..Default::default() }, ), @@ -2346,13 +2199,6 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), - ( - "operator".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), - ..Default::default() - }, - ), ( "property".into(), UserHighlightStyle { @@ -2363,7 +2209,7 @@ pub fn noctis() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0x7f659aff).into()), + color: Some(rgba(0xccbfd9ff).into()), ..Default::default() }, ), @@ -2391,7 +2237,7 @@ pub fn noctis() -> UserThemeFamily { ( "tag".into(), UserHighlightStyle { - color: Some(rgba(0xdf769bff).into()), + color: Some(rgba(0xe66533ff).into()), ..Default::default() }, ), @@ -2412,7 +2258,7 @@ pub fn noctis() -> UserThemeFamily { ( "type".into(), UserHighlightStyle { - color: Some(rgba(0x49d6e9ff).into()), + color: Some(rgba(0xd67e5cff).into()), ..Default::default() }, ), diff --git a/crates/theme2/src/themes/nord.rs b/crates/theme2/src/themes/nord.rs index e1c4e35f584c67c5856b6693c16cff2ea1b46500..cc863f37160e23c0eb5dbda4f2c65e526ab25be5 100644 --- a/crates/theme2/src/themes/nord.rs +++ b/crates/theme2/src/themes/nord.rs @@ -90,16 +90,16 @@ pub fn nord() -> UserThemeFamily { }, ), ( - "constant".into(), + "comment.doc".into(), UserHighlightStyle { - color: Some(rgba(0xebcb8bff).into()), + color: Some(rgba(0x616e88ff).into()), ..Default::default() }, ), ( - "emphasis.strong".into(), + "constant".into(), UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), + color: Some(rgba(0xebcb8bff).into()), ..Default::default() }, ), @@ -134,7 +134,7 @@ pub fn nord() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0xeceff4ff).into()), + color: Some(rgba(0x81a1c1ff).into()), ..Default::default() }, ), @@ -183,7 +183,7 @@ pub fn nord() -> UserThemeFamily { ( "variable".into(), UserHighlightStyle { - color: Some(rgba(0x81a1c1ff).into()), + color: Some(rgba(0xd8dee9ff).into()), ..Default::default() }, ), diff --git a/crates/theme2/src/themes/palenight.rs b/crates/theme2/src/themes/palenight.rs index 21e77dbacfcc880ee2324c668bac451451d5cf13..daee43f572fedbb82a301e41c50cbe8e0ae145dc 100644 --- a/crates/theme2/src/themes/palenight.rs +++ b/crates/theme2/src/themes/palenight.rs @@ -89,6 +89,14 @@ pub fn palenight() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0x697098ff).into()), + font_style: Some(UserFontStyle::Italic), + ..Default::default() + }, + ), ( "constant".into(), UserHighlightStyle { @@ -164,7 +172,7 @@ pub fn palenight() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0xc792eaff).into()), + color: Some(rgba(0x89ddffff).into()), ..Default::default() }, ), @@ -206,7 +214,7 @@ pub fn palenight() -> UserThemeFamily { ( "variable".into(), UserHighlightStyle { - color: Some(rgba(0xffcb6bff).into()), + color: Some(rgba(0xff5572ff).into()), ..Default::default() }, ), @@ -296,6 +304,14 @@ pub fn palenight() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0x697098ff).into()), + font_style: Some(UserFontStyle::Italic), + ..Default::default() + }, + ), ( "constant".into(), UserHighlightStyle { @@ -371,7 +387,7 @@ pub fn palenight() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0xc792eaff).into()), + color: Some(rgba(0x89ddffff).into()), ..Default::default() }, ), @@ -413,7 +429,7 @@ pub fn palenight() -> UserThemeFamily { ( "variable".into(), UserHighlightStyle { - color: Some(rgba(0xffcb6bff).into()), + color: Some(rgba(0xff5572ff).into()), ..Default::default() }, ), @@ -503,6 +519,14 @@ pub fn palenight() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0x697098ff).into()), + font_style: Some(UserFontStyle::Italic), + ..Default::default() + }, + ), ( "constant".into(), UserHighlightStyle { @@ -578,7 +602,7 @@ pub fn palenight() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0xc792eaff).into()), + color: Some(rgba(0x89ddffff).into()), ..Default::default() }, ), @@ -620,7 +644,7 @@ pub fn palenight() -> UserThemeFamily { ( "variable".into(), UserHighlightStyle { - color: Some(rgba(0xffcb6bff).into()), + color: Some(rgba(0xff5572ff).into()), ..Default::default() }, ), diff --git a/crates/theme2/src/themes/rose_pine.rs b/crates/theme2/src/themes/rose_pine.rs index 7107bb79a33ab65bc623317aa36a037477f9d011..f4de7fb0d36721bf1ec24eefcba011bedcb4f622 100644 --- a/crates/theme2/src/themes/rose_pine.rs +++ b/crates/theme2/src/themes/rose_pine.rs @@ -92,13 +92,20 @@ pub fn rose_pine() -> UserThemeFamily { }, ), ( - "function".into(), + "comment.doc".into(), UserHighlightStyle { - color: Some(rgba(0xeb6f92ff).into()), + color: Some(rgba(0x6e6a86ff).into()), font_style: Some(UserFontStyle::Italic), ..Default::default() }, ), + ( + "function".into(), + UserHighlightStyle { + color: Some(rgba(0xe0def4ff).into()), + ..Default::default() + }, + ), ( "keyword".into(), UserHighlightStyle { @@ -123,7 +130,7 @@ pub fn rose_pine() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0x908caaff).into()), + color: Some(rgba(0x6e6a86ff).into()), ..Default::default() }, ), @@ -165,8 +172,7 @@ pub fn rose_pine() -> UserThemeFamily { ( "variable".into(), UserHighlightStyle { - color: Some(rgba(0xebbcbaff).into()), - font_style: Some(UserFontStyle::Italic), + color: Some(rgba(0xc4a7e7ff).into()), ..Default::default() }, ), @@ -259,13 +265,20 @@ pub fn rose_pine() -> UserThemeFamily { }, ), ( - "function".into(), + "comment.doc".into(), UserHighlightStyle { - color: Some(rgba(0xeb6f92ff).into()), + color: Some(rgba(0x6e6a86ff).into()), font_style: Some(UserFontStyle::Italic), ..Default::default() }, ), + ( + "function".into(), + UserHighlightStyle { + color: Some(rgba(0xe0def4ff).into()), + ..Default::default() + }, + ), ( "keyword".into(), UserHighlightStyle { @@ -290,7 +303,7 @@ pub fn rose_pine() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0x908caaff).into()), + color: Some(rgba(0x6e6a86ff).into()), ..Default::default() }, ), @@ -332,8 +345,7 @@ pub fn rose_pine() -> UserThemeFamily { ( "variable".into(), UserHighlightStyle { - color: Some(rgba(0xea9a97ff).into()), - font_style: Some(UserFontStyle::Italic), + color: Some(rgba(0xc4a7e7ff).into()), ..Default::default() }, ), @@ -426,13 +438,20 @@ pub fn rose_pine() -> UserThemeFamily { }, ), ( - "function".into(), + "comment.doc".into(), UserHighlightStyle { - color: Some(rgba(0xb4637aff).into()), + color: Some(rgba(0x9893a5ff).into()), font_style: Some(UserFontStyle::Italic), ..Default::default() }, ), + ( + "function".into(), + UserHighlightStyle { + color: Some(rgba(0x575279ff).into()), + ..Default::default() + }, + ), ( "keyword".into(), UserHighlightStyle { @@ -457,7 +476,7 @@ pub fn rose_pine() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0x797593ff).into()), + color: Some(rgba(0x9893a5ff).into()), ..Default::default() }, ), @@ -499,8 +518,7 @@ pub fn rose_pine() -> UserThemeFamily { ( "variable".into(), UserHighlightStyle { - color: Some(rgba(0xd7827eff).into()), - font_style: Some(UserFontStyle::Italic), + color: Some(rgba(0x907aa9ff).into()), ..Default::default() }, ), diff --git a/crates/theme2/src/themes/solarized.rs b/crates/theme2/src/themes/solarized.rs index 12e3d1f3996c321015ff818fb7e0e5209eee1965..e77d2e79f943a6474f41ec79fcb9abd363b3d4d8 100644 --- a/crates/theme2/src/themes/solarized.rs +++ b/crates/theme2/src/themes/solarized.rs @@ -86,6 +86,14 @@ pub fn solarized() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0x657b83ff).into()), + font_style: Some(UserFontStyle::Italic), + ..Default::default() + }, + ), ( "constant".into(), UserHighlightStyle { @@ -117,14 +125,14 @@ pub fn solarized() -> UserThemeFamily { ( "function".into(), UserHighlightStyle { - color: Some(rgba(0x268bd2ff).into()), + color: Some(rgba(0x839496ff).into()), ..Default::default() }, ), ( "keyword".into(), UserHighlightStyle { - color: Some(rgba(0x859900ff).into()), + color: Some(rgba(0x268bd2ff).into()), ..Default::default() }, ), @@ -180,14 +188,14 @@ pub fn solarized() -> UserThemeFamily { ( "type".into(), UserHighlightStyle { - color: Some(rgba(0xcb4b16ff).into()), + color: Some(rgba(0x859900ff).into()), ..Default::default() }, ), ( "variable".into(), UserHighlightStyle { - color: Some(rgba(0x268bd2ff).into()), + color: Some(rgba(0x839496ff).into()), ..Default::default() }, ), @@ -271,6 +279,14 @@ pub fn solarized() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0x93a1a1ff).into()), + font_style: Some(UserFontStyle::Italic), + ..Default::default() + }, + ), ( "constant".into(), UserHighlightStyle { @@ -302,14 +318,14 @@ pub fn solarized() -> UserThemeFamily { ( "function".into(), UserHighlightStyle { - color: Some(rgba(0x268bd2ff).into()), + color: Some(rgba(0x657b83ff).into()), ..Default::default() }, ), ( "keyword".into(), UserHighlightStyle { - color: Some(rgba(0x859900ff).into()), + color: Some(rgba(0x268bd2ff).into()), ..Default::default() }, ), @@ -358,7 +374,7 @@ pub fn solarized() -> UserThemeFamily { ( "type".into(), UserHighlightStyle { - color: Some(rgba(0x268bd2ff).into()), + color: Some(rgba(0x859900ff).into()), ..Default::default() }, ), diff --git a/crates/theme2/src/themes/synthwave_84.rs b/crates/theme2/src/themes/synthwave_84.rs index 731c2527f569332042a8d0aea7f2c09176c10301..585d584c6897334b57bd1cfb2414bc1baf4acde5 100644 --- a/crates/theme2/src/themes/synthwave_84.rs +++ b/crates/theme2/src/themes/synthwave_84.rs @@ -75,6 +75,14 @@ pub fn synthwave_84() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0x848bbdff).into()), + font_style: Some(UserFontStyle::Italic), + ..Default::default() + }, + ), ( "function".into(), UserHighlightStyle { @@ -162,7 +170,8 @@ pub fn synthwave_84() -> UserThemeFamily { ( "variable".into(), UserHighlightStyle { - color: Some(rgba(0xff7edbff).into()), + color: Some(rgba(0xfe4450ff).into()), + font_weight: Some(UserFontWeight(700.0)), ..Default::default() }, ), diff --git a/crates/theme_importer/src/main.rs b/crates/theme_importer/src/main.rs index 24e95ca91823ed6265cca81e778d45e938816b88..80e979df983243da030b23a113fb666cfe52509f 100644 --- a/crates/theme_importer/src/main.rs +++ b/crates/theme_importer/src/main.rs @@ -15,7 +15,7 @@ use gpui::serde_json; use json_comments::StripComments; use log::LevelFilter; use serde::Deserialize; -use simplelog::SimpleLogger; +use simplelog::{TermLogger, TerminalMode}; use theme::{Appearance, UserThemeFamily}; use crate::theme_printer::UserThemeFamilyPrinter; @@ -56,9 +56,17 @@ fn main() -> Result<()> { const SOURCE_PATH: &str = "assets/themes/src/vscode"; const OUT_PATH: &str = "crates/theme2/src/themes"; - SimpleLogger::init(LevelFilter::Info, Default::default()).expect("could not initialize logger"); + let log_config = simplelog::ConfigBuilder::new() + .set_level_color(log::Level::Trace, simplelog::Color::Cyan) + .set_level_color(log::Level::Info, simplelog::Color::Blue) + .set_level_color(log::Level::Warn, simplelog::Color::Yellow) + .set_level_color(log::Level::Error, simplelog::Color::Red) + .build(); - println!("Loading themes source..."); + TermLogger::init(LevelFilter::Trace, log_config, TerminalMode::Mixed) + .expect("could not initialize logger"); + + log::info!("Loading themes source..."); let vscode_themes_path = PathBuf::from_str(SOURCE_PATH)?; if !vscode_themes_path.exists() { return Err(anyhow!(format!( @@ -91,7 +99,7 @@ fn main() -> Result<()> { let license_file_path = theme_family_dir.path().join("LICENSE"); if !license_file_path.exists() { - println!("Skipping theme family '{}' because it does not have a LICENSE file. This theme will only be imported once a LICENSE file is provided.", theme_family_slug); + log::info!("Skipping theme family '{}' because it does not have a LICENSE file. This theme will only be imported once a LICENSE file is provided.", theme_family_slug); continue; } @@ -103,12 +111,14 @@ fn main() -> Result<()> { let mut themes = Vec::new(); for theme_metadata in family_metadata.themes { + log::info!("Converting '{}' theme", &theme_metadata.name); + let theme_file_path = theme_family_dir.path().join(&theme_metadata.file_name); let theme_file = match File::open(&theme_file_path) { Ok(file) => file, Err(_) => { - println!("Failed to open file at path: {:?}", theme_file_path); + log::info!("Failed to open file at path: {:?}", theme_file_path); continue; } }; @@ -136,7 +146,7 @@ fn main() -> Result<()> { let themes_output_path = PathBuf::from_str(OUT_PATH)?; if !themes_output_path.exists() { - println!("Creating directory: {:?}", themes_output_path); + log::info!("Creating directory: {:?}", themes_output_path); fs::create_dir_all(&themes_output_path)?; } @@ -149,7 +159,7 @@ fn main() -> Result<()> { let mut output_file = File::create(themes_output_path.join(format!("{theme_family_slug}.rs")))?; - println!( + log::info!( "Creating file: {:?}", themes_output_path.join(format!("{theme_family_slug}.rs")) ); @@ -220,17 +230,17 @@ fn main() -> Result<()> { mod_rs_file.write_all(mod_rs_contents.as_bytes())?; - println!("Formatting themes..."); + log::info!("Formatting themes..."); let format_result = format_themes_crate() // We need to format a second time to catch all of the formatting issues. .and_then(|_| format_themes_crate()); if let Err(err) = format_result { - eprintln!("Failed to format themes: {}", err); + log::error!("Failed to format themes: {}", err); } - println!("Done!"); + log::info!("Done!"); Ok(()) } diff --git a/crates/theme_importer/src/vscode/converter.rs b/crates/theme_importer/src/vscode/converter.rs index bc8253e700f21647a36a4249d5280511c6209327..4e4b82a2c571c56841850b9022a77ed35c97e425 100644 --- a/crates/theme_importer/src/vscode/converter.rs +++ b/crates/theme_importer/src/vscode/converter.rs @@ -275,20 +275,31 @@ impl VsCodeThemeConverter { let mut highlight_styles = IndexMap::new(); for syntax_token in ZedSyntaxToken::iter() { - let multimatch_scopes = syntax_token.to_vscode(); - - let token_color = self.theme.token_colors.iter().find(|token_color| { - token_color - .scope - .as_ref() - .map(|scope| scope.multimatch(&multimatch_scopes)) - .unwrap_or(false) - }); + let best_match = syntax_token + .find_best_token_color_match(&self.theme.token_colors) + .or_else(|| { + syntax_token.fallbacks().iter().find_map(|fallback| { + fallback.find_best_token_color_match(&self.theme.token_colors) + }) + }); - let Some(token_color) = token_color else { + let Some(token_color) = best_match else { + log::warn!("No matching token color found for '{syntax_token}'"); continue; }; + log::info!( + "Matched '{syntax_token}' to '{}'", + token_color + .name + .clone() + .or_else(|| token_color + .scope + .as_ref() + .map(|scope| format!("{:?}", scope))) + .unwrap_or_else(|| "no identifier".to_string()) + ); + let highlight_style = UserHighlightStyle { color: token_color .settings diff --git a/crates/theme_importer/src/vscode/syntax.rs b/crates/theme_importer/src/vscode/syntax.rs index 7f93925ee8f7eb9e04bb406645d6cae19e529d8c..318eb484c879d76127d425816e60fc0426505115 100644 --- a/crates/theme_importer/src/vscode/syntax.rs +++ b/crates/theme_importer/src/vscode/syntax.rs @@ -1,3 +1,4 @@ +use indexmap::IndexMap; use serde::Deserialize; use strum::EnumIter; @@ -8,19 +9,9 @@ pub enum VsCodeTokenScope { Many(Vec), } -impl VsCodeTokenScope { - pub fn multimatch(&self, matches: &[&'static str]) -> bool { - match self { - VsCodeTokenScope::One(scope) => matches.iter().any(|&s| s == scope), - VsCodeTokenScope::Many(scopes) => { - matches.iter().any(|s| scopes.contains(&s.to_string())) - } - } - } -} - #[derive(Debug, Deserialize)] pub struct VsCodeTokenColor { + pub name: Option, pub scope: Option, pub settings: VsCodeTokenColorSettings, } @@ -127,6 +118,60 @@ impl std::fmt::Display for ZedSyntaxToken { } impl ZedSyntaxToken { + pub fn find_best_token_color_match<'a>( + &self, + token_colors: &'a [VsCodeTokenColor], + ) -> Option<&'a VsCodeTokenColor> { + let mut ranked_matches = IndexMap::new(); + + for (ix, token_color) in token_colors.iter().enumerate() { + if token_color.settings.foreground.is_none() { + continue; + } + + let Some(rank) = self.rank_match(token_color) else { + continue; + }; + + if rank > 0 { + ranked_matches.insert(ix, rank); + } + } + + ranked_matches + .into_iter() + .max_by_key(|(_, rank)| *rank) + .map(|(ix, _)| &token_colors[ix]) + } + + fn rank_match(&self, token_color: &VsCodeTokenColor) -> Option { + let candidate_scopes = match token_color.scope.as_ref()? { + VsCodeTokenScope::One(scope) => vec![scope], + VsCodeTokenScope::Many(scopes) => scopes.iter().collect(), + } + .iter() + .map(|scope| scope.as_str()) + .collect::>(); + + let mut matches = 0; + + for scope in self.to_vscode() { + if candidate_scopes.contains(&scope) { + matches += 1; + } + } + + Some(matches) + } + + pub fn fallbacks(&self) -> &[Self] { + match self { + ZedSyntaxToken::CommentDoc => &[ZedSyntaxToken::Comment], + ZedSyntaxToken::VariableSpecial => &[ZedSyntaxToken::Variable], + _ => &[], + } + } + pub fn to_vscode(&self) -> Vec<&'static str> { match self { ZedSyntaxToken::Attribute => vec!["entity.other.attribute-name"], @@ -150,7 +195,15 @@ impl ZedSyntaxToken { "variable.function", "support.function", ], - ZedSyntaxToken::Keyword => vec!["keyword"], + ZedSyntaxToken::Hint => vec![], + ZedSyntaxToken::Keyword => vec![ + "keyword", + "keyword.control", + "keyword.control.fun", + "keyword.other.fn.rust", + "punctuation.accessor", + "entity.name.tag", + ], ZedSyntaxToken::Label => vec![ "label", "entity.name", @@ -161,7 +214,9 @@ impl ZedSyntaxToken { ZedSyntaxToken::LinkUri => vec!["markup.underline.link", "string.other.link"], ZedSyntaxToken::Number => vec!["constant.numeric", "number"], ZedSyntaxToken::Operator => vec!["operator", "keyword.operator"], + ZedSyntaxToken::Predictive => vec![], ZedSyntaxToken::Preproc => vec!["preproc"], + ZedSyntaxToken::Primary => vec![], ZedSyntaxToken::Property => vec![ "variable.member", "support.type.property-name", @@ -202,11 +257,20 @@ impl ZedSyntaxToken { ZedSyntaxToken::Tag => vec!["tag", "entity.name.tag", "meta.tag.sgml"], ZedSyntaxToken::TextLiteral => vec!["text.literal", "string"], ZedSyntaxToken::Title => vec!["title", "entity.name"], - ZedSyntaxToken::Type => vec!["entity.name.type", "support.type", "support.class"], + ZedSyntaxToken::Type => vec![ + "entity.name.type", + "entity.name.type.primitive", + "entity.name.type.numeric", + "keyword.type", + "support.type", + "support.type.primitive", + "support.class", + ], ZedSyntaxToken::Variable => vec![ "variable", "variable.language", "variable.member", + "variable.parameter", "variable.parameter.function-call", ], ZedSyntaxToken::VariableSpecial => vec![ @@ -216,7 +280,6 @@ impl ZedSyntaxToken { "variable.language", ], ZedSyntaxToken::Variant => vec!["variant"], - _ => vec![], } } } From a88372dc99ebb6bacb5ce724c26d9f5f5b26b2b7 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Thu, 7 Dec 2023 22:24:10 -0500 Subject: [PATCH 017/115] Set background colors for title and status bars --- crates/theme2/src/themes/andromeda.rs | 4 ++++ crates/theme2/src/themes/ayu.rs | 6 +++++ crates/theme2/src/themes/dracula.rs | 2 ++ crates/theme2/src/themes/gruvbox.rs | 12 ++++++++++ crates/theme2/src/themes/night_owl.rs | 4 ++++ crates/theme2/src/themes/noctis.rs | 22 +++++++++++++++++++ crates/theme2/src/themes/nord.rs | 2 ++ crates/theme2/src/themes/palenight.rs | 6 +++++ crates/theme2/src/themes/rose_pine.rs | 6 +++++ crates/theme2/src/themes/solarized.rs | 4 ++++ crates/theme2/src/themes/synthwave_84.rs | 2 ++ crates/theme_importer/src/vscode/converter.rs | 8 +++++++ 12 files changed, 78 insertions(+) diff --git a/crates/theme2/src/themes/andromeda.rs b/crates/theme2/src/themes/andromeda.rs index 8dfc32d8b5fba7f2b625afd3970edb9e7892e10f..e09f0b222f9952f2f335649073dea933ad316243 100644 --- a/crates/theme2/src/themes/andromeda.rs +++ b/crates/theme2/src/themes/andromeda.rs @@ -34,6 +34,8 @@ pub fn andromeda() -> UserThemeFamily { drop_target_background: Some(rgba(0x3a404eff).into()), ghost_element_hover: Some(rgba(0x23262eff).into()), text: Some(rgba(0xd5ced9ff).into()), + status_bar_background: Some(rgba(0x23262eff).into()), + title_bar_background: Some(rgba(0x23262eff).into()), tab_inactive_background: Some(rgba(0x23262eff).into()), tab_active_background: Some(rgba(0x23262eff).into()), editor_background: Some(rgba(0x23262eff).into()), @@ -192,6 +194,8 @@ pub fn andromeda() -> UserThemeFamily { drop_target_background: Some(rgba(0x3a404eff).into()), ghost_element_hover: Some(rgba(0x23262eff).into()), text: Some(rgba(0xd5ced9ff).into()), + status_bar_background: Some(rgba(0x23262eff).into()), + title_bar_background: Some(rgba(0x23262eff).into()), tab_inactive_background: Some(rgba(0x23262eff).into()), tab_active_background: Some(rgba(0x262a33ff).into()), editor_background: Some(rgba(0x262a33ff).into()), diff --git a/crates/theme2/src/themes/ayu.rs b/crates/theme2/src/themes/ayu.rs index fe9d750461e81e038a9d647d8c1345e8544f0498..762c1a52792d15915dda29a5e8fbf2fdd7e6cd68 100644 --- a/crates/theme2/src/themes/ayu.rs +++ b/crates/theme2/src/themes/ayu.rs @@ -33,6 +33,8 @@ pub fn ayu() -> UserThemeFamily { element_selected: Some(rgba(0x56728f1f).into()), ghost_element_hover: Some(rgba(0x56728f1f).into()), text: Some(rgba(0x8a9199ff).into()), + status_bar_background: Some(rgba(0xf8f9faff).into()), + title_bar_background: Some(rgba(0xf8f9faff).into()), tab_inactive_background: Some(rgba(0xf8f9faff).into()), tab_active_background: Some(rgba(0xf8f9faff).into()), editor_background: Some(rgba(0xf8f9faff).into()), @@ -304,6 +306,8 @@ pub fn ayu() -> UserThemeFamily { element_selected: Some(rgba(0x63759926).into()), ghost_element_hover: Some(rgba(0x63759926).into()), text: Some(rgba(0x707a8cff).into()), + status_bar_background: Some(rgba(0x1f2430ff).into()), + title_bar_background: Some(rgba(0x1f2430ff).into()), tab_inactive_background: Some(rgba(0x1f2430ff).into()), tab_active_background: Some(rgba(0x1f2430ff).into()), editor_background: Some(rgba(0x1f2430ff).into()), @@ -575,6 +579,8 @@ pub fn ayu() -> UserThemeFamily { element_selected: Some(rgba(0x47526640).into()), ghost_element_hover: Some(rgba(0x47526640).into()), text: Some(rgba(0x565b66ff).into()), + status_bar_background: Some(rgba(0x0b0e14ff).into()), + title_bar_background: Some(rgba(0x0b0e14ff).into()), tab_inactive_background: Some(rgba(0x0b0e14ff).into()), tab_active_background: Some(rgba(0x0b0e14ff).into()), editor_background: Some(rgba(0x0b0e14ff).into()), diff --git a/crates/theme2/src/themes/dracula.rs b/crates/theme2/src/themes/dracula.rs index bf8fc12b8aaaca4a5c34f65f2158fcfbb76bbb6a..c52bdb49b140199cb7e0d29f031754c8daae6b55 100644 --- a/crates/theme2/src/themes/dracula.rs +++ b/crates/theme2/src/themes/dracula.rs @@ -33,6 +33,8 @@ pub fn dracula() -> UserThemeFamily { drop_target_background: Some(rgba(0x44475aff).into()), ghost_element_hover: Some(rgba(0x44475a75).into()), text: Some(rgba(0xf8f8f2ff).into()), + status_bar_background: Some(rgba(0x191a21ff).into()), + title_bar_background: Some(rgba(0x21222cff).into()), tab_inactive_background: Some(rgba(0x21222cff).into()), tab_active_background: Some(rgba(0x282a36ff).into()), editor_background: Some(rgba(0x282a36ff).into()), diff --git a/crates/theme2/src/themes/gruvbox.rs b/crates/theme2/src/themes/gruvbox.rs index 44d779071a22140f5f1788a4bda14c998d1bb273..f801d44032598dfcecf820a888b5ff276d94ae9a 100644 --- a/crates/theme2/src/themes/gruvbox.rs +++ b/crates/theme2/src/themes/gruvbox.rs @@ -32,6 +32,8 @@ pub fn gruvbox() -> UserThemeFamily { drop_target_background: Some(rgba(0x3c3836ff).into()), ghost_element_hover: Some(rgba(0x3c383680).into()), text: Some(rgba(0xebdbb2ff).into()), + status_bar_background: Some(rgba(0x1d2021ff).into()), + title_bar_background: Some(rgba(0x1d2021ff).into()), tab_inactive_background: Some(rgba(0x1d2021ff).into()), tab_active_background: Some(rgba(0x32302fff).into()), editor_background: Some(rgba(0x1d2021ff).into()), @@ -231,6 +233,8 @@ pub fn gruvbox() -> UserThemeFamily { drop_target_background: Some(rgba(0x3c3836ff).into()), ghost_element_hover: Some(rgba(0x3c383680).into()), text: Some(rgba(0xebdbb2ff).into()), + status_bar_background: Some(rgba(0x282828ff).into()), + title_bar_background: Some(rgba(0x282828ff).into()), tab_inactive_background: Some(rgba(0x282828ff).into()), tab_active_background: Some(rgba(0x3c3836ff).into()), editor_background: Some(rgba(0x282828ff).into()), @@ -430,6 +434,8 @@ pub fn gruvbox() -> UserThemeFamily { drop_target_background: Some(rgba(0x3c3836ff).into()), ghost_element_hover: Some(rgba(0x3c383680).into()), text: Some(rgba(0xebdbb2ff).into()), + status_bar_background: Some(rgba(0x32302fff).into()), + title_bar_background: Some(rgba(0x32302fff).into()), tab_inactive_background: Some(rgba(0x32302fff).into()), tab_active_background: Some(rgba(0x504945ff).into()), editor_background: Some(rgba(0x32302fff).into()), @@ -629,6 +635,8 @@ pub fn gruvbox() -> UserThemeFamily { drop_target_background: Some(rgba(0xebdbb2ff).into()), ghost_element_hover: Some(rgba(0xebdbb280).into()), text: Some(rgba(0x3c3836ff).into()), + status_bar_background: Some(rgba(0xf9f5d7ff).into()), + title_bar_background: Some(rgba(0xf9f5d7ff).into()), tab_inactive_background: Some(rgba(0xf9f5d7ff).into()), tab_active_background: Some(rgba(0xf2e5bcff).into()), editor_background: Some(rgba(0xf9f5d7ff).into()), @@ -828,6 +836,8 @@ pub fn gruvbox() -> UserThemeFamily { drop_target_background: Some(rgba(0xebdbb2ff).into()), ghost_element_hover: Some(rgba(0xebdbb280).into()), text: Some(rgba(0x3c3836ff).into()), + status_bar_background: Some(rgba(0xfbf1c7ff).into()), + title_bar_background: Some(rgba(0xfbf1c7ff).into()), tab_inactive_background: Some(rgba(0xfbf1c7ff).into()), tab_active_background: Some(rgba(0xebdbb2ff).into()), editor_background: Some(rgba(0xfbf1c7ff).into()), @@ -1027,6 +1037,8 @@ pub fn gruvbox() -> UserThemeFamily { drop_target_background: Some(rgba(0xebdbb2ff).into()), ghost_element_hover: Some(rgba(0xebdbb280).into()), text: Some(rgba(0x3c3836ff).into()), + status_bar_background: Some(rgba(0xf2e5bcff).into()), + title_bar_background: Some(rgba(0xf2e5bcff).into()), tab_inactive_background: Some(rgba(0xf2e5bcff).into()), tab_active_background: Some(rgba(0xd5c4a1ff).into()), editor_background: Some(rgba(0xf2e5bcff).into()), diff --git a/crates/theme2/src/themes/night_owl.rs b/crates/theme2/src/themes/night_owl.rs index 13a931453b882e3e095f0e985706f5978c58f520..94689f2e14e2dbd9cf88f860e1aebf3447d21e1d 100644 --- a/crates/theme2/src/themes/night_owl.rs +++ b/crates/theme2/src/themes/night_owl.rs @@ -34,6 +34,8 @@ pub fn night_owl() -> UserThemeFamily { drop_target_background: Some(rgba(0x011627ff).into()), ghost_element_hover: Some(rgba(0x011627ff).into()), text: Some(rgba(0xd6deebff).into()), + status_bar_background: Some(rgba(0x011627ff).into()), + title_bar_background: Some(rgba(0x011627ff).into()), tab_inactive_background: Some(rgba(0x01111dff).into()), tab_active_background: Some(rgba(0x0b2942ff).into()), editor_background: Some(rgba(0x011627ff).into()), @@ -220,6 +222,8 @@ pub fn night_owl() -> UserThemeFamily { element_selected: Some(rgba(0xd3e8f8ff).into()), ghost_element_hover: Some(rgba(0xd3e8f8ff).into()), text: Some(rgba(0x403f53ff).into()), + status_bar_background: Some(rgba(0xf0f0f0ff).into()), + title_bar_background: Some(rgba(0xf0f0f0ff).into()), tab_inactive_background: Some(rgba(0xf0f0f0ff).into()), tab_active_background: Some(rgba(0xf6f6f6ff).into()), editor_background: Some(rgba(0xfbfbfbff).into()), diff --git a/crates/theme2/src/themes/noctis.rs b/crates/theme2/src/themes/noctis.rs index d19aeb61d3b41ac5089f951975335b8b8e79a272..23202260c6c625b2798d1590c1d19fab9dd389d1 100644 --- a/crates/theme2/src/themes/noctis.rs +++ b/crates/theme2/src/themes/noctis.rs @@ -34,6 +34,8 @@ pub fn noctis() -> UserThemeFamily { drop_target_background: Some(rgba(0x002a4dff).into()), ghost_element_hover: Some(rgba(0x00558a65).into()), text: Some(rgba(0xbecfdaff).into()), + status_bar_background: Some(rgba(0x07273bff).into()), + title_bar_background: Some(rgba(0x07273bff).into()), tab_inactive_background: Some(rgba(0x09334eff).into()), tab_active_background: Some(rgba(0x07273bff).into()), editor_background: Some(rgba(0x07273bff).into()), @@ -240,6 +242,8 @@ pub fn noctis() -> UserThemeFamily { drop_target_background: Some(rgba(0x38292eff).into()), ghost_element_hover: Some(rgba(0x533641ff).into()), text: Some(rgba(0xcbbec2ff).into()), + status_bar_background: Some(rgba(0x322a2dff).into()), + title_bar_background: Some(rgba(0x322a2dff).into()), tab_inactive_background: Some(rgba(0x413036ff).into()), tab_active_background: Some(rgba(0x322a2dff).into()), editor_background: Some(rgba(0x322a2dff).into()), @@ -446,6 +450,8 @@ pub fn noctis() -> UserThemeFamily { drop_target_background: Some(rgba(0xb2cacdff).into()), ghost_element_hover: Some(rgba(0xd1eafaff).into()), text: Some(rgba(0x005661ff).into()), + status_bar_background: Some(rgba(0xcaedf2ff).into()), + title_bar_background: Some(rgba(0xe7f2f3ff).into()), tab_inactive_background: Some(rgba(0xcaedf2ff).into()), tab_active_background: Some(rgba(0xf4f6f6ff).into()), editor_background: Some(rgba(0xf4f6f6ff).into()), @@ -652,6 +658,8 @@ pub fn noctis() -> UserThemeFamily { drop_target_background: Some(rgba(0xafaad4aa).into()), ghost_element_hover: Some(rgba(0xd2ccffff).into()), text: Some(rgba(0x0c006bff).into()), + status_bar_background: Some(rgba(0xe2dff6ff).into()), + title_bar_background: Some(rgba(0xedecf8ff).into()), tab_inactive_background: Some(rgba(0xe2dff6ff).into()), tab_active_background: Some(rgba(0xf2f1f8ff).into()), editor_background: Some(rgba(0xf2f1f8ff).into()), @@ -858,6 +866,8 @@ pub fn noctis() -> UserThemeFamily { drop_target_background: Some(rgba(0xcdcbb2ff).into()), ghost_element_hover: Some(rgba(0xd2f3f9ff).into()), text: Some(rgba(0x005661ff).into()), + status_bar_background: Some(rgba(0xf0e9d6ff).into()), + title_bar_background: Some(rgba(0xf9f1e1ff).into()), tab_inactive_background: Some(rgba(0xf0e9d6ff).into()), tab_active_background: Some(rgba(0xfef8ecff).into()), editor_background: Some(rgba(0xfef8ecff).into()), @@ -1064,6 +1074,8 @@ pub fn noctis() -> UserThemeFamily { drop_target_background: Some(rgba(0x152837ff).into()), ghost_element_hover: Some(rgba(0x00558aff).into()), text: Some(rgba(0xc5cdd3ff).into()), + status_bar_background: Some(rgba(0x1b2932ff).into()), + title_bar_background: Some(rgba(0x1b2932ff).into()), tab_inactive_background: Some(rgba(0x202e37ff).into()), tab_active_background: Some(rgba(0x1b2932ff).into()), editor_background: Some(rgba(0x1b2932ff).into()), @@ -1270,6 +1282,8 @@ pub fn noctis() -> UserThemeFamily { drop_target_background: Some(rgba(0x00404dff).into()), ghost_element_hover: Some(rgba(0x0b515bff).into()), text: Some(rgba(0xb2cacdff).into()), + status_bar_background: Some(rgba(0x041d20ff).into()), + title_bar_background: Some(rgba(0x041d20ff).into()), tab_inactive_background: Some(rgba(0x062e32ff).into()), tab_active_background: Some(rgba(0x052529ff).into()), editor_background: Some(rgba(0x052529ff).into()), @@ -1476,6 +1490,8 @@ pub fn noctis() -> UserThemeFamily { drop_target_background: Some(rgba(0x00404dff).into()), ghost_element_hover: Some(rgba(0x0b515bff).into()), text: Some(rgba(0xb2cacdff).into()), + status_bar_background: Some(rgba(0x031417ff).into()), + title_bar_background: Some(rgba(0x031417ff).into()), tab_inactive_background: Some(rgba(0x062e32ff).into()), tab_active_background: Some(rgba(0x031417ff).into()), editor_background: Some(rgba(0x031417ff).into()), @@ -1682,6 +1698,8 @@ pub fn noctis() -> UserThemeFamily { drop_target_background: Some(rgba(0x00404dff).into()), ghost_element_hover: Some(rgba(0x0b515bff).into()), text: Some(rgba(0xb2cacdff).into()), + status_bar_background: Some(rgba(0x031417ff).into()), + title_bar_background: Some(rgba(0x031417ff).into()), tab_inactive_background: Some(rgba(0x062e32ff).into()), tab_active_background: Some(rgba(0x031417ff).into()), editor_background: Some(rgba(0x031417ff).into()), @@ -1888,6 +1906,8 @@ pub fn noctis() -> UserThemeFamily { drop_target_background: Some(rgba(0x202040ff).into()), ghost_element_hover: Some(rgba(0x383866ff).into()), text: Some(rgba(0xc5c2d6ff).into()), + status_bar_background: Some(rgba(0x292640ff).into()), + title_bar_background: Some(rgba(0x292640ff).into()), tab_inactive_background: Some(rgba(0x2f2c49ff).into()), tab_active_background: Some(rgba(0x292640ff).into()), editor_background: Some(rgba(0x292640ff).into()), @@ -2094,6 +2114,8 @@ pub fn noctis() -> UserThemeFamily { drop_target_background: Some(rgba(0x302040ff).into()), ghost_element_hover: Some(rgba(0x6a448dff).into()), text: Some(rgba(0xccbfd9ff).into()), + status_bar_background: Some(rgba(0x30243dff).into()), + title_bar_background: Some(rgba(0x30243dff).into()), tab_inactive_background: Some(rgba(0x3d2e4dff).into()), tab_active_background: Some(rgba(0x30243dff).into()), editor_background: Some(rgba(0x30243dff).into()), diff --git a/crates/theme2/src/themes/nord.rs b/crates/theme2/src/themes/nord.rs index cc863f37160e23c0eb5dbda4f2c65e526ab25be5..f1111d86952662f1e8e2f7e6453e6c6e8cd40c07 100644 --- a/crates/theme2/src/themes/nord.rs +++ b/crates/theme2/src/themes/nord.rs @@ -33,6 +33,8 @@ pub fn nord() -> UserThemeFamily { drop_target_background: Some(rgba(0x88c0d099).into()), ghost_element_hover: Some(rgba(0x3b4252ff).into()), text: Some(rgba(0xd8dee9ff).into()), + status_bar_background: Some(rgba(0x3b4252ff).into()), + title_bar_background: Some(rgba(0x2e3440ff).into()), tab_inactive_background: Some(rgba(0x2e3440ff).into()), tab_active_background: Some(rgba(0x3b4252ff).into()), editor_background: Some(rgba(0x2e3440ff).into()), diff --git a/crates/theme2/src/themes/palenight.rs b/crates/theme2/src/themes/palenight.rs index daee43f572fedbb82a301e41c50cbe8e0ae145dc..0595f2fb443464f3cd227917d2abee83500b90fe 100644 --- a/crates/theme2/src/themes/palenight.rs +++ b/crates/theme2/src/themes/palenight.rs @@ -34,6 +34,8 @@ pub fn palenight() -> UserThemeFamily { drop_target_background: Some(rgba(0x2e3245ff).into()), ghost_element_hover: Some(rgba(0x0000001a).into()), text: Some(rgba(0xffffffff).into()), + status_bar_background: Some(rgba(0x282c3dff).into()), + title_bar_background: Some(rgba(0x292d3eff).into()), tab_inactive_background: Some(rgba(0x31364aff).into()), tab_active_background: Some(rgba(0x292d3eff).into()), editor_background: Some(rgba(0x292d3eff).into()), @@ -249,6 +251,8 @@ pub fn palenight() -> UserThemeFamily { drop_target_background: Some(rgba(0x2e3245ff).into()), ghost_element_hover: Some(rgba(0x0000001a).into()), text: Some(rgba(0xffffffff).into()), + status_bar_background: Some(rgba(0x282c3dff).into()), + title_bar_background: Some(rgba(0x292d3eff).into()), tab_inactive_background: Some(rgba(0x31364aff).into()), tab_active_background: Some(rgba(0x292d3eff).into()), editor_background: Some(rgba(0x292d3eff).into()), @@ -464,6 +468,8 @@ pub fn palenight() -> UserThemeFamily { drop_target_background: Some(rgba(0x2e3245ff).into()), ghost_element_hover: Some(rgba(0x0000001a).into()), text: Some(rgba(0xffffffff).into()), + status_bar_background: Some(rgba(0x25293aff).into()), + title_bar_background: Some(rgba(0x25293aff).into()), tab_inactive_background: Some(rgba(0x31364aff).into()), tab_active_background: Some(rgba(0x25293aff).into()), editor_background: Some(rgba(0x292d3eff).into()), diff --git a/crates/theme2/src/themes/rose_pine.rs b/crates/theme2/src/themes/rose_pine.rs index f4de7fb0d36721bf1ec24eefcba011bedcb4f622..b7bff4d5590e99e99f1aa4a9624f329848bf343c 100644 --- a/crates/theme2/src/themes/rose_pine.rs +++ b/crates/theme2/src/themes/rose_pine.rs @@ -34,6 +34,8 @@ pub fn rose_pine() -> UserThemeFamily { drop_target_background: Some(rgba(0x1f1d2eff).into()), ghost_element_hover: Some(rgba(0x6e6a861a).into()), text: Some(rgba(0xe0def4ff).into()), + status_bar_background: Some(rgba(0x191724ff).into()), + title_bar_background: Some(rgba(0x191724ff).into()), tab_inactive_background: Some(rgba(0x000000ff).into()), tab_active_background: Some(rgba(0x6e6a861a).into()), editor_background: Some(rgba(0x191724ff).into()), @@ -207,6 +209,8 @@ pub fn rose_pine() -> UserThemeFamily { drop_target_background: Some(rgba(0x2a273fff).into()), ghost_element_hover: Some(rgba(0x817c9c14).into()), text: Some(rgba(0xe0def4ff).into()), + status_bar_background: Some(rgba(0x232136ff).into()), + title_bar_background: Some(rgba(0x232136ff).into()), tab_inactive_background: Some(rgba(0x000000ff).into()), tab_active_background: Some(rgba(0x817c9c14).into()), editor_background: Some(rgba(0x232136ff).into()), @@ -380,6 +384,8 @@ pub fn rose_pine() -> UserThemeFamily { drop_target_background: Some(rgba(0xfffaf3ff).into()), ghost_element_hover: Some(rgba(0x6e6a860d).into()), text: Some(rgba(0x575279ff).into()), + status_bar_background: Some(rgba(0xfaf4edff).into()), + title_bar_background: Some(rgba(0xfaf4edff).into()), tab_inactive_background: Some(rgba(0x000000ff).into()), tab_active_background: Some(rgba(0x6e6a860d).into()), editor_background: Some(rgba(0xfaf4edff).into()), diff --git a/crates/theme2/src/themes/solarized.rs b/crates/theme2/src/themes/solarized.rs index e77d2e79f943a6474f41ec79fcb9abd363b3d4d8..65aaa1e27e53ba1f2195a653bd48ae0e438fe6f5 100644 --- a/crates/theme2/src/themes/solarized.rs +++ b/crates/theme2/src/themes/solarized.rs @@ -32,6 +32,8 @@ pub fn solarized() -> UserThemeFamily { drop_target_background: Some(rgba(0x00445488).into()), ghost_element_hover: Some(rgba(0x004454aa).into()), text: Some(rgba(0xbbbbbbff).into()), + status_bar_background: Some(rgba(0x00212bff).into()), + title_bar_background: Some(rgba(0x002c39ff).into()), tab_inactive_background: Some(rgba(0x004052ff).into()), tab_active_background: Some(rgba(0x002b37ff).into()), editor_background: Some(rgba(0x002b36ff).into()), @@ -227,6 +229,8 @@ pub fn solarized() -> UserThemeFamily { element_selected: Some(rgba(0xdfca88ff).into()), ghost_element_hover: Some(rgba(0xdfca8844).into()), text: Some(rgba(0x333333ff).into()), + status_bar_background: Some(rgba(0xeee8d5ff).into()), + title_bar_background: Some(rgba(0xeee8d5ff).into()), tab_inactive_background: Some(rgba(0xd3cbb7ff).into()), tab_active_background: Some(rgba(0xfdf6e3ff).into()), editor_background: Some(rgba(0xfdf6e3ff).into()), diff --git a/crates/theme2/src/themes/synthwave_84.rs b/crates/theme2/src/themes/synthwave_84.rs index 585d584c6897334b57bd1cfb2414bc1baf4acde5..c0ffca1828bb28a824bfeda612a4bcab4ceb4b61 100644 --- a/crates/theme2/src/themes/synthwave_84.rs +++ b/crates/theme2/src/themes/synthwave_84.rs @@ -26,6 +26,8 @@ pub fn synthwave_84() -> UserThemeFamily { drop_target_background: Some(rgba(0x34294f66).into()), ghost_element_hover: Some(rgba(0x37294d99).into()), text: Some(rgba(0xffffffff).into()), + status_bar_background: Some(rgba(0x241b2fff).into()), + title_bar_background: Some(rgba(0x241b2fff).into()), tab_inactive_background: Some(rgba(0x262335ff).into()), editor_background: Some(rgba(0x262335ff).into()), editor_gutter_background: Some(rgba(0x262335ff).into()), diff --git a/crates/theme_importer/src/vscode/converter.rs b/crates/theme_importer/src/vscode/converter.rs index 4e4b82a2c571c56841850b9022a77ed35c97e425..45b54327cd5464673567b1b045ac0368210fe40e 100644 --- a/crates/theme_importer/src/vscode/converter.rs +++ b/crates/theme_importer/src/vscode/converter.rs @@ -141,6 +141,14 @@ impl VsCodeThemeConverter { .editor_background .as_ref() .traverse(|color| try_parse_color(&color))?, + title_bar_background: vscode_colors + .title_bar_active_background + .as_ref() + .traverse(|color| try_parse_color(&color))?, + status_bar_background: vscode_colors + .status_bar_background + .as_ref() + .traverse(|color| try_parse_color(&color))?, element_background: vscode_colors .button_background .as_ref() From 1f51f74670c78134ae22c14476e10532cc58bafe Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Thu, 7 Dec 2023 22:24:32 -0500 Subject: [PATCH 018/115] Add TODO --- crates/feedback2/src/feedback_modal.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/crates/feedback2/src/feedback_modal.rs b/crates/feedback2/src/feedback_modal.rs index 1b746e1f1f2abd06644e003562b3188b40238aff..6de05b6496d32bd5032682847fac2381bdad3cd3 100644 --- a/crates/feedback2/src/feedback_modal.rs +++ b/crates/feedback2/src/feedback_modal.rs @@ -395,3 +395,4 @@ impl Render for FeedbackModal { } // TODO: Add compilation flags to enable debug mode, where we can simulate sending feedback that both succeeds and fails, so we can test the UI +// TODO: Maybe store email address whenever the modal is closed, versus just on submit, so users can remove it if they want without submitting From efb4ff816ad3817a2360f1017897183d36ec0345 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Thu, 7 Dec 2023 22:32:41 -0500 Subject: [PATCH 019/115] Set tab bar and toolbar backgrounds --- crates/theme2/src/themes/andromeda.rs | 4 ++++ crates/theme2/src/themes/ayu.rs | 6 +++++ crates/theme2/src/themes/dracula.rs | 2 ++ crates/theme2/src/themes/night_owl.rs | 4 ++++ crates/theme2/src/themes/noctis.rs | 22 +++++++++++++++++++ crates/theme2/src/themes/nord.rs | 2 ++ crates/theme2/src/themes/palenight.rs | 6 +++++ crates/theme2/src/themes/rose_pine.rs | 6 +++++ crates/theme_importer/src/vscode/converter.rs | 8 +++++++ 9 files changed, 60 insertions(+) diff --git a/crates/theme2/src/themes/andromeda.rs b/crates/theme2/src/themes/andromeda.rs index e09f0b222f9952f2f335649073dea933ad316243..8c841226eb2cb8b3d30259459916696200ae716a 100644 --- a/crates/theme2/src/themes/andromeda.rs +++ b/crates/theme2/src/themes/andromeda.rs @@ -36,6 +36,8 @@ pub fn andromeda() -> UserThemeFamily { text: Some(rgba(0xd5ced9ff).into()), status_bar_background: Some(rgba(0x23262eff).into()), title_bar_background: Some(rgba(0x23262eff).into()), + toolbar_background: Some(rgba(0x23262eff).into()), + tab_bar_background: Some(rgba(0x23262eff).into()), tab_inactive_background: Some(rgba(0x23262eff).into()), tab_active_background: Some(rgba(0x23262eff).into()), editor_background: Some(rgba(0x23262eff).into()), @@ -196,6 +198,8 @@ pub fn andromeda() -> UserThemeFamily { text: Some(rgba(0xd5ced9ff).into()), status_bar_background: Some(rgba(0x23262eff).into()), title_bar_background: Some(rgba(0x23262eff).into()), + toolbar_background: Some(rgba(0x23262eff).into()), + tab_bar_background: Some(rgba(0x23262eff).into()), tab_inactive_background: Some(rgba(0x23262eff).into()), tab_active_background: Some(rgba(0x262a33ff).into()), editor_background: Some(rgba(0x262a33ff).into()), diff --git a/crates/theme2/src/themes/ayu.rs b/crates/theme2/src/themes/ayu.rs index 762c1a52792d15915dda29a5e8fbf2fdd7e6cd68..8affab4695da42aae622dd416f7810a4b0f4969d 100644 --- a/crates/theme2/src/themes/ayu.rs +++ b/crates/theme2/src/themes/ayu.rs @@ -35,6 +35,8 @@ pub fn ayu() -> UserThemeFamily { text: Some(rgba(0x8a9199ff).into()), status_bar_background: Some(rgba(0xf8f9faff).into()), title_bar_background: Some(rgba(0xf8f9faff).into()), + toolbar_background: Some(rgba(0xf8f9faff).into()), + tab_bar_background: Some(rgba(0xf8f9faff).into()), tab_inactive_background: Some(rgba(0xf8f9faff).into()), tab_active_background: Some(rgba(0xf8f9faff).into()), editor_background: Some(rgba(0xf8f9faff).into()), @@ -308,6 +310,8 @@ pub fn ayu() -> UserThemeFamily { text: Some(rgba(0x707a8cff).into()), status_bar_background: Some(rgba(0x1f2430ff).into()), title_bar_background: Some(rgba(0x1f2430ff).into()), + toolbar_background: Some(rgba(0x1f2430ff).into()), + tab_bar_background: Some(rgba(0x1f2430ff).into()), tab_inactive_background: Some(rgba(0x1f2430ff).into()), tab_active_background: Some(rgba(0x1f2430ff).into()), editor_background: Some(rgba(0x1f2430ff).into()), @@ -581,6 +585,8 @@ pub fn ayu() -> UserThemeFamily { text: Some(rgba(0x565b66ff).into()), status_bar_background: Some(rgba(0x0b0e14ff).into()), title_bar_background: Some(rgba(0x0b0e14ff).into()), + toolbar_background: Some(rgba(0x0b0e14ff).into()), + tab_bar_background: Some(rgba(0x0b0e14ff).into()), tab_inactive_background: Some(rgba(0x0b0e14ff).into()), tab_active_background: Some(rgba(0x0b0e14ff).into()), editor_background: Some(rgba(0x0b0e14ff).into()), diff --git a/crates/theme2/src/themes/dracula.rs b/crates/theme2/src/themes/dracula.rs index c52bdb49b140199cb7e0d29f031754c8daae6b55..f6d793b52605e41129314d1f066fde967b2d3416 100644 --- a/crates/theme2/src/themes/dracula.rs +++ b/crates/theme2/src/themes/dracula.rs @@ -35,6 +35,8 @@ pub fn dracula() -> UserThemeFamily { text: Some(rgba(0xf8f8f2ff).into()), status_bar_background: Some(rgba(0x191a21ff).into()), title_bar_background: Some(rgba(0x21222cff).into()), + toolbar_background: Some(rgba(0x282a36ff).into()), + tab_bar_background: Some(rgba(0x282a36ff).into()), tab_inactive_background: Some(rgba(0x21222cff).into()), tab_active_background: Some(rgba(0x282a36ff).into()), editor_background: Some(rgba(0x282a36ff).into()), diff --git a/crates/theme2/src/themes/night_owl.rs b/crates/theme2/src/themes/night_owl.rs index 94689f2e14e2dbd9cf88f860e1aebf3447d21e1d..2877d2c8a02558904d9eb818a5a9b21f3f29cd84 100644 --- a/crates/theme2/src/themes/night_owl.rs +++ b/crates/theme2/src/themes/night_owl.rs @@ -36,6 +36,8 @@ pub fn night_owl() -> UserThemeFamily { text: Some(rgba(0xd6deebff).into()), status_bar_background: Some(rgba(0x011627ff).into()), title_bar_background: Some(rgba(0x011627ff).into()), + toolbar_background: Some(rgba(0x011627ff).into()), + tab_bar_background: Some(rgba(0x011627ff).into()), tab_inactive_background: Some(rgba(0x01111dff).into()), tab_active_background: Some(rgba(0x0b2942ff).into()), editor_background: Some(rgba(0x011627ff).into()), @@ -224,6 +226,8 @@ pub fn night_owl() -> UserThemeFamily { text: Some(rgba(0x403f53ff).into()), status_bar_background: Some(rgba(0xf0f0f0ff).into()), title_bar_background: Some(rgba(0xf0f0f0ff).into()), + toolbar_background: Some(rgba(0xf0f0f0ff).into()), + tab_bar_background: Some(rgba(0xf0f0f0ff).into()), tab_inactive_background: Some(rgba(0xf0f0f0ff).into()), tab_active_background: Some(rgba(0xf6f6f6ff).into()), editor_background: Some(rgba(0xfbfbfbff).into()), diff --git a/crates/theme2/src/themes/noctis.rs b/crates/theme2/src/themes/noctis.rs index 23202260c6c625b2798d1590c1d19fab9dd389d1..c37186816fe28b4077309957c12f80b13b0e9ffc 100644 --- a/crates/theme2/src/themes/noctis.rs +++ b/crates/theme2/src/themes/noctis.rs @@ -36,6 +36,8 @@ pub fn noctis() -> UserThemeFamily { text: Some(rgba(0xbecfdaff).into()), status_bar_background: Some(rgba(0x07273bff).into()), title_bar_background: Some(rgba(0x07273bff).into()), + toolbar_background: Some(rgba(0x051b29ff).into()), + tab_bar_background: Some(rgba(0x051b29ff).into()), tab_inactive_background: Some(rgba(0x09334eff).into()), tab_active_background: Some(rgba(0x07273bff).into()), editor_background: Some(rgba(0x07273bff).into()), @@ -244,6 +246,8 @@ pub fn noctis() -> UserThemeFamily { text: Some(rgba(0xcbbec2ff).into()), status_bar_background: Some(rgba(0x322a2dff).into()), title_bar_background: Some(rgba(0x322a2dff).into()), + toolbar_background: Some(rgba(0x272022ff).into()), + tab_bar_background: Some(rgba(0x272022ff).into()), tab_inactive_background: Some(rgba(0x413036ff).into()), tab_active_background: Some(rgba(0x322a2dff).into()), editor_background: Some(rgba(0x322a2dff).into()), @@ -452,6 +456,8 @@ pub fn noctis() -> UserThemeFamily { text: Some(rgba(0x005661ff).into()), status_bar_background: Some(rgba(0xcaedf2ff).into()), title_bar_background: Some(rgba(0xe7f2f3ff).into()), + toolbar_background: Some(rgba(0xe1eeefff).into()), + tab_bar_background: Some(rgba(0xe1eeefff).into()), tab_inactive_background: Some(rgba(0xcaedf2ff).into()), tab_active_background: Some(rgba(0xf4f6f6ff).into()), editor_background: Some(rgba(0xf4f6f6ff).into()), @@ -660,6 +666,8 @@ pub fn noctis() -> UserThemeFamily { text: Some(rgba(0x0c006bff).into()), status_bar_background: Some(rgba(0xe2dff6ff).into()), title_bar_background: Some(rgba(0xedecf8ff).into()), + toolbar_background: Some(rgba(0xe9e7f3ff).into()), + tab_bar_background: Some(rgba(0xe9e7f3ff).into()), tab_inactive_background: Some(rgba(0xe2dff6ff).into()), tab_active_background: Some(rgba(0xf2f1f8ff).into()), editor_background: Some(rgba(0xf2f1f8ff).into()), @@ -868,6 +876,8 @@ pub fn noctis() -> UserThemeFamily { text: Some(rgba(0x005661ff).into()), status_bar_background: Some(rgba(0xf0e9d6ff).into()), title_bar_background: Some(rgba(0xf9f1e1ff).into()), + toolbar_background: Some(rgba(0xf6eddaff).into()), + tab_bar_background: Some(rgba(0xf6eddaff).into()), tab_inactive_background: Some(rgba(0xf0e9d6ff).into()), tab_active_background: Some(rgba(0xfef8ecff).into()), editor_background: Some(rgba(0xfef8ecff).into()), @@ -1076,6 +1086,8 @@ pub fn noctis() -> UserThemeFamily { text: Some(rgba(0xc5cdd3ff).into()), status_bar_background: Some(rgba(0x1b2932ff).into()), title_bar_background: Some(rgba(0x1b2932ff).into()), + toolbar_background: Some(rgba(0x0e1920ff).into()), + tab_bar_background: Some(rgba(0x0e1920ff).into()), tab_inactive_background: Some(rgba(0x202e37ff).into()), tab_active_background: Some(rgba(0x1b2932ff).into()), editor_background: Some(rgba(0x1b2932ff).into()), @@ -1284,6 +1296,8 @@ pub fn noctis() -> UserThemeFamily { text: Some(rgba(0xb2cacdff).into()), status_bar_background: Some(rgba(0x041d20ff).into()), title_bar_background: Some(rgba(0x041d20ff).into()), + toolbar_background: Some(rgba(0x03191bff).into()), + tab_bar_background: Some(rgba(0x03191bff).into()), tab_inactive_background: Some(rgba(0x062e32ff).into()), tab_active_background: Some(rgba(0x052529ff).into()), editor_background: Some(rgba(0x052529ff).into()), @@ -1492,6 +1506,8 @@ pub fn noctis() -> UserThemeFamily { text: Some(rgba(0xb2cacdff).into()), status_bar_background: Some(rgba(0x031417ff).into()), title_bar_background: Some(rgba(0x031417ff).into()), + toolbar_background: Some(rgba(0x020c0eff).into()), + tab_bar_background: Some(rgba(0x020c0eff).into()), tab_inactive_background: Some(rgba(0x062e32ff).into()), tab_active_background: Some(rgba(0x031417ff).into()), editor_background: Some(rgba(0x031417ff).into()), @@ -1700,6 +1716,8 @@ pub fn noctis() -> UserThemeFamily { text: Some(rgba(0xb2cacdff).into()), status_bar_background: Some(rgba(0x031417ff).into()), title_bar_background: Some(rgba(0x031417ff).into()), + toolbar_background: Some(rgba(0x020c0eff).into()), + tab_bar_background: Some(rgba(0x020c0eff).into()), tab_inactive_background: Some(rgba(0x062e32ff).into()), tab_active_background: Some(rgba(0x031417ff).into()), editor_background: Some(rgba(0x031417ff).into()), @@ -1908,6 +1926,8 @@ pub fn noctis() -> UserThemeFamily { text: Some(rgba(0xc5c2d6ff).into()), status_bar_background: Some(rgba(0x292640ff).into()), title_bar_background: Some(rgba(0x292640ff).into()), + toolbar_background: Some(rgba(0x1f1d30ff).into()), + tab_bar_background: Some(rgba(0x1f1d30ff).into()), tab_inactive_background: Some(rgba(0x2f2c49ff).into()), tab_active_background: Some(rgba(0x292640ff).into()), editor_background: Some(rgba(0x292640ff).into()), @@ -2116,6 +2136,8 @@ pub fn noctis() -> UserThemeFamily { text: Some(rgba(0xccbfd9ff).into()), status_bar_background: Some(rgba(0x30243dff).into()), title_bar_background: Some(rgba(0x30243dff).into()), + toolbar_background: Some(rgba(0x291d35ff).into()), + tab_bar_background: Some(rgba(0x291d35ff).into()), tab_inactive_background: Some(rgba(0x3d2e4dff).into()), tab_active_background: Some(rgba(0x30243dff).into()), editor_background: Some(rgba(0x30243dff).into()), diff --git a/crates/theme2/src/themes/nord.rs b/crates/theme2/src/themes/nord.rs index f1111d86952662f1e8e2f7e6453e6c6e8cd40c07..a0f0c1fbf77a2e31cfe33eb3cb6e611ab2cea9fe 100644 --- a/crates/theme2/src/themes/nord.rs +++ b/crates/theme2/src/themes/nord.rs @@ -35,6 +35,8 @@ pub fn nord() -> UserThemeFamily { text: Some(rgba(0xd8dee9ff).into()), status_bar_background: Some(rgba(0x3b4252ff).into()), title_bar_background: Some(rgba(0x2e3440ff).into()), + toolbar_background: Some(rgba(0x2e3440ff).into()), + tab_bar_background: Some(rgba(0x2e3440ff).into()), tab_inactive_background: Some(rgba(0x2e3440ff).into()), tab_active_background: Some(rgba(0x3b4252ff).into()), editor_background: Some(rgba(0x2e3440ff).into()), diff --git a/crates/theme2/src/themes/palenight.rs b/crates/theme2/src/themes/palenight.rs index 0595f2fb443464f3cd227917d2abee83500b90fe..c825d229cb4cbce89a6ed6aaf68c2e9b0fbc7347 100644 --- a/crates/theme2/src/themes/palenight.rs +++ b/crates/theme2/src/themes/palenight.rs @@ -36,6 +36,8 @@ pub fn palenight() -> UserThemeFamily { text: Some(rgba(0xffffffff).into()), status_bar_background: Some(rgba(0x282c3dff).into()), title_bar_background: Some(rgba(0x292d3eff).into()), + toolbar_background: Some(rgba(0x292d3eff).into()), + tab_bar_background: Some(rgba(0x292d3eff).into()), tab_inactive_background: Some(rgba(0x31364aff).into()), tab_active_background: Some(rgba(0x292d3eff).into()), editor_background: Some(rgba(0x292d3eff).into()), @@ -253,6 +255,8 @@ pub fn palenight() -> UserThemeFamily { text: Some(rgba(0xffffffff).into()), status_bar_background: Some(rgba(0x282c3dff).into()), title_bar_background: Some(rgba(0x292d3eff).into()), + toolbar_background: Some(rgba(0x292d3eff).into()), + tab_bar_background: Some(rgba(0x292d3eff).into()), tab_inactive_background: Some(rgba(0x31364aff).into()), tab_active_background: Some(rgba(0x292d3eff).into()), editor_background: Some(rgba(0x292d3eff).into()), @@ -470,6 +474,8 @@ pub fn palenight() -> UserThemeFamily { text: Some(rgba(0xffffffff).into()), status_bar_background: Some(rgba(0x25293aff).into()), title_bar_background: Some(rgba(0x25293aff).into()), + toolbar_background: Some(rgba(0x25293aff).into()), + tab_bar_background: Some(rgba(0x25293aff).into()), tab_inactive_background: Some(rgba(0x31364aff).into()), tab_active_background: Some(rgba(0x25293aff).into()), editor_background: Some(rgba(0x292d3eff).into()), diff --git a/crates/theme2/src/themes/rose_pine.rs b/crates/theme2/src/themes/rose_pine.rs index b7bff4d5590e99e99f1aa4a9624f329848bf343c..1584877adbb0e6427e5a6cc73272b6f761fd6599 100644 --- a/crates/theme2/src/themes/rose_pine.rs +++ b/crates/theme2/src/themes/rose_pine.rs @@ -36,6 +36,8 @@ pub fn rose_pine() -> UserThemeFamily { text: Some(rgba(0xe0def4ff).into()), status_bar_background: Some(rgba(0x191724ff).into()), title_bar_background: Some(rgba(0x191724ff).into()), + toolbar_background: Some(rgba(0x1f1d2eff).into()), + tab_bar_background: Some(rgba(0x1f1d2eff).into()), tab_inactive_background: Some(rgba(0x000000ff).into()), tab_active_background: Some(rgba(0x6e6a861a).into()), editor_background: Some(rgba(0x191724ff).into()), @@ -211,6 +213,8 @@ pub fn rose_pine() -> UserThemeFamily { text: Some(rgba(0xe0def4ff).into()), status_bar_background: Some(rgba(0x232136ff).into()), title_bar_background: Some(rgba(0x232136ff).into()), + toolbar_background: Some(rgba(0x2a273fff).into()), + tab_bar_background: Some(rgba(0x2a273fff).into()), tab_inactive_background: Some(rgba(0x000000ff).into()), tab_active_background: Some(rgba(0x817c9c14).into()), editor_background: Some(rgba(0x232136ff).into()), @@ -386,6 +390,8 @@ pub fn rose_pine() -> UserThemeFamily { text: Some(rgba(0x575279ff).into()), status_bar_background: Some(rgba(0xfaf4edff).into()), title_bar_background: Some(rgba(0xfaf4edff).into()), + toolbar_background: Some(rgba(0xfffaf3ff).into()), + tab_bar_background: Some(rgba(0xfffaf3ff).into()), tab_inactive_background: Some(rgba(0x000000ff).into()), tab_active_background: Some(rgba(0x6e6a860d).into()), editor_background: Some(rgba(0xfaf4edff).into()), diff --git a/crates/theme_importer/src/vscode/converter.rs b/crates/theme_importer/src/vscode/converter.rs index 45b54327cd5464673567b1b045ac0368210fe40e..48356da34cbabdcd9ac496c3edd4bab3463ad6ec 100644 --- a/crates/theme_importer/src/vscode/converter.rs +++ b/crates/theme_importer/src/vscode/converter.rs @@ -183,6 +183,10 @@ impl VsCodeThemeConverter { .ok() .flatten() }), + tab_bar_background: vscode_colors + .panel_background + .as_ref() + .traverse(|color| try_parse_color(&color))?, tab_active_background: vscode_colors .tab_active_background .as_ref() @@ -191,6 +195,10 @@ impl VsCodeThemeConverter { .tab_inactive_background .as_ref() .traverse(|color| try_parse_color(&color))?, + toolbar_background: vscode_colors + .panel_background + .as_ref() + .traverse(|color| try_parse_color(&color))?, editor_background: vscode_colors .editor_background .as_ref() From 7a9f764aa0ab880aa6a3a0eb7a16196c33fd2f80 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Thu, 7 Dec 2023 23:37:49 -0500 Subject: [PATCH 020/115] Add support for theme family-specific syntax mapping overrides (#3551) This PR adds support for adding a specific set of mappings from Zed syntax tokens to VS Code scopes for a particular theme family. We can use this as a fallback when we aren't otherwise able to rely on the mappings in the theme importer, as sometimes it isn't possible to make a specific enough matcher that works across all of the themes. Release Notes: - N/A --- .../themes/src/vscode/rose-pine/family.json | 5 +++- crates/theme2/src/themes/rose_pine.rs | 6 ++--- crates/theme_importer/Cargo.toml | 2 +- crates/theme_importer/src/main.rs | 15 +++++++++++- crates/theme_importer/src/vscode/converter.rs | 23 +++++++++++++++---- crates/theme_importer/src/vscode/syntax.rs | 2 +- 6 files changed, 42 insertions(+), 11 deletions(-) diff --git a/assets/themes/src/vscode/rose-pine/family.json b/assets/themes/src/vscode/rose-pine/family.json index 1cdcab78420a9560eb0d45de2e0d0097703d6154..3f7b149db8bf0e9e949214e526a755aaa0f60830 100644 --- a/assets/themes/src/vscode/rose-pine/family.json +++ b/assets/themes/src/vscode/rose-pine/family.json @@ -17,5 +17,8 @@ "file_name": "rose-pine-dawn.json", "appearance": "light" } - ] + ], + "syntax": { + "function": ["entity.name"] + } } diff --git a/crates/theme2/src/themes/rose_pine.rs b/crates/theme2/src/themes/rose_pine.rs index 1584877adbb0e6427e5a6cc73272b6f761fd6599..5296047562f23b2cc24daac563cb3e8899947498 100644 --- a/crates/theme2/src/themes/rose_pine.rs +++ b/crates/theme2/src/themes/rose_pine.rs @@ -106,7 +106,7 @@ pub fn rose_pine() -> UserThemeFamily { ( "function".into(), UserHighlightStyle { - color: Some(rgba(0xe0def4ff).into()), + color: Some(rgba(0xebbcbaff).into()), ..Default::default() }, ), @@ -283,7 +283,7 @@ pub fn rose_pine() -> UserThemeFamily { ( "function".into(), UserHighlightStyle { - color: Some(rgba(0xe0def4ff).into()), + color: Some(rgba(0xea9a97ff).into()), ..Default::default() }, ), @@ -460,7 +460,7 @@ pub fn rose_pine() -> UserThemeFamily { ( "function".into(), UserHighlightStyle { - color: Some(rgba(0x575279ff).into()), + color: Some(rgba(0xd7827eff).into()), ..Default::default() }, ), diff --git a/crates/theme_importer/Cargo.toml b/crates/theme_importer/Cargo.toml index bf071912a7f96986008ec8f2ff2468f7a51a644c..82ab18d48d2803a2c4ea844ca42c22590bd377ff 100644 --- a/crates/theme_importer/Cargo.toml +++ b/crates/theme_importer/Cargo.toml @@ -10,7 +10,7 @@ publish = false anyhow.workspace = true convert_case = "0.6.0" gpui = { package = "gpui2", path = "../gpui2" } -indexmap = "1.6.2" +indexmap = { version = "1.6.2", features = ["serde"] } json_comments = "0.2.2" log.workspace = true palette = { version = "0.7.3", default-features = false, features = ["std"] } diff --git a/crates/theme_importer/src/main.rs b/crates/theme_importer/src/main.rs index 80e979df983243da030b23a113fb666cfe52509f..0005d932d4ac621b417982a261047a04950e4827 100644 --- a/crates/theme_importer/src/main.rs +++ b/crates/theme_importer/src/main.rs @@ -12,6 +12,7 @@ use std::str::FromStr; use anyhow::{anyhow, Context, Result}; use convert_case::{Case, Casing}; use gpui::serde_json; +use indexmap::IndexMap; use json_comments::StripComments; use log::LevelFilter; use serde::Deserialize; @@ -27,6 +28,14 @@ struct FamilyMetadata { pub name: String, pub author: String, pub themes: Vec, + + /// Overrides for specific syntax tokens. + /// + /// Use this to ensure certain Zed syntax tokens are matched + /// to an exact set of scopes when it is not otherwise possible + /// to rely on the default mappings in the theme importer. + #[serde(default)] + pub syntax: IndexMap>, } #[derive(Debug, Clone, Copy, Deserialize)] @@ -127,7 +136,11 @@ fn main() -> Result<()> { let vscode_theme: VsCodeTheme = serde_json::from_reader(theme_without_comments) .context(format!("failed to parse theme {theme_file_path:?}"))?; - let converter = VsCodeThemeConverter::new(vscode_theme, theme_metadata); + let converter = VsCodeThemeConverter::new( + vscode_theme, + theme_metadata, + family_metadata.syntax.clone(), + ); let theme = converter.convert()?; diff --git a/crates/theme_importer/src/vscode/converter.rs b/crates/theme_importer/src/vscode/converter.rs index 48356da34cbabdcd9ac496c3edd4bab3463ad6ec..4e9090d2cd74fcc03e8023bae3b27c3e7cd152e5 100644 --- a/crates/theme_importer/src/vscode/converter.rs +++ b/crates/theme_importer/src/vscode/converter.rs @@ -9,7 +9,7 @@ use theme::{ use crate::color::try_parse_color; use crate::util::Traverse; -use crate::vscode::VsCodeTheme; +use crate::vscode::{VsCodeTheme, VsCodeTokenScope}; use crate::ThemeMetadata; use super::ZedSyntaxToken; @@ -32,13 +32,19 @@ pub(crate) fn try_parse_font_style(font_style: &str) -> Option { pub struct VsCodeThemeConverter { theme: VsCodeTheme, theme_metadata: ThemeMetadata, + syntax_overrides: IndexMap>, } impl VsCodeThemeConverter { - pub fn new(theme: VsCodeTheme, theme_metadata: ThemeMetadata) -> Self { + pub fn new( + theme: VsCodeTheme, + theme_metadata: ThemeMetadata, + syntax_overrides: IndexMap>, + ) -> Self { Self { theme, theme_metadata, + syntax_overrides, } } @@ -291,8 +297,17 @@ impl VsCodeThemeConverter { let mut highlight_styles = IndexMap::new(); for syntax_token in ZedSyntaxToken::iter() { - let best_match = syntax_token - .find_best_token_color_match(&self.theme.token_colors) + let override_match = self + .syntax_overrides + .get(&syntax_token.to_string()) + .and_then(|scope| { + self.theme.token_colors.iter().find(|token_color| { + token_color.scope == Some(VsCodeTokenScope::Many(scope.clone())) + }) + }); + + let best_match = override_match + .or_else(|| syntax_token.find_best_token_color_match(&self.theme.token_colors)) .or_else(|| { syntax_token.fallbacks().iter().find_map(|fallback| { fallback.find_best_token_color_match(&self.theme.token_colors) diff --git a/crates/theme_importer/src/vscode/syntax.rs b/crates/theme_importer/src/vscode/syntax.rs index 318eb484c879d76127d425816e60fc0426505115..19a38fdd72c205dbe464bf7b7f64d1c3470c82ec 100644 --- a/crates/theme_importer/src/vscode/syntax.rs +++ b/crates/theme_importer/src/vscode/syntax.rs @@ -2,7 +2,7 @@ use indexmap::IndexMap; use serde::Deserialize; use strum::EnumIter; -#[derive(Debug, Deserialize)] +#[derive(Debug, PartialEq, Eq, Deserialize)] #[serde(untagged)] pub enum VsCodeTokenScope { One(String), From d0a673ec624c802d6528e2d2fd0406a30d3825a5 Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Fri, 8 Dec 2023 12:37:20 +0100 Subject: [PATCH 021/115] buffer_search: Add tooltips, polish keybinds --- crates/search2/src/buffer_search.rs | 62 ++++++++++++++--------------- crates/search2/src/mode.rs | 14 +++++++ crates/search2/src/search.rs | 26 ++++++++---- crates/search2/src/search_bar.rs | 42 ++++++++++--------- crates/ui2/src/components/icon.rs | 2 + 5 files changed, 90 insertions(+), 56 deletions(-) diff --git a/crates/search2/src/buffer_search.rs b/crates/search2/src/buffer_search.rs index cbbeeb0f1260a57a9907e854c9aeb666c078fd90..ccbec98c5d75add8a6cabcefb3658ec002bc8c10 100644 --- a/crates/search2/src/buffer_search.rs +++ b/crates/search2/src/buffer_search.rs @@ -11,14 +11,14 @@ use editor::{Editor, EditorMode}; use futures::channel::oneshot; use gpui::{ actions, div, red, Action, AppContext, Div, EventEmitter, FocusableView, - InteractiveElement as _, IntoElement, ParentElement as _, Render, Styled, Subscription, Task, - View, ViewContext, VisualContext as _, WeakView, WindowContext, + InteractiveElement as _, IntoElement, KeyContext, ParentElement as _, Render, Styled, + Subscription, Task, View, ViewContext, VisualContext as _, WeakView, WindowContext, }; use project::search::SearchQuery; use serde::Deserialize; use std::{any::Any, sync::Arc}; -use ui::{h_stack, Clickable, Icon, IconButton, IconElement}; +use ui::{h_stack, ButtonCommon, Clickable, Icon, IconButton, IconElement, Tooltip}; use util::ResultExt; use workspace::{ item::ItemHandle, @@ -131,13 +131,7 @@ impl Render for BufferSearchBar { let search_button_for_mode = |mode| { let is_active = self.current_mode == mode; - render_search_mode_button( - mode, - is_active, - cx.listener(move |this, _, cx| { - this.activate_search_mode(mode, cx); - }), - ) + render_search_mode_button(mode, is_active) }; let search_option_button = |option| { let is_active = self.search_options.contains(option); @@ -163,23 +157,35 @@ impl Render for BufferSearchBar { }); let should_show_replace_input = self.replace_enabled && supported_options.replacement; let replace_all = should_show_replace_input - .then(|| super::render_replace_button(ReplaceAll, ui::Icon::ReplaceAll)); - let replace_next = should_show_replace_input - .then(|| super::render_replace_button(ReplaceNext, ui::Icon::Replace)); + .then(|| super::render_replace_button(ReplaceAll, ui::Icon::ReplaceAll, "Replace all")); + let replace_next = should_show_replace_input.then(|| { + super::render_replace_button(ReplaceNext, ui::Icon::ReplaceNext, "Replace next") + }); let in_replace = self.replacement_editor.focus_handle(cx).is_focused(cx); + let mut key_context = KeyContext::default(); + key_context.add("BufferSearchBar"); + if in_replace { + key_context.add("in_replace"); + } + h_stack() - .key_context("BufferSearchBar") + .key_context(key_context) .on_action(cx.listener(Self::previous_history_query)) .on_action(cx.listener(Self::next_history_query)) .on_action(cx.listener(Self::dismiss)) .on_action(cx.listener(Self::select_next_match)) .on_action(cx.listener(Self::select_prev_match)) + .on_action(cx.listener(|this, _: &ActivateRegexMode, cx| { + this.activate_search_mode(SearchMode::Regex, cx); + })) + .on_action(cx.listener(|this, _: &ActivateTextMode, cx| { + this.activate_search_mode(SearchMode::Text, cx); + })) .when(self.supported_options().replacement, |this| { this.on_action(cx.listener(Self::toggle_replace)) .when(in_replace, |this| { - this.key_context("in_replace") - .on_action(cx.listener(Self::replace_next)) + this.on_action(cx.listener(Self::replace_next)) .on_action(cx.listener(Self::replace_all)) }) }) @@ -238,21 +244,19 @@ impl Render for BufferSearchBar { h_stack() .gap_0p5() .flex_none() - .child(self.render_action_button(cx)) + .child(self.render_action_button()) .children(match_count) .child(render_nav_button( ui::Icon::ChevronLeft, self.active_match_index.is_some(), - cx.listener(move |this, _, cx| { - this.select_prev_match(&Default::default(), cx); - }), + "Select previous match", + &SelectPrevMatch, )) .child(render_nav_button( ui::Icon::ChevronRight, self.active_match_index.is_some(), - cx.listener(move |this, _, cx| { - this.select_next_match(&Default::default(), cx); - }), + "Select next match", + &SelectNextMatch, )), ) } @@ -597,14 +601,10 @@ impl BufferSearchBar { self.update_matches(cx) } - fn render_action_button(&self, cx: &mut ViewContext) -> impl IntoElement { - // let tooltip_style = theme.tooltip.clone(); - - // let style = theme.search.action_button.clone(); - - IconButton::new("select-all", ui::Icon::SelectAll).on_click(cx.listener(|this, _, cx| { - this.select_all_matches(&SelectAllMatches, cx); - })) + fn render_action_button(&self) -> impl IntoElement { + IconButton::new("select-all", ui::Icon::SelectAll) + .on_click(|_, cx| cx.dispatch_action(SelectAllMatches.boxed_clone())) + .tooltip(|cx| Tooltip::for_action("Select all matches", &SelectAllMatches, cx)) } pub fn activate_search_mode(&mut self, mode: SearchMode, cx: &mut ViewContext) { diff --git a/crates/search2/src/mode.rs b/crates/search2/src/mode.rs index 817fb454d2dcb08953d012fbb9814874c786cb78..3fd53cee49e88a580ec083fc6d71a7409b8f5430 100644 --- a/crates/search2/src/mode.rs +++ b/crates/search2/src/mode.rs @@ -1,3 +1,7 @@ +use gpui::{Action, SharedString}; + +use crate::{ActivateRegexMode, ActivateSemanticMode, ActivateTextMode}; + // TODO: Update the default search mode to get from config #[derive(Copy, Clone, Debug, Default, PartialEq)] pub enum SearchMode { @@ -15,6 +19,16 @@ impl SearchMode { SearchMode::Regex => "Regex", } } + pub(crate) fn tooltip(&self) -> SharedString { + format!("Activate {} Mode", self.label()).into() + } + pub(crate) fn action(&self) -> Box { + match self { + SearchMode::Text => ActivateTextMode.boxed_clone(), + SearchMode::Semantic => ActivateSemanticMode.boxed_clone(), + SearchMode::Regex => ActivateRegexMode.boxed_clone(), + } + } } pub(crate) fn next_mode(mode: &SearchMode, semantic_enabled: bool) -> SearchMode { diff --git a/crates/search2/src/search.rs b/crates/search2/src/search.rs index 13def6b4a7ea4d6918353f117e37d5ee8fd3a96c..c98a033c72b327115ffadd6a96a7596426be69e9 100644 --- a/crates/search2/src/search.rs +++ b/crates/search2/src/search.rs @@ -3,7 +3,7 @@ pub use buffer_search::BufferSearchBar; use gpui::{actions, Action, AppContext, IntoElement}; pub use mode::SearchMode; use project::search::SearchQuery; -use ui::prelude::*; +use ui::{prelude::*, Tooltip}; use ui::{ButtonStyle, Icon, IconButton}; //pub use project_search::{ProjectSearchBar, ProjectSearchView}; // use theme::components::{ @@ -84,7 +84,7 @@ impl SearchOptions { } pub fn as_button(&self, active: bool) -> impl IntoElement { - IconButton::new(0, self.icon()) + IconButton::new(self.label(), self.icon()) .on_click({ let action = self.to_toggle_action(); move |_, cx| { @@ -93,26 +93,38 @@ impl SearchOptions { }) .style(ButtonStyle::Subtle) .when(active, |button| button.style(ButtonStyle::Filled)) + .tooltip({ + let action = self.to_toggle_action(); + let label: SharedString = format!("Toggle {}", self.label()).into(); + move |cx| Tooltip::for_action(label.clone(), &*action, cx) + }) } } fn toggle_replace_button(active: bool) -> impl IntoElement { // todo: add toggle_replace button - IconButton::new(0, Icon::Replace) + IconButton::new("buffer-search-bar-toggle-replace-button", Icon::Replace) .on_click(|_, cx| { cx.dispatch_action(Box::new(ToggleReplace)); cx.notify(); }) .style(ButtonStyle::Subtle) .when(active, |button| button.style(ButtonStyle::Filled)) + .tooltip(|cx| Tooltip::for_action("Toggle replace", &ToggleReplace, cx)) } fn render_replace_button( action: impl Action + 'static + Send + Sync, icon: Icon, + tooltip: &'static str, ) -> impl IntoElement { - // todo: add tooltip - IconButton::new(0, icon).on_click(move |_, cx| { - cx.dispatch_action(action.boxed_clone()); - }) + let id: SharedString = format!("search-replace-{}", action.name()).into(); + IconButton::new(id, icon) + .tooltip({ + let action = action.boxed_clone(); + move |cx| Tooltip::for_action(tooltip, &*action, cx) + }) + .on_click(move |_, cx| { + cx.dispatch_action(action.boxed_clone()); + }) } diff --git a/crates/search2/src/search_bar.rs b/crates/search2/src/search_bar.rs index 44ba287d78820db152d9c639e6e7082888ac28d3..dcc46ac228b702f2f81f1ab99baaf3d44631ab2f 100644 --- a/crates/search2/src/search_bar.rs +++ b/crates/search2/src/search_bar.rs @@ -1,30 +1,36 @@ -use gpui::{ClickEvent, IntoElement, WindowContext}; -use ui::prelude::*; +use gpui::{Action, IntoElement}; +use ui::{prelude::*, Tooltip}; use ui::{Button, IconButton}; use crate::mode::SearchMode; pub(super) fn render_nav_button( icon: ui::Icon, - _active: bool, - on_click: impl Fn(&ClickEvent, &mut WindowContext) + 'static, + active: bool, + tooltip: &'static str, + action: &'static dyn Action, ) -> impl IntoElement { - // let tooltip_style = cx.theme().tooltip.clone(); - // let cursor_style = if active { - // CursorStyle::PointingHand - // } else { - // CursorStyle::default() - // }; - // enum NavButton {} - IconButton::new("search-nav-button", icon).on_click(on_click) + IconButton::new( + SharedString::from(format!("search-nav-button-{}", action.name())), + icon, + ) + .on_click(|_, cx| cx.dispatch_action(action.boxed_clone())) + .tooltip(move |cx| Tooltip::for_action(tooltip, action, cx)) + .disabled(!active) } -pub(crate) fn render_search_mode_button( - mode: SearchMode, - is_active: bool, - on_click: impl Fn(&ClickEvent, &mut WindowContext) + 'static, -) -> Button { +pub(crate) fn render_search_mode_button(mode: SearchMode, is_active: bool) -> Button { Button::new(mode.label(), mode.label()) .selected(is_active) - .on_click(on_click) + .on_click({ + let action = mode.action(); + move |_, cx| { + cx.dispatch_action(action.boxed_clone()); + } + }) + .tooltip({ + let action = mode.action(); + let tooltip_text = mode.tooltip(); + move |cx| Tooltip::for_action(tooltip_text.clone(), &*action, cx) + }) } diff --git a/crates/ui2/src/components/icon.rs b/crates/ui2/src/components/icon.rs index a5b09782f569c46b1b7d26c61fe09deef4d7e90e..f534e04b68fda5d4991ed6d56c3cf5005336964d 100644 --- a/crates/ui2/src/components/icon.rs +++ b/crates/ui2/src/components/icon.rs @@ -80,6 +80,7 @@ pub enum Icon { Quote, Replace, ReplaceAll, + ReplaceNext, Screen, SelectAll, Split, @@ -157,6 +158,7 @@ impl Icon { Icon::Quote => "icons/quote.svg", Icon::Replace => "icons/replace.svg", Icon::ReplaceAll => "icons/replace_all.svg", + Icon::ReplaceNext => "icons/replace_next.svg", Icon::Screen => "icons/desktop.svg", Icon::SelectAll => "icons/select-all.svg", Icon::Split => "icons/split.svg", From 28dfd3ab43a5381cace8848ab1030e320ba7849e Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Fri, 8 Dec 2023 14:04:41 +0100 Subject: [PATCH 022/115] Paint scrollbars We still need to wire up mouse listeners. --- crates/editor2/src/element.rs | 384 ++++++++++++++++------------------ 1 file changed, 186 insertions(+), 198 deletions(-) diff --git a/crates/editor2/src/element.rs b/crates/editor2/src/element.rs index ad66ed8090749ab3d69b71a9aa30d7b77e701465..5f0297b36131b87d6633e4d3dfde1ef43bd524dc 100644 --- a/crates/editor2/src/element.rs +++ b/crates/editor2/src/element.rs @@ -1230,203 +1230,189 @@ impl EditorElement { bounds.upper_right().x - self.style.scrollbar_width } - // fn paint_scrollbar( - // &mut self, - // bounds: Bounds, - // layout: &mut LayoutState, - // editor: &Editor, - // cx: &mut ViewContext, - // ) { - // enum ScrollbarMouseHandlers {} - // if layout.mode != EditorMode::Full { - // return; - // } - - // let style = &self.style.theme.scrollbar; - - // let top = bounds.min_y; - // let bottom = bounds.max_y; - // let right = bounds.max_x; - // let left = self.scrollbar_left(&bounds); - // let row_range = &layout.scrollbar_row_range; - // let max_row = layout.max_row as f32 + (row_range.end - row_range.start); - - // let mut height = bounds.height(); - // let mut first_row_y_offset = 0.0; - - // // Impose a minimum height on the scrollbar thumb - // let row_height = height / max_row; - // let min_thumb_height = - // style.min_height_factor * cx.font_cache.line_height(self.style.text.font_size); - // let thumb_height = (row_range.end - row_range.start) * row_height; - // if thumb_height < min_thumb_height { - // first_row_y_offset = (min_thumb_height - thumb_height) / 2.0; - // height -= min_thumb_height - thumb_height; - // } - - // let y_for_row = |row: f32| -> f32 { top + first_row_y_offset + row * row_height }; - - // let thumb_top = y_for_row(row_range.start) - first_row_y_offset; - // let thumb_bottom = y_for_row(row_range.end) + first_row_y_offset; - // let track_bounds = Bounds::::from_points(point(left, top), point(right, bottom)); - // let thumb_bounds = Bounds::::from_points(point(left, thumb_top), point(right, thumb_bottom)); - - // if layout.show_scrollbars { - // cx.paint_quad(Quad { - // bounds: track_bounds, - // border: style.track.border.into(), - // background: style.track.background_color, - // ..Default::default() - // }); - // let scrollbar_settings = settings::get::(cx).scrollbar; - // let theme = theme::current(cx); - // let scrollbar_theme = &theme.editor.scrollbar; - // if layout.is_singleton && scrollbar_settings.selections { - // let start_anchor = Anchor::min(); - // let end_anchor = Anchor::max; - // let color = scrollbar_theme.selections; - // let border = Border { - // width: 1., - // color: style.thumb.border.color, - // overlay: false, - // top: false, - // right: true, - // bottom: false, - // left: true, - // }; - // let mut push_region = |start: DisplayPoint, end: DisplayPoint| { - // let start_y = y_for_row(start.row() as f32); - // let mut end_y = y_for_row(end.row() as f32); - // if end_y - start_y < 1. { - // end_y = start_y + 1.; - // } - // let bounds = Bounds::::from_points(point(left, start_y), point(right, end_y)); - - // cx.paint_quad(Quad { - // bounds, - // background: Some(color), - // border: border.into(), - // corner_radii: style.thumb.corner_radii.into(), - // }) - // }; - // let background_ranges = editor - // .background_highlight_row_ranges::( - // start_anchor..end_anchor, - // &layout.position_map.snapshot, - // 50000, - // ); - // for row in background_ranges { - // let start = row.start(); - // let end = row.end(); - // push_region(*start, *end); - // } - // } - - // if layout.is_singleton && scrollbar_settings.git_diff { - // let diff_style = scrollbar_theme.git.clone(); - // for hunk in layout - // .position_map - // .snapshot - // .buffer_snapshot - // .git_diff_hunks_in_range(0..(max_row.floor() as u32)) - // { - // let start_display = Point::new(hunk.buffer_range.start, 0) - // .to_display_point(&layout.position_map.snapshot.display_snapshot); - // let end_display = Point::new(hunk.buffer_range.end, 0) - // .to_display_point(&layout.position_map.snapshot.display_snapshot); - // let start_y = y_for_row(start_display.row() as f32); - // let mut end_y = if hunk.buffer_range.start == hunk.buffer_range.end { - // y_for_row((end_display.row() + 1) as f32) - // } else { - // y_for_row((end_display.row()) as f32) - // }; - - // if end_y - start_y < 1. { - // end_y = start_y + 1.; - // } - // let bounds = Bounds::::from_points(point(left, start_y), point(right, end_y)); - - // let color = match hunk.status() { - // DiffHunkStatus::Added => diff_style.inserted, - // DiffHunkStatus::Modified => diff_style.modified, - // DiffHunkStatus::Removed => diff_style.deleted, - // }; - - // let border = Border { - // width: 1., - // color: style.thumb.border.color, - // overlay: false, - // top: false, - // right: true, - // bottom: false, - // left: true, - // }; - - // cx.paint_quad(Quad { - // bounds, - // background: Some(color), - // border: border.into(), - // corner_radii: style.thumb.corner_radii.into(), - // }) - // } - // } - - // cx.paint_quad(Quad { - // bounds: thumb_bounds, - // border: style.thumb.border.into(), - // background: style.thumb.background_color, - // corner_radii: style.thumb.corner_radii.into(), - // }); - // } - - // cx.scene().push_cursor_region(CursorRegion { - // bounds: track_bounds, - // style: CursorStyle::Arrow, - // }); - // let region_id = cx.view_id(); - // cx.scene().push_mouse_region( - // MouseRegion::new::(region_id, region_id, track_bounds) - // .on_move(move |event, editor: &mut Editor, cx| { - // if event.pressed_button.is_none() { - // editor.scroll_manager.show_scrollbar(cx); - // } - // }) - // .on_down(MouseButton::Left, { - // let row_range = row_range.clone(); - // move |event, editor: &mut Editor, cx| { - // let y = event.position.y; - // if y < thumb_top || thumb_bottom < y { - // let center_row = ((y - top) * max_row as f32 / height).round() as u32; - // let top_row = center_row - // .saturating_sub((row_range.end - row_range.start) as u32 / 2); - // let mut position = editor.scroll_position(cx); - // position.set_y(top_row as f32); - // editor.set_scroll_position(position, cx); - // } else { - // editor.scroll_manager.show_scrollbar(cx); - // } - // } - // }) - // .on_drag(MouseButton::Left, { - // move |event, editor: &mut Editor, cx| { - // if event.end { - // return; - // } - - // let y = event.prev_mouse_position.y; - // let new_y = event.position.y; - // if thumb_top < y && y < thumb_bottom { - // let mut position = editor.scroll_position(cx); - // position.set_y(position.y + (new_y - y) * (max_row as f32) / height); - // if position.y < 0.0 { - // position.set_y(0.); - // } - // editor.set_scroll_position(position, cx); - // } - // } - // }), - // ); - // } + fn paint_scrollbar( + &mut self, + bounds: Bounds, + layout: &mut LayoutState, + cx: &mut WindowContext, + ) { + if layout.mode != EditorMode::Full { + return; + } + + let top = bounds.origin.y; + let bottom = bounds.lower_left().y; + let right = bounds.lower_right().x; + let left = self.scrollbar_left(&bounds); + let row_range = &layout.scrollbar_row_range; + let max_row = layout.max_row as f32 + (row_range.end - row_range.start); + + let mut height = bounds.size.height; + let mut first_row_y_offset = px(0.0); + + // Impose a minimum height on the scrollbar thumb + let row_height = height / max_row; + let min_thumb_height = layout.position_map.line_height; + let thumb_height = (row_range.end - row_range.start) * row_height; + if thumb_height < min_thumb_height { + first_row_y_offset = (min_thumb_height - thumb_height) / 2.0; + height -= min_thumb_height - thumb_height; + } + + let y_for_row = |row: f32| -> Pixels { top + first_row_y_offset + row * row_height }; + + let thumb_top = y_for_row(row_range.start) - first_row_y_offset; + let thumb_bottom = y_for_row(row_range.end) + first_row_y_offset; + let track_bounds = Bounds::from_corners(point(left, top), point(right, bottom)); + let thumb_bounds = Bounds::from_corners(point(left, thumb_top), point(right, thumb_bottom)); + + if layout.show_scrollbars { + cx.paint_quad( + track_bounds, + Corners::default(), + gpui::blue(), // todo!("style.track.background_color") + Edges::default(), // todo!("style.track.border") + transparent_black(), // todo!("style.track.border") + ); + let scrollbar_settings = EditorSettings::get_global(cx).scrollbar; + if layout.is_singleton && scrollbar_settings.selections { + let start_anchor = Anchor::min(); + let end_anchor = Anchor::max(); + let background_ranges = self + .editor + .read(cx) + .background_highlight_row_ranges::( + start_anchor..end_anchor, + &layout.position_map.snapshot, + 50000, + ); + for range in background_ranges { + let start_y = y_for_row(range.start().row() as f32); + let mut end_y = y_for_row(range.end().row() as f32); + if end_y - start_y < px(1.) { + end_y = start_y + px(1.); + } + let bounds = Bounds::from_corners(point(left, start_y), point(right, end_y)); + cx.paint_quad( + bounds, + Corners::default(), + gpui::yellow(), // todo!("theme.editor.scrollbar") + Edges { + top: Pixels::ZERO, + right: px(1.), + bottom: Pixels::ZERO, + left: px(1.), + }, + gpui::green(), // todo!("style.thumb.border.color") + ); + } + } + + if layout.is_singleton && scrollbar_settings.git_diff { + for hunk in layout + .position_map + .snapshot + .buffer_snapshot + .git_diff_hunks_in_range(0..(max_row.floor() as u32)) + { + let start_display = Point::new(hunk.buffer_range.start, 0) + .to_display_point(&layout.position_map.snapshot.display_snapshot); + let end_display = Point::new(hunk.buffer_range.end, 0) + .to_display_point(&layout.position_map.snapshot.display_snapshot); + let start_y = y_for_row(start_display.row() as f32); + let mut end_y = if hunk.buffer_range.start == hunk.buffer_range.end { + y_for_row((end_display.row() + 1) as f32) + } else { + y_for_row((end_display.row()) as f32) + }; + + if end_y - start_y < px(1.) { + end_y = start_y + px(1.); + } + let bounds = Bounds::from_corners(point(left, start_y), point(right, end_y)); + + let color = match hunk.status() { + DiffHunkStatus::Added => gpui::green(), // todo!("use the right color") + DiffHunkStatus::Modified => gpui::yellow(), // todo!("use the right color") + DiffHunkStatus::Removed => gpui::red(), // todo!("use the right color") + }; + cx.paint_quad( + bounds, + Corners::default(), + color, + Edges { + top: Pixels::ZERO, + right: px(1.), + bottom: Pixels::ZERO, + left: px(1.), + }, + gpui::green(), // todo!("style.thumb.border.color") + ); + } + } + + cx.paint_quad( + thumb_bounds, + Corners::default(), + gpui::black(), // todo!("style.thumb.background_color") + Edges { + top: Pixels::ZERO, + right: px(1.), + bottom: Pixels::ZERO, + left: px(1.), + }, + gpui::green(), // todo!("style.thumb.border.color") + ); + } + + // cx.scene().push_cursor_region(CursorRegion { + // bounds: track_bounds, + // style: CursorStyle::Arrow, + // }); + // let region_id = cx.view_id(); + // cx.scene().push_mouse_region( + // MouseRegion::new::(region_id, region_id, track_bounds) + // .on_move(move |event, editor: &mut Editor, cx| { + // if event.pressed_button.is_none() { + // editor.scroll_manager.show_scrollbar(cx); + // } + // }) + // .on_down(MouseButton::Left, { + // let row_range = row_range.clone(); + // move |event, editor: &mut Editor, cx| { + // let y = event.position.y; + // if y < thumb_top || thumb_bottom < y { + // let center_row = ((y - top) * max_row as f32 / height).round() as u32; + // let top_row = center_row + // .saturating_sub((row_range.end - row_range.start) as u32 / 2); + // let mut position = editor.scroll_position(cx); + // position.set_y(top_row as f32); + // editor.set_scroll_position(position, cx); + // } else { + // editor.scroll_manager.show_scrollbar(cx); + // } + // } + // }) + // .on_drag(MouseButton::Left, { + // move |event, editor: &mut Editor, cx| { + // if event.end { + // return; + // } + + // let y = event.prev_mouse_position.y; + // let new_y = event.position.y; + // if thumb_top < y && y < thumb_bottom { + // let mut position = editor.scroll_position(cx); + // position.set_y(position.y + (new_y - y) * (max_row as f32) / height); + // if position.y < 0.0 { + // position.set_y(0.); + // } + // editor.set_scroll_position(position, cx); + // } + // } + // }), + // ); + } #[allow(clippy::too_many_arguments)] fn paint_highlighted_range( @@ -2840,9 +2826,11 @@ impl Element for EditorElement { cx.with_z_index(1, |cx| { cx.with_element_id(Some("editor_blocks"), |cx| { self.paint_blocks(bounds, &mut layout, cx); - }) + }); }) } + + self.paint_scrollbar(bounds, &mut layout, cx); }); }); }) From 9b0bea32edd98588a90655a11372842b62a95f8e Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Fri, 8 Dec 2023 14:24:58 +0100 Subject: [PATCH 023/115] :art: --- crates/editor2/src/element.rs | 62 ++++++++++++++--------------------- 1 file changed, 24 insertions(+), 38 deletions(-) diff --git a/crates/editor2/src/element.rs b/crates/editor2/src/element.rs index 5f0297b36131b87d6633e4d3dfde1ef43bd524dc..c9e70ec2ef10396f9fab235385c1579ff2ce4050 100644 --- a/crates/editor2/src/element.rs +++ b/crates/editor2/src/element.rs @@ -385,17 +385,17 @@ impl EditorElement { gutter_bounds: Bounds, stacking_order: &StackingOrder, cx: &mut ViewContext, - ) -> bool { + ) { let mut click_count = event.click_count; let modifiers = event.modifiers; if gutter_bounds.contains_point(&event.position) { click_count = 3; // Simulate triple-click when clicking the gutter to select lines } else if !text_bounds.contains_point(&event.position) { - return false; + return; } if !cx.was_top_layer(&event.position, stacking_order) { - return false; + return; } let point_for_position = position_map.point_for_position(text_bounds, event.position); @@ -427,7 +427,7 @@ impl EditorElement { ); } - true + cx.stop_propagation(); } fn mouse_right_down( @@ -436,9 +436,9 @@ impl EditorElement { position_map: &PositionMap, text_bounds: Bounds, cx: &mut ViewContext, - ) -> bool { + ) { if !text_bounds.contains_point(&event.position) { - return false; + return; } let point_for_position = position_map.point_for_position(text_bounds, event.position); mouse_context_menu::deploy_context_menu( @@ -447,7 +447,7 @@ impl EditorElement { point_for_position.previous_valid, cx, ); - true + cx.stop_propagation(); } fn mouse_up( @@ -457,7 +457,7 @@ impl EditorElement { text_bounds: Bounds, stacking_order: &StackingOrder, cx: &mut ViewContext, - ) -> bool { + ) { let end_selection = editor.has_pending_selection(); let pending_nonempty_selections = editor.has_pending_nonempty_selection(); @@ -479,10 +479,10 @@ impl EditorElement { go_to_fetched_definition(editor, point, split, cx); } - return true; + cx.stop_propagation(); + } else if end_selection { + cx.stop_propagation(); } - - end_selection } fn mouse_moved( @@ -493,7 +493,7 @@ impl EditorElement { gutter_bounds: Bounds, stacking_order: &StackingOrder, cx: &mut ViewContext, - ) -> bool { + ) { let modifiers = event.modifiers; if editor.has_pending_selection() && event.pressed_button == Some(MouseButton::Left) { let point_for_position = position_map.point_for_position(text_bounds, event.position); @@ -562,11 +562,13 @@ impl EditorElement { } } - true + cx.stop_propagation(); } else { update_go_to_definition_link(editor, None, modifiers.command, modifiers.shift, cx); hover_at(editor, None, cx); - gutter_hovered && was_top + if gutter_hovered && was_top { + cx.stop_propagation(); + } } } @@ -576,9 +578,9 @@ impl EditorElement { position_map: &PositionMap, bounds: &InteractiveBounds, cx: &mut ViewContext, - ) -> bool { + ) { if !bounds.visibly_contains(&event.position, cx) { - return false; + return; } let line_height = position_map.line_height; @@ -602,8 +604,7 @@ impl EditorElement { let y = f32::from((scroll_position.y * line_height - delta.y) / line_height); let scroll_position = point(x, y).clamp(&point(0., 0.), &position_map.scroll_max); editor.scroll(scroll_position, axis, cx); - - true + cx.stop_propagation(); } fn paint_background( @@ -2438,12 +2439,9 @@ impl EditorElement { return; } - let handled = editor.update(cx, |editor, cx| { + editor.update(cx, |editor, cx| { Self::scroll(editor, event, &position_map, &interactive_bounds, cx) }); - if handled { - cx.stop_propagation(); - } } }); @@ -2457,7 +2455,7 @@ impl EditorElement { return; } - let handled = match event.button { + match event.button { MouseButton::Left => editor.update(cx, |editor, cx| { Self::mouse_left_down( editor, @@ -2472,12 +2470,8 @@ impl EditorElement { MouseButton::Right => editor.update(cx, |editor, cx| { Self::mouse_right_down(editor, event, &position_map, text_bounds, cx) }), - _ => false, + _ => {} }; - - if handled { - cx.stop_propagation() - } } }); @@ -2487,7 +2481,7 @@ impl EditorElement { let stacking_order = cx.stacking_order().clone(); move |event: &MouseUpEvent, phase, cx| { - let handled = editor.update(cx, |editor, cx| { + editor.update(cx, |editor, cx| { Self::mouse_up( editor, event, @@ -2497,10 +2491,6 @@ impl EditorElement { cx, ) }); - - if handled { - cx.stop_propagation() - } } }); cx.on_mouse_event({ @@ -2513,7 +2503,7 @@ impl EditorElement { return; } - let stop_propogating = editor.update(cx, |editor, cx| { + editor.update(cx, |editor, cx| { Self::mouse_moved( editor, event, @@ -2524,10 +2514,6 @@ impl EditorElement { cx, ) }); - - if stop_propogating { - cx.stop_propagation() - } } }); } From 53d77b192ae3d204e20bf3e5ac6842d7e2a1ed13 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 8 Dec 2023 10:48:27 -0500 Subject: [PATCH 024/115] Don't match `support.function` for `function` --- crates/theme2/src/themes/ayu.rs | 6 +++--- crates/theme_importer/src/vscode/syntax.rs | 6 +----- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/crates/theme2/src/themes/ayu.rs b/crates/theme2/src/themes/ayu.rs index 8affab4695da42aae622dd416f7810a4b0f4969d..da8c08429758e91a1a0ce87d2a824d3854abae5d 100644 --- a/crates/theme2/src/themes/ayu.rs +++ b/crates/theme2/src/themes/ayu.rs @@ -134,7 +134,7 @@ pub fn ayu() -> UserThemeFamily { ( "function".into(), UserHighlightStyle { - color: Some(rgba(0xf07171ff).into()), + color: Some(rgba(0xf2ae49ff).into()), ..Default::default() }, ), @@ -409,7 +409,7 @@ pub fn ayu() -> UserThemeFamily { ( "function".into(), UserHighlightStyle { - color: Some(rgba(0xf28779ff).into()), + color: Some(rgba(0xffd173ff).into()), ..Default::default() }, ), @@ -684,7 +684,7 @@ pub fn ayu() -> UserThemeFamily { ( "function".into(), UserHighlightStyle { - color: Some(rgba(0xf07178ff).into()), + color: Some(rgba(0xffb454ff).into()), ..Default::default() }, ), diff --git a/crates/theme_importer/src/vscode/syntax.rs b/crates/theme_importer/src/vscode/syntax.rs index 19a38fdd72c205dbe464bf7b7f64d1c3470c82ec..1194548081e56d778a9a2fd8a2be148b8e67f1ce 100644 --- a/crates/theme_importer/src/vscode/syntax.rs +++ b/crates/theme_importer/src/vscode/syntax.rs @@ -190,11 +190,7 @@ impl ZedSyntaxToken { "markup.bold markup.italic", ], ZedSyntaxToken::Enum => vec!["support.type.enum"], - ZedSyntaxToken::Function => vec![ - "entity.name.function", - "variable.function", - "support.function", - ], + ZedSyntaxToken::Function => vec!["entity.name.function", "variable.function"], ZedSyntaxToken::Hint => vec![], ZedSyntaxToken::Keyword => vec![ "keyword", From a8a5b9524ddc9c52e519fea93b0ec6575ad43516 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 8 Dec 2023 11:07:52 -0500 Subject: [PATCH 025/115] Improve matching for punctuation tokens --- crates/theme2/src/themes/ayu.rs | 27 ++- crates/theme2/src/themes/gruvbox.rs | 168 +++++++++++++++ crates/theme2/src/themes/night_owl.rs | 56 +++++ crates/theme2/src/themes/noctis.rs | 231 +++++++++++++++++++++ crates/theme2/src/themes/nord.rs | 23 +- crates/theme2/src/themes/palenight.rs | 84 ++++++++ crates/theme2/src/themes/rose_pine.rs | 84 ++++++++ crates/theme2/src/themes/solarized.rs | 28 +++ crates/theme2/src/themes/synthwave_84.rs | 28 +++ crates/theme_importer/src/vscode/syntax.rs | 5 +- 10 files changed, 729 insertions(+), 5 deletions(-) diff --git a/crates/theme2/src/themes/ayu.rs b/crates/theme2/src/themes/ayu.rs index da8c08429758e91a1a0ce87d2a824d3854abae5d..84b8463758850806fd5e974e0a9a3ccec309f24e 100644 --- a/crates/theme2/src/themes/ayu.rs +++ b/crates/theme2/src/themes/ayu.rs @@ -190,7 +190,7 @@ pub fn ayu() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0x5c6166b3).into()), + color: Some(rgba(0x55b4d480).into()), ..Default::default() }, ), @@ -215,6 +215,13 @@ pub fn ayu() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.special".into(), + UserHighlightStyle { + color: Some(rgba(0x55b4d480).into()), + ..Default::default() + }, + ), ( "string".into(), UserHighlightStyle { @@ -465,7 +472,7 @@ pub fn ayu() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0xcccac2b3).into()), + color: Some(rgba(0x5ccfe680).into()), ..Default::default() }, ), @@ -490,6 +497,13 @@ pub fn ayu() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.special".into(), + UserHighlightStyle { + color: Some(rgba(0x5ccfe680).into()), + ..Default::default() + }, + ), ( "string".into(), UserHighlightStyle { @@ -740,7 +754,7 @@ pub fn ayu() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0xbfbdb6b3).into()), + color: Some(rgba(0x39bae680).into()), ..Default::default() }, ), @@ -765,6 +779,13 @@ pub fn ayu() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.special".into(), + UserHighlightStyle { + color: Some(rgba(0x39bae680).into()), + ..Default::default() + }, + ), ( "string".into(), UserHighlightStyle { diff --git a/crates/theme2/src/themes/gruvbox.rs b/crates/theme2/src/themes/gruvbox.rs index f801d44032598dfcecf820a888b5ff276d94ae9a..9309f40503def77ba0ba1555fc1f1cc71bedffa7 100644 --- a/crates/theme2/src/themes/gruvbox.rs +++ b/crates/theme2/src/themes/gruvbox.rs @@ -155,6 +155,34 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.bracket".into(), + UserHighlightStyle { + color: Some(rgba(0x83a598ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.delimiter".into(), + UserHighlightStyle { + color: Some(rgba(0x83a598ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.list_marker".into(), + UserHighlightStyle { + color: Some(rgba(0x83a598ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.special".into(), + UserHighlightStyle { + color: Some(rgba(0x83a598ff).into()), + ..Default::default() + }, + ), ( "string".into(), UserHighlightStyle { @@ -356,6 +384,34 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.bracket".into(), + UserHighlightStyle { + color: Some(rgba(0x83a598ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.delimiter".into(), + UserHighlightStyle { + color: Some(rgba(0x83a598ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.list_marker".into(), + UserHighlightStyle { + color: Some(rgba(0x83a598ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.special".into(), + UserHighlightStyle { + color: Some(rgba(0x83a598ff).into()), + ..Default::default() + }, + ), ( "string".into(), UserHighlightStyle { @@ -557,6 +613,34 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.bracket".into(), + UserHighlightStyle { + color: Some(rgba(0x83a598ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.delimiter".into(), + UserHighlightStyle { + color: Some(rgba(0x83a598ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.list_marker".into(), + UserHighlightStyle { + color: Some(rgba(0x83a598ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.special".into(), + UserHighlightStyle { + color: Some(rgba(0x83a598ff).into()), + ..Default::default() + }, + ), ( "string".into(), UserHighlightStyle { @@ -758,6 +842,34 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.bracket".into(), + UserHighlightStyle { + color: Some(rgba(0x076678ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.delimiter".into(), + UserHighlightStyle { + color: Some(rgba(0x076678ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.list_marker".into(), + UserHighlightStyle { + color: Some(rgba(0x076678ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.special".into(), + UserHighlightStyle { + color: Some(rgba(0x076678ff).into()), + ..Default::default() + }, + ), ( "string".into(), UserHighlightStyle { @@ -959,6 +1071,34 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.bracket".into(), + UserHighlightStyle { + color: Some(rgba(0x076678ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.delimiter".into(), + UserHighlightStyle { + color: Some(rgba(0x076678ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.list_marker".into(), + UserHighlightStyle { + color: Some(rgba(0x076678ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.special".into(), + UserHighlightStyle { + color: Some(rgba(0x076678ff).into()), + ..Default::default() + }, + ), ( "string".into(), UserHighlightStyle { @@ -1160,6 +1300,34 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.bracket".into(), + UserHighlightStyle { + color: Some(rgba(0x076678ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.delimiter".into(), + UserHighlightStyle { + color: Some(rgba(0x076678ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.list_marker".into(), + UserHighlightStyle { + color: Some(rgba(0x076678ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.special".into(), + UserHighlightStyle { + color: Some(rgba(0x076678ff).into()), + ..Default::default() + }, + ), ( "string".into(), UserHighlightStyle { diff --git a/crates/theme2/src/themes/night_owl.rs b/crates/theme2/src/themes/night_owl.rs index 2877d2c8a02558904d9eb818a5a9b21f3f29cd84..be33b928fef0a37bafb6a6e8caf1528eb8d0dfd1 100644 --- a/crates/theme2/src/themes/night_owl.rs +++ b/crates/theme2/src/themes/night_owl.rs @@ -152,6 +152,34 @@ pub fn night_owl() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.bracket".into(), + UserHighlightStyle { + color: Some(rgba(0x7fdbcaff).into()), + ..Default::default() + }, + ), + ( + "punctuation.delimiter".into(), + UserHighlightStyle { + color: Some(rgba(0x7fdbcaff).into()), + ..Default::default() + }, + ), + ( + "punctuation.list_marker".into(), + UserHighlightStyle { + color: Some(rgba(0x7fdbcaff).into()), + ..Default::default() + }, + ), + ( + "punctuation.special".into(), + UserHighlightStyle { + color: Some(rgba(0x7fdbcaff).into()), + ..Default::default() + }, + ), ( "string".into(), UserHighlightStyle { @@ -344,6 +372,34 @@ pub fn night_owl() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.bracket".into(), + UserHighlightStyle { + color: Some(rgba(0x994cc3ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.delimiter".into(), + UserHighlightStyle { + color: Some(rgba(0x994cc3ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.list_marker".into(), + UserHighlightStyle { + color: Some(rgba(0x994cc3ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.special".into(), + UserHighlightStyle { + color: Some(rgba(0x994cc3ff).into()), + ..Default::default() + }, + ), ( "string".into(), UserHighlightStyle { diff --git a/crates/theme2/src/themes/noctis.rs b/crates/theme2/src/themes/noctis.rs index c37186816fe28b4077309957c12f80b13b0e9ffc..1e5688ddea60b013e0b6d996618caff94b8aa7e3 100644 --- a/crates/theme2/src/themes/noctis.rs +++ b/crates/theme2/src/themes/noctis.rs @@ -157,6 +157,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.bracket".into(), + UserHighlightStyle { + color: Some(rgba(0xbecfdaff).into()), + ..Default::default() + }, + ), ( "punctuation.delimiter".into(), UserHighlightStyle { @@ -164,6 +171,20 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.list_marker".into(), + UserHighlightStyle { + color: Some(rgba(0xbecfdaff).into()), + ..Default::default() + }, + ), + ( + "punctuation.special".into(), + UserHighlightStyle { + color: Some(rgba(0xbecfdaff).into()), + ..Default::default() + }, + ), ( "string".into(), UserHighlightStyle { @@ -367,6 +388,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.bracket".into(), + UserHighlightStyle { + color: Some(rgba(0xcbbec2ff).into()), + ..Default::default() + }, + ), ( "punctuation.delimiter".into(), UserHighlightStyle { @@ -374,6 +402,20 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.list_marker".into(), + UserHighlightStyle { + color: Some(rgba(0xcbbec2ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.special".into(), + UserHighlightStyle { + color: Some(rgba(0xcbbec2ff).into()), + ..Default::default() + }, + ), ( "string".into(), UserHighlightStyle { @@ -577,6 +619,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.bracket".into(), + UserHighlightStyle { + color: Some(rgba(0x004d57ff).into()), + ..Default::default() + }, + ), ( "punctuation.delimiter".into(), UserHighlightStyle { @@ -584,6 +633,20 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.list_marker".into(), + UserHighlightStyle { + color: Some(rgba(0x004d57ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.special".into(), + UserHighlightStyle { + color: Some(rgba(0x004d57ff).into()), + ..Default::default() + }, + ), ( "string".into(), UserHighlightStyle { @@ -787,6 +850,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.bracket".into(), + UserHighlightStyle { + color: Some(rgba(0x0c006bff).into()), + ..Default::default() + }, + ), ( "punctuation.delimiter".into(), UserHighlightStyle { @@ -794,6 +864,20 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.list_marker".into(), + UserHighlightStyle { + color: Some(rgba(0x0c006bff).into()), + ..Default::default() + }, + ), + ( + "punctuation.special".into(), + UserHighlightStyle { + color: Some(rgba(0x0c006bff).into()), + ..Default::default() + }, + ), ( "string".into(), UserHighlightStyle { @@ -997,6 +1081,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.bracket".into(), + UserHighlightStyle { + color: Some(rgba(0x004d57ff).into()), + ..Default::default() + }, + ), ( "punctuation.delimiter".into(), UserHighlightStyle { @@ -1004,6 +1095,20 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.list_marker".into(), + UserHighlightStyle { + color: Some(rgba(0x004d57ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.special".into(), + UserHighlightStyle { + color: Some(rgba(0x004d57ff).into()), + ..Default::default() + }, + ), ( "string".into(), UserHighlightStyle { @@ -1207,6 +1312,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.bracket".into(), + UserHighlightStyle { + color: Some(rgba(0xc5cdd3ff).into()), + ..Default::default() + }, + ), ( "punctuation.delimiter".into(), UserHighlightStyle { @@ -1214,6 +1326,20 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.list_marker".into(), + UserHighlightStyle { + color: Some(rgba(0xc5cdd3ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.special".into(), + UserHighlightStyle { + color: Some(rgba(0xc5cdd3ff).into()), + ..Default::default() + }, + ), ( "string".into(), UserHighlightStyle { @@ -1417,6 +1543,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.bracket".into(), + UserHighlightStyle { + color: Some(rgba(0xb2cacdff).into()), + ..Default::default() + }, + ), ( "punctuation.delimiter".into(), UserHighlightStyle { @@ -1424,6 +1557,20 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.list_marker".into(), + UserHighlightStyle { + color: Some(rgba(0xb2cacdff).into()), + ..Default::default() + }, + ), + ( + "punctuation.special".into(), + UserHighlightStyle { + color: Some(rgba(0xb2cacdff).into()), + ..Default::default() + }, + ), ( "string".into(), UserHighlightStyle { @@ -1627,6 +1774,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.bracket".into(), + UserHighlightStyle { + color: Some(rgba(0xb2cacdff).into()), + ..Default::default() + }, + ), ( "punctuation.delimiter".into(), UserHighlightStyle { @@ -1634,6 +1788,20 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.list_marker".into(), + UserHighlightStyle { + color: Some(rgba(0xb2cacdff).into()), + ..Default::default() + }, + ), + ( + "punctuation.special".into(), + UserHighlightStyle { + color: Some(rgba(0xb2cacdff).into()), + ..Default::default() + }, + ), ( "string".into(), UserHighlightStyle { @@ -1837,6 +2005,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.bracket".into(), + UserHighlightStyle { + color: Some(rgba(0xb2cacdff).into()), + ..Default::default() + }, + ), ( "punctuation.delimiter".into(), UserHighlightStyle { @@ -1844,6 +2019,20 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.list_marker".into(), + UserHighlightStyle { + color: Some(rgba(0xb2cacdff).into()), + ..Default::default() + }, + ), + ( + "punctuation.special".into(), + UserHighlightStyle { + color: Some(rgba(0xb2cacdff).into()), + ..Default::default() + }, + ), ( "string".into(), UserHighlightStyle { @@ -2047,6 +2236,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.bracket".into(), + UserHighlightStyle { + color: Some(rgba(0xc5c2d6ff).into()), + ..Default::default() + }, + ), ( "punctuation.delimiter".into(), UserHighlightStyle { @@ -2054,6 +2250,20 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.list_marker".into(), + UserHighlightStyle { + color: Some(rgba(0xc5c2d6ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.special".into(), + UserHighlightStyle { + color: Some(rgba(0xc5c2d6ff).into()), + ..Default::default() + }, + ), ( "string".into(), UserHighlightStyle { @@ -2257,6 +2467,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.bracket".into(), + UserHighlightStyle { + color: Some(rgba(0xccbfd9ff).into()), + ..Default::default() + }, + ), ( "punctuation.delimiter".into(), UserHighlightStyle { @@ -2264,6 +2481,20 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.list_marker".into(), + UserHighlightStyle { + color: Some(rgba(0xccbfd9ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.special".into(), + UserHighlightStyle { + color: Some(rgba(0xccbfd9ff).into()), + ..Default::default() + }, + ), ( "string".into(), UserHighlightStyle { diff --git a/crates/theme2/src/themes/nord.rs b/crates/theme2/src/themes/nord.rs index a0f0c1fbf77a2e31cfe33eb3cb6e611ab2cea9fe..e15515295ca7129532f0ff336398adf5b3337949 100644 --- a/crates/theme2/src/themes/nord.rs +++ b/crates/theme2/src/themes/nord.rs @@ -138,7 +138,14 @@ pub fn nord() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0x81a1c1ff).into()), + color: Some(rgba(0xeceff4ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.bracket".into(), + UserHighlightStyle { + color: Some(rgba(0xeceff4ff).into()), ..Default::default() }, ), @@ -149,6 +156,20 @@ pub fn nord() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.list_marker".into(), + UserHighlightStyle { + color: Some(rgba(0xeceff4ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.special".into(), + UserHighlightStyle { + color: Some(rgba(0xeceff4ff).into()), + ..Default::default() + }, + ), ( "string".into(), UserHighlightStyle { diff --git a/crates/theme2/src/themes/palenight.rs b/crates/theme2/src/themes/palenight.rs index c825d229cb4cbce89a6ed6aaf68c2e9b0fbc7347..c97dea031713c8e0b61e23a2f34fb25506279ba4 100644 --- a/crates/theme2/src/themes/palenight.rs +++ b/crates/theme2/src/themes/palenight.rs @@ -180,6 +180,34 @@ pub fn palenight() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.bracket".into(), + UserHighlightStyle { + color: Some(rgba(0x89ddffff).into()), + ..Default::default() + }, + ), + ( + "punctuation.delimiter".into(), + UserHighlightStyle { + color: Some(rgba(0x89ddffff).into()), + ..Default::default() + }, + ), + ( + "punctuation.list_marker".into(), + UserHighlightStyle { + color: Some(rgba(0x89ddffff).into()), + ..Default::default() + }, + ), + ( + "punctuation.special".into(), + UserHighlightStyle { + color: Some(rgba(0x89ddffff).into()), + ..Default::default() + }, + ), ( "string".into(), UserHighlightStyle { @@ -399,6 +427,34 @@ pub fn palenight() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.bracket".into(), + UserHighlightStyle { + color: Some(rgba(0x89ddffff).into()), + ..Default::default() + }, + ), + ( + "punctuation.delimiter".into(), + UserHighlightStyle { + color: Some(rgba(0x89ddffff).into()), + ..Default::default() + }, + ), + ( + "punctuation.list_marker".into(), + UserHighlightStyle { + color: Some(rgba(0x89ddffff).into()), + ..Default::default() + }, + ), + ( + "punctuation.special".into(), + UserHighlightStyle { + color: Some(rgba(0x89ddffff).into()), + ..Default::default() + }, + ), ( "string".into(), UserHighlightStyle { @@ -618,6 +674,34 @@ pub fn palenight() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.bracket".into(), + UserHighlightStyle { + color: Some(rgba(0x89ddffff).into()), + ..Default::default() + }, + ), + ( + "punctuation.delimiter".into(), + UserHighlightStyle { + color: Some(rgba(0x89ddffff).into()), + ..Default::default() + }, + ), + ( + "punctuation.list_marker".into(), + UserHighlightStyle { + color: Some(rgba(0x89ddffff).into()), + ..Default::default() + }, + ), + ( + "punctuation.special".into(), + UserHighlightStyle { + color: Some(rgba(0x89ddffff).into()), + ..Default::default() + }, + ), ( "string".into(), UserHighlightStyle { diff --git a/crates/theme2/src/themes/rose_pine.rs b/crates/theme2/src/themes/rose_pine.rs index 5296047562f23b2cc24daac563cb3e8899947498..65b4a21302db476007e7cea119430035c0668bb8 100644 --- a/crates/theme2/src/themes/rose_pine.rs +++ b/crates/theme2/src/themes/rose_pine.rs @@ -138,6 +138,34 @@ pub fn rose_pine() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.bracket".into(), + UserHighlightStyle { + color: Some(rgba(0x6e6a86ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.delimiter".into(), + UserHighlightStyle { + color: Some(rgba(0x6e6a86ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.list_marker".into(), + UserHighlightStyle { + color: Some(rgba(0x6e6a86ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.special".into(), + UserHighlightStyle { + color: Some(rgba(0x6e6a86ff).into()), + ..Default::default() + }, + ), ( "string".into(), UserHighlightStyle { @@ -315,6 +343,34 @@ pub fn rose_pine() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.bracket".into(), + UserHighlightStyle { + color: Some(rgba(0x6e6a86ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.delimiter".into(), + UserHighlightStyle { + color: Some(rgba(0x6e6a86ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.list_marker".into(), + UserHighlightStyle { + color: Some(rgba(0x6e6a86ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.special".into(), + UserHighlightStyle { + color: Some(rgba(0x6e6a86ff).into()), + ..Default::default() + }, + ), ( "string".into(), UserHighlightStyle { @@ -492,6 +548,34 @@ pub fn rose_pine() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.bracket".into(), + UserHighlightStyle { + color: Some(rgba(0x9893a5ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.delimiter".into(), + UserHighlightStyle { + color: Some(rgba(0x9893a5ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.list_marker".into(), + UserHighlightStyle { + color: Some(rgba(0x9893a5ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.special".into(), + UserHighlightStyle { + color: Some(rgba(0x9893a5ff).into()), + ..Default::default() + }, + ), ( "string".into(), UserHighlightStyle { diff --git a/crates/theme2/src/themes/solarized.rs b/crates/theme2/src/themes/solarized.rs index 65aaa1e27e53ba1f2195a653bd48ae0e438fe6f5..532a5f846037469f0fa4bd4f05e9e98d26309995 100644 --- a/crates/theme2/src/themes/solarized.rs +++ b/crates/theme2/src/themes/solarized.rs @@ -159,6 +159,34 @@ pub fn solarized() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.bracket".into(), + UserHighlightStyle { + color: Some(rgba(0x657b83ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.delimiter".into(), + UserHighlightStyle { + color: Some(rgba(0x657b83ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.list_marker".into(), + UserHighlightStyle { + color: Some(rgba(0x657b83ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.special".into(), + UserHighlightStyle { + color: Some(rgba(0x657b83ff).into()), + ..Default::default() + }, + ), ( "string".into(), UserHighlightStyle { diff --git a/crates/theme2/src/themes/synthwave_84.rs b/crates/theme2/src/themes/synthwave_84.rs index c0ffca1828bb28a824bfeda612a4bcab4ceb4b61..90e4ae213145aed5686a4f133efbdff3a8c981cd 100644 --- a/crates/theme2/src/themes/synthwave_84.rs +++ b/crates/theme2/src/themes/synthwave_84.rs @@ -148,6 +148,34 @@ pub fn synthwave_84() -> UserThemeFamily { ..Default::default() }, ), + ( + "punctuation.bracket".into(), + UserHighlightStyle { + color: Some(rgba(0x36f9f6ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.delimiter".into(), + UserHighlightStyle { + color: Some(rgba(0x36f9f6ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.list_marker".into(), + UserHighlightStyle { + color: Some(rgba(0x36f9f6ff).into()), + ..Default::default() + }, + ), + ( + "punctuation.special".into(), + UserHighlightStyle { + color: Some(rgba(0x36f9f6ff).into()), + ..Default::default() + }, + ), ( "tag".into(), UserHighlightStyle { diff --git a/crates/theme_importer/src/vscode/syntax.rs b/crates/theme_importer/src/vscode/syntax.rs index 1194548081e56d778a9a2fd8a2be148b8e67f1ce..e716d7c0e2f385c63972742746207b7e3e938c4c 100644 --- a/crates/theme_importer/src/vscode/syntax.rs +++ b/crates/theme_importer/src/vscode/syntax.rs @@ -168,6 +168,10 @@ impl ZedSyntaxToken { match self { ZedSyntaxToken::CommentDoc => &[ZedSyntaxToken::Comment], ZedSyntaxToken::VariableSpecial => &[ZedSyntaxToken::Variable], + ZedSyntaxToken::PunctuationBracket + | ZedSyntaxToken::PunctuationDelimiter + | ZedSyntaxToken::PunctuationListMarker + | ZedSyntaxToken::PunctuationSpecial => &[ZedSyntaxToken::Punctuation], _ => &[], } } @@ -224,7 +228,6 @@ impl ZedSyntaxToken { "punctuation.section", "punctuation.accessor", "punctuation.separator", - "punctuation.terminator", "punctuation.definition.tag", ], ZedSyntaxToken::PunctuationBracket => vec![ From 40a95221eafb9dab021f37ae97079af40bbe56e5 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 8 Dec 2023 11:13:28 -0500 Subject: [PATCH 026/115] Improve matching for string tokens --- crates/theme2/src/themes/andromeda.rs | 56 +++++ crates/theme2/src/themes/ayu.rs | 21 ++ crates/theme2/src/themes/dracula.rs | 28 +++ crates/theme2/src/themes/gruvbox.rs | 126 +++++++++++ crates/theme2/src/themes/night_owl.rs | 42 ++++ crates/theme2/src/themes/noctis.rs | 231 +++++++++++++++++++++ crates/theme2/src/themes/nord.rs | 21 ++ crates/theme2/src/themes/palenight.rs | 63 ++++++ crates/theme2/src/themes/rose_pine.rs | 84 ++++++++ crates/theme2/src/themes/solarized.rs | 42 ++++ crates/theme_importer/src/vscode/syntax.rs | 4 + 11 files changed, 718 insertions(+) diff --git a/crates/theme2/src/themes/andromeda.rs b/crates/theme2/src/themes/andromeda.rs index 8c841226eb2cb8b3d30259459916696200ae716a..766329b353ca343d44d9da48220486033a9bd9fe 100644 --- a/crates/theme2/src/themes/andromeda.rs +++ b/crates/theme2/src/themes/andromeda.rs @@ -137,6 +137,34 @@ pub fn andromeda() -> UserThemeFamily { ..Default::default() }, ), + ( + "string.escape".into(), + UserHighlightStyle { + color: Some(rgba(0x96e072ff).into()), + ..Default::default() + }, + ), + ( + "string.regex".into(), + UserHighlightStyle { + color: Some(rgba(0x96e072ff).into()), + ..Default::default() + }, + ), + ( + "string.special".into(), + UserHighlightStyle { + color: Some(rgba(0x96e072ff).into()), + ..Default::default() + }, + ), + ( + "string.special.symbol".into(), + UserHighlightStyle { + color: Some(rgba(0x96e072ff).into()), + ..Default::default() + }, + ), ( "tag".into(), UserHighlightStyle { @@ -299,6 +327,34 @@ pub fn andromeda() -> UserThemeFamily { ..Default::default() }, ), + ( + "string.escape".into(), + UserHighlightStyle { + color: Some(rgba(0x96e072ff).into()), + ..Default::default() + }, + ), + ( + "string.regex".into(), + UserHighlightStyle { + color: Some(rgba(0x96e072ff).into()), + ..Default::default() + }, + ), + ( + "string.special".into(), + UserHighlightStyle { + color: Some(rgba(0x96e072ff).into()), + ..Default::default() + }, + ), + ( + "string.special.symbol".into(), + UserHighlightStyle { + color: Some(rgba(0x96e072ff).into()), + ..Default::default() + }, + ), ( "tag".into(), UserHighlightStyle { diff --git a/crates/theme2/src/themes/ayu.rs b/crates/theme2/src/themes/ayu.rs index 84b8463758850806fd5e974e0a9a3ccec309f24e..8e5d588f5247a6cc0a89d86c0989deb5bdbf720b 100644 --- a/crates/theme2/src/themes/ayu.rs +++ b/crates/theme2/src/themes/ayu.rs @@ -236,6 +236,13 @@ pub fn ayu() -> UserThemeFamily { ..Default::default() }, ), + ( + "string.regex".into(), + UserHighlightStyle { + color: Some(rgba(0x86b300ff).into()), + ..Default::default() + }, + ), ( "string.special".into(), UserHighlightStyle { @@ -518,6 +525,13 @@ pub fn ayu() -> UserThemeFamily { ..Default::default() }, ), + ( + "string.regex".into(), + UserHighlightStyle { + color: Some(rgba(0xd5ff80ff).into()), + ..Default::default() + }, + ), ( "string.special".into(), UserHighlightStyle { @@ -800,6 +814,13 @@ pub fn ayu() -> UserThemeFamily { ..Default::default() }, ), + ( + "string.regex".into(), + UserHighlightStyle { + color: Some(rgba(0xaad94cff).into()), + ..Default::default() + }, + ), ( "string.special".into(), UserHighlightStyle { diff --git a/crates/theme2/src/themes/dracula.rs b/crates/theme2/src/themes/dracula.rs index f6d793b52605e41129314d1f066fde967b2d3416..3953a245267a6f34d6be14f208f84f1e71cef393 100644 --- a/crates/theme2/src/themes/dracula.rs +++ b/crates/theme2/src/themes/dracula.rs @@ -145,6 +145,34 @@ pub fn dracula() -> UserThemeFamily { ..Default::default() }, ), + ( + "string.escape".into(), + UserHighlightStyle { + color: Some(rgba(0xf1fa8cff).into()), + ..Default::default() + }, + ), + ( + "string.regex".into(), + UserHighlightStyle { + color: Some(rgba(0xf1fa8cff).into()), + ..Default::default() + }, + ), + ( + "string.special".into(), + UserHighlightStyle { + color: Some(rgba(0xf1fa8cff).into()), + ..Default::default() + }, + ), + ( + "string.special.symbol".into(), + UserHighlightStyle { + color: Some(rgba(0xf1fa8cff).into()), + ..Default::default() + }, + ), ( "tag".into(), UserHighlightStyle { diff --git a/crates/theme2/src/themes/gruvbox.rs b/crates/theme2/src/themes/gruvbox.rs index 9309f40503def77ba0ba1555fc1f1cc71bedffa7..1ada65400f50d33f1d155f82bff15b8ca03130ef 100644 --- a/crates/theme2/src/themes/gruvbox.rs +++ b/crates/theme2/src/themes/gruvbox.rs @@ -197,6 +197,27 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "string.regex".into(), + UserHighlightStyle { + color: Some(rgba(0xb8bb26ff).into()), + ..Default::default() + }, + ), + ( + "string.special".into(), + UserHighlightStyle { + color: Some(rgba(0xb8bb26ff).into()), + ..Default::default() + }, + ), + ( + "string.special.symbol".into(), + UserHighlightStyle { + color: Some(rgba(0xb8bb26ff).into()), + ..Default::default() + }, + ), ( "tag".into(), UserHighlightStyle { @@ -426,6 +447,27 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "string.regex".into(), + UserHighlightStyle { + color: Some(rgba(0xb8bb26ff).into()), + ..Default::default() + }, + ), + ( + "string.special".into(), + UserHighlightStyle { + color: Some(rgba(0xb8bb26ff).into()), + ..Default::default() + }, + ), + ( + "string.special.symbol".into(), + UserHighlightStyle { + color: Some(rgba(0xb8bb26ff).into()), + ..Default::default() + }, + ), ( "tag".into(), UserHighlightStyle { @@ -655,6 +697,27 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "string.regex".into(), + UserHighlightStyle { + color: Some(rgba(0xb8bb26ff).into()), + ..Default::default() + }, + ), + ( + "string.special".into(), + UserHighlightStyle { + color: Some(rgba(0xb8bb26ff).into()), + ..Default::default() + }, + ), + ( + "string.special.symbol".into(), + UserHighlightStyle { + color: Some(rgba(0xb8bb26ff).into()), + ..Default::default() + }, + ), ( "tag".into(), UserHighlightStyle { @@ -884,6 +947,27 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "string.regex".into(), + UserHighlightStyle { + color: Some(rgba(0x79740eff).into()), + ..Default::default() + }, + ), + ( + "string.special".into(), + UserHighlightStyle { + color: Some(rgba(0x79740eff).into()), + ..Default::default() + }, + ), + ( + "string.special.symbol".into(), + UserHighlightStyle { + color: Some(rgba(0x79740eff).into()), + ..Default::default() + }, + ), ( "tag".into(), UserHighlightStyle { @@ -1113,6 +1197,27 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "string.regex".into(), + UserHighlightStyle { + color: Some(rgba(0x79740eff).into()), + ..Default::default() + }, + ), + ( + "string.special".into(), + UserHighlightStyle { + color: Some(rgba(0x79740eff).into()), + ..Default::default() + }, + ), + ( + "string.special.symbol".into(), + UserHighlightStyle { + color: Some(rgba(0x79740eff).into()), + ..Default::default() + }, + ), ( "tag".into(), UserHighlightStyle { @@ -1342,6 +1447,27 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "string.regex".into(), + UserHighlightStyle { + color: Some(rgba(0x79740eff).into()), + ..Default::default() + }, + ), + ( + "string.special".into(), + UserHighlightStyle { + color: Some(rgba(0x79740eff).into()), + ..Default::default() + }, + ), + ( + "string.special.symbol".into(), + UserHighlightStyle { + color: Some(rgba(0x79740eff).into()), + ..Default::default() + }, + ), ( "tag".into(), UserHighlightStyle { diff --git a/crates/theme2/src/themes/night_owl.rs b/crates/theme2/src/themes/night_owl.rs index be33b928fef0a37bafb6a6e8caf1528eb8d0dfd1..33246850f40dcd5d84baf920eece7ef4a56ac4b3 100644 --- a/crates/theme2/src/themes/night_owl.rs +++ b/crates/theme2/src/themes/night_owl.rs @@ -194,6 +194,27 @@ pub fn night_owl() -> UserThemeFamily { ..Default::default() }, ), + ( + "string.regex".into(), + UserHighlightStyle { + color: Some(rgba(0xecc48dff).into()), + ..Default::default() + }, + ), + ( + "string.special".into(), + UserHighlightStyle { + color: Some(rgba(0xecc48dff).into()), + ..Default::default() + }, + ), + ( + "string.special.symbol".into(), + UserHighlightStyle { + color: Some(rgba(0xecc48dff).into()), + ..Default::default() + }, + ), ( "tag".into(), UserHighlightStyle { @@ -414,6 +435,27 @@ pub fn night_owl() -> UserThemeFamily { ..Default::default() }, ), + ( + "string.regex".into(), + UserHighlightStyle { + color: Some(rgba(0x4876d6ff).into()), + ..Default::default() + }, + ), + ( + "string.special".into(), + UserHighlightStyle { + color: Some(rgba(0x4876d6ff).into()), + ..Default::default() + }, + ), + ( + "string.special.symbol".into(), + UserHighlightStyle { + color: Some(rgba(0x4876d6ff).into()), + ..Default::default() + }, + ), ( "tag".into(), UserHighlightStyle { diff --git a/crates/theme2/src/themes/noctis.rs b/crates/theme2/src/themes/noctis.rs index 1e5688ddea60b013e0b6d996618caff94b8aa7e3..caba6947fe97292c5cb0b75a660871bf8cc08969 100644 --- a/crates/theme2/src/themes/noctis.rs +++ b/crates/theme2/src/themes/noctis.rs @@ -199,6 +199,27 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "string.regex".into(), + UserHighlightStyle { + color: Some(rgba(0x49e9a6ff).into()), + ..Default::default() + }, + ), + ( + "string.special".into(), + UserHighlightStyle { + color: Some(rgba(0x49e9a6ff).into()), + ..Default::default() + }, + ), + ( + "string.special.symbol".into(), + UserHighlightStyle { + color: Some(rgba(0x49e9a6ff).into()), + ..Default::default() + }, + ), ( "tag".into(), UserHighlightStyle { @@ -430,6 +451,27 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "string.regex".into(), + UserHighlightStyle { + color: Some(rgba(0x49e9a6ff).into()), + ..Default::default() + }, + ), + ( + "string.special".into(), + UserHighlightStyle { + color: Some(rgba(0x49e9a6ff).into()), + ..Default::default() + }, + ), + ( + "string.special.symbol".into(), + UserHighlightStyle { + color: Some(rgba(0x49e9a6ff).into()), + ..Default::default() + }, + ), ( "tag".into(), UserHighlightStyle { @@ -661,6 +703,27 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "string.regex".into(), + UserHighlightStyle { + color: Some(rgba(0x00b368ff).into()), + ..Default::default() + }, + ), + ( + "string.special".into(), + UserHighlightStyle { + color: Some(rgba(0x00b368ff).into()), + ..Default::default() + }, + ), + ( + "string.special.symbol".into(), + UserHighlightStyle { + color: Some(rgba(0x00b368ff).into()), + ..Default::default() + }, + ), ( "tag".into(), UserHighlightStyle { @@ -892,6 +955,27 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "string.regex".into(), + UserHighlightStyle { + color: Some(rgba(0x00b368ff).into()), + ..Default::default() + }, + ), + ( + "string.special".into(), + UserHighlightStyle { + color: Some(rgba(0x00b368ff).into()), + ..Default::default() + }, + ), + ( + "string.special.symbol".into(), + UserHighlightStyle { + color: Some(rgba(0x00b368ff).into()), + ..Default::default() + }, + ), ( "tag".into(), UserHighlightStyle { @@ -1123,6 +1207,27 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "string.regex".into(), + UserHighlightStyle { + color: Some(rgba(0x00b368ff).into()), + ..Default::default() + }, + ), + ( + "string.special".into(), + UserHighlightStyle { + color: Some(rgba(0x00b368ff).into()), + ..Default::default() + }, + ), + ( + "string.special.symbol".into(), + UserHighlightStyle { + color: Some(rgba(0x00b368ff).into()), + ..Default::default() + }, + ), ( "tag".into(), UserHighlightStyle { @@ -1354,6 +1459,27 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "string.regex".into(), + UserHighlightStyle { + color: Some(rgba(0x72c09fff).into()), + ..Default::default() + }, + ), + ( + "string.special".into(), + UserHighlightStyle { + color: Some(rgba(0x72c09fff).into()), + ..Default::default() + }, + ), + ( + "string.special.symbol".into(), + UserHighlightStyle { + color: Some(rgba(0x72c09fff).into()), + ..Default::default() + }, + ), ( "tag".into(), UserHighlightStyle { @@ -1585,6 +1711,27 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "string.regex".into(), + UserHighlightStyle { + color: Some(rgba(0x49e9a6ff).into()), + ..Default::default() + }, + ), + ( + "string.special".into(), + UserHighlightStyle { + color: Some(rgba(0x49e9a6ff).into()), + ..Default::default() + }, + ), + ( + "string.special.symbol".into(), + UserHighlightStyle { + color: Some(rgba(0x49e9a6ff).into()), + ..Default::default() + }, + ), ( "tag".into(), UserHighlightStyle { @@ -1816,6 +1963,27 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "string.regex".into(), + UserHighlightStyle { + color: Some(rgba(0x49e9a6ff).into()), + ..Default::default() + }, + ), + ( + "string.special".into(), + UserHighlightStyle { + color: Some(rgba(0x49e9a6ff).into()), + ..Default::default() + }, + ), + ( + "string.special.symbol".into(), + UserHighlightStyle { + color: Some(rgba(0x49e9a6ff).into()), + ..Default::default() + }, + ), ( "tag".into(), UserHighlightStyle { @@ -2047,6 +2215,27 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "string.regex".into(), + UserHighlightStyle { + color: Some(rgba(0x49e9a6ff).into()), + ..Default::default() + }, + ), + ( + "string.special".into(), + UserHighlightStyle { + color: Some(rgba(0x49e9a6ff).into()), + ..Default::default() + }, + ), + ( + "string.special.symbol".into(), + UserHighlightStyle { + color: Some(rgba(0x49e9a6ff).into()), + ..Default::default() + }, + ), ( "tag".into(), UserHighlightStyle { @@ -2278,6 +2467,27 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "string.regex".into(), + UserHighlightStyle { + color: Some(rgba(0x49e9a6ff).into()), + ..Default::default() + }, + ), + ( + "string.special".into(), + UserHighlightStyle { + color: Some(rgba(0x49e9a6ff).into()), + ..Default::default() + }, + ), + ( + "string.special.symbol".into(), + UserHighlightStyle { + color: Some(rgba(0x49e9a6ff).into()), + ..Default::default() + }, + ), ( "tag".into(), UserHighlightStyle { @@ -2509,6 +2719,27 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "string.regex".into(), + UserHighlightStyle { + color: Some(rgba(0x49e9a6ff).into()), + ..Default::default() + }, + ), + ( + "string.special".into(), + UserHighlightStyle { + color: Some(rgba(0x49e9a6ff).into()), + ..Default::default() + }, + ), + ( + "string.special.symbol".into(), + UserHighlightStyle { + color: Some(rgba(0x49e9a6ff).into()), + ..Default::default() + }, + ), ( "tag".into(), UserHighlightStyle { diff --git a/crates/theme2/src/themes/nord.rs b/crates/theme2/src/themes/nord.rs index e15515295ca7129532f0ff336398adf5b3337949..da03c82878adde5957d4b46c35b0b0376ffe279b 100644 --- a/crates/theme2/src/themes/nord.rs +++ b/crates/theme2/src/themes/nord.rs @@ -184,6 +184,27 @@ pub fn nord() -> UserThemeFamily { ..Default::default() }, ), + ( + "string.regex".into(), + UserHighlightStyle { + color: Some(rgba(0xa3be8cff).into()), + ..Default::default() + }, + ), + ( + "string.special".into(), + UserHighlightStyle { + color: Some(rgba(0xa3be8cff).into()), + ..Default::default() + }, + ), + ( + "string.special.symbol".into(), + UserHighlightStyle { + color: Some(rgba(0xa3be8cff).into()), + ..Default::default() + }, + ), ( "tag".into(), UserHighlightStyle { diff --git a/crates/theme2/src/themes/palenight.rs b/crates/theme2/src/themes/palenight.rs index c97dea031713c8e0b61e23a2f34fb25506279ba4..1200802fbce1a1de97c778f6e96e13fa5a166126 100644 --- a/crates/theme2/src/themes/palenight.rs +++ b/crates/theme2/src/themes/palenight.rs @@ -222,6 +222,27 @@ pub fn palenight() -> UserThemeFamily { ..Default::default() }, ), + ( + "string.regex".into(), + UserHighlightStyle { + color: Some(rgba(0xc3e88dff).into()), + ..Default::default() + }, + ), + ( + "string.special".into(), + UserHighlightStyle { + color: Some(rgba(0xc3e88dff).into()), + ..Default::default() + }, + ), + ( + "string.special.symbol".into(), + UserHighlightStyle { + color: Some(rgba(0xc3e88dff).into()), + ..Default::default() + }, + ), ( "tag".into(), UserHighlightStyle { @@ -469,6 +490,27 @@ pub fn palenight() -> UserThemeFamily { ..Default::default() }, ), + ( + "string.regex".into(), + UserHighlightStyle { + color: Some(rgba(0xc3e88dff).into()), + ..Default::default() + }, + ), + ( + "string.special".into(), + UserHighlightStyle { + color: Some(rgba(0xc3e88dff).into()), + ..Default::default() + }, + ), + ( + "string.special.symbol".into(), + UserHighlightStyle { + color: Some(rgba(0xc3e88dff).into()), + ..Default::default() + }, + ), ( "tag".into(), UserHighlightStyle { @@ -716,6 +758,27 @@ pub fn palenight() -> UserThemeFamily { ..Default::default() }, ), + ( + "string.regex".into(), + UserHighlightStyle { + color: Some(rgba(0xc3e88dff).into()), + ..Default::default() + }, + ), + ( + "string.special".into(), + UserHighlightStyle { + color: Some(rgba(0xc3e88dff).into()), + ..Default::default() + }, + ), + ( + "string.special.symbol".into(), + UserHighlightStyle { + color: Some(rgba(0xc3e88dff).into()), + ..Default::default() + }, + ), ( "tag".into(), UserHighlightStyle { diff --git a/crates/theme2/src/themes/rose_pine.rs b/crates/theme2/src/themes/rose_pine.rs index 65b4a21302db476007e7cea119430035c0668bb8..ecd669c34a2d48136d87c0c94f623142bedb5745 100644 --- a/crates/theme2/src/themes/rose_pine.rs +++ b/crates/theme2/src/themes/rose_pine.rs @@ -173,6 +173,34 @@ pub fn rose_pine() -> UserThemeFamily { ..Default::default() }, ), + ( + "string.escape".into(), + UserHighlightStyle { + color: Some(rgba(0xf6c177ff).into()), + ..Default::default() + }, + ), + ( + "string.regex".into(), + UserHighlightStyle { + color: Some(rgba(0xf6c177ff).into()), + ..Default::default() + }, + ), + ( + "string.special".into(), + UserHighlightStyle { + color: Some(rgba(0xf6c177ff).into()), + ..Default::default() + }, + ), + ( + "string.special.symbol".into(), + UserHighlightStyle { + color: Some(rgba(0xf6c177ff).into()), + ..Default::default() + }, + ), ( "tag".into(), UserHighlightStyle { @@ -378,6 +406,34 @@ pub fn rose_pine() -> UserThemeFamily { ..Default::default() }, ), + ( + "string.escape".into(), + UserHighlightStyle { + color: Some(rgba(0xf6c177ff).into()), + ..Default::default() + }, + ), + ( + "string.regex".into(), + UserHighlightStyle { + color: Some(rgba(0xf6c177ff).into()), + ..Default::default() + }, + ), + ( + "string.special".into(), + UserHighlightStyle { + color: Some(rgba(0xf6c177ff).into()), + ..Default::default() + }, + ), + ( + "string.special.symbol".into(), + UserHighlightStyle { + color: Some(rgba(0xf6c177ff).into()), + ..Default::default() + }, + ), ( "tag".into(), UserHighlightStyle { @@ -583,6 +639,34 @@ pub fn rose_pine() -> UserThemeFamily { ..Default::default() }, ), + ( + "string.escape".into(), + UserHighlightStyle { + color: Some(rgba(0xea9d34ff).into()), + ..Default::default() + }, + ), + ( + "string.regex".into(), + UserHighlightStyle { + color: Some(rgba(0xea9d34ff).into()), + ..Default::default() + }, + ), + ( + "string.special".into(), + UserHighlightStyle { + color: Some(rgba(0xea9d34ff).into()), + ..Default::default() + }, + ), + ( + "string.special.symbol".into(), + UserHighlightStyle { + color: Some(rgba(0xea9d34ff).into()), + ..Default::default() + }, + ), ( "tag".into(), UserHighlightStyle { diff --git a/crates/theme2/src/themes/solarized.rs b/crates/theme2/src/themes/solarized.rs index 532a5f846037469f0fa4bd4f05e9e98d26309995..7cec48b1f484e87b243e977aeac34147c3434602 100644 --- a/crates/theme2/src/themes/solarized.rs +++ b/crates/theme2/src/themes/solarized.rs @@ -201,6 +201,27 @@ pub fn solarized() -> UserThemeFamily { ..Default::default() }, ), + ( + "string.regex".into(), + UserHighlightStyle { + color: Some(rgba(0x2aa198ff).into()), + ..Default::default() + }, + ), + ( + "string.special".into(), + UserHighlightStyle { + color: Some(rgba(0x2aa198ff).into()), + ..Default::default() + }, + ), + ( + "string.special.symbol".into(), + UserHighlightStyle { + color: Some(rgba(0x2aa198ff).into()), + ..Default::default() + }, + ), ( "tag".into(), UserHighlightStyle { @@ -389,6 +410,27 @@ pub fn solarized() -> UserThemeFamily { ..Default::default() }, ), + ( + "string.regex".into(), + UserHighlightStyle { + color: Some(rgba(0x2aa198ff).into()), + ..Default::default() + }, + ), + ( + "string.special".into(), + UserHighlightStyle { + color: Some(rgba(0x2aa198ff).into()), + ..Default::default() + }, + ), + ( + "string.special.symbol".into(), + UserHighlightStyle { + color: Some(rgba(0x2aa198ff).into()), + ..Default::default() + }, + ), ( "tag".into(), UserHighlightStyle { diff --git a/crates/theme_importer/src/vscode/syntax.rs b/crates/theme_importer/src/vscode/syntax.rs index e716d7c0e2f385c63972742746207b7e3e938c4c..d5097639cba82aba8e57bb993629646b7e0efd44 100644 --- a/crates/theme_importer/src/vscode/syntax.rs +++ b/crates/theme_importer/src/vscode/syntax.rs @@ -172,6 +172,10 @@ impl ZedSyntaxToken { | ZedSyntaxToken::PunctuationDelimiter | ZedSyntaxToken::PunctuationListMarker | ZedSyntaxToken::PunctuationSpecial => &[ZedSyntaxToken::Punctuation], + ZedSyntaxToken::StringEscape + | ZedSyntaxToken::StringRegex + | ZedSyntaxToken::StringSpecial + | ZedSyntaxToken::StringSpecialSymbol => &[ZedSyntaxToken::String], _ => &[], } } From 63ce7cd407ca97685fb47ebbdce403dceecf0dfb Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 8 Dec 2023 11:17:05 -0500 Subject: [PATCH 027/115] Improve matching for preprocessor tokens --- crates/theme2/src/themes/gruvbox.rs | 42 ++++++++++++ crates/theme2/src/themes/noctis.rs | 77 ++++++++++++++++++++++ crates/theme2/src/themes/nord.rs | 7 ++ crates/theme2/src/themes/solarized.rs | 14 ++++ crates/theme_importer/src/vscode/syntax.rs | 6 +- 5 files changed, 145 insertions(+), 1 deletion(-) diff --git a/crates/theme2/src/themes/gruvbox.rs b/crates/theme2/src/themes/gruvbox.rs index 1ada65400f50d33f1d155f82bff15b8ca03130ef..5674593c2d84d355db17081dbbd22642dbc0e54a 100644 --- a/crates/theme2/src/themes/gruvbox.rs +++ b/crates/theme2/src/themes/gruvbox.rs @@ -141,6 +141,13 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "preproc".into(), + UserHighlightStyle { + color: Some(rgba(0xfe8019ff).into()), + ..Default::default() + }, + ), ( "property".into(), UserHighlightStyle { @@ -391,6 +398,13 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "preproc".into(), + UserHighlightStyle { + color: Some(rgba(0xfe8019ff).into()), + ..Default::default() + }, + ), ( "property".into(), UserHighlightStyle { @@ -641,6 +655,13 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "preproc".into(), + UserHighlightStyle { + color: Some(rgba(0xfe8019ff).into()), + ..Default::default() + }, + ), ( "property".into(), UserHighlightStyle { @@ -891,6 +912,13 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "preproc".into(), + UserHighlightStyle { + color: Some(rgba(0xaf3a03ff).into()), + ..Default::default() + }, + ), ( "property".into(), UserHighlightStyle { @@ -1141,6 +1169,13 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "preproc".into(), + UserHighlightStyle { + color: Some(rgba(0xaf3a03ff).into()), + ..Default::default() + }, + ), ( "property".into(), UserHighlightStyle { @@ -1391,6 +1426,13 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "preproc".into(), + UserHighlightStyle { + color: Some(rgba(0xaf3a03ff).into()), + ..Default::default() + }, + ), ( "property".into(), UserHighlightStyle { diff --git a/crates/theme2/src/themes/noctis.rs b/crates/theme2/src/themes/noctis.rs index caba6947fe97292c5cb0b75a660871bf8cc08969..e09efd98c6a01b3daf25dedd4fd493eb380a566e 100644 --- a/crates/theme2/src/themes/noctis.rs +++ b/crates/theme2/src/themes/noctis.rs @@ -143,6 +143,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "preproc".into(), + UserHighlightStyle { + color: Some(rgba(0xdf769bff).into()), + ..Default::default() + }, + ), ( "property".into(), UserHighlightStyle { @@ -395,6 +402,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "preproc".into(), + UserHighlightStyle { + color: Some(rgba(0xdf769bff).into()), + ..Default::default() + }, + ), ( "property".into(), UserHighlightStyle { @@ -647,6 +661,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "preproc".into(), + UserHighlightStyle { + color: Some(rgba(0xff5792ff).into()), + ..Default::default() + }, + ), ( "property".into(), UserHighlightStyle { @@ -899,6 +920,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "preproc".into(), + UserHighlightStyle { + color: Some(rgba(0xff5792ff).into()), + ..Default::default() + }, + ), ( "property".into(), UserHighlightStyle { @@ -1151,6 +1179,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "preproc".into(), + UserHighlightStyle { + color: Some(rgba(0xff5792ff).into()), + ..Default::default() + }, + ), ( "property".into(), UserHighlightStyle { @@ -1403,6 +1438,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "preproc".into(), + UserHighlightStyle { + color: Some(rgba(0xc88da2ff).into()), + ..Default::default() + }, + ), ( "property".into(), UserHighlightStyle { @@ -1655,6 +1697,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "preproc".into(), + UserHighlightStyle { + color: Some(rgba(0xdf769bff).into()), + ..Default::default() + }, + ), ( "property".into(), UserHighlightStyle { @@ -1907,6 +1956,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "preproc".into(), + UserHighlightStyle { + color: Some(rgba(0xdf769bff).into()), + ..Default::default() + }, + ), ( "property".into(), UserHighlightStyle { @@ -2159,6 +2215,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "preproc".into(), + UserHighlightStyle { + color: Some(rgba(0xdf769bff).into()), + ..Default::default() + }, + ), ( "property".into(), UserHighlightStyle { @@ -2411,6 +2474,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "preproc".into(), + UserHighlightStyle { + color: Some(rgba(0xdf769bff).into()), + ..Default::default() + }, + ), ( "property".into(), UserHighlightStyle { @@ -2663,6 +2733,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "preproc".into(), + UserHighlightStyle { + color: Some(rgba(0xdf769bff).into()), + ..Default::default() + }, + ), ( "property".into(), UserHighlightStyle { diff --git a/crates/theme2/src/themes/nord.rs b/crates/theme2/src/themes/nord.rs index da03c82878adde5957d4b46c35b0b0376ffe279b..420659808697b6963eb6c81562fc4c932ee79261 100644 --- a/crates/theme2/src/themes/nord.rs +++ b/crates/theme2/src/themes/nord.rs @@ -135,6 +135,13 @@ pub fn nord() -> UserThemeFamily { ..Default::default() }, ), + ( + "preproc".into(), + UserHighlightStyle { + color: Some(rgba(0x5e81acff).into()), + ..Default::default() + }, + ), ( "punctuation".into(), UserHighlightStyle { diff --git a/crates/theme2/src/themes/solarized.rs b/crates/theme2/src/themes/solarized.rs index 7cec48b1f484e87b243e977aeac34147c3434602..5d43b5704af9399ae966f88102d12462ebb35ba3 100644 --- a/crates/theme2/src/themes/solarized.rs +++ b/crates/theme2/src/themes/solarized.rs @@ -145,6 +145,13 @@ pub fn solarized() -> UserThemeFamily { ..Default::default() }, ), + ( + "preproc".into(), + UserHighlightStyle { + color: Some(rgba(0xb58900ff).into()), + ..Default::default() + }, + ), ( "property".into(), UserHighlightStyle { @@ -389,6 +396,13 @@ pub fn solarized() -> UserThemeFamily { ..Default::default() }, ), + ( + "preproc".into(), + UserHighlightStyle { + color: Some(rgba(0xb58900ff).into()), + ..Default::default() + }, + ), ( "punctuation.bracket".into(), UserHighlightStyle { diff --git a/crates/theme_importer/src/vscode/syntax.rs b/crates/theme_importer/src/vscode/syntax.rs index d5097639cba82aba8e57bb993629646b7e0efd44..990355065f896fd8921cffbd227645f99e213203 100644 --- a/crates/theme_importer/src/vscode/syntax.rs +++ b/crates/theme_importer/src/vscode/syntax.rs @@ -219,7 +219,11 @@ impl ZedSyntaxToken { ZedSyntaxToken::Number => vec!["constant.numeric", "number"], ZedSyntaxToken::Operator => vec!["operator", "keyword.operator"], ZedSyntaxToken::Predictive => vec![], - ZedSyntaxToken::Preproc => vec!["preproc"], + ZedSyntaxToken::Preproc => vec![ + "preproc", + "meta.preprocessor", + "punctuation.definition.preprocessor", + ], ZedSyntaxToken::Primary => vec![], ZedSyntaxToken::Property => vec![ "variable.member", From 1b6721170afd637523e069266ebc96a21e91fad6 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 8 Dec 2023 11:21:40 -0500 Subject: [PATCH 028/115] Improve matching for constant tokens --- crates/theme2/src/themes/ayu.rs | 6 +++--- crates/theme2/src/themes/noctis.rs | 22 +++++++++++----------- crates/theme2/src/themes/nord.rs | 2 +- crates/theme2/src/themes/rose_pine.rs | 21 +++++++++++++++++++++ crates/theme2/src/themes/synthwave_84.rs | 7 +++++++ crates/theme_importer/src/vscode/syntax.rs | 2 +- 6 files changed, 44 insertions(+), 16 deletions(-) diff --git a/crates/theme2/src/themes/ayu.rs b/crates/theme2/src/themes/ayu.rs index 8e5d588f5247a6cc0a89d86c0989deb5bdbf720b..f4ed232ea2a812fcfe34d40485a635fe6e6cff83 100644 --- a/crates/theme2/src/themes/ayu.rs +++ b/crates/theme2/src/themes/ayu.rs @@ -104,7 +104,7 @@ pub fn ayu() -> UserThemeFamily { ( "constant".into(), UserHighlightStyle { - color: Some(rgba(0x4cbf99ff).into()), + color: Some(rgba(0xa37accff).into()), ..Default::default() }, ), @@ -393,7 +393,7 @@ pub fn ayu() -> UserThemeFamily { ( "constant".into(), UserHighlightStyle { - color: Some(rgba(0x95e6cbff).into()), + color: Some(rgba(0xdfbfffff).into()), ..Default::default() }, ), @@ -682,7 +682,7 @@ pub fn ayu() -> UserThemeFamily { ( "constant".into(), UserHighlightStyle { - color: Some(rgba(0x95e6cbff).into()), + color: Some(rgba(0xd2a6ffff).into()), ..Default::default() }, ), diff --git a/crates/theme2/src/themes/noctis.rs b/crates/theme2/src/themes/noctis.rs index e09efd98c6a01b3daf25dedd4fd493eb380a566e..980ea7398d83b222130c6c6871ee475fb6ebb86b 100644 --- a/crates/theme2/src/themes/noctis.rs +++ b/crates/theme2/src/themes/noctis.rs @@ -97,7 +97,7 @@ pub fn noctis() -> UserThemeFamily { ( "constant".into(), UserHighlightStyle { - color: Some(rgba(0xbecfdaff).into()), + color: Some(rgba(0x7060ebff).into()), ..Default::default() }, ), @@ -356,7 +356,7 @@ pub fn noctis() -> UserThemeFamily { ( "constant".into(), UserHighlightStyle { - color: Some(rgba(0xcbbec2ff).into()), + color: Some(rgba(0x7060ebff).into()), ..Default::default() }, ), @@ -615,7 +615,7 @@ pub fn noctis() -> UserThemeFamily { ( "constant".into(), UserHighlightStyle { - color: Some(rgba(0x004d57ff).into()), + color: Some(rgba(0x5842ffff).into()), ..Default::default() }, ), @@ -874,7 +874,7 @@ pub fn noctis() -> UserThemeFamily { ( "constant".into(), UserHighlightStyle { - color: Some(rgba(0x0c006bff).into()), + color: Some(rgba(0x5842ffff).into()), ..Default::default() }, ), @@ -1133,7 +1133,7 @@ pub fn noctis() -> UserThemeFamily { ( "constant".into(), UserHighlightStyle { - color: Some(rgba(0x004d57ff).into()), + color: Some(rgba(0x5842ffff).into()), ..Default::default() }, ), @@ -1392,7 +1392,7 @@ pub fn noctis() -> UserThemeFamily { ( "constant".into(), UserHighlightStyle { - color: Some(rgba(0xc5cdd3ff).into()), + color: Some(rgba(0x7068b1ff).into()), ..Default::default() }, ), @@ -1651,7 +1651,7 @@ pub fn noctis() -> UserThemeFamily { ( "constant".into(), UserHighlightStyle { - color: Some(rgba(0xb2cacdff).into()), + color: Some(rgba(0x7060ebff).into()), ..Default::default() }, ), @@ -1910,7 +1910,7 @@ pub fn noctis() -> UserThemeFamily { ( "constant".into(), UserHighlightStyle { - color: Some(rgba(0xb2cacdff).into()), + color: Some(rgba(0x7060ebff).into()), ..Default::default() }, ), @@ -2169,7 +2169,7 @@ pub fn noctis() -> UserThemeFamily { ( "constant".into(), UserHighlightStyle { - color: Some(rgba(0xb2cacdff).into()), + color: Some(rgba(0x7060ebff).into()), ..Default::default() }, ), @@ -2428,7 +2428,7 @@ pub fn noctis() -> UserThemeFamily { ( "constant".into(), UserHighlightStyle { - color: Some(rgba(0xc5c2d6ff).into()), + color: Some(rgba(0x7060ebff).into()), ..Default::default() }, ), @@ -2687,7 +2687,7 @@ pub fn noctis() -> UserThemeFamily { ( "constant".into(), UserHighlightStyle { - color: Some(rgba(0xccbfd9ff).into()), + color: Some(rgba(0x7060ebff).into()), ..Default::default() }, ), diff --git a/crates/theme2/src/themes/nord.rs b/crates/theme2/src/themes/nord.rs index 420659808697b6963eb6c81562fc4c932ee79261..ce281f0f69d84233e055d6ad698bc98f1db30c4d 100644 --- a/crates/theme2/src/themes/nord.rs +++ b/crates/theme2/src/themes/nord.rs @@ -103,7 +103,7 @@ pub fn nord() -> UserThemeFamily { ( "constant".into(), UserHighlightStyle { - color: Some(rgba(0xebcb8bff).into()), + color: Some(rgba(0x81a1c1ff).into()), ..Default::default() }, ), diff --git a/crates/theme2/src/themes/rose_pine.rs b/crates/theme2/src/themes/rose_pine.rs index ecd669c34a2d48136d87c0c94f623142bedb5745..8bc7fe8bc006f033d368ca85fd3274bea128aaf2 100644 --- a/crates/theme2/src/themes/rose_pine.rs +++ b/crates/theme2/src/themes/rose_pine.rs @@ -103,6 +103,13 @@ pub fn rose_pine() -> UserThemeFamily { ..Default::default() }, ), + ( + "constant".into(), + UserHighlightStyle { + color: Some(rgba(0xebbcbaff).into()), + ..Default::default() + }, + ), ( "function".into(), UserHighlightStyle { @@ -336,6 +343,13 @@ pub fn rose_pine() -> UserThemeFamily { ..Default::default() }, ), + ( + "constant".into(), + UserHighlightStyle { + color: Some(rgba(0xea9a97ff).into()), + ..Default::default() + }, + ), ( "function".into(), UserHighlightStyle { @@ -569,6 +583,13 @@ pub fn rose_pine() -> UserThemeFamily { ..Default::default() }, ), + ( + "constant".into(), + UserHighlightStyle { + color: Some(rgba(0xd7827eff).into()), + ..Default::default() + }, + ), ( "function".into(), UserHighlightStyle { diff --git a/crates/theme2/src/themes/synthwave_84.rs b/crates/theme2/src/themes/synthwave_84.rs index 90e4ae213145aed5686a4f133efbdff3a8c981cd..aeca085fd5fbcdd8f4eb17ce5291511a77537cd1 100644 --- a/crates/theme2/src/themes/synthwave_84.rs +++ b/crates/theme2/src/themes/synthwave_84.rs @@ -85,6 +85,13 @@ pub fn synthwave_84() -> UserThemeFamily { ..Default::default() }, ), + ( + "constant".into(), + UserHighlightStyle { + color: Some(rgba(0xf97e72ff).into()), + ..Default::default() + }, + ), ( "function".into(), UserHighlightStyle { diff --git a/crates/theme_importer/src/vscode/syntax.rs b/crates/theme_importer/src/vscode/syntax.rs index 990355065f896fd8921cffbd227645f99e213203..35f0f96a16b93bf8532de28191a913b1c6a9878f 100644 --- a/crates/theme_importer/src/vscode/syntax.rs +++ b/crates/theme_importer/src/vscode/syntax.rs @@ -186,7 +186,7 @@ impl ZedSyntaxToken { ZedSyntaxToken::Boolean => vec!["constant.language"], ZedSyntaxToken::Comment => vec!["comment"], ZedSyntaxToken::CommentDoc => vec!["comment.block.documentation"], - ZedSyntaxToken::Constant => vec!["constant.character"], + ZedSyntaxToken::Constant => vec!["constant.language", "constant.character"], ZedSyntaxToken::Constructor => { vec!["entity.name.function.definition.special.constructor"] } From 6634a5e9f63522304bbb9378b5c9f2133a5e847b Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 8 Dec 2023 11:23:42 -0500 Subject: [PATCH 029/115] Improve matching for constant tokens further --- crates/theme2/src/themes/andromeda.rs | 14 ++++++++ crates/theme2/src/themes/dracula.rs | 7 ++++ crates/theme2/src/themes/gruvbox.rs | 42 ++++++++++++++++++++++ crates/theme_importer/src/vscode/syntax.rs | 2 +- 4 files changed, 64 insertions(+), 1 deletion(-) diff --git a/crates/theme2/src/themes/andromeda.rs b/crates/theme2/src/themes/andromeda.rs index 766329b353ca343d44d9da48220486033a9bd9fe..38c859333fa49d6a1da1e9ffb250e4c601483f5b 100644 --- a/crates/theme2/src/themes/andromeda.rs +++ b/crates/theme2/src/themes/andromeda.rs @@ -88,6 +88,13 @@ pub fn andromeda() -> UserThemeFamily { ..Default::default() }, ), + ( + "constant".into(), + UserHighlightStyle { + color: Some(rgba(0xee5d43ff).into()), + ..Default::default() + }, + ), ( "emphasis".into(), UserHighlightStyle { @@ -278,6 +285,13 @@ pub fn andromeda() -> UserThemeFamily { ..Default::default() }, ), + ( + "constant".into(), + UserHighlightStyle { + color: Some(rgba(0xee5d43ff).into()), + ..Default::default() + }, + ), ( "emphasis".into(), UserHighlightStyle { diff --git a/crates/theme2/src/themes/dracula.rs b/crates/theme2/src/themes/dracula.rs index 3953a245267a6f34d6be14f208f84f1e71cef393..ae6c9ad7888e6e1176785f61d5d1927eae4046e6 100644 --- a/crates/theme2/src/themes/dracula.rs +++ b/crates/theme2/src/themes/dracula.rs @@ -94,6 +94,13 @@ pub fn dracula() -> UserThemeFamily { ..Default::default() }, ), + ( + "constant".into(), + UserHighlightStyle { + color: Some(rgba(0xbd93f9ff).into()), + ..Default::default() + }, + ), ( "emphasis".into(), UserHighlightStyle { diff --git a/crates/theme2/src/themes/gruvbox.rs b/crates/theme2/src/themes/gruvbox.rs index 5674593c2d84d355db17081dbbd22642dbc0e54a..32b580442a0dcb68b409f3f55cffd8153a10af4d 100644 --- a/crates/theme2/src/themes/gruvbox.rs +++ b/crates/theme2/src/themes/gruvbox.rs @@ -91,6 +91,13 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "constant".into(), + UserHighlightStyle { + color: Some(rgba(0xd3869bff).into()), + ..Default::default() + }, + ), ( "emphasis.strong".into(), UserHighlightStyle { @@ -348,6 +355,13 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "constant".into(), + UserHighlightStyle { + color: Some(rgba(0xd3869bff).into()), + ..Default::default() + }, + ), ( "emphasis.strong".into(), UserHighlightStyle { @@ -605,6 +619,13 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "constant".into(), + UserHighlightStyle { + color: Some(rgba(0xd3869bff).into()), + ..Default::default() + }, + ), ( "emphasis.strong".into(), UserHighlightStyle { @@ -862,6 +883,13 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "constant".into(), + UserHighlightStyle { + color: Some(rgba(0x8f3f71ff).into()), + ..Default::default() + }, + ), ( "emphasis.strong".into(), UserHighlightStyle { @@ -1119,6 +1147,13 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "constant".into(), + UserHighlightStyle { + color: Some(rgba(0x8f3f71ff).into()), + ..Default::default() + }, + ), ( "emphasis.strong".into(), UserHighlightStyle { @@ -1376,6 +1411,13 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "constant".into(), + UserHighlightStyle { + color: Some(rgba(0x8f3f71ff).into()), + ..Default::default() + }, + ), ( "emphasis.strong".into(), UserHighlightStyle { diff --git a/crates/theme_importer/src/vscode/syntax.rs b/crates/theme_importer/src/vscode/syntax.rs index 35f0f96a16b93bf8532de28191a913b1c6a9878f..e97839c9fe6db77d50ce57ae86fddfbec35be1de 100644 --- a/crates/theme_importer/src/vscode/syntax.rs +++ b/crates/theme_importer/src/vscode/syntax.rs @@ -186,7 +186,7 @@ impl ZedSyntaxToken { ZedSyntaxToken::Boolean => vec!["constant.language"], ZedSyntaxToken::Comment => vec!["comment"], ZedSyntaxToken::CommentDoc => vec!["comment.block.documentation"], - ZedSyntaxToken::Constant => vec!["constant.language", "constant.character"], + ZedSyntaxToken::Constant => vec!["constant", "constant.language", "constant.character"], ZedSyntaxToken::Constructor => { vec!["entity.name.function.definition.special.constructor"] } From 260a75300525e796cec0f9fe9f3782819af1bd9f Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Fri, 8 Dec 2023 11:33:18 -0500 Subject: [PATCH 030/115] Fix rustfmt --- crates/feedback2/src/feedback_modal.rs | 180 +++++++++++++------------ 1 file changed, 93 insertions(+), 87 deletions(-) diff --git a/crates/feedback2/src/feedback_modal.rs b/crates/feedback2/src/feedback_modal.rs index 6de05b6496d32bd5032682847fac2381bdad3cd3..865cbcc4de4a79d2e2a61ce6fc76532471b6df3c 100644 --- a/crates/feedback2/src/feedback_modal.rs +++ b/crates/feedback2/src/feedback_modal.rs @@ -284,6 +284,10 @@ impl Render for FeedbackModal { let open_community_repo = cx.listener(|_, _, cx| cx.dispatch_action(Box::new(OpenZedCommunityRepo))); + // Moved this here because providing it inline breaks rustfmt + let provide_an_email_address = + "Provide an email address if you want us to be able to reply."; + v_stack() .elevation_3(cx) .key_context("GiveFeedback") @@ -293,103 +297,105 @@ impl Render for FeedbackModal { .h(rems(32.)) .p_4() .gap_4() + .child(v_stack().child( + // TODO: Add Headline component to `ui2` + div().text_xl().child("Share Feedback"), + )) .child( - v_stack() - .child( - // TODO: Add Headline component to `ui2` - div().text_xl().child("Share Feedback")) - ) - .child( - div() - .flex_1() - .bg(cx.theme().colors().editor_background) - .p_2() - .border() - .rounded_md() - .border_color(cx.theme().colors().border) - .child(self.feedback_editor.clone()), - ) - .child( - div().child( - Label::new( - if self.character_count < *FEEDBACK_CHAR_LIMIT.start() { - format!("Feedback must be at least {} characters.", FEEDBACK_CHAR_LIMIT.start()) - } else if self.character_count > *FEEDBACK_CHAR_LIMIT.end() { - format!("Feedback must be less than {} characters.", FEEDBACK_CHAR_LIMIT.end()) - } else { - format!( - "Characters: {}", - *FEEDBACK_CHAR_LIMIT.end() - self.character_count - ) - } - ) - .color( - if valid_character_count { - Color::Success - } else { - Color::Error - } - ) - ) - - .child( - h_stack() + div() + .flex_1() .bg(cx.theme().colors().editor_background) .p_2() .border() .rounded_md() .border_color(cx.theme().colors().border) - .child(self.email_address_editor.clone())) - - .child( - h_stack() - .justify_between() - .gap_1() - .child(Button::new("community_repo", "Community Repo") - .style(ButtonStyle::Transparent) - .icon(Icon::ExternalLink) - .icon_position(IconPosition::End) - .icon_size(IconSize::Small) - .on_click(open_community_repo) - ) - .child(h_stack().gap_1() + .child(self.feedback_editor.clone()), + ) + .child( + div() + .child( + Label::new(if self.character_count < *FEEDBACK_CHAR_LIMIT.start() { + format!( + "Feedback must be at least {} characters.", + FEEDBACK_CHAR_LIMIT.start() + ) + } else if self.character_count > *FEEDBACK_CHAR_LIMIT.end() { + format!( + "Feedback must be less than {} characters.", + FEEDBACK_CHAR_LIMIT.end() + ) + } else { + format!( + "Characters: {}", + *FEEDBACK_CHAR_LIMIT.end() - self.character_count + ) + }) + .color(if valid_character_count { + Color::Success + } else { + Color::Error + }), + ) + .child( + h_stack() + .bg(cx.theme().colors().editor_background) + .p_2() + .border() + .rounded_md() + .border_color(cx.theme().colors().border) + .child(self.email_address_editor.clone()), + ) + .child( + h_stack() + .justify_between() + .gap_1() .child( - Button::new("cancel_feedback", "Cancel") - .style(ButtonStyle::Subtle) - .color(Color::Muted) - // TODO: replicate this logic when clicking outside the modal - // TODO: Will require somehow overriding the modal dismal default behavior - .map(|this| { - if has_feedback { - this.on_click(dismiss_prompt) - } else { - this.on_click(dismiss) - } - }) + Button::new("community_repo", "Community Repo") + .style(ButtonStyle::Transparent) + .icon(Icon::ExternalLink) + .icon_position(IconPosition::End) + .icon_size(IconSize::Small) + .on_click(open_community_repo), ) .child( - Button::new("send_feedback", submit_button_text) - .color(Color::Accent) - .style(ButtonStyle::Filled) - // TODO: Ensure that while submitting, "Sending..." is shown and disable the button - // TODO: If submit errors: show popup with error, don't close modal, set text back to "Send Feedback", and re-enable button - // TODO: If submit is successful, close the modal - .on_click(cx.listener(|this, _, cx| { - let _ = this.submit(cx); - })) - .tooltip(|cx| { - Tooltip::with_meta( - "Submit feedback to the Zed team.", - None, - "Provide an email address if you want us to be able to reply.", - cx, - ) - }) - .when(!allow_submission, |this| this.disabled(true)) + h_stack() + .gap_1() + .child( + Button::new("cancel_feedback", "Cancel") + .style(ButtonStyle::Subtle) + .color(Color::Muted) + // TODO: replicate this logic when clicking outside the modal + // TODO: Will require somehow overriding the modal dismal default behavior + .map(|this| { + if has_feedback { + this.on_click(dismiss_prompt) + } else { + this.on_click(dismiss) + } + }), + ) + .child( + Button::new("send_feedback", submit_button_text) + .color(Color::Accent) + .style(ButtonStyle::Filled) + // TODO: Ensure that while submitting, "Sending..." is shown and disable the button + // TODO: If submit errors: show popup with error, don't close modal, set text back to "Send Feedback", and re-enable button + // TODO: If submit is successful, close the modal + .on_click(cx.listener(|this, _, cx| { + let _ = this.submit(cx); + })) + .tooltip(|cx| { + Tooltip::with_meta( + "Submit feedback to the Zed team.", + None, + provide_an_email_address, + cx, + ) + }) + .when(!allow_submission, |this| this.disabled(true)), + ), ), - ) - - ) + ), ) } } From 6f064cfc36e3efcc30e9664cfb5a21807e3f9338 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 8 Dec 2023 11:34:39 -0500 Subject: [PATCH 031/115] Improve matching for constructor tokens --- crates/theme2/src/themes/andromeda.rs | 14 ++++ crates/theme2/src/themes/ayu.rs | 21 ++++++ crates/theme2/src/themes/dracula.rs | 7 ++ crates/theme2/src/themes/gruvbox.rs | 42 ++++++++++++ crates/theme2/src/themes/night_owl.rs | 14 ++++ crates/theme2/src/themes/noctis.rs | 77 ++++++++++++++++++++++ crates/theme2/src/themes/nord.rs | 7 ++ crates/theme2/src/themes/palenight.rs | 21 ++++++ crates/theme2/src/themes/rose_pine.rs | 21 ++++++ crates/theme2/src/themes/solarized.rs | 14 ++++ crates/theme2/src/themes/synthwave_84.rs | 7 ++ crates/theme_importer/src/vscode/syntax.rs | 5 +- 12 files changed, 249 insertions(+), 1 deletion(-) diff --git a/crates/theme2/src/themes/andromeda.rs b/crates/theme2/src/themes/andromeda.rs index 38c859333fa49d6a1da1e9ffb250e4c601483f5b..577bbea54311025174d2e787a7ee05a51bae2ba3 100644 --- a/crates/theme2/src/themes/andromeda.rs +++ b/crates/theme2/src/themes/andromeda.rs @@ -95,6 +95,13 @@ pub fn andromeda() -> UserThemeFamily { ..Default::default() }, ), + ( + "constructor".into(), + UserHighlightStyle { + color: Some(rgba(0xf92672ff).into()), + ..Default::default() + }, + ), ( "emphasis".into(), UserHighlightStyle { @@ -292,6 +299,13 @@ pub fn andromeda() -> UserThemeFamily { ..Default::default() }, ), + ( + "constructor".into(), + UserHighlightStyle { + color: Some(rgba(0xf92672ff).into()), + ..Default::default() + }, + ), ( "emphasis".into(), UserHighlightStyle { diff --git a/crates/theme2/src/themes/ayu.rs b/crates/theme2/src/themes/ayu.rs index f4ed232ea2a812fcfe34d40485a635fe6e6cff83..10ef469490be526cf582c5dd0e7433c00d9f8c7d 100644 --- a/crates/theme2/src/themes/ayu.rs +++ b/crates/theme2/src/themes/ayu.rs @@ -108,6 +108,13 @@ pub fn ayu() -> UserThemeFamily { ..Default::default() }, ), + ( + "constructor".into(), + UserHighlightStyle { + color: Some(rgba(0x55b4d4ff).into()), + ..Default::default() + }, + ), ( "embedded".into(), UserHighlightStyle { @@ -397,6 +404,13 @@ pub fn ayu() -> UserThemeFamily { ..Default::default() }, ), + ( + "constructor".into(), + UserHighlightStyle { + color: Some(rgba(0x5ccfe6ff).into()), + ..Default::default() + }, + ), ( "embedded".into(), UserHighlightStyle { @@ -686,6 +700,13 @@ pub fn ayu() -> UserThemeFamily { ..Default::default() }, ), + ( + "constructor".into(), + UserHighlightStyle { + color: Some(rgba(0x39bae6ff).into()), + ..Default::default() + }, + ), ( "embedded".into(), UserHighlightStyle { diff --git a/crates/theme2/src/themes/dracula.rs b/crates/theme2/src/themes/dracula.rs index ae6c9ad7888e6e1176785f61d5d1927eae4046e6..19902dd79db01138bf8439252f07ebed812cc6a8 100644 --- a/crates/theme2/src/themes/dracula.rs +++ b/crates/theme2/src/themes/dracula.rs @@ -101,6 +101,13 @@ pub fn dracula() -> UserThemeFamily { ..Default::default() }, ), + ( + "constructor".into(), + UserHighlightStyle { + color: Some(rgba(0xff79c6ff).into()), + ..Default::default() + }, + ), ( "emphasis".into(), UserHighlightStyle { diff --git a/crates/theme2/src/themes/gruvbox.rs b/crates/theme2/src/themes/gruvbox.rs index 32b580442a0dcb68b409f3f55cffd8153a10af4d..43354b2d2241fefd40f4c9a8a85c14e790e57ac0 100644 --- a/crates/theme2/src/themes/gruvbox.rs +++ b/crates/theme2/src/themes/gruvbox.rs @@ -98,6 +98,13 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "constructor".into(), + UserHighlightStyle { + color: Some(rgba(0x8ec07cff).into()), + ..Default::default() + }, + ), ( "emphasis.strong".into(), UserHighlightStyle { @@ -362,6 +369,13 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "constructor".into(), + UserHighlightStyle { + color: Some(rgba(0x8ec07cff).into()), + ..Default::default() + }, + ), ( "emphasis.strong".into(), UserHighlightStyle { @@ -626,6 +640,13 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "constructor".into(), + UserHighlightStyle { + color: Some(rgba(0x8ec07cff).into()), + ..Default::default() + }, + ), ( "emphasis.strong".into(), UserHighlightStyle { @@ -890,6 +911,13 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "constructor".into(), + UserHighlightStyle { + color: Some(rgba(0x427b58ff).into()), + ..Default::default() + }, + ), ( "emphasis.strong".into(), UserHighlightStyle { @@ -1154,6 +1182,13 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "constructor".into(), + UserHighlightStyle { + color: Some(rgba(0x427b58ff).into()), + ..Default::default() + }, + ), ( "emphasis.strong".into(), UserHighlightStyle { @@ -1418,6 +1453,13 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "constructor".into(), + UserHighlightStyle { + color: Some(rgba(0x427b58ff).into()), + ..Default::default() + }, + ), ( "emphasis.strong".into(), UserHighlightStyle { diff --git a/crates/theme2/src/themes/night_owl.rs b/crates/theme2/src/themes/night_owl.rs index 33246850f40dcd5d84baf920eece7ef4a56ac4b3..09b73c10dbd980873a58fbfeb17cde70672030cd 100644 --- a/crates/theme2/src/themes/night_owl.rs +++ b/crates/theme2/src/themes/night_owl.rs @@ -109,6 +109,13 @@ pub fn night_owl() -> UserThemeFamily { ..Default::default() }, ), + ( + "constructor".into(), + UserHighlightStyle { + color: Some(rgba(0xcaece6ff).into()), + ..Default::default() + }, + ), ( "function".into(), UserHighlightStyle { @@ -350,6 +357,13 @@ pub fn night_owl() -> UserThemeFamily { ..Default::default() }, ), + ( + "constructor".into(), + UserHighlightStyle { + color: Some(rgba(0x994cc3ff).into()), + ..Default::default() + }, + ), ( "function".into(), UserHighlightStyle { diff --git a/crates/theme2/src/themes/noctis.rs b/crates/theme2/src/themes/noctis.rs index 980ea7398d83b222130c6c6871ee475fb6ebb86b..a05422300c9c3a3afdff4838e1e4b3ceae4a2023 100644 --- a/crates/theme2/src/themes/noctis.rs +++ b/crates/theme2/src/themes/noctis.rs @@ -101,6 +101,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "constructor".into(), + UserHighlightStyle { + color: Some(rgba(0xe66533ff).into()), + ..Default::default() + }, + ), ( "function".into(), UserHighlightStyle { @@ -360,6 +367,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "constructor".into(), + UserHighlightStyle { + color: Some(rgba(0xe66533ff).into()), + ..Default::default() + }, + ), ( "function".into(), UserHighlightStyle { @@ -619,6 +633,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "constructor".into(), + UserHighlightStyle { + color: Some(rgba(0xe64100ff).into()), + ..Default::default() + }, + ), ( "function".into(), UserHighlightStyle { @@ -878,6 +899,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "constructor".into(), + UserHighlightStyle { + color: Some(rgba(0xe64100ff).into()), + ..Default::default() + }, + ), ( "function".into(), UserHighlightStyle { @@ -1137,6 +1165,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "constructor".into(), + UserHighlightStyle { + color: Some(rgba(0xe64100ff).into()), + ..Default::default() + }, + ), ( "function".into(), UserHighlightStyle { @@ -1396,6 +1431,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "constructor".into(), + UserHighlightStyle { + color: Some(rgba(0xc37455ff).into()), + ..Default::default() + }, + ), ( "function".into(), UserHighlightStyle { @@ -1655,6 +1697,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "constructor".into(), + UserHighlightStyle { + color: Some(rgba(0xe66533ff).into()), + ..Default::default() + }, + ), ( "function".into(), UserHighlightStyle { @@ -1914,6 +1963,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "constructor".into(), + UserHighlightStyle { + color: Some(rgba(0xe66533ff).into()), + ..Default::default() + }, + ), ( "function".into(), UserHighlightStyle { @@ -2173,6 +2229,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "constructor".into(), + UserHighlightStyle { + color: Some(rgba(0xe66533ff).into()), + ..Default::default() + }, + ), ( "function".into(), UserHighlightStyle { @@ -2432,6 +2495,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "constructor".into(), + UserHighlightStyle { + color: Some(rgba(0xe66533ff).into()), + ..Default::default() + }, + ), ( "function".into(), UserHighlightStyle { @@ -2691,6 +2761,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "constructor".into(), + UserHighlightStyle { + color: Some(rgba(0xe66533ff).into()), + ..Default::default() + }, + ), ( "function".into(), UserHighlightStyle { diff --git a/crates/theme2/src/themes/nord.rs b/crates/theme2/src/themes/nord.rs index ce281f0f69d84233e055d6ad698bc98f1db30c4d..ee32e56645aa8aad4cabd142e3a3d380f8c9cb74 100644 --- a/crates/theme2/src/themes/nord.rs +++ b/crates/theme2/src/themes/nord.rs @@ -107,6 +107,13 @@ pub fn nord() -> UserThemeFamily { ..Default::default() }, ), + ( + "constructor".into(), + UserHighlightStyle { + color: Some(rgba(0x81a1c1ff).into()), + ..Default::default() + }, + ), ( "function".into(), UserHighlightStyle { diff --git a/crates/theme2/src/themes/palenight.rs b/crates/theme2/src/themes/palenight.rs index 1200802fbce1a1de97c778f6e96e13fa5a166126..0b2cfaca9978ef660cf78cad228fb2ec5aa76e44 100644 --- a/crates/theme2/src/themes/palenight.rs +++ b/crates/theme2/src/themes/palenight.rs @@ -108,6 +108,13 @@ pub fn palenight() -> UserThemeFamily { ..Default::default() }, ), + ( + "constructor".into(), + UserHighlightStyle { + color: Some(rgba(0xff5572ff).into()), + ..Default::default() + }, + ), ( "emphasis".into(), UserHighlightStyle { @@ -376,6 +383,13 @@ pub fn palenight() -> UserThemeFamily { ..Default::default() }, ), + ( + "constructor".into(), + UserHighlightStyle { + color: Some(rgba(0xff5572ff).into()), + ..Default::default() + }, + ), ( "emphasis".into(), UserHighlightStyle { @@ -644,6 +658,13 @@ pub fn palenight() -> UserThemeFamily { ..Default::default() }, ), + ( + "constructor".into(), + UserHighlightStyle { + color: Some(rgba(0xff5572ff).into()), + ..Default::default() + }, + ), ( "emphasis".into(), UserHighlightStyle { diff --git a/crates/theme2/src/themes/rose_pine.rs b/crates/theme2/src/themes/rose_pine.rs index 8bc7fe8bc006f033d368ca85fd3274bea128aaf2..460903e2e5c2e05e514df1291a83fd5f5b04a240 100644 --- a/crates/theme2/src/themes/rose_pine.rs +++ b/crates/theme2/src/themes/rose_pine.rs @@ -110,6 +110,13 @@ pub fn rose_pine() -> UserThemeFamily { ..Default::default() }, ), + ( + "constructor".into(), + UserHighlightStyle { + color: Some(rgba(0x9ccfd8ff).into()), + ..Default::default() + }, + ), ( "function".into(), UserHighlightStyle { @@ -350,6 +357,13 @@ pub fn rose_pine() -> UserThemeFamily { ..Default::default() }, ), + ( + "constructor".into(), + UserHighlightStyle { + color: Some(rgba(0x9ccfd8ff).into()), + ..Default::default() + }, + ), ( "function".into(), UserHighlightStyle { @@ -590,6 +604,13 @@ pub fn rose_pine() -> UserThemeFamily { ..Default::default() }, ), + ( + "constructor".into(), + UserHighlightStyle { + color: Some(rgba(0x56949fff).into()), + ..Default::default() + }, + ), ( "function".into(), UserHighlightStyle { diff --git a/crates/theme2/src/themes/solarized.rs b/crates/theme2/src/themes/solarized.rs index 5d43b5704af9399ae966f88102d12462ebb35ba3..81171e0fb02885b8c3d6f9ed33675aa882ec90b3 100644 --- a/crates/theme2/src/themes/solarized.rs +++ b/crates/theme2/src/themes/solarized.rs @@ -103,6 +103,13 @@ pub fn solarized() -> UserThemeFamily { ..Default::default() }, ), + ( + "constructor".into(), + UserHighlightStyle { + color: Some(rgba(0x268bd2ff).into()), + ..Default::default() + }, + ), ( "embedded".into(), UserHighlightStyle { @@ -354,6 +361,13 @@ pub fn solarized() -> UserThemeFamily { ..Default::default() }, ), + ( + "constructor".into(), + UserHighlightStyle { + color: Some(rgba(0x268bd2ff).into()), + ..Default::default() + }, + ), ( "embedded".into(), UserHighlightStyle { diff --git a/crates/theme2/src/themes/synthwave_84.rs b/crates/theme2/src/themes/synthwave_84.rs index aeca085fd5fbcdd8f4eb17ce5291511a77537cd1..90e8a9c667c6032827f0f4cadc453d5314ec5712 100644 --- a/crates/theme2/src/themes/synthwave_84.rs +++ b/crates/theme2/src/themes/synthwave_84.rs @@ -92,6 +92,13 @@ pub fn synthwave_84() -> UserThemeFamily { ..Default::default() }, ), + ( + "constructor".into(), + UserHighlightStyle { + color: Some(rgba(0x72f1b8ff).into()), + ..Default::default() + }, + ), ( "function".into(), UserHighlightStyle { diff --git a/crates/theme_importer/src/vscode/syntax.rs b/crates/theme_importer/src/vscode/syntax.rs index e97839c9fe6db77d50ce57ae86fddfbec35be1de..262bd81f775da1ff3ff4ff1d257feb632e64f8bb 100644 --- a/crates/theme_importer/src/vscode/syntax.rs +++ b/crates/theme_importer/src/vscode/syntax.rs @@ -188,7 +188,10 @@ impl ZedSyntaxToken { ZedSyntaxToken::CommentDoc => vec!["comment.block.documentation"], ZedSyntaxToken::Constant => vec!["constant", "constant.language", "constant.character"], ZedSyntaxToken::Constructor => { - vec!["entity.name.function.definition.special.constructor"] + vec![ + "entity.name.tag", + "entity.name.function.definition.special.constructor", + ] } ZedSyntaxToken::Embedded => vec!["meta.embedded"], ZedSyntaxToken::Emphasis => vec!["markup.italic"], From b66e1d2d58b562bb30a6ee5c2ef7c0d48bb87e38 Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Fri, 8 Dec 2023 11:35:49 -0500 Subject: [PATCH 032/115] Fix compiler error --- crates/feedback2/src/feedback_modal.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/feedback2/src/feedback_modal.rs b/crates/feedback2/src/feedback_modal.rs index 865cbcc4de4a79d2e2a61ce6fc76532471b6df3c..0cee05c8f8af22943b5313f75ed4fd34187b2563 100644 --- a/crates/feedback2/src/feedback_modal.rs +++ b/crates/feedback2/src/feedback_modal.rs @@ -384,7 +384,7 @@ impl Render for FeedbackModal { .on_click(cx.listener(|this, _, cx| { let _ = this.submit(cx); })) - .tooltip(|cx| { + .tooltip(move |cx| { Tooltip::with_meta( "Submit feedback to the Zed team.", None, From 4596e7a68a6bc5729787f91ba2d9404397f0ede0 Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Fri, 8 Dec 2023 11:39:10 -0500 Subject: [PATCH 033/115] Use consistent text --- crates/feedback2/src/deploy_feedback_button.rs | 2 +- crates/feedback2/src/feedback_modal.rs | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/feedback2/src/deploy_feedback_button.rs b/crates/feedback2/src/deploy_feedback_button.rs index e5884cf9b185528b741cfa3b8dde4e8fe55b7812..3b28c64dc3a57c51937f636c1693ea779aa1bf0d 100644 --- a/crates/feedback2/src/deploy_feedback_button.rs +++ b/crates/feedback2/src/deploy_feedback_button.rs @@ -32,7 +32,7 @@ impl Render for DeployFeedbackButton { IconButton::new("give-feedback", Icon::Envelope) .style(ui::ButtonStyle::Subtle) .selected(is_open) - .tooltip(|cx| Tooltip::text("Give Feedback", cx)) + .tooltip(|cx| Tooltip::text("Share Feedback", cx)) .on_click(|_, cx| { cx.dispatch_action(Box::new(GiveFeedback)); }) diff --git a/crates/feedback2/src/feedback_modal.rs b/crates/feedback2/src/feedback_modal.rs index 0cee05c8f8af22943b5313f75ed4fd34187b2563..5ac2197609e3e2811678ccc9a50825badc27240e 100644 --- a/crates/feedback2/src/feedback_modal.rs +++ b/crates/feedback2/src/feedback_modal.rs @@ -263,9 +263,9 @@ impl Render for FeedbackModal { let has_feedback = self.feedback_editor.read(cx).text_option(cx).is_some(); let submit_button_text = if self.pending_submission { - "Sending..." + "Submitting..." } else { - "Send Feedback" + "Submit" }; let dismiss = cx.listener(|_, _, cx| { cx.emit(DismissEvent); @@ -379,7 +379,7 @@ impl Render for FeedbackModal { .color(Color::Accent) .style(ButtonStyle::Filled) // TODO: Ensure that while submitting, "Sending..." is shown and disable the button - // TODO: If submit errors: show popup with error, don't close modal, set text back to "Send Feedback", and re-enable button + // TODO: If submit errors: show popup with error, don't close modal, set text back to "Submit", and re-enable button // TODO: If submit is successful, close the modal .on_click(cx.listener(|this, _, cx| { let _ = this.submit(cx); From 52e4c577d241a8a80a89f6bb1fc2260f6f61b45b Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 8 Dec 2023 11:45:08 -0500 Subject: [PATCH 034/115] =?UTF-8?q?Re-import=20Ros=C3=A9=20Pine=20source?= =?UTF-8?q?=20themes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/vscode/rose-pine/rose-pine-dawn.json | 1356 ++++++++--------- .../src/vscode/rose-pine/rose-pine-moon.json | 1356 ++++++++--------- .../src/vscode/rose-pine/rose-pine.json | 1356 ++++++++--------- crates/theme2/src/themes/rose_pine.rs | 36 +- 4 files changed, 2052 insertions(+), 2052 deletions(-) diff --git a/assets/themes/src/vscode/rose-pine/rose-pine-dawn.json b/assets/themes/src/vscode/rose-pine/rose-pine-dawn.json index 39cc251fe95a2828237f4154663ed610880f26a5..abf752d3f6aec73035ecb78cec56a525a770053a 100644 --- a/assets/themes/src/vscode/rose-pine/rose-pine-dawn.json +++ b/assets/themes/src/vscode/rose-pine/rose-pine-dawn.json @@ -1,680 +1,680 @@ { - "name": "Rosé Pine Dawn", - "type": "light", - "colors": { - "activityBar.activeBorder": "#575279", - "activityBar.background": "#faf4ed", - "activityBar.dropBorder": "#f2e9e1", - "activityBar.foreground": "#575279", - "activityBar.inactiveForeground": "#797593", - "activityBarBadge.background": "#d7827e", - "activityBarBadge.foreground": "#faf4ed", - "badge.background": "#d7827e", - "badge.foreground": "#faf4ed", - "banner.background": "#fffaf3", - "banner.foreground": "#575279", - "banner.iconForeground": "#797593", - "breadcrumb.activeSelectionForeground": "#d7827e", - "breadcrumb.background": "#faf4ed", - "breadcrumb.focusForeground": "#797593", - "breadcrumb.foreground": "#9893a5", - "breadcrumbPicker.background": "#fffaf3", - "button.background": "#d7827e", - "button.foreground": "#faf4ed", - "button.hoverBackground": "#d7827ee6", - "button.secondaryBackground": "#fffaf3", - "button.secondaryForeground": "#575279", - "button.secondaryHoverBackground": "#f2e9e1", - "charts.blue": "#56949f", - "charts.foreground": "#575279", - "charts.green": "#286983", - "charts.lines": "#797593", - "charts.orange": "#d7827e", - "charts.purple": "#907aa9", - "charts.red": "#b4637a", - "charts.yellow": "#ea9d34", - "checkbox.background": "#fffaf3", - "checkbox.border": "#6e6a8614", - "checkbox.foreground": "#575279", - "debugExceptionWidget.background": "#fffaf3", - "debugExceptionWidget.border": "#6e6a8614", - "debugIcon.breakpointCurrentStackframeForeground": "#797593", - "debugIcon.breakpointDisabledForeground": "#797593", - "debugIcon.breakpointForeground": "#797593", - "debugIcon.breakpointStackframeForeground": "#797593", - "debugIcon.breakpointUnverifiedForeground": "#797593", - "debugIcon.continueForeground": "#797593", - "debugIcon.disconnectForeground": "#797593", - "debugIcon.pauseForeground": "#797593", - "debugIcon.restartForeground": "#797593", - "debugIcon.startForeground": "#797593", - "debugIcon.stepBackForeground": "#797593", - "debugIcon.stepIntoForeground": "#797593", - "debugIcon.stepOutForeground": "#797593", - "debugIcon.stepOverForeground": "#797593", - "debugIcon.stopForeground": "#b4637a", - "debugToolBar.background": "#fffaf3", - "debugToolBar.border": "#f2e9e1", - "descriptionForeground": "#797593", - "diffEditor.border": "#f2e9e1", - "diffEditor.diagonalFill": "#6e6a8626", - "diffEditor.insertedLineBackground": "#56949f26", - "diffEditor.insertedTextBackground": "#56949f26", - "diffEditor.removedLineBackground": "#b4637a26", - "diffEditor.removedTextBackground": "#b4637a26", - "diffEditorOverview.insertedForeground": "#56949f80", - "diffEditorOverview.removedForeground": "#b4637a80", - "dropdown.background": "#fffaf3", - "dropdown.border": "#6e6a8614", - "dropdown.foreground": "#575279", - "dropdown.listBackground": "#fffaf3", - "editor.background": "#faf4ed", - "editor.findMatchBackground": "#6e6a8626", - "editor.findMatchHighlightBackground": "#6e6a8626", - "editor.findRangeHighlightBackground": "#6e6a8626", - "editor.findRangeHighlightBorder": "#000000", - "editor.focusedStackFrameHighlightBackground": "#6e6a8614", - "editor.foldBackground": "#fffaf3", - "editor.foreground": "#575279", - "editor.hoverHighlightBackground": "#000000", - "editor.inactiveSelectionBackground": "#6e6a860d", - "editor.inlineValuesBackground": "#000000", - "editor.inlineValuesForeground": "#797593", - "editor.lineHighlightBackground": "#6e6a860d", - "editor.lineHighlightBorder": "#000000", - "editor.linkedEditingBackground": "#fffaf3", - "editor.rangeHighlightBackground": "#6e6a860d", - "editor.selectionBackground": "#6e6a8614", - "editor.selectionForeground": "#575279", - "editor.selectionHighlightBackground": "#6e6a8614", - "editor.selectionHighlightBorder": "#faf4ed", - "editor.snippetFinalTabstopHighlightBackground": "#6e6a8614", - "editor.snippetFinalTabstopHighlightBorder": "#fffaf3", - "editor.snippetTabstopHighlightBackground": "#6e6a8614", - "editor.snippetTabstopHighlightBorder": "#fffaf3", - "editor.stackFrameHighlightBackground": "#6e6a8614", - "editor.symbolHighlightBackground": "#6e6a8614", - "editor.symbolHighlightBorder": "#000000", - "editor.wordHighlightBackground": "#6e6a8614", - "editor.wordHighlightBorder": "#000000", - "editor.wordHighlightStrongBackground": "#6e6a8614", - "editor.wordHighlightStrongBorder": "#6e6a8614", - "editorBracketHighlight.foreground1": "#b4637a80", - "editorBracketHighlight.foreground2": "#28698380", - "editorBracketHighlight.foreground3": "#ea9d3480", - "editorBracketHighlight.foreground4": "#56949f80", - "editorBracketHighlight.foreground5": "#d7827e80", - "editorBracketHighlight.foreground6": "#907aa980", - "editorBracketMatch.background": "#000000", - "editorBracketMatch.border": "#797593", - "editorBracketPairGuide.activeBackground1": "#286983", - "editorBracketPairGuide.activeBackground2": "#d7827e", - "editorBracketPairGuide.activeBackground3": "#907aa9", - "editorBracketPairGuide.activeBackground4": "#56949f", - "editorBracketPairGuide.activeBackground5": "#ea9d34", - "editorBracketPairGuide.activeBackground6": "#b4637a", - "editorBracketPairGuide.background1": "#28698380", - "editorBracketPairGuide.background2": "#d7827e80", - "editorBracketPairGuide.background3": "#907aa980", - "editorBracketPairGuide.background4": "#56949f80", - "editorBracketPairGuide.background5": "#ea9d3480", - "editorBracketPairGuide.background6": "#b4637a80", - "editorCodeLens.foreground": "#d7827e", - "editorCursor.background": "#575279", - "editorCursor.foreground": "#9893a5", - "editorError.border": "#000000", - "editorError.foreground": "#b4637a", - "editorGhostText.foreground": "#797593", - "editorGroup.border": "#000000", - "editorGroup.dropBackground": "#fffaf3", - "editorGroup.emptyBackground": "#000000", - "editorGroup.focusedEmptyBorder": "#000000", - "editorGroupHeader.noTabsBackground": "#000000", - "editorGroupHeader.tabsBackground": "#000000", - "editorGroupHeader.tabsBorder": "#000000", - "editorGutter.addedBackground": "#56949f", - "editorGutter.background": "#faf4ed", - "editorGutter.commentRangeForeground": "#797593", - "editorGutter.deletedBackground": "#b4637a", - "editorGutter.foldingControlForeground": "#907aa9", - "editorGutter.modifiedBackground": "#d7827e", - "editorHint.border": "#000000", - "editorHint.foreground": "#797593", - "editorHoverWidget.background": "#fffaf3", - "editorHoverWidget.border": "#9893a580", - "editorHoverWidget.foreground": "#797593", - "editorHoverWidget.highlightForeground": "#575279", - "editorHoverWidget.statusBarBackground": "#000000", - "editorIndentGuide.activeBackground": "#9893a5", - "editorIndentGuide.background": "#6e6a8626", - "editorInfo.border": "#f2e9e1", - "editorInfo.foreground": "#56949f", - "editorInlayHint.background": "#f2e9e1", - "editorInlayHint.foreground": "#797593", - "editorInlayHint.parameterBackground": "#f2e9e1", - "editorInlayHint.parameterForeground": "#907aa9", - "editorInlayHint.typeBackground": "#f2e9e1", - "editorInlayHint.typeForeground": "#56949f", - "editorLightBulb.foreground": "#286983", - "editorLightBulbAutoFix.foreground": "#d7827e", - "editorLineNumber.activeForeground": "#575279", - "editorLineNumber.foreground": "#797593", - "editorLink.activeForeground": "#d7827e", - "editorMarkerNavigation.background": "#fffaf3", - "editorMarkerNavigationError.background": "#fffaf3", - "editorMarkerNavigationInfo.background": "#fffaf3", - "editorMarkerNavigationWarning.background": "#fffaf3", - "editorOverviewRuler.addedForeground": "#56949f80", - "editorOverviewRuler.background": "#faf4ed", - "editorOverviewRuler.border": "#6e6a8626", - "editorOverviewRuler.bracketMatchForeground": "#797593", - "editorOverviewRuler.commonContentForeground": "#6e6a860d", - "editorOverviewRuler.currentContentForeground": "#6e6a8614", - "editorOverviewRuler.deletedForeground": "#b4637a80", - "editorOverviewRuler.errorForeground": "#b4637a80", - "editorOverviewRuler.findMatchForeground": "#6e6a8626", - "editorOverviewRuler.incomingContentForeground": "#907aa980", - "editorOverviewRuler.infoForeground": "#56949f80", - "editorOverviewRuler.modifiedForeground": "#d7827e80", - "editorOverviewRuler.rangeHighlightForeground": "#6e6a8626", - "editorOverviewRuler.selectionHighlightForeground": "#6e6a8626", - "editorOverviewRuler.warningForeground": "#ea9d3480", - "editorOverviewRuler.wordHighlightForeground": "#6e6a8614", - "editorOverviewRuler.wordHighlightStrongForeground": "#6e6a8626", - "editorPane.background": "#000000", - "editorRuler.foreground": "#6e6a8626", - "editorSuggestWidget.background": "#fffaf3", - "editorSuggestWidget.border": "#000000", - "editorSuggestWidget.focusHighlightForeground": "#d7827e", - "editorSuggestWidget.foreground": "#797593", - "editorSuggestWidget.highlightForeground": "#d7827e", - "editorSuggestWidget.selectedBackground": "#6e6a8614", - "editorSuggestWidget.selectedForeground": "#575279", - "editorSuggestWidget.selectedIconForeground": "#575279", - "editorUnnecessaryCode.border": "#000000", - "editorUnnecessaryCode.opacity": "#57527980", - "editorWarning.border": "#000000", - "editorWarning.foreground": "#ea9d34", - "editorWhitespace.foreground": "#9893a5", - "editorWidget.background": "#fffaf3", - "editorWidget.border": "#f2e9e1", - "editorWidget.foreground": "#797593", - "editorWidget.resizeBorder": "#9893a5", - "errorForeground": "#b4637a", - "extensionBadge.remoteBackground": "#907aa9", - "extensionBadge.remoteForeground": "#faf4ed", - "extensionButton.prominentBackground": "#d7827e", - "extensionButton.prominentForeground": "#faf4ed", - "extensionButton.prominentHoverBackground": "#d7827ee6", - "extensionIcon.preReleaseForeground": "#286983", - "extensionIcon.starForeground": "#d7827e", - "extensionIcon.verifiedForeground": "#907aa9", - "focusBorder": "#6e6a8614", - "foreground": "#575279", - "gitDecoration.addedResourceForeground": "#56949f", - "gitDecoration.conflictingResourceForeground": "#b4637a", - "gitDecoration.deletedResourceForeground": "#797593", - "gitDecoration.ignoredResourceForeground": "#9893a5", - "gitDecoration.modifiedResourceForeground": "#d7827e", - "gitDecoration.renamedResourceForeground": "#286983", - "gitDecoration.stageDeletedResourceForeground": "#b4637a", - "gitDecoration.stageModifiedResourceForeground": "#907aa9", - "gitDecoration.submoduleResourceForeground": "#ea9d34", - "gitDecoration.untrackedResourceForeground": "#ea9d34", - "icon.foreground": "#797593", - "input.background": "#f2e9e180", - "input.border": "#6e6a8614", - "input.foreground": "#575279", - "input.placeholderForeground": "#797593", - "inputOption.activeBackground": "#d7827e26", - "inputOption.activeForeground": "#d7827e", - "inputValidation.errorBackground": "#fffaf3", - "inputValidation.errorBorder": "#6e6a8626", - "inputValidation.errorForeground": "#b4637a", - "inputValidation.infoBackground": "#fffaf3", - "inputValidation.infoBorder": "#6e6a8626", - "inputValidation.infoForeground": "#56949f", - "inputValidation.warningBackground": "#fffaf3", - "inputValidation.warningBorder": "#6e6a8626", - "inputValidation.warningForeground": "#56949f80", - "keybindingLabel.background": "#f2e9e1", - "keybindingLabel.border": "#6e6a8626", - "keybindingLabel.bottomBorder": "#6e6a8626", - "keybindingLabel.foreground": "#907aa9", - "keybindingTable.headerBackground": "#f2e9e1", - "keybindingTable.rowsBackground": "#fffaf3", - "list.activeSelectionBackground": "#6e6a8614", - "list.activeSelectionForeground": "#575279", - "list.deemphasizedForeground": "#797593", - "list.dropBackground": "#fffaf3", - "list.errorForeground": "#b4637a", - "list.filterMatchBackground": "#fffaf3", - "list.filterMatchBorder": "#d7827e", - "list.focusBackground": "#6e6a8626", - "list.focusForeground": "#575279", - "list.focusOutline": "#6e6a8614", - "list.highlightForeground": "#d7827e", - "list.hoverBackground": "#6e6a860d", - "list.hoverForeground": "#575279", - "list.inactiveFocusBackground": "#6e6a860d", - "list.inactiveSelectionBackground": "#fffaf3", - "list.inactiveSelectionForeground": "#575279", - "list.invalidItemForeground": "#b4637a", - "list.warningForeground": "#ea9d34", - "listFilterWidget.background": "#fffaf3", - "listFilterWidget.noMatchesOutline": "#b4637a", - "listFilterWidget.outline": "#f2e9e1", - "menu.background": "#fffaf3", - "menu.border": "#6e6a860d", - "menu.foreground": "#575279", - "menu.selectionBackground": "#6e6a8614", - "menu.selectionBorder": "#f2e9e1", - "menu.selectionForeground": "#575279", - "menu.separatorBackground": "#6e6a8626", - "menubar.selectionBackground": "#6e6a8614", - "menubar.selectionBorder": "#6e6a860d", - "menubar.selectionForeground": "#575279", - "merge.border": "#f2e9e1", - "merge.commonContentBackground": "#6e6a8614", - "merge.commonHeaderBackground": "#6e6a8614", - "merge.currentContentBackground": "#ea9d3480", - "merge.currentHeaderBackground": "#ea9d3480", - "merge.incomingContentBackground": "#56949f80", - "merge.incomingHeaderBackground": "#56949f80", - "minimap.background": "#fffaf3", - "minimap.errorHighlight": "#b4637a80", - "minimap.findMatchHighlight": "#6e6a8614", - "minimap.selectionHighlight": "#6e6a8614", - "minimap.warningHighlight": "#ea9d3480", - "minimapGutter.addedBackground": "#56949f", - "minimapGutter.deletedBackground": "#b4637a", - "minimapGutter.modifiedBackground": "#d7827e", - "minimapSlider.activeBackground": "#6e6a8626", - "minimapSlider.background": "#6e6a8614", - "minimapSlider.hoverBackground": "#6e6a8614", - "notebook.cellBorderColor": "#56949f80", - "notebook.cellEditorBackground": "#fffaf3", - "notebook.cellHoverBackground": "#f2e9e180", - "notebook.focusedCellBackground": "#6e6a860d", - "notebook.focusedCellBorder": "#56949f", - "notebook.outputContainerBackgroundColor": "#6e6a860d", - "notificationCenter.border": "#6e6a8614", - "notificationCenterHeader.background": "#fffaf3", - "notificationCenterHeader.foreground": "#797593", - "notificationLink.foreground": "#907aa9", - "notifications.background": "#fffaf3", - "notifications.border": "#6e6a8614", - "notifications.foreground": "#575279", - "notificationsErrorIcon.foreground": "#b4637a", - "notificationsInfoIcon.foreground": "#56949f", - "notificationsWarningIcon.foreground": "#ea9d34", - "notificationToast.border": "#6e6a8614", - "panel.background": "#fffaf3", - "panel.border": "#000000", - "panel.dropBorder": "#f2e9e1", - "panelInput.border": "#fffaf3", - "panelSection.dropBackground": "#6e6a8614", - "panelSectionHeader.background": "#fffaf3", - "panelSectionHeader.foreground": "#575279", - "panelTitle.activeBorder": "#6e6a8626", - "panelTitle.activeForeground": "#575279", - "panelTitle.inactiveForeground": "#797593", - "peekView.border": "#f2e9e1", - "peekViewEditor.background": "#fffaf3", - "peekViewEditor.matchHighlightBackground": "#6e6a8626", - "peekViewResult.background": "#fffaf3", - "peekViewResult.fileForeground": "#797593", - "peekViewResult.lineForeground": "#797593", - "peekViewResult.matchHighlightBackground": "#6e6a8626", - "peekViewResult.selectionBackground": "#6e6a8614", - "peekViewResult.selectionForeground": "#575279", - "peekViewTitle.background": "#f2e9e1", - "peekViewTitleDescription.foreground": "#797593", - "pickerGroup.border": "#6e6a8626", - "pickerGroup.foreground": "#907aa9", - "ports.iconRunningProcessForeground": "#d7827e", - "problemsErrorIcon.foreground": "#b4637a", - "problemsInfoIcon.foreground": "#56949f", - "problemsWarningIcon.foreground": "#ea9d34", - "progressBar.background": "#d7827e", - "quickInput.background": "#fffaf3", - "quickInput.foreground": "#797593", - "quickInputList.focusBackground": "#6e6a8614", - "quickInputList.focusForeground": "#575279", - "quickInputList.focusIconForeground": "#575279", - "scrollbar.shadow": "#fffaf34d", - "scrollbarSlider.activeBackground": "#28698380", - "scrollbarSlider.background": "#6e6a8614", - "scrollbarSlider.hoverBackground": "#6e6a8626", - "searchEditor.findMatchBackground": "#6e6a8614", - "selection.background": "#6e6a8626", - "settings.focusedRowBackground": "#fffaf3", - "settings.headerForeground": "#575279", - "settings.modifiedItemIndicator": "#d7827e", - "settings.focusedRowBorder": "#6e6a8614", - "settings.rowHoverBackground": "#fffaf3", - "sideBar.background": "#faf4ed", - "sideBar.dropBackground": "#fffaf3", - "sideBar.foreground": "#797593", - "sideBarSectionHeader.background": "#000000", - "sideBarSectionHeader.border": "#6e6a8614", - "statusBar.background": "#faf4ed", - "statusBar.debuggingBackground": "#907aa9", - "statusBar.debuggingForeground": "#faf4ed", - "statusBar.foreground": "#797593", - "statusBar.noFolderBackground": "#faf4ed", - "statusBar.noFolderForeground": "#797593", - "statusBarItem.activeBackground": "#6e6a8626", - "statusBarItem.hoverBackground": "#6e6a8614", - "statusBarItem.prominentBackground": "#f2e9e1", - "statusBarItem.prominentForeground": "#575279", - "statusBarItem.prominentHoverBackground": "#6e6a8614", - "statusBarItem.remoteBackground": "#faf4ed", - "statusBarItem.remoteForeground": "#ea9d34", - "statusBarItem.errorBackground": "#faf4ed", - "statusBarItem.errorForeground": "#b4637a", - "symbolIcon.arrayForeground": "#797593", - "symbolIcon.classForeground": "#797593", - "symbolIcon.colorForeground": "#797593", - "symbolIcon.constantForeground": "#797593", - "symbolIcon.constructorForeground": "#797593", - "symbolIcon.enumeratorForeground": "#797593", - "symbolIcon.enumeratorMemberForeground": "#797593", - "symbolIcon.eventForeground": "#797593", - "symbolIcon.fieldForeground": "#797593", - "symbolIcon.fileForeground": "#797593", - "symbolIcon.folderForeground": "#797593", - "symbolIcon.functionForeground": "#797593", - "symbolIcon.interfaceForeground": "#797593", - "symbolIcon.keyForeground": "#797593", - "symbolIcon.keywordForeground": "#797593", - "symbolIcon.methodForeground": "#797593", - "symbolIcon.moduleForeground": "#797593", - "symbolIcon.namespaceForeground": "#797593", - "symbolIcon.nullForeground": "#797593", - "symbolIcon.numberForeground": "#797593", - "symbolIcon.objectForeground": "#797593", - "symbolIcon.operatorForeground": "#797593", - "symbolIcon.packageForeground": "#797593", - "symbolIcon.propertyForeground": "#797593", - "symbolIcon.referenceForeground": "#797593", - "symbolIcon.snippetForeground": "#797593", - "symbolIcon.stringForeground": "#797593", - "symbolIcon.structForeground": "#797593", - "symbolIcon.textForeground": "#797593", - "symbolIcon.typeParameterForeground": "#797593", - "symbolIcon.unitForeground": "#797593", - "symbolIcon.variableForeground": "#797593", - "tab.activeBackground": "#6e6a860d", - "tab.activeForeground": "#575279", - "tab.activeModifiedBorder": "#56949f", - "tab.border": "#000000", - "tab.hoverBackground": "#6e6a8614", - "tab.inactiveBackground": "#000000", - "tab.inactiveForeground": "#797593", - "tab.inactiveModifiedBorder": "#56949f80", - "tab.lastPinnedBorder": "#9893a5", - "tab.unfocusedActiveBackground": "#000000", - "tab.unfocusedHoverBackground": "#000000", - "tab.unfocusedInactiveBackground": "#000000", - "tab.unfocusedInactiveModifiedBorder": "#56949f80", - "terminal.ansiBlack": "#f2e9e1", - "terminal.ansiBlue": "#56949f", - "terminal.ansiBrightBlack": "#797593", - "terminal.ansiBrightBlue": "#56949f", - "terminal.ansiBrightCyan": "#d7827e", - "terminal.ansiBrightGreen": "#286983", - "terminal.ansiBrightMagenta": "#907aa9", - "terminal.ansiBrightRed": "#b4637a", - "terminal.ansiBrightWhite": "#575279", - "terminal.ansiBrightYellow": "#ea9d34", - "terminal.ansiCyan": "#d7827e", - "terminal.ansiGreen": "#286983", - "terminal.ansiMagenta": "#907aa9", - "terminal.ansiRed": "#b4637a", - "terminal.ansiWhite": "#575279", - "terminal.ansiYellow": "#ea9d34", - "terminal.dropBackground": "#6e6a8614", - "terminal.foreground": "#575279", - "terminal.selectionBackground": "#6e6a8614", - "terminal.tab.activeBorder": "#575279", - "terminalCursor.background": "#575279", - "terminalCursor.foreground": "#9893a5", - "textBlockQuote.background": "#fffaf3", - "textBlockQuote.border": "#6e6a8614", - "textCodeBlock.background": "#fffaf3", - "textLink.activeForeground": "#907aa9e6", - "textLink.foreground": "#907aa9", - "textPreformat.foreground": "#ea9d34", - "textSeparator.foreground": "#797593", - "titleBar.activeBackground": "#faf4ed", - "titleBar.activeForeground": "#797593", - "titleBar.inactiveBackground": "#fffaf3", - "titleBar.inactiveForeground": "#797593", - "toolbar.activeBackground": "#6e6a8626", - "toolbar.hoverBackground": "#6e6a8614", - "tree.indentGuidesStroke": "#797593", - "walkThrough.embeddedEditorBackground": "#faf4ed", - "welcomePage.background": "#faf4ed", - "welcomePage.buttonBackground": "#fffaf3", - "welcomePage.buttonHoverBackground": "#f2e9e1", - "widget.shadow": "#fffaf34d", - "window.activeBorder": "#fffaf3", - "window.inactiveBorder": "#fffaf3" - }, - "tokenColors": [ - { - "scope": ["comment"], - "settings": { - "foreground": "#9893a5", - "fontStyle": "italic" - } - }, - { - "scope": ["constant"], - "settings": { - "foreground": "#286983" - } - }, - { - "scope": ["constant.numeric", "constant.language"], - "settings": { - "foreground": "#d7827e" - } - }, - { - "scope": ["entity.name"], - "settings": { - "foreground": "#d7827e" - } - }, - { - "scope": [ - "entity.name.section", - "entity.name.tag", - "entity.name.namespace", - "entity.name.type" - ], - "settings": { - "foreground": "#56949f" - } - }, - { - "scope": ["entity.other.attribute-name", "entity.other.inherited-class"], - "settings": { - "foreground": "#907aa9", - "fontStyle": "italic" - } - }, - { - "scope": ["invalid"], - "settings": { - "foreground": "#b4637a" - } - }, - { - "scope": ["invalid.deprecated"], - "settings": { - "foreground": "#797593" - } - }, - { - "scope": ["keyword"], - "settings": { - "foreground": "#286983" - } - }, - { - "scope": ["markup.inserted.diff"], - "settings": { - "foreground": "#56949f" - } - }, - { - "scope": ["markup.deleted.diff"], - "settings": { - "foreground": "#b4637a" - } - }, - { - "scope": "markup.heading", - "settings": { - "fontStyle": "bold" - } - }, - { - "scope": "markup.bold.markdown", - "settings": { - "fontStyle": "bold" - } - }, - { - "scope": "markup.italic.markdown", - "settings": { - "fontStyle": "italic" - } - }, - { - "scope": ["meta.diff.range"], - "settings": { - "foreground": "#907aa9" - } - }, - { - "scope": ["meta.tag", "meta.brace"], - "settings": { - "foreground": "#575279" - } - }, - { - "scope": ["meta.import", "meta.export"], - "settings": { - "foreground": "#286983" - } - }, - { - "scope": "meta.directive.vue", - "settings": { - "foreground": "#907aa9", - "fontStyle": "italic" - } - }, - { - "scope": "meta.property-name.css", - "settings": { - "foreground": "#56949f" - } - }, - { - "scope": "meta.property-value.css", - "settings": { - "foreground": "#ea9d34" - } - }, - { - "scope": "meta.tag.other.html", - "settings": { - "foreground": "#797593" - } - }, - { - "scope": ["punctuation"], - "settings": { - "foreground": "#797593" - } - }, - { - "scope": ["punctuation.accessor"], - "settings": { - "foreground": "#286983" - } - }, - { - "scope": ["punctuation.definition.string"], - "settings": { - "foreground": "#ea9d34" - } - }, - { - "scope": ["punctuation.definition.tag"], - "settings": { - "foreground": "#9893a5" - } - }, - { - "scope": ["storage.type", "storage.modifier"], - "settings": { - "foreground": "#286983" - } - }, - { - "scope": ["string"], - "settings": { - "foreground": "#ea9d34" - } - }, - { - "scope": ["support"], - "settings": { - "foreground": "#56949f" - } - }, - { - "scope": ["support.constant"], - "settings": { - "foreground": "#ea9d34" - } - }, - { - "scope": ["support.function"], - "settings": { - "foreground": "#b4637a", - "fontStyle": "italic" - } - }, - { - "scope": ["variable"], - "settings": { - "foreground": "#d7827e", - "fontStyle": "italic" - } - }, - { - "scope": [ - "variable.other", - "variable.language", - "variable.function", - "variable.argument" - ], - "settings": { - "foreground": "#575279" - } - }, - { - "scope": ["variable.parameter"], - "settings": { - "foreground": "#907aa9" - } - } - ] + "name": "Rosé Pine Dawn", + "type": "light", + "colors": { + "activityBar.activeBorder": "#575279", + "activityBar.background": "#faf4ed", + "activityBar.dropBorder": "#f2e9e1", + "activityBar.foreground": "#575279", + "activityBar.inactiveForeground": "#797593", + "activityBarBadge.background": "#d7827e", + "activityBarBadge.foreground": "#faf4ed", + "badge.background": "#d7827e", + "badge.foreground": "#faf4ed", + "banner.background": "#fffaf3", + "banner.foreground": "#575279", + "banner.iconForeground": "#797593", + "breadcrumb.activeSelectionForeground": "#d7827e", + "breadcrumb.background": "#faf4ed", + "breadcrumb.focusForeground": "#797593", + "breadcrumb.foreground": "#9893a5", + "breadcrumbPicker.background": "#fffaf3", + "button.background": "#d7827e", + "button.foreground": "#faf4ed", + "button.hoverBackground": "#d7827ee6", + "button.secondaryBackground": "#fffaf3", + "button.secondaryForeground": "#575279", + "button.secondaryHoverBackground": "#f2e9e1", + "charts.blue": "#56949f", + "charts.foreground": "#575279", + "charts.green": "#286983", + "charts.lines": "#797593", + "charts.orange": "#d7827e", + "charts.purple": "#907aa9", + "charts.red": "#b4637a", + "charts.yellow": "#ea9d34", + "checkbox.background": "#fffaf3", + "checkbox.border": "#6e6a8614", + "checkbox.foreground": "#575279", + "debugExceptionWidget.background": "#fffaf3", + "debugExceptionWidget.border": "#6e6a8614", + "debugIcon.breakpointCurrentStackframeForeground": "#797593", + "debugIcon.breakpointDisabledForeground": "#797593", + "debugIcon.breakpointForeground": "#797593", + "debugIcon.breakpointStackframeForeground": "#797593", + "debugIcon.breakpointUnverifiedForeground": "#797593", + "debugIcon.continueForeground": "#797593", + "debugIcon.disconnectForeground": "#797593", + "debugIcon.pauseForeground": "#797593", + "debugIcon.restartForeground": "#797593", + "debugIcon.startForeground": "#797593", + "debugIcon.stepBackForeground": "#797593", + "debugIcon.stepIntoForeground": "#797593", + "debugIcon.stepOutForeground": "#797593", + "debugIcon.stepOverForeground": "#797593", + "debugIcon.stopForeground": "#b4637a", + "debugToolBar.background": "#fffaf3", + "debugToolBar.border": "#f2e9e1", + "descriptionForeground": "#797593", + "diffEditor.border": "#f2e9e1", + "diffEditor.diagonalFill": "#6e6a8626", + "diffEditor.insertedLineBackground": "#56949f26", + "diffEditor.insertedTextBackground": "#56949f26", + "diffEditor.removedLineBackground": "#b4637a26", + "diffEditor.removedTextBackground": "#b4637a26", + "diffEditorOverview.insertedForeground": "#56949f80", + "diffEditorOverview.removedForeground": "#b4637a80", + "dropdown.background": "#fffaf3", + "dropdown.border": "#6e6a8614", + "dropdown.foreground": "#575279", + "dropdown.listBackground": "#fffaf3", + "editor.background": "#faf4ed", + "editor.findMatchBackground": "#6e6a8626", + "editor.findMatchHighlightBackground": "#6e6a8626", + "editor.findRangeHighlightBackground": "#6e6a8626", + "editor.findRangeHighlightBorder": "#0000", + "editor.focusedStackFrameHighlightBackground": "#6e6a8614", + "editor.foldBackground": "#fffaf3", + "editor.foreground": "#575279", + "editor.hoverHighlightBackground": "#0000", + "editor.inactiveSelectionBackground": "#6e6a860d", + "editor.inlineValuesBackground": "#0000", + "editor.inlineValuesForeground": "#797593", + "editor.lineHighlightBackground": "#6e6a860d", + "editor.lineHighlightBorder": "#0000", + "editor.linkedEditingBackground": "#fffaf3", + "editor.rangeHighlightBackground": "#6e6a860d", + "editor.selectionBackground": "#6e6a8614", + "editor.selectionForeground": "#575279", + "editor.selectionHighlightBackground": "#6e6a8614", + "editor.selectionHighlightBorder": "#faf4ed", + "editor.snippetFinalTabstopHighlightBackground": "#6e6a8614", + "editor.snippetFinalTabstopHighlightBorder": "#fffaf3", + "editor.snippetTabstopHighlightBackground": "#6e6a8614", + "editor.snippetTabstopHighlightBorder": "#fffaf3", + "editor.stackFrameHighlightBackground": "#6e6a8614", + "editor.symbolHighlightBackground": "#6e6a8614", + "editor.symbolHighlightBorder": "#0000", + "editor.wordHighlightBackground": "#6e6a8614", + "editor.wordHighlightBorder": "#0000", + "editor.wordHighlightStrongBackground": "#6e6a8614", + "editor.wordHighlightStrongBorder": "#6e6a8614", + "editorBracketHighlight.foreground1": "#b4637a80", + "editorBracketHighlight.foreground2": "#28698380", + "editorBracketHighlight.foreground3": "#ea9d3480", + "editorBracketHighlight.foreground4": "#56949f80", + "editorBracketHighlight.foreground5": "#d7827e80", + "editorBracketHighlight.foreground6": "#907aa980", + "editorBracketMatch.background": "#0000", + "editorBracketMatch.border": "#797593", + "editorBracketPairGuide.activeBackground1": "#286983", + "editorBracketPairGuide.activeBackground2": "#d7827e", + "editorBracketPairGuide.activeBackground3": "#907aa9", + "editorBracketPairGuide.activeBackground4": "#56949f", + "editorBracketPairGuide.activeBackground5": "#ea9d34", + "editorBracketPairGuide.activeBackground6": "#b4637a", + "editorBracketPairGuide.background1": "#28698380", + "editorBracketPairGuide.background2": "#d7827e80", + "editorBracketPairGuide.background3": "#907aa980", + "editorBracketPairGuide.background4": "#56949f80", + "editorBracketPairGuide.background5": "#ea9d3480", + "editorBracketPairGuide.background6": "#b4637a80", + "editorCodeLens.foreground": "#d7827e", + "editorCursor.background": "#575279", + "editorCursor.foreground": "#9893a5", + "editorError.border": "#0000", + "editorError.foreground": "#b4637a", + "editorGhostText.foreground": "#797593", + "editorGroup.border": "#0000", + "editorGroup.dropBackground": "#fffaf3", + "editorGroup.emptyBackground": "#0000", + "editorGroup.focusedEmptyBorder": "#0000", + "editorGroupHeader.noTabsBackground": "#0000", + "editorGroupHeader.tabsBackground": "#0000", + "editorGroupHeader.tabsBorder": "#0000", + "editorGutter.addedBackground": "#56949f", + "editorGutter.background": "#faf4ed", + "editorGutter.commentRangeForeground": "#797593", + "editorGutter.deletedBackground": "#b4637a", + "editorGutter.foldingControlForeground": "#907aa9", + "editorGutter.modifiedBackground": "#d7827e", + "editorHint.border": "#0000", + "editorHint.foreground": "#797593", + "editorHoverWidget.background": "#fffaf3", + "editorHoverWidget.border": "#9893a580", + "editorHoverWidget.foreground": "#797593", + "editorHoverWidget.highlightForeground": "#575279", + "editorHoverWidget.statusBarBackground": "#0000", + "editorIndentGuide.activeBackground": "#9893a5", + "editorIndentGuide.background": "#6e6a8626", + "editorInfo.border": "#f2e9e1", + "editorInfo.foreground": "#56949f", + "editorInlayHint.background": "#f2e9e1", + "editorInlayHint.foreground": "#797593", + "editorInlayHint.parameterBackground": "#f2e9e1", + "editorInlayHint.parameterForeground": "#907aa9", + "editorInlayHint.typeBackground": "#f2e9e1", + "editorInlayHint.typeForeground": "#56949f", + "editorLightBulb.foreground": "#286983", + "editorLightBulbAutoFix.foreground": "#d7827e", + "editorLineNumber.activeForeground": "#575279", + "editorLineNumber.foreground": "#797593", + "editorLink.activeForeground": "#d7827e", + "editorMarkerNavigation.background": "#fffaf3", + "editorMarkerNavigationError.background": "#fffaf3", + "editorMarkerNavigationInfo.background": "#fffaf3", + "editorMarkerNavigationWarning.background": "#fffaf3", + "editorOverviewRuler.addedForeground": "#56949f80", + "editorOverviewRuler.background": "#faf4ed", + "editorOverviewRuler.border": "#6e6a8626", + "editorOverviewRuler.bracketMatchForeground": "#797593", + "editorOverviewRuler.commonContentForeground": "#6e6a860d", + "editorOverviewRuler.currentContentForeground": "#6e6a8614", + "editorOverviewRuler.deletedForeground": "#b4637a80", + "editorOverviewRuler.errorForeground": "#b4637a80", + "editorOverviewRuler.findMatchForeground": "#6e6a8626", + "editorOverviewRuler.incomingContentForeground": "#907aa980", + "editorOverviewRuler.infoForeground": "#56949f80", + "editorOverviewRuler.modifiedForeground": "#d7827e80", + "editorOverviewRuler.rangeHighlightForeground": "#6e6a8626", + "editorOverviewRuler.selectionHighlightForeground": "#6e6a8626", + "editorOverviewRuler.warningForeground": "#ea9d3480", + "editorOverviewRuler.wordHighlightForeground": "#6e6a8614", + "editorOverviewRuler.wordHighlightStrongForeground": "#6e6a8626", + "editorPane.background": "#0000", + "editorRuler.foreground": "#6e6a8626", + "editorSuggestWidget.background": "#fffaf3", + "editorSuggestWidget.border": "#0000", + "editorSuggestWidget.focusHighlightForeground": "#d7827e", + "editorSuggestWidget.foreground": "#797593", + "editorSuggestWidget.highlightForeground": "#d7827e", + "editorSuggestWidget.selectedBackground": "#6e6a8614", + "editorSuggestWidget.selectedForeground": "#575279", + "editorSuggestWidget.selectedIconForeground": "#575279", + "editorUnnecessaryCode.border": "#0000", + "editorUnnecessaryCode.opacity": "#57527980", + "editorWarning.border": "#0000", + "editorWarning.foreground": "#ea9d34", + "editorWhitespace.foreground": "#9893a5", + "editorWidget.background": "#fffaf3", + "editorWidget.border": "#f2e9e1", + "editorWidget.foreground": "#797593", + "editorWidget.resizeBorder": "#9893a5", + "errorForeground": "#b4637a", + "extensionBadge.remoteBackground": "#907aa9", + "extensionBadge.remoteForeground": "#faf4ed", + "extensionButton.prominentBackground": "#d7827e", + "extensionButton.prominentForeground": "#faf4ed", + "extensionButton.prominentHoverBackground": "#d7827ee6", + "extensionIcon.preReleaseForeground": "#286983", + "extensionIcon.starForeground": "#d7827e", + "extensionIcon.verifiedForeground": "#907aa9", + "focusBorder": "#6e6a8614", + "foreground": "#575279", + "gitDecoration.addedResourceForeground": "#56949f", + "gitDecoration.conflictingResourceForeground": "#b4637a", + "gitDecoration.deletedResourceForeground": "#797593", + "gitDecoration.ignoredResourceForeground": "#9893a5", + "gitDecoration.modifiedResourceForeground": "#d7827e", + "gitDecoration.renamedResourceForeground": "#286983", + "gitDecoration.stageDeletedResourceForeground": "#b4637a", + "gitDecoration.stageModifiedResourceForeground": "#907aa9", + "gitDecoration.submoduleResourceForeground": "#ea9d34", + "gitDecoration.untrackedResourceForeground": "#ea9d34", + "icon.foreground": "#797593", + "input.background": "#f2e9e180", + "input.border": "#6e6a8614", + "input.foreground": "#575279", + "input.placeholderForeground": "#797593", + "inputOption.activeBackground": "#d7827e26", + "inputOption.activeForeground": "#d7827e", + "inputValidation.errorBackground": "#fffaf3", + "inputValidation.errorBorder": "#6e6a8626", + "inputValidation.errorForeground": "#b4637a", + "inputValidation.infoBackground": "#fffaf3", + "inputValidation.infoBorder": "#6e6a8626", + "inputValidation.infoForeground": "#56949f", + "inputValidation.warningBackground": "#fffaf3", + "inputValidation.warningBorder": "#6e6a8626", + "inputValidation.warningForeground": "#56949f80", + "keybindingLabel.background": "#f2e9e1", + "keybindingLabel.border": "#6e6a8626", + "keybindingLabel.bottomBorder": "#6e6a8626", + "keybindingLabel.foreground": "#907aa9", + "keybindingTable.headerBackground": "#f2e9e1", + "keybindingTable.rowsBackground": "#fffaf3", + "list.activeSelectionBackground": "#6e6a8614", + "list.activeSelectionForeground": "#575279", + "list.deemphasizedForeground": "#797593", + "list.dropBackground": "#fffaf3", + "list.errorForeground": "#b4637a", + "list.filterMatchBackground": "#fffaf3", + "list.filterMatchBorder": "#d7827e", + "list.focusBackground": "#6e6a8626", + "list.focusForeground": "#575279", + "list.focusOutline": "#6e6a8614", + "list.highlightForeground": "#d7827e", + "list.hoverBackground": "#6e6a860d", + "list.hoverForeground": "#575279", + "list.inactiveFocusBackground": "#6e6a860d", + "list.inactiveSelectionBackground": "#fffaf3", + "list.inactiveSelectionForeground": "#575279", + "list.invalidItemForeground": "#b4637a", + "list.warningForeground": "#ea9d34", + "listFilterWidget.background": "#fffaf3", + "listFilterWidget.noMatchesOutline": "#b4637a", + "listFilterWidget.outline": "#f2e9e1", + "menu.background": "#fffaf3", + "menu.border": "#6e6a860d", + "menu.foreground": "#575279", + "menu.selectionBackground": "#6e6a8614", + "menu.selectionBorder": "#f2e9e1", + "menu.selectionForeground": "#575279", + "menu.separatorBackground": "#6e6a8626", + "menubar.selectionBackground": "#6e6a8614", + "menubar.selectionBorder": "#6e6a860d", + "menubar.selectionForeground": "#575279", + "merge.border": "#f2e9e1", + "merge.commonContentBackground": "#6e6a8614", + "merge.commonHeaderBackground": "#6e6a8614", + "merge.currentContentBackground": "#ea9d3480", + "merge.currentHeaderBackground": "#ea9d3480", + "merge.incomingContentBackground": "#56949f80", + "merge.incomingHeaderBackground": "#56949f80", + "minimap.background": "#fffaf3", + "minimap.errorHighlight": "#b4637a80", + "minimap.findMatchHighlight": "#6e6a8614", + "minimap.selectionHighlight": "#6e6a8614", + "minimap.warningHighlight": "#ea9d3480", + "minimapGutter.addedBackground": "#56949f", + "minimapGutter.deletedBackground": "#b4637a", + "minimapGutter.modifiedBackground": "#d7827e", + "minimapSlider.activeBackground": "#6e6a8626", + "minimapSlider.background": "#6e6a8614", + "minimapSlider.hoverBackground": "#6e6a8614", + "notebook.cellBorderColor": "#56949f80", + "notebook.cellEditorBackground": "#fffaf3", + "notebook.cellHoverBackground": "#f2e9e180", + "notebook.focusedCellBackground": "#6e6a860d", + "notebook.focusedCellBorder": "#56949f", + "notebook.outputContainerBackgroundColor": "#6e6a860d", + "notificationCenter.border": "#6e6a8614", + "notificationCenterHeader.background": "#fffaf3", + "notificationCenterHeader.foreground": "#797593", + "notificationLink.foreground": "#907aa9", + "notifications.background": "#fffaf3", + "notifications.border": "#6e6a8614", + "notifications.foreground": "#575279", + "notificationsErrorIcon.foreground": "#b4637a", + "notificationsInfoIcon.foreground": "#56949f", + "notificationsWarningIcon.foreground": "#ea9d34", + "notificationToast.border": "#6e6a8614", + "panel.background": "#fffaf3", + "panel.border": "#0000", + "panel.dropBorder": "#f2e9e1", + "panelInput.border": "#fffaf3", + "panelSection.dropBackground": "#6e6a8614", + "panelSectionHeader.background": "#fffaf3", + "panelSectionHeader.foreground": "#575279", + "panelTitle.activeBorder": "#6e6a8626", + "panelTitle.activeForeground": "#575279", + "panelTitle.inactiveForeground": "#797593", + "peekView.border": "#f2e9e1", + "peekViewEditor.background": "#fffaf3", + "peekViewEditor.matchHighlightBackground": "#6e6a8626", + "peekViewResult.background": "#fffaf3", + "peekViewResult.fileForeground": "#797593", + "peekViewResult.lineForeground": "#797593", + "peekViewResult.matchHighlightBackground": "#6e6a8626", + "peekViewResult.selectionBackground": "#6e6a8614", + "peekViewResult.selectionForeground": "#575279", + "peekViewTitle.background": "#f2e9e1", + "peekViewTitleDescription.foreground": "#797593", + "pickerGroup.border": "#6e6a8626", + "pickerGroup.foreground": "#907aa9", + "ports.iconRunningProcessForeground": "#d7827e", + "problemsErrorIcon.foreground": "#b4637a", + "problemsInfoIcon.foreground": "#56949f", + "problemsWarningIcon.foreground": "#ea9d34", + "progressBar.background": "#d7827e", + "quickInput.background": "#fffaf3", + "quickInput.foreground": "#797593", + "quickInputList.focusBackground": "#6e6a8614", + "quickInputList.focusForeground": "#575279", + "quickInputList.focusIconForeground": "#575279", + "scrollbar.shadow": "#fffaf34d", + "scrollbarSlider.activeBackground": "#28698380", + "scrollbarSlider.background": "#6e6a8614", + "scrollbarSlider.hoverBackground": "#6e6a8626", + "searchEditor.findMatchBackground": "#6e6a8614", + "selection.background": "#6e6a8626", + "settings.focusedRowBackground": "#fffaf3", + "settings.headerForeground": "#575279", + "settings.modifiedItemIndicator": "#d7827e", + "settings.focusedRowBorder": "#6e6a8614", + "settings.rowHoverBackground": "#fffaf3", + "sideBar.background": "#faf4ed", + "sideBar.dropBackground": "#fffaf3", + "sideBar.foreground": "#797593", + "sideBarSectionHeader.background": "#0000", + "sideBarSectionHeader.border": "#6e6a8614", + "statusBar.background": "#faf4ed", + "statusBar.debuggingBackground": "#907aa9", + "statusBar.debuggingForeground": "#faf4ed", + "statusBar.foreground": "#797593", + "statusBar.noFolderBackground": "#faf4ed", + "statusBar.noFolderForeground": "#797593", + "statusBarItem.activeBackground": "#6e6a8626", + "statusBarItem.hoverBackground": "#6e6a8614", + "statusBarItem.prominentBackground": "#f2e9e1", + "statusBarItem.prominentForeground": "#575279", + "statusBarItem.prominentHoverBackground": "#6e6a8614", + "statusBarItem.remoteBackground": "#faf4ed", + "statusBarItem.remoteForeground": "#ea9d34", + "statusBarItem.errorBackground": "#faf4ed", + "statusBarItem.errorForeground": "#b4637a", + "symbolIcon.arrayForeground": "#797593", + "symbolIcon.classForeground": "#797593", + "symbolIcon.colorForeground": "#797593", + "symbolIcon.constantForeground": "#797593", + "symbolIcon.constructorForeground": "#797593", + "symbolIcon.enumeratorForeground": "#797593", + "symbolIcon.enumeratorMemberForeground": "#797593", + "symbolIcon.eventForeground": "#797593", + "symbolIcon.fieldForeground": "#797593", + "symbolIcon.fileForeground": "#797593", + "symbolIcon.folderForeground": "#797593", + "symbolIcon.functionForeground": "#797593", + "symbolIcon.interfaceForeground": "#797593", + "symbolIcon.keyForeground": "#797593", + "symbolIcon.keywordForeground": "#797593", + "symbolIcon.methodForeground": "#797593", + "symbolIcon.moduleForeground": "#797593", + "symbolIcon.namespaceForeground": "#797593", + "symbolIcon.nullForeground": "#797593", + "symbolIcon.numberForeground": "#797593", + "symbolIcon.objectForeground": "#797593", + "symbolIcon.operatorForeground": "#797593", + "symbolIcon.packageForeground": "#797593", + "symbolIcon.propertyForeground": "#797593", + "symbolIcon.referenceForeground": "#797593", + "symbolIcon.snippetForeground": "#797593", + "symbolIcon.stringForeground": "#797593", + "symbolIcon.structForeground": "#797593", + "symbolIcon.textForeground": "#797593", + "symbolIcon.typeParameterForeground": "#797593", + "symbolIcon.unitForeground": "#797593", + "symbolIcon.variableForeground": "#797593", + "tab.activeBackground": "#6e6a860d", + "tab.activeForeground": "#575279", + "tab.activeModifiedBorder": "#56949f", + "tab.border": "#0000", + "tab.hoverBackground": "#6e6a8614", + "tab.inactiveBackground": "#0000", + "tab.inactiveForeground": "#797593", + "tab.inactiveModifiedBorder": "#56949f80", + "tab.lastPinnedBorder": "#9893a5", + "tab.unfocusedActiveBackground": "#0000", + "tab.unfocusedHoverBackground": "#0000", + "tab.unfocusedInactiveBackground": "#0000", + "tab.unfocusedInactiveModifiedBorder": "#56949f80", + "terminal.ansiBlack": "#f2e9e1", + "terminal.ansiBlue": "#56949f", + "terminal.ansiBrightBlack": "#797593", + "terminal.ansiBrightBlue": "#56949f", + "terminal.ansiBrightCyan": "#d7827e", + "terminal.ansiBrightGreen": "#286983", + "terminal.ansiBrightMagenta": "#907aa9", + "terminal.ansiBrightRed": "#b4637a", + "terminal.ansiBrightWhite": "#575279", + "terminal.ansiBrightYellow": "#ea9d34", + "terminal.ansiCyan": "#d7827e", + "terminal.ansiGreen": "#286983", + "terminal.ansiMagenta": "#907aa9", + "terminal.ansiRed": "#b4637a", + "terminal.ansiWhite": "#575279", + "terminal.ansiYellow": "#ea9d34", + "terminal.dropBackground": "#6e6a8614", + "terminal.foreground": "#575279", + "terminal.selectionBackground": "#6e6a8614", + "terminal.tab.activeBorder": "#575279", + "terminalCursor.background": "#575279", + "terminalCursor.foreground": "#9893a5", + "textBlockQuote.background": "#fffaf3", + "textBlockQuote.border": "#6e6a8614", + "textCodeBlock.background": "#fffaf3", + "textLink.activeForeground": "#907aa9e6", + "textLink.foreground": "#907aa9", + "textPreformat.foreground": "#ea9d34", + "textSeparator.foreground": "#797593", + "titleBar.activeBackground": "#faf4ed", + "titleBar.activeForeground": "#797593", + "titleBar.inactiveBackground": "#fffaf3", + "titleBar.inactiveForeground": "#797593", + "toolbar.activeBackground": "#6e6a8626", + "toolbar.hoverBackground": "#6e6a8614", + "tree.indentGuidesStroke": "#797593", + "walkThrough.embeddedEditorBackground": "#faf4ed", + "welcomePage.background": "#faf4ed", + "welcomePage.buttonBackground": "#fffaf3", + "welcomePage.buttonHoverBackground": "#f2e9e1", + "widget.shadow": "#fffaf34d", + "window.activeBorder": "#fffaf3", + "window.inactiveBorder": "#fffaf3" + }, + "tokenColors": [ + { + "scope": ["comment"], + "settings": { + "foreground": "#9893a5", + "fontStyle": "italic" + } + }, + { + "scope": ["constant"], + "settings": { + "foreground": "#286983" + } + }, + { + "scope": ["constant.numeric", "constant.language"], + "settings": { + "foreground": "#d7827e" + } + }, + { + "scope": ["entity.name"], + "settings": { + "foreground": "#d7827e" + } + }, + { + "scope": [ + "entity.name.section", + "entity.name.tag", + "entity.name.namespace", + "entity.name.type" + ], + "settings": { + "foreground": "#56949f" + } + }, + { + "scope": ["entity.other.attribute-name", "entity.other.inherited-class"], + "settings": { + "foreground": "#907aa9", + "fontStyle": "italic" + } + }, + { + "scope": ["invalid"], + "settings": { + "foreground": "#b4637a" + } + }, + { + "scope": ["invalid.deprecated"], + "settings": { + "foreground": "#797593" + } + }, + { + "scope": ["keyword"], + "settings": { + "foreground": "#286983" + } + }, + { + "scope": ["markup.inserted.diff"], + "settings": { + "foreground": "#56949f" + } + }, + { + "scope": ["markup.deleted.diff"], + "settings": { + "foreground": "#b4637a" + } + }, + { + "scope": "markup.heading", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "markup.bold.markdown", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "markup.italic.markdown", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": ["meta.diff.range"], + "settings": { + "foreground": "#907aa9" + } + }, + { + "scope": ["meta.tag", "meta.brace"], + "settings": { + "foreground": "#575279" + } + }, + { + "scope": ["meta.import", "meta.export"], + "settings": { + "foreground": "#286983" + } + }, + { + "scope": "meta.directive.vue", + "settings": { + "foreground": "#907aa9", + "fontStyle": "italic" + } + }, + { + "scope": "meta.property-name.css", + "settings": { + "foreground": "#56949f" + } + }, + { + "scope": "meta.property-value.css", + "settings": { + "foreground": "#ea9d34" + } + }, + { + "scope": "meta.tag.other.html", + "settings": { + "foreground": "#797593" + } + }, + { + "scope": ["punctuation"], + "settings": { + "foreground": "#797593" + } + }, + { + "scope": ["punctuation.accessor"], + "settings": { + "foreground": "#286983" + } + }, + { + "scope": ["punctuation.definition.string"], + "settings": { + "foreground": "#ea9d34" + } + }, + { + "scope": ["punctuation.definition.tag"], + "settings": { + "foreground": "#9893a5" + } + }, + { + "scope": ["storage.type", "storage.modifier"], + "settings": { + "foreground": "#286983" + } + }, + { + "scope": ["string"], + "settings": { + "foreground": "#ea9d34" + } + }, + { + "scope": ["support"], + "settings": { + "foreground": "#56949f" + } + }, + { + "scope": ["support.constant"], + "settings": { + "foreground": "#ea9d34" + } + }, + { + "scope": ["support.function"], + "settings": { + "foreground": "#b4637a", + "fontStyle": "italic" + } + }, + { + "scope": ["variable"], + "settings": { + "foreground": "#d7827e", + "fontStyle": "italic" + } + }, + { + "scope": [ + "variable.other", + "variable.language", + "variable.function", + "variable.argument" + ], + "settings": { + "foreground": "#575279" + } + }, + { + "scope": ["variable.parameter"], + "settings": { + "foreground": "#907aa9" + } + } + ] } diff --git a/assets/themes/src/vscode/rose-pine/rose-pine-moon.json b/assets/themes/src/vscode/rose-pine/rose-pine-moon.json index dbbb757335f26eea1acb0ea7e7cfc4bfd3d9dc6a..19c0cdd661cd535baa96a0bbceb065842c1a2afd 100644 --- a/assets/themes/src/vscode/rose-pine/rose-pine-moon.json +++ b/assets/themes/src/vscode/rose-pine/rose-pine-moon.json @@ -1,680 +1,680 @@ { - "name": "Rosé Pine Moon", - "type": "dark", - "colors": { - "activityBar.activeBorder": "#e0def4", - "activityBar.background": "#232136", - "activityBar.dropBorder": "#393552", - "activityBar.foreground": "#e0def4", - "activityBar.inactiveForeground": "#908caa", - "activityBarBadge.background": "#ea9a97", - "activityBarBadge.foreground": "#232136", - "badge.background": "#ea9a97", - "badge.foreground": "#232136", - "banner.background": "#2a273f", - "banner.foreground": "#e0def4", - "banner.iconForeground": "#908caa", - "breadcrumb.activeSelectionForeground": "#ea9a97", - "breadcrumb.background": "#232136", - "breadcrumb.focusForeground": "#908caa", - "breadcrumb.foreground": "#6e6a86", - "breadcrumbPicker.background": "#2a273f", - "button.background": "#ea9a97", - "button.foreground": "#232136", - "button.hoverBackground": "#ea9a97e6", - "button.secondaryBackground": "#2a273f", - "button.secondaryForeground": "#e0def4", - "button.secondaryHoverBackground": "#393552", - "charts.blue": "#9ccfd8", - "charts.foreground": "#e0def4", - "charts.green": "#3e8fb0", - "charts.lines": "#908caa", - "charts.orange": "#ea9a97", - "charts.purple": "#c4a7e7", - "charts.red": "#eb6f92", - "charts.yellow": "#f6c177", - "checkbox.background": "#2a273f", - "checkbox.border": "#817c9c26", - "checkbox.foreground": "#e0def4", - "debugExceptionWidget.background": "#2a273f", - "debugExceptionWidget.border": "#817c9c26", - "debugIcon.breakpointCurrentStackframeForeground": "#908caa", - "debugIcon.breakpointDisabledForeground": "#908caa", - "debugIcon.breakpointForeground": "#908caa", - "debugIcon.breakpointStackframeForeground": "#908caa", - "debugIcon.breakpointUnverifiedForeground": "#908caa", - "debugIcon.continueForeground": "#908caa", - "debugIcon.disconnectForeground": "#908caa", - "debugIcon.pauseForeground": "#908caa", - "debugIcon.restartForeground": "#908caa", - "debugIcon.startForeground": "#908caa", - "debugIcon.stepBackForeground": "#908caa", - "debugIcon.stepIntoForeground": "#908caa", - "debugIcon.stepOutForeground": "#908caa", - "debugIcon.stepOverForeground": "#908caa", - "debugIcon.stopForeground": "#eb6f92", - "debugToolBar.background": "#2a273f", - "debugToolBar.border": "#393552", - "descriptionForeground": "#908caa", - "diffEditor.border": "#393552", - "diffEditor.diagonalFill": "#817c9c4d", - "diffEditor.insertedLineBackground": "#9ccfd826", - "diffEditor.insertedTextBackground": "#9ccfd826", - "diffEditor.removedLineBackground": "#eb6f9226", - "diffEditor.removedTextBackground": "#eb6f9226", - "diffEditorOverview.insertedForeground": "#9ccfd880", - "diffEditorOverview.removedForeground": "#eb6f9280", - "dropdown.background": "#2a273f", - "dropdown.border": "#817c9c26", - "dropdown.foreground": "#e0def4", - "dropdown.listBackground": "#2a273f", - "editor.background": "#232136", - "editor.findMatchBackground": "#817c9c4d", - "editor.findMatchHighlightBackground": "#817c9c4d", - "editor.findRangeHighlightBackground": "#817c9c4d", - "editor.findRangeHighlightBorder": "#000000", - "editor.focusedStackFrameHighlightBackground": "#817c9c26", - "editor.foldBackground": "#2a273f", - "editor.foreground": "#e0def4", - "editor.hoverHighlightBackground": "#000000", - "editor.inactiveSelectionBackground": "#817c9c14", - "editor.inlineValuesBackground": "#000000", - "editor.inlineValuesForeground": "#908caa", - "editor.lineHighlightBackground": "#817c9c14", - "editor.lineHighlightBorder": "#000000", - "editor.linkedEditingBackground": "#2a273f", - "editor.rangeHighlightBackground": "#817c9c14", - "editor.selectionBackground": "#817c9c26", - "editor.selectionForeground": "#e0def4", - "editor.selectionHighlightBackground": "#817c9c26", - "editor.selectionHighlightBorder": "#232136", - "editor.snippetFinalTabstopHighlightBackground": "#817c9c26", - "editor.snippetFinalTabstopHighlightBorder": "#2a273f", - "editor.snippetTabstopHighlightBackground": "#817c9c26", - "editor.snippetTabstopHighlightBorder": "#2a273f", - "editor.stackFrameHighlightBackground": "#817c9c26", - "editor.symbolHighlightBackground": "#817c9c26", - "editor.symbolHighlightBorder": "#000000", - "editor.wordHighlightBackground": "#817c9c26", - "editor.wordHighlightBorder": "#000000", - "editor.wordHighlightStrongBackground": "#817c9c26", - "editor.wordHighlightStrongBorder": "#817c9c26", - "editorBracketHighlight.foreground1": "#eb6f9280", - "editorBracketHighlight.foreground2": "#3e8fb080", - "editorBracketHighlight.foreground3": "#f6c17780", - "editorBracketHighlight.foreground4": "#9ccfd880", - "editorBracketHighlight.foreground5": "#ea9a9780", - "editorBracketHighlight.foreground6": "#c4a7e780", - "editorBracketMatch.background": "#000000", - "editorBracketMatch.border": "#908caa", - "editorBracketPairGuide.activeBackground1": "#3e8fb0", - "editorBracketPairGuide.activeBackground2": "#ea9a97", - "editorBracketPairGuide.activeBackground3": "#c4a7e7", - "editorBracketPairGuide.activeBackground4": "#9ccfd8", - "editorBracketPairGuide.activeBackground5": "#f6c177", - "editorBracketPairGuide.activeBackground6": "#eb6f92", - "editorBracketPairGuide.background1": "#3e8fb080", - "editorBracketPairGuide.background2": "#ea9a9780", - "editorBracketPairGuide.background3": "#c4a7e780", - "editorBracketPairGuide.background4": "#9ccfd880", - "editorBracketPairGuide.background5": "#f6c17780", - "editorBracketPairGuide.background6": "#eb6f9280", - "editorCodeLens.foreground": "#ea9a97", - "editorCursor.background": "#e0def4", - "editorCursor.foreground": "#6e6a86", - "editorError.border": "#000000", - "editorError.foreground": "#eb6f92", - "editorGhostText.foreground": "#908caa", - "editorGroup.border": "#000000", - "editorGroup.dropBackground": "#2a273f", - "editorGroup.emptyBackground": "#000000", - "editorGroup.focusedEmptyBorder": "#000000", - "editorGroupHeader.noTabsBackground": "#000000", - "editorGroupHeader.tabsBackground": "#000000", - "editorGroupHeader.tabsBorder": "#000000", - "editorGutter.addedBackground": "#9ccfd8", - "editorGutter.background": "#232136", - "editorGutter.commentRangeForeground": "#908caa", - "editorGutter.deletedBackground": "#eb6f92", - "editorGutter.foldingControlForeground": "#c4a7e7", - "editorGutter.modifiedBackground": "#ea9a97", - "editorHint.border": "#000000", - "editorHint.foreground": "#908caa", - "editorHoverWidget.background": "#2a273f", - "editorHoverWidget.border": "#6e6a8680", - "editorHoverWidget.foreground": "#908caa", - "editorHoverWidget.highlightForeground": "#e0def4", - "editorHoverWidget.statusBarBackground": "#000000", - "editorIndentGuide.activeBackground": "#6e6a86", - "editorIndentGuide.background": "#817c9c4d", - "editorInfo.border": "#393552", - "editorInfo.foreground": "#9ccfd8", - "editorInlayHint.background": "#393552", - "editorInlayHint.foreground": "#908caa", - "editorInlayHint.parameterBackground": "#393552", - "editorInlayHint.parameterForeground": "#c4a7e7", - "editorInlayHint.typeBackground": "#393552", - "editorInlayHint.typeForeground": "#9ccfd8", - "editorLightBulb.foreground": "#3e8fb0", - "editorLightBulbAutoFix.foreground": "#ea9a97", - "editorLineNumber.activeForeground": "#e0def4", - "editorLineNumber.foreground": "#908caa", - "editorLink.activeForeground": "#ea9a97", - "editorMarkerNavigation.background": "#2a273f", - "editorMarkerNavigationError.background": "#2a273f", - "editorMarkerNavigationInfo.background": "#2a273f", - "editorMarkerNavigationWarning.background": "#2a273f", - "editorOverviewRuler.addedForeground": "#9ccfd880", - "editorOverviewRuler.background": "#232136", - "editorOverviewRuler.border": "#817c9c4d", - "editorOverviewRuler.bracketMatchForeground": "#908caa", - "editorOverviewRuler.commonContentForeground": "#817c9c14", - "editorOverviewRuler.currentContentForeground": "#817c9c26", - "editorOverviewRuler.deletedForeground": "#eb6f9280", - "editorOverviewRuler.errorForeground": "#eb6f9280", - "editorOverviewRuler.findMatchForeground": "#817c9c4d", - "editorOverviewRuler.incomingContentForeground": "#c4a7e780", - "editorOverviewRuler.infoForeground": "#9ccfd880", - "editorOverviewRuler.modifiedForeground": "#ea9a9780", - "editorOverviewRuler.rangeHighlightForeground": "#817c9c4d", - "editorOverviewRuler.selectionHighlightForeground": "#817c9c4d", - "editorOverviewRuler.warningForeground": "#f6c17780", - "editorOverviewRuler.wordHighlightForeground": "#817c9c26", - "editorOverviewRuler.wordHighlightStrongForeground": "#817c9c4d", - "editorPane.background": "#000000", - "editorRuler.foreground": "#817c9c4d", - "editorSuggestWidget.background": "#2a273f", - "editorSuggestWidget.border": "#000000", - "editorSuggestWidget.focusHighlightForeground": "#ea9a97", - "editorSuggestWidget.foreground": "#908caa", - "editorSuggestWidget.highlightForeground": "#ea9a97", - "editorSuggestWidget.selectedBackground": "#817c9c26", - "editorSuggestWidget.selectedForeground": "#e0def4", - "editorSuggestWidget.selectedIconForeground": "#e0def4", - "editorUnnecessaryCode.border": "#000000", - "editorUnnecessaryCode.opacity": "#e0def480", - "editorWarning.border": "#000000", - "editorWarning.foreground": "#f6c177", - "editorWhitespace.foreground": "#6e6a86", - "editorWidget.background": "#2a273f", - "editorWidget.border": "#393552", - "editorWidget.foreground": "#908caa", - "editorWidget.resizeBorder": "#6e6a86", - "errorForeground": "#eb6f92", - "extensionBadge.remoteBackground": "#c4a7e7", - "extensionBadge.remoteForeground": "#232136", - "extensionButton.prominentBackground": "#ea9a97", - "extensionButton.prominentForeground": "#232136", - "extensionButton.prominentHoverBackground": "#ea9a97e6", - "extensionIcon.preReleaseForeground": "#3e8fb0", - "extensionIcon.starForeground": "#ea9a97", - "extensionIcon.verifiedForeground": "#c4a7e7", - "focusBorder": "#817c9c26", - "foreground": "#e0def4", - "gitDecoration.addedResourceForeground": "#9ccfd8", - "gitDecoration.conflictingResourceForeground": "#eb6f92", - "gitDecoration.deletedResourceForeground": "#908caa", - "gitDecoration.ignoredResourceForeground": "#6e6a86", - "gitDecoration.modifiedResourceForeground": "#ea9a97", - "gitDecoration.renamedResourceForeground": "#3e8fb0", - "gitDecoration.stageDeletedResourceForeground": "#eb6f92", - "gitDecoration.stageModifiedResourceForeground": "#c4a7e7", - "gitDecoration.submoduleResourceForeground": "#f6c177", - "gitDecoration.untrackedResourceForeground": "#f6c177", - "icon.foreground": "#908caa", - "input.background": "#39355280", - "input.border": "#817c9c26", - "input.foreground": "#e0def4", - "input.placeholderForeground": "#908caa", - "inputOption.activeBackground": "#ea9a9726", - "inputOption.activeForeground": "#ea9a97", - "inputValidation.errorBackground": "#2a273f", - "inputValidation.errorBorder": "#817c9c4d", - "inputValidation.errorForeground": "#eb6f92", - "inputValidation.infoBackground": "#2a273f", - "inputValidation.infoBorder": "#817c9c4d", - "inputValidation.infoForeground": "#9ccfd8", - "inputValidation.warningBackground": "#2a273f", - "inputValidation.warningBorder": "#817c9c4d", - "inputValidation.warningForeground": "#9ccfd880", - "keybindingLabel.background": "#393552", - "keybindingLabel.border": "#817c9c4d", - "keybindingLabel.bottomBorder": "#817c9c4d", - "keybindingLabel.foreground": "#c4a7e7", - "keybindingTable.headerBackground": "#393552", - "keybindingTable.rowsBackground": "#2a273f", - "list.activeSelectionBackground": "#817c9c26", - "list.activeSelectionForeground": "#e0def4", - "list.deemphasizedForeground": "#908caa", - "list.dropBackground": "#2a273f", - "list.errorForeground": "#eb6f92", - "list.filterMatchBackground": "#2a273f", - "list.filterMatchBorder": "#ea9a97", - "list.focusBackground": "#817c9c4d", - "list.focusForeground": "#e0def4", - "list.focusOutline": "#817c9c26", - "list.highlightForeground": "#ea9a97", - "list.hoverBackground": "#817c9c14", - "list.hoverForeground": "#e0def4", - "list.inactiveFocusBackground": "#817c9c14", - "list.inactiveSelectionBackground": "#2a273f", - "list.inactiveSelectionForeground": "#e0def4", - "list.invalidItemForeground": "#eb6f92", - "list.warningForeground": "#f6c177", - "listFilterWidget.background": "#2a273f", - "listFilterWidget.noMatchesOutline": "#eb6f92", - "listFilterWidget.outline": "#393552", - "menu.background": "#2a273f", - "menu.border": "#817c9c14", - "menu.foreground": "#e0def4", - "menu.selectionBackground": "#817c9c26", - "menu.selectionBorder": "#393552", - "menu.selectionForeground": "#e0def4", - "menu.separatorBackground": "#817c9c4d", - "menubar.selectionBackground": "#817c9c26", - "menubar.selectionBorder": "#817c9c14", - "menubar.selectionForeground": "#e0def4", - "merge.border": "#393552", - "merge.commonContentBackground": "#817c9c26", - "merge.commonHeaderBackground": "#817c9c26", - "merge.currentContentBackground": "#f6c17780", - "merge.currentHeaderBackground": "#f6c17780", - "merge.incomingContentBackground": "#9ccfd880", - "merge.incomingHeaderBackground": "#9ccfd880", - "minimap.background": "#2a273f", - "minimap.errorHighlight": "#eb6f9280", - "minimap.findMatchHighlight": "#817c9c26", - "minimap.selectionHighlight": "#817c9c26", - "minimap.warningHighlight": "#f6c17780", - "minimapGutter.addedBackground": "#9ccfd8", - "minimapGutter.deletedBackground": "#eb6f92", - "minimapGutter.modifiedBackground": "#ea9a97", - "minimapSlider.activeBackground": "#817c9c4d", - "minimapSlider.background": "#817c9c26", - "minimapSlider.hoverBackground": "#817c9c26", - "notebook.cellBorderColor": "#9ccfd880", - "notebook.cellEditorBackground": "#2a273f", - "notebook.cellHoverBackground": "#39355280", - "notebook.focusedCellBackground": "#817c9c14", - "notebook.focusedCellBorder": "#9ccfd8", - "notebook.outputContainerBackgroundColor": "#817c9c14", - "notificationCenter.border": "#817c9c26", - "notificationCenterHeader.background": "#2a273f", - "notificationCenterHeader.foreground": "#908caa", - "notificationLink.foreground": "#c4a7e7", - "notifications.background": "#2a273f", - "notifications.border": "#817c9c26", - "notifications.foreground": "#e0def4", - "notificationsErrorIcon.foreground": "#eb6f92", - "notificationsInfoIcon.foreground": "#9ccfd8", - "notificationsWarningIcon.foreground": "#f6c177", - "notificationToast.border": "#817c9c26", - "panel.background": "#2a273f", - "panel.border": "#000000", - "panel.dropBorder": "#393552", - "panelInput.border": "#2a273f", - "panelSection.dropBackground": "#817c9c26", - "panelSectionHeader.background": "#2a273f", - "panelSectionHeader.foreground": "#e0def4", - "panelTitle.activeBorder": "#817c9c4d", - "panelTitle.activeForeground": "#e0def4", - "panelTitle.inactiveForeground": "#908caa", - "peekView.border": "#393552", - "peekViewEditor.background": "#2a273f", - "peekViewEditor.matchHighlightBackground": "#817c9c4d", - "peekViewResult.background": "#2a273f", - "peekViewResult.fileForeground": "#908caa", - "peekViewResult.lineForeground": "#908caa", - "peekViewResult.matchHighlightBackground": "#817c9c4d", - "peekViewResult.selectionBackground": "#817c9c26", - "peekViewResult.selectionForeground": "#e0def4", - "peekViewTitle.background": "#393552", - "peekViewTitleDescription.foreground": "#908caa", - "pickerGroup.border": "#817c9c4d", - "pickerGroup.foreground": "#c4a7e7", - "ports.iconRunningProcessForeground": "#ea9a97", - "problemsErrorIcon.foreground": "#eb6f92", - "problemsInfoIcon.foreground": "#9ccfd8", - "problemsWarningIcon.foreground": "#f6c177", - "progressBar.background": "#ea9a97", - "quickInput.background": "#2a273f", - "quickInput.foreground": "#908caa", - "quickInputList.focusBackground": "#817c9c26", - "quickInputList.focusForeground": "#e0def4", - "quickInputList.focusIconForeground": "#e0def4", - "scrollbar.shadow": "#2a273f4d", - "scrollbarSlider.activeBackground": "#3e8fb080", - "scrollbarSlider.background": "#817c9c26", - "scrollbarSlider.hoverBackground": "#817c9c4d", - "searchEditor.findMatchBackground": "#817c9c26", - "selection.background": "#817c9c4d", - "settings.focusedRowBackground": "#2a273f", - "settings.headerForeground": "#e0def4", - "settings.modifiedItemIndicator": "#ea9a97", - "settings.focusedRowBorder": "#817c9c26", - "settings.rowHoverBackground": "#2a273f", - "sideBar.background": "#232136", - "sideBar.dropBackground": "#2a273f", - "sideBar.foreground": "#908caa", - "sideBarSectionHeader.background": "#000000", - "sideBarSectionHeader.border": "#817c9c26", - "statusBar.background": "#232136", - "statusBar.debuggingBackground": "#c4a7e7", - "statusBar.debuggingForeground": "#232136", - "statusBar.foreground": "#908caa", - "statusBar.noFolderBackground": "#232136", - "statusBar.noFolderForeground": "#908caa", - "statusBarItem.activeBackground": "#817c9c4d", - "statusBarItem.hoverBackground": "#817c9c26", - "statusBarItem.prominentBackground": "#393552", - "statusBarItem.prominentForeground": "#e0def4", - "statusBarItem.prominentHoverBackground": "#817c9c26", - "statusBarItem.remoteBackground": "#232136", - "statusBarItem.remoteForeground": "#f6c177", - "statusBarItem.errorBackground": "#232136", - "statusBarItem.errorForeground": "#eb6f92", - "symbolIcon.arrayForeground": "#908caa", - "symbolIcon.classForeground": "#908caa", - "symbolIcon.colorForeground": "#908caa", - "symbolIcon.constantForeground": "#908caa", - "symbolIcon.constructorForeground": "#908caa", - "symbolIcon.enumeratorForeground": "#908caa", - "symbolIcon.enumeratorMemberForeground": "#908caa", - "symbolIcon.eventForeground": "#908caa", - "symbolIcon.fieldForeground": "#908caa", - "symbolIcon.fileForeground": "#908caa", - "symbolIcon.folderForeground": "#908caa", - "symbolIcon.functionForeground": "#908caa", - "symbolIcon.interfaceForeground": "#908caa", - "symbolIcon.keyForeground": "#908caa", - "symbolIcon.keywordForeground": "#908caa", - "symbolIcon.methodForeground": "#908caa", - "symbolIcon.moduleForeground": "#908caa", - "symbolIcon.namespaceForeground": "#908caa", - "symbolIcon.nullForeground": "#908caa", - "symbolIcon.numberForeground": "#908caa", - "symbolIcon.objectForeground": "#908caa", - "symbolIcon.operatorForeground": "#908caa", - "symbolIcon.packageForeground": "#908caa", - "symbolIcon.propertyForeground": "#908caa", - "symbolIcon.referenceForeground": "#908caa", - "symbolIcon.snippetForeground": "#908caa", - "symbolIcon.stringForeground": "#908caa", - "symbolIcon.structForeground": "#908caa", - "symbolIcon.textForeground": "#908caa", - "symbolIcon.typeParameterForeground": "#908caa", - "symbolIcon.unitForeground": "#908caa", - "symbolIcon.variableForeground": "#908caa", - "tab.activeBackground": "#817c9c14", - "tab.activeForeground": "#e0def4", - "tab.activeModifiedBorder": "#9ccfd8", - "tab.border": "#000000", - "tab.hoverBackground": "#817c9c26", - "tab.inactiveBackground": "#000000", - "tab.inactiveForeground": "#908caa", - "tab.inactiveModifiedBorder": "#9ccfd880", - "tab.lastPinnedBorder": "#6e6a86", - "tab.unfocusedActiveBackground": "#000000", - "tab.unfocusedHoverBackground": "#000000", - "tab.unfocusedInactiveBackground": "#000000", - "tab.unfocusedInactiveModifiedBorder": "#9ccfd880", - "terminal.ansiBlack": "#393552", - "terminal.ansiBlue": "#9ccfd8", - "terminal.ansiBrightBlack": "#908caa", - "terminal.ansiBrightBlue": "#9ccfd8", - "terminal.ansiBrightCyan": "#ea9a97", - "terminal.ansiBrightGreen": "#3e8fb0", - "terminal.ansiBrightMagenta": "#c4a7e7", - "terminal.ansiBrightRed": "#eb6f92", - "terminal.ansiBrightWhite": "#e0def4", - "terminal.ansiBrightYellow": "#f6c177", - "terminal.ansiCyan": "#ea9a97", - "terminal.ansiGreen": "#3e8fb0", - "terminal.ansiMagenta": "#c4a7e7", - "terminal.ansiRed": "#eb6f92", - "terminal.ansiWhite": "#e0def4", - "terminal.ansiYellow": "#f6c177", - "terminal.dropBackground": "#817c9c26", - "terminal.foreground": "#e0def4", - "terminal.selectionBackground": "#817c9c26", - "terminal.tab.activeBorder": "#e0def4", - "terminalCursor.background": "#e0def4", - "terminalCursor.foreground": "#6e6a86", - "textBlockQuote.background": "#2a273f", - "textBlockQuote.border": "#817c9c26", - "textCodeBlock.background": "#2a273f", - "textLink.activeForeground": "#c4a7e7e6", - "textLink.foreground": "#c4a7e7", - "textPreformat.foreground": "#f6c177", - "textSeparator.foreground": "#908caa", - "titleBar.activeBackground": "#232136", - "titleBar.activeForeground": "#908caa", - "titleBar.inactiveBackground": "#2a273f", - "titleBar.inactiveForeground": "#908caa", - "toolbar.activeBackground": "#817c9c4d", - "toolbar.hoverBackground": "#817c9c26", - "tree.indentGuidesStroke": "#908caa", - "walkThrough.embeddedEditorBackground": "#232136", - "welcomePage.background": "#232136", - "welcomePage.buttonBackground": "#2a273f", - "welcomePage.buttonHoverBackground": "#393552", - "widget.shadow": "#2a273f4d", - "window.activeBorder": "#2a273f", - "window.inactiveBorder": "#2a273f" - }, - "tokenColors": [ - { - "scope": ["comment"], - "settings": { - "foreground": "#6e6a86", - "fontStyle": "italic" - } - }, - { - "scope": ["constant"], - "settings": { - "foreground": "#3e8fb0" - } - }, - { - "scope": ["constant.numeric", "constant.language"], - "settings": { - "foreground": "#ea9a97" - } - }, - { - "scope": ["entity.name"], - "settings": { - "foreground": "#ea9a97" - } - }, - { - "scope": [ - "entity.name.section", - "entity.name.tag", - "entity.name.namespace", - "entity.name.type" - ], - "settings": { - "foreground": "#9ccfd8" - } - }, - { - "scope": ["entity.other.attribute-name", "entity.other.inherited-class"], - "settings": { - "foreground": "#c4a7e7", - "fontStyle": "italic" - } - }, - { - "scope": ["invalid"], - "settings": { - "foreground": "#eb6f92" - } - }, - { - "scope": ["invalid.deprecated"], - "settings": { - "foreground": "#908caa" - } - }, - { - "scope": ["keyword"], - "settings": { - "foreground": "#3e8fb0" - } - }, - { - "scope": ["markup.inserted.diff"], - "settings": { - "foreground": "#9ccfd8" - } - }, - { - "scope": ["markup.deleted.diff"], - "settings": { - "foreground": "#eb6f92" - } - }, - { - "scope": "markup.heading", - "settings": { - "fontStyle": "bold" - } - }, - { - "scope": "markup.bold.markdown", - "settings": { - "fontStyle": "bold" - } - }, - { - "scope": "markup.italic.markdown", - "settings": { - "fontStyle": "italic" - } - }, - { - "scope": ["meta.diff.range"], - "settings": { - "foreground": "#c4a7e7" - } - }, - { - "scope": ["meta.tag", "meta.brace"], - "settings": { - "foreground": "#e0def4" - } - }, - { - "scope": ["meta.import", "meta.export"], - "settings": { - "foreground": "#3e8fb0" - } - }, - { - "scope": "meta.directive.vue", - "settings": { - "foreground": "#c4a7e7", - "fontStyle": "italic" - } - }, - { - "scope": "meta.property-name.css", - "settings": { - "foreground": "#9ccfd8" - } - }, - { - "scope": "meta.property-value.css", - "settings": { - "foreground": "#f6c177" - } - }, - { - "scope": "meta.tag.other.html", - "settings": { - "foreground": "#908caa" - } - }, - { - "scope": ["punctuation"], - "settings": { - "foreground": "#908caa" - } - }, - { - "scope": ["punctuation.accessor"], - "settings": { - "foreground": "#3e8fb0" - } - }, - { - "scope": ["punctuation.definition.string"], - "settings": { - "foreground": "#f6c177" - } - }, - { - "scope": ["punctuation.definition.tag"], - "settings": { - "foreground": "#6e6a86" - } - }, - { - "scope": ["storage.type", "storage.modifier"], - "settings": { - "foreground": "#3e8fb0" - } - }, - { - "scope": ["string"], - "settings": { - "foreground": "#f6c177" - } - }, - { - "scope": ["support"], - "settings": { - "foreground": "#9ccfd8" - } - }, - { - "scope": ["support.constant"], - "settings": { - "foreground": "#f6c177" - } - }, - { - "scope": ["support.function"], - "settings": { - "foreground": "#eb6f92", - "fontStyle": "italic" - } - }, - { - "scope": ["variable"], - "settings": { - "foreground": "#ea9a97", - "fontStyle": "italic" - } - }, - { - "scope": [ - "variable.other", - "variable.language", - "variable.function", - "variable.argument" - ], - "settings": { - "foreground": "#e0def4" - } - }, - { - "scope": ["variable.parameter"], - "settings": { - "foreground": "#c4a7e7" - } - } - ] + "name": "Rosé Pine Moon", + "type": "dark", + "colors": { + "activityBar.activeBorder": "#e0def4", + "activityBar.background": "#232136", + "activityBar.dropBorder": "#393552", + "activityBar.foreground": "#e0def4", + "activityBar.inactiveForeground": "#908caa", + "activityBarBadge.background": "#ea9a97", + "activityBarBadge.foreground": "#232136", + "badge.background": "#ea9a97", + "badge.foreground": "#232136", + "banner.background": "#2a273f", + "banner.foreground": "#e0def4", + "banner.iconForeground": "#908caa", + "breadcrumb.activeSelectionForeground": "#ea9a97", + "breadcrumb.background": "#232136", + "breadcrumb.focusForeground": "#908caa", + "breadcrumb.foreground": "#6e6a86", + "breadcrumbPicker.background": "#2a273f", + "button.background": "#ea9a97", + "button.foreground": "#232136", + "button.hoverBackground": "#ea9a97e6", + "button.secondaryBackground": "#2a273f", + "button.secondaryForeground": "#e0def4", + "button.secondaryHoverBackground": "#393552", + "charts.blue": "#9ccfd8", + "charts.foreground": "#e0def4", + "charts.green": "#3e8fb0", + "charts.lines": "#908caa", + "charts.orange": "#ea9a97", + "charts.purple": "#c4a7e7", + "charts.red": "#eb6f92", + "charts.yellow": "#f6c177", + "checkbox.background": "#2a273f", + "checkbox.border": "#817c9c26", + "checkbox.foreground": "#e0def4", + "debugExceptionWidget.background": "#2a273f", + "debugExceptionWidget.border": "#817c9c26", + "debugIcon.breakpointCurrentStackframeForeground": "#908caa", + "debugIcon.breakpointDisabledForeground": "#908caa", + "debugIcon.breakpointForeground": "#908caa", + "debugIcon.breakpointStackframeForeground": "#908caa", + "debugIcon.breakpointUnverifiedForeground": "#908caa", + "debugIcon.continueForeground": "#908caa", + "debugIcon.disconnectForeground": "#908caa", + "debugIcon.pauseForeground": "#908caa", + "debugIcon.restartForeground": "#908caa", + "debugIcon.startForeground": "#908caa", + "debugIcon.stepBackForeground": "#908caa", + "debugIcon.stepIntoForeground": "#908caa", + "debugIcon.stepOutForeground": "#908caa", + "debugIcon.stepOverForeground": "#908caa", + "debugIcon.stopForeground": "#eb6f92", + "debugToolBar.background": "#2a273f", + "debugToolBar.border": "#393552", + "descriptionForeground": "#908caa", + "diffEditor.border": "#393552", + "diffEditor.diagonalFill": "#817c9c4d", + "diffEditor.insertedLineBackground": "#9ccfd826", + "diffEditor.insertedTextBackground": "#9ccfd826", + "diffEditor.removedLineBackground": "#eb6f9226", + "diffEditor.removedTextBackground": "#eb6f9226", + "diffEditorOverview.insertedForeground": "#9ccfd880", + "diffEditorOverview.removedForeground": "#eb6f9280", + "dropdown.background": "#2a273f", + "dropdown.border": "#817c9c26", + "dropdown.foreground": "#e0def4", + "dropdown.listBackground": "#2a273f", + "editor.background": "#232136", + "editor.findMatchBackground": "#817c9c4d", + "editor.findMatchHighlightBackground": "#817c9c4d", + "editor.findRangeHighlightBackground": "#817c9c4d", + "editor.findRangeHighlightBorder": "#0000", + "editor.focusedStackFrameHighlightBackground": "#817c9c26", + "editor.foldBackground": "#2a273f", + "editor.foreground": "#e0def4", + "editor.hoverHighlightBackground": "#0000", + "editor.inactiveSelectionBackground": "#817c9c14", + "editor.inlineValuesBackground": "#0000", + "editor.inlineValuesForeground": "#908caa", + "editor.lineHighlightBackground": "#817c9c14", + "editor.lineHighlightBorder": "#0000", + "editor.linkedEditingBackground": "#2a273f", + "editor.rangeHighlightBackground": "#817c9c14", + "editor.selectionBackground": "#817c9c26", + "editor.selectionForeground": "#e0def4", + "editor.selectionHighlightBackground": "#817c9c26", + "editor.selectionHighlightBorder": "#232136", + "editor.snippetFinalTabstopHighlightBackground": "#817c9c26", + "editor.snippetFinalTabstopHighlightBorder": "#2a273f", + "editor.snippetTabstopHighlightBackground": "#817c9c26", + "editor.snippetTabstopHighlightBorder": "#2a273f", + "editor.stackFrameHighlightBackground": "#817c9c26", + "editor.symbolHighlightBackground": "#817c9c26", + "editor.symbolHighlightBorder": "#0000", + "editor.wordHighlightBackground": "#817c9c26", + "editor.wordHighlightBorder": "#0000", + "editor.wordHighlightStrongBackground": "#817c9c26", + "editor.wordHighlightStrongBorder": "#817c9c26", + "editorBracketHighlight.foreground1": "#eb6f9280", + "editorBracketHighlight.foreground2": "#3e8fb080", + "editorBracketHighlight.foreground3": "#f6c17780", + "editorBracketHighlight.foreground4": "#9ccfd880", + "editorBracketHighlight.foreground5": "#ea9a9780", + "editorBracketHighlight.foreground6": "#c4a7e780", + "editorBracketMatch.background": "#0000", + "editorBracketMatch.border": "#908caa", + "editorBracketPairGuide.activeBackground1": "#3e8fb0", + "editorBracketPairGuide.activeBackground2": "#ea9a97", + "editorBracketPairGuide.activeBackground3": "#c4a7e7", + "editorBracketPairGuide.activeBackground4": "#9ccfd8", + "editorBracketPairGuide.activeBackground5": "#f6c177", + "editorBracketPairGuide.activeBackground6": "#eb6f92", + "editorBracketPairGuide.background1": "#3e8fb080", + "editorBracketPairGuide.background2": "#ea9a9780", + "editorBracketPairGuide.background3": "#c4a7e780", + "editorBracketPairGuide.background4": "#9ccfd880", + "editorBracketPairGuide.background5": "#f6c17780", + "editorBracketPairGuide.background6": "#eb6f9280", + "editorCodeLens.foreground": "#ea9a97", + "editorCursor.background": "#e0def4", + "editorCursor.foreground": "#6e6a86", + "editorError.border": "#0000", + "editorError.foreground": "#eb6f92", + "editorGhostText.foreground": "#908caa", + "editorGroup.border": "#0000", + "editorGroup.dropBackground": "#2a273f", + "editorGroup.emptyBackground": "#0000", + "editorGroup.focusedEmptyBorder": "#0000", + "editorGroupHeader.noTabsBackground": "#0000", + "editorGroupHeader.tabsBackground": "#0000", + "editorGroupHeader.tabsBorder": "#0000", + "editorGutter.addedBackground": "#9ccfd8", + "editorGutter.background": "#232136", + "editorGutter.commentRangeForeground": "#908caa", + "editorGutter.deletedBackground": "#eb6f92", + "editorGutter.foldingControlForeground": "#c4a7e7", + "editorGutter.modifiedBackground": "#ea9a97", + "editorHint.border": "#0000", + "editorHint.foreground": "#908caa", + "editorHoverWidget.background": "#2a273f", + "editorHoverWidget.border": "#6e6a8680", + "editorHoverWidget.foreground": "#908caa", + "editorHoverWidget.highlightForeground": "#e0def4", + "editorHoverWidget.statusBarBackground": "#0000", + "editorIndentGuide.activeBackground": "#6e6a86", + "editorIndentGuide.background": "#817c9c4d", + "editorInfo.border": "#393552", + "editorInfo.foreground": "#9ccfd8", + "editorInlayHint.background": "#393552", + "editorInlayHint.foreground": "#908caa", + "editorInlayHint.parameterBackground": "#393552", + "editorInlayHint.parameterForeground": "#c4a7e7", + "editorInlayHint.typeBackground": "#393552", + "editorInlayHint.typeForeground": "#9ccfd8", + "editorLightBulb.foreground": "#3e8fb0", + "editorLightBulbAutoFix.foreground": "#ea9a97", + "editorLineNumber.activeForeground": "#e0def4", + "editorLineNumber.foreground": "#908caa", + "editorLink.activeForeground": "#ea9a97", + "editorMarkerNavigation.background": "#2a273f", + "editorMarkerNavigationError.background": "#2a273f", + "editorMarkerNavigationInfo.background": "#2a273f", + "editorMarkerNavigationWarning.background": "#2a273f", + "editorOverviewRuler.addedForeground": "#9ccfd880", + "editorOverviewRuler.background": "#232136", + "editorOverviewRuler.border": "#817c9c4d", + "editorOverviewRuler.bracketMatchForeground": "#908caa", + "editorOverviewRuler.commonContentForeground": "#817c9c14", + "editorOverviewRuler.currentContentForeground": "#817c9c26", + "editorOverviewRuler.deletedForeground": "#eb6f9280", + "editorOverviewRuler.errorForeground": "#eb6f9280", + "editorOverviewRuler.findMatchForeground": "#817c9c4d", + "editorOverviewRuler.incomingContentForeground": "#c4a7e780", + "editorOverviewRuler.infoForeground": "#9ccfd880", + "editorOverviewRuler.modifiedForeground": "#ea9a9780", + "editorOverviewRuler.rangeHighlightForeground": "#817c9c4d", + "editorOverviewRuler.selectionHighlightForeground": "#817c9c4d", + "editorOverviewRuler.warningForeground": "#f6c17780", + "editorOverviewRuler.wordHighlightForeground": "#817c9c26", + "editorOverviewRuler.wordHighlightStrongForeground": "#817c9c4d", + "editorPane.background": "#0000", + "editorRuler.foreground": "#817c9c4d", + "editorSuggestWidget.background": "#2a273f", + "editorSuggestWidget.border": "#0000", + "editorSuggestWidget.focusHighlightForeground": "#ea9a97", + "editorSuggestWidget.foreground": "#908caa", + "editorSuggestWidget.highlightForeground": "#ea9a97", + "editorSuggestWidget.selectedBackground": "#817c9c26", + "editorSuggestWidget.selectedForeground": "#e0def4", + "editorSuggestWidget.selectedIconForeground": "#e0def4", + "editorUnnecessaryCode.border": "#0000", + "editorUnnecessaryCode.opacity": "#e0def480", + "editorWarning.border": "#0000", + "editorWarning.foreground": "#f6c177", + "editorWhitespace.foreground": "#6e6a86", + "editorWidget.background": "#2a273f", + "editorWidget.border": "#393552", + "editorWidget.foreground": "#908caa", + "editorWidget.resizeBorder": "#6e6a86", + "errorForeground": "#eb6f92", + "extensionBadge.remoteBackground": "#c4a7e7", + "extensionBadge.remoteForeground": "#232136", + "extensionButton.prominentBackground": "#ea9a97", + "extensionButton.prominentForeground": "#232136", + "extensionButton.prominentHoverBackground": "#ea9a97e6", + "extensionIcon.preReleaseForeground": "#3e8fb0", + "extensionIcon.starForeground": "#ea9a97", + "extensionIcon.verifiedForeground": "#c4a7e7", + "focusBorder": "#817c9c26", + "foreground": "#e0def4", + "gitDecoration.addedResourceForeground": "#9ccfd8", + "gitDecoration.conflictingResourceForeground": "#eb6f92", + "gitDecoration.deletedResourceForeground": "#908caa", + "gitDecoration.ignoredResourceForeground": "#6e6a86", + "gitDecoration.modifiedResourceForeground": "#ea9a97", + "gitDecoration.renamedResourceForeground": "#3e8fb0", + "gitDecoration.stageDeletedResourceForeground": "#eb6f92", + "gitDecoration.stageModifiedResourceForeground": "#c4a7e7", + "gitDecoration.submoduleResourceForeground": "#f6c177", + "gitDecoration.untrackedResourceForeground": "#f6c177", + "icon.foreground": "#908caa", + "input.background": "#39355280", + "input.border": "#817c9c26", + "input.foreground": "#e0def4", + "input.placeholderForeground": "#908caa", + "inputOption.activeBackground": "#ea9a9726", + "inputOption.activeForeground": "#ea9a97", + "inputValidation.errorBackground": "#2a273f", + "inputValidation.errorBorder": "#817c9c4d", + "inputValidation.errorForeground": "#eb6f92", + "inputValidation.infoBackground": "#2a273f", + "inputValidation.infoBorder": "#817c9c4d", + "inputValidation.infoForeground": "#9ccfd8", + "inputValidation.warningBackground": "#2a273f", + "inputValidation.warningBorder": "#817c9c4d", + "inputValidation.warningForeground": "#9ccfd880", + "keybindingLabel.background": "#393552", + "keybindingLabel.border": "#817c9c4d", + "keybindingLabel.bottomBorder": "#817c9c4d", + "keybindingLabel.foreground": "#c4a7e7", + "keybindingTable.headerBackground": "#393552", + "keybindingTable.rowsBackground": "#2a273f", + "list.activeSelectionBackground": "#817c9c26", + "list.activeSelectionForeground": "#e0def4", + "list.deemphasizedForeground": "#908caa", + "list.dropBackground": "#2a273f", + "list.errorForeground": "#eb6f92", + "list.filterMatchBackground": "#2a273f", + "list.filterMatchBorder": "#ea9a97", + "list.focusBackground": "#817c9c4d", + "list.focusForeground": "#e0def4", + "list.focusOutline": "#817c9c26", + "list.highlightForeground": "#ea9a97", + "list.hoverBackground": "#817c9c14", + "list.hoverForeground": "#e0def4", + "list.inactiveFocusBackground": "#817c9c14", + "list.inactiveSelectionBackground": "#2a273f", + "list.inactiveSelectionForeground": "#e0def4", + "list.invalidItemForeground": "#eb6f92", + "list.warningForeground": "#f6c177", + "listFilterWidget.background": "#2a273f", + "listFilterWidget.noMatchesOutline": "#eb6f92", + "listFilterWidget.outline": "#393552", + "menu.background": "#2a273f", + "menu.border": "#817c9c14", + "menu.foreground": "#e0def4", + "menu.selectionBackground": "#817c9c26", + "menu.selectionBorder": "#393552", + "menu.selectionForeground": "#e0def4", + "menu.separatorBackground": "#817c9c4d", + "menubar.selectionBackground": "#817c9c26", + "menubar.selectionBorder": "#817c9c14", + "menubar.selectionForeground": "#e0def4", + "merge.border": "#393552", + "merge.commonContentBackground": "#817c9c26", + "merge.commonHeaderBackground": "#817c9c26", + "merge.currentContentBackground": "#f6c17780", + "merge.currentHeaderBackground": "#f6c17780", + "merge.incomingContentBackground": "#9ccfd880", + "merge.incomingHeaderBackground": "#9ccfd880", + "minimap.background": "#2a273f", + "minimap.errorHighlight": "#eb6f9280", + "minimap.findMatchHighlight": "#817c9c26", + "minimap.selectionHighlight": "#817c9c26", + "minimap.warningHighlight": "#f6c17780", + "minimapGutter.addedBackground": "#9ccfd8", + "minimapGutter.deletedBackground": "#eb6f92", + "minimapGutter.modifiedBackground": "#ea9a97", + "minimapSlider.activeBackground": "#817c9c4d", + "minimapSlider.background": "#817c9c26", + "minimapSlider.hoverBackground": "#817c9c26", + "notebook.cellBorderColor": "#9ccfd880", + "notebook.cellEditorBackground": "#2a273f", + "notebook.cellHoverBackground": "#39355280", + "notebook.focusedCellBackground": "#817c9c14", + "notebook.focusedCellBorder": "#9ccfd8", + "notebook.outputContainerBackgroundColor": "#817c9c14", + "notificationCenter.border": "#817c9c26", + "notificationCenterHeader.background": "#2a273f", + "notificationCenterHeader.foreground": "#908caa", + "notificationLink.foreground": "#c4a7e7", + "notifications.background": "#2a273f", + "notifications.border": "#817c9c26", + "notifications.foreground": "#e0def4", + "notificationsErrorIcon.foreground": "#eb6f92", + "notificationsInfoIcon.foreground": "#9ccfd8", + "notificationsWarningIcon.foreground": "#f6c177", + "notificationToast.border": "#817c9c26", + "panel.background": "#2a273f", + "panel.border": "#0000", + "panel.dropBorder": "#393552", + "panelInput.border": "#2a273f", + "panelSection.dropBackground": "#817c9c26", + "panelSectionHeader.background": "#2a273f", + "panelSectionHeader.foreground": "#e0def4", + "panelTitle.activeBorder": "#817c9c4d", + "panelTitle.activeForeground": "#e0def4", + "panelTitle.inactiveForeground": "#908caa", + "peekView.border": "#393552", + "peekViewEditor.background": "#2a273f", + "peekViewEditor.matchHighlightBackground": "#817c9c4d", + "peekViewResult.background": "#2a273f", + "peekViewResult.fileForeground": "#908caa", + "peekViewResult.lineForeground": "#908caa", + "peekViewResult.matchHighlightBackground": "#817c9c4d", + "peekViewResult.selectionBackground": "#817c9c26", + "peekViewResult.selectionForeground": "#e0def4", + "peekViewTitle.background": "#393552", + "peekViewTitleDescription.foreground": "#908caa", + "pickerGroup.border": "#817c9c4d", + "pickerGroup.foreground": "#c4a7e7", + "ports.iconRunningProcessForeground": "#ea9a97", + "problemsErrorIcon.foreground": "#eb6f92", + "problemsInfoIcon.foreground": "#9ccfd8", + "problemsWarningIcon.foreground": "#f6c177", + "progressBar.background": "#ea9a97", + "quickInput.background": "#2a273f", + "quickInput.foreground": "#908caa", + "quickInputList.focusBackground": "#817c9c26", + "quickInputList.focusForeground": "#e0def4", + "quickInputList.focusIconForeground": "#e0def4", + "scrollbar.shadow": "#2a273f4d", + "scrollbarSlider.activeBackground": "#3e8fb080", + "scrollbarSlider.background": "#817c9c26", + "scrollbarSlider.hoverBackground": "#817c9c4d", + "searchEditor.findMatchBackground": "#817c9c26", + "selection.background": "#817c9c4d", + "settings.focusedRowBackground": "#2a273f", + "settings.headerForeground": "#e0def4", + "settings.modifiedItemIndicator": "#ea9a97", + "settings.focusedRowBorder": "#817c9c26", + "settings.rowHoverBackground": "#2a273f", + "sideBar.background": "#232136", + "sideBar.dropBackground": "#2a273f", + "sideBar.foreground": "#908caa", + "sideBarSectionHeader.background": "#0000", + "sideBarSectionHeader.border": "#817c9c26", + "statusBar.background": "#232136", + "statusBar.debuggingBackground": "#c4a7e7", + "statusBar.debuggingForeground": "#232136", + "statusBar.foreground": "#908caa", + "statusBar.noFolderBackground": "#232136", + "statusBar.noFolderForeground": "#908caa", + "statusBarItem.activeBackground": "#817c9c4d", + "statusBarItem.hoverBackground": "#817c9c26", + "statusBarItem.prominentBackground": "#393552", + "statusBarItem.prominentForeground": "#e0def4", + "statusBarItem.prominentHoverBackground": "#817c9c26", + "statusBarItem.remoteBackground": "#232136", + "statusBarItem.remoteForeground": "#f6c177", + "statusBarItem.errorBackground": "#232136", + "statusBarItem.errorForeground": "#eb6f92", + "symbolIcon.arrayForeground": "#908caa", + "symbolIcon.classForeground": "#908caa", + "symbolIcon.colorForeground": "#908caa", + "symbolIcon.constantForeground": "#908caa", + "symbolIcon.constructorForeground": "#908caa", + "symbolIcon.enumeratorForeground": "#908caa", + "symbolIcon.enumeratorMemberForeground": "#908caa", + "symbolIcon.eventForeground": "#908caa", + "symbolIcon.fieldForeground": "#908caa", + "symbolIcon.fileForeground": "#908caa", + "symbolIcon.folderForeground": "#908caa", + "symbolIcon.functionForeground": "#908caa", + "symbolIcon.interfaceForeground": "#908caa", + "symbolIcon.keyForeground": "#908caa", + "symbolIcon.keywordForeground": "#908caa", + "symbolIcon.methodForeground": "#908caa", + "symbolIcon.moduleForeground": "#908caa", + "symbolIcon.namespaceForeground": "#908caa", + "symbolIcon.nullForeground": "#908caa", + "symbolIcon.numberForeground": "#908caa", + "symbolIcon.objectForeground": "#908caa", + "symbolIcon.operatorForeground": "#908caa", + "symbolIcon.packageForeground": "#908caa", + "symbolIcon.propertyForeground": "#908caa", + "symbolIcon.referenceForeground": "#908caa", + "symbolIcon.snippetForeground": "#908caa", + "symbolIcon.stringForeground": "#908caa", + "symbolIcon.structForeground": "#908caa", + "symbolIcon.textForeground": "#908caa", + "symbolIcon.typeParameterForeground": "#908caa", + "symbolIcon.unitForeground": "#908caa", + "symbolIcon.variableForeground": "#908caa", + "tab.activeBackground": "#817c9c14", + "tab.activeForeground": "#e0def4", + "tab.activeModifiedBorder": "#9ccfd8", + "tab.border": "#0000", + "tab.hoverBackground": "#817c9c26", + "tab.inactiveBackground": "#0000", + "tab.inactiveForeground": "#908caa", + "tab.inactiveModifiedBorder": "#9ccfd880", + "tab.lastPinnedBorder": "#6e6a86", + "tab.unfocusedActiveBackground": "#0000", + "tab.unfocusedHoverBackground": "#0000", + "tab.unfocusedInactiveBackground": "#0000", + "tab.unfocusedInactiveModifiedBorder": "#9ccfd880", + "terminal.ansiBlack": "#393552", + "terminal.ansiBlue": "#9ccfd8", + "terminal.ansiBrightBlack": "#908caa", + "terminal.ansiBrightBlue": "#9ccfd8", + "terminal.ansiBrightCyan": "#ea9a97", + "terminal.ansiBrightGreen": "#3e8fb0", + "terminal.ansiBrightMagenta": "#c4a7e7", + "terminal.ansiBrightRed": "#eb6f92", + "terminal.ansiBrightWhite": "#e0def4", + "terminal.ansiBrightYellow": "#f6c177", + "terminal.ansiCyan": "#ea9a97", + "terminal.ansiGreen": "#3e8fb0", + "terminal.ansiMagenta": "#c4a7e7", + "terminal.ansiRed": "#eb6f92", + "terminal.ansiWhite": "#e0def4", + "terminal.ansiYellow": "#f6c177", + "terminal.dropBackground": "#817c9c26", + "terminal.foreground": "#e0def4", + "terminal.selectionBackground": "#817c9c26", + "terminal.tab.activeBorder": "#e0def4", + "terminalCursor.background": "#e0def4", + "terminalCursor.foreground": "#6e6a86", + "textBlockQuote.background": "#2a273f", + "textBlockQuote.border": "#817c9c26", + "textCodeBlock.background": "#2a273f", + "textLink.activeForeground": "#c4a7e7e6", + "textLink.foreground": "#c4a7e7", + "textPreformat.foreground": "#f6c177", + "textSeparator.foreground": "#908caa", + "titleBar.activeBackground": "#232136", + "titleBar.activeForeground": "#908caa", + "titleBar.inactiveBackground": "#2a273f", + "titleBar.inactiveForeground": "#908caa", + "toolbar.activeBackground": "#817c9c4d", + "toolbar.hoverBackground": "#817c9c26", + "tree.indentGuidesStroke": "#908caa", + "walkThrough.embeddedEditorBackground": "#232136", + "welcomePage.background": "#232136", + "welcomePage.buttonBackground": "#2a273f", + "welcomePage.buttonHoverBackground": "#393552", + "widget.shadow": "#2a273f4d", + "window.activeBorder": "#2a273f", + "window.inactiveBorder": "#2a273f" + }, + "tokenColors": [ + { + "scope": ["comment"], + "settings": { + "foreground": "#6e6a86", + "fontStyle": "italic" + } + }, + { + "scope": ["constant"], + "settings": { + "foreground": "#3e8fb0" + } + }, + { + "scope": ["constant.numeric", "constant.language"], + "settings": { + "foreground": "#ea9a97" + } + }, + { + "scope": ["entity.name"], + "settings": { + "foreground": "#ea9a97" + } + }, + { + "scope": [ + "entity.name.section", + "entity.name.tag", + "entity.name.namespace", + "entity.name.type" + ], + "settings": { + "foreground": "#9ccfd8" + } + }, + { + "scope": ["entity.other.attribute-name", "entity.other.inherited-class"], + "settings": { + "foreground": "#c4a7e7", + "fontStyle": "italic" + } + }, + { + "scope": ["invalid"], + "settings": { + "foreground": "#eb6f92" + } + }, + { + "scope": ["invalid.deprecated"], + "settings": { + "foreground": "#908caa" + } + }, + { + "scope": ["keyword"], + "settings": { + "foreground": "#3e8fb0" + } + }, + { + "scope": ["markup.inserted.diff"], + "settings": { + "foreground": "#9ccfd8" + } + }, + { + "scope": ["markup.deleted.diff"], + "settings": { + "foreground": "#eb6f92" + } + }, + { + "scope": "markup.heading", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "markup.bold.markdown", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "markup.italic.markdown", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": ["meta.diff.range"], + "settings": { + "foreground": "#c4a7e7" + } + }, + { + "scope": ["meta.tag", "meta.brace"], + "settings": { + "foreground": "#e0def4" + } + }, + { + "scope": ["meta.import", "meta.export"], + "settings": { + "foreground": "#3e8fb0" + } + }, + { + "scope": "meta.directive.vue", + "settings": { + "foreground": "#c4a7e7", + "fontStyle": "italic" + } + }, + { + "scope": "meta.property-name.css", + "settings": { + "foreground": "#9ccfd8" + } + }, + { + "scope": "meta.property-value.css", + "settings": { + "foreground": "#f6c177" + } + }, + { + "scope": "meta.tag.other.html", + "settings": { + "foreground": "#908caa" + } + }, + { + "scope": ["punctuation"], + "settings": { + "foreground": "#908caa" + } + }, + { + "scope": ["punctuation.accessor"], + "settings": { + "foreground": "#3e8fb0" + } + }, + { + "scope": ["punctuation.definition.string"], + "settings": { + "foreground": "#f6c177" + } + }, + { + "scope": ["punctuation.definition.tag"], + "settings": { + "foreground": "#6e6a86" + } + }, + { + "scope": ["storage.type", "storage.modifier"], + "settings": { + "foreground": "#3e8fb0" + } + }, + { + "scope": ["string"], + "settings": { + "foreground": "#f6c177" + } + }, + { + "scope": ["support"], + "settings": { + "foreground": "#9ccfd8" + } + }, + { + "scope": ["support.constant"], + "settings": { + "foreground": "#f6c177" + } + }, + { + "scope": ["support.function"], + "settings": { + "foreground": "#eb6f92", + "fontStyle": "italic" + } + }, + { + "scope": ["variable"], + "settings": { + "foreground": "#ea9a97", + "fontStyle": "italic" + } + }, + { + "scope": [ + "variable.other", + "variable.language", + "variable.function", + "variable.argument" + ], + "settings": { + "foreground": "#e0def4" + } + }, + { + "scope": ["variable.parameter"], + "settings": { + "foreground": "#c4a7e7" + } + } + ] } diff --git a/assets/themes/src/vscode/rose-pine/rose-pine.json b/assets/themes/src/vscode/rose-pine/rose-pine.json index c2a0d23efc59b8cb1da9b9a74e31ca3064df8cf4..167362ced494e0b194117a4ddb698a84f724f139 100644 --- a/assets/themes/src/vscode/rose-pine/rose-pine.json +++ b/assets/themes/src/vscode/rose-pine/rose-pine.json @@ -1,680 +1,680 @@ { - "name": "Rosé Pine", - "type": "dark", - "colors": { - "activityBar.activeBorder": "#e0def4", - "activityBar.background": "#191724", - "activityBar.dropBorder": "#26233a", - "activityBar.foreground": "#e0def4", - "activityBar.inactiveForeground": "#908caa", - "activityBarBadge.background": "#ebbcba", - "activityBarBadge.foreground": "#191724", - "badge.background": "#ebbcba", - "badge.foreground": "#191724", - "banner.background": "#1f1d2e", - "banner.foreground": "#e0def4", - "banner.iconForeground": "#908caa", - "breadcrumb.activeSelectionForeground": "#ebbcba", - "breadcrumb.background": "#191724", - "breadcrumb.focusForeground": "#908caa", - "breadcrumb.foreground": "#6e6a86", - "breadcrumbPicker.background": "#1f1d2e", - "button.background": "#ebbcba", - "button.foreground": "#191724", - "button.hoverBackground": "#ebbcbae6", - "button.secondaryBackground": "#1f1d2e", - "button.secondaryForeground": "#e0def4", - "button.secondaryHoverBackground": "#26233a", - "charts.blue": "#9ccfd8", - "charts.foreground": "#e0def4", - "charts.green": "#31748f", - "charts.lines": "#908caa", - "charts.orange": "#ebbcba", - "charts.purple": "#c4a7e7", - "charts.red": "#eb6f92", - "charts.yellow": "#f6c177", - "checkbox.background": "#1f1d2e", - "checkbox.border": "#6e6a8633", - "checkbox.foreground": "#e0def4", - "debugExceptionWidget.background": "#1f1d2e", - "debugExceptionWidget.border": "#6e6a8633", - "debugIcon.breakpointCurrentStackframeForeground": "#908caa", - "debugIcon.breakpointDisabledForeground": "#908caa", - "debugIcon.breakpointForeground": "#908caa", - "debugIcon.breakpointStackframeForeground": "#908caa", - "debugIcon.breakpointUnverifiedForeground": "#908caa", - "debugIcon.continueForeground": "#908caa", - "debugIcon.disconnectForeground": "#908caa", - "debugIcon.pauseForeground": "#908caa", - "debugIcon.restartForeground": "#908caa", - "debugIcon.startForeground": "#908caa", - "debugIcon.stepBackForeground": "#908caa", - "debugIcon.stepIntoForeground": "#908caa", - "debugIcon.stepOutForeground": "#908caa", - "debugIcon.stepOverForeground": "#908caa", - "debugIcon.stopForeground": "#eb6f92", - "debugToolBar.background": "#1f1d2e", - "debugToolBar.border": "#26233a", - "descriptionForeground": "#908caa", - "diffEditor.border": "#26233a", - "diffEditor.diagonalFill": "#6e6a8666", - "diffEditor.insertedLineBackground": "#9ccfd826", - "diffEditor.insertedTextBackground": "#9ccfd826", - "diffEditor.removedLineBackground": "#eb6f9226", - "diffEditor.removedTextBackground": "#eb6f9226", - "diffEditorOverview.insertedForeground": "#9ccfd880", - "diffEditorOverview.removedForeground": "#eb6f9280", - "dropdown.background": "#1f1d2e", - "dropdown.border": "#6e6a8633", - "dropdown.foreground": "#e0def4", - "dropdown.listBackground": "#1f1d2e", - "editor.background": "#191724", - "editor.findMatchBackground": "#6e6a8666", - "editor.findMatchHighlightBackground": "#6e6a8666", - "editor.findRangeHighlightBackground": "#6e6a8666", - "editor.findRangeHighlightBorder": "#000000", - "editor.focusedStackFrameHighlightBackground": "#6e6a8633", - "editor.foldBackground": "#1f1d2e", - "editor.foreground": "#e0def4", - "editor.hoverHighlightBackground": "#000000", - "editor.inactiveSelectionBackground": "#6e6a861a", - "editor.inlineValuesBackground": "#000000", - "editor.inlineValuesForeground": "#908caa", - "editor.lineHighlightBackground": "#6e6a861a", - "editor.lineHighlightBorder": "#000000", - "editor.linkedEditingBackground": "#1f1d2e", - "editor.rangeHighlightBackground": "#6e6a861a", - "editor.selectionBackground": "#6e6a8633", - "editor.selectionForeground": "#e0def4", - "editor.selectionHighlightBackground": "#6e6a8633", - "editor.selectionHighlightBorder": "#191724", - "editor.snippetFinalTabstopHighlightBackground": "#6e6a8633", - "editor.snippetFinalTabstopHighlightBorder": "#1f1d2e", - "editor.snippetTabstopHighlightBackground": "#6e6a8633", - "editor.snippetTabstopHighlightBorder": "#1f1d2e", - "editor.stackFrameHighlightBackground": "#6e6a8633", - "editor.symbolHighlightBackground": "#6e6a8633", - "editor.symbolHighlightBorder": "#000000", - "editor.wordHighlightBackground": "#6e6a8633", - "editor.wordHighlightBorder": "#000000", - "editor.wordHighlightStrongBackground": "#6e6a8633", - "editor.wordHighlightStrongBorder": "#6e6a8633", - "editorBracketHighlight.foreground1": "#eb6f9280", - "editorBracketHighlight.foreground2": "#31748f80", - "editorBracketHighlight.foreground3": "#f6c17780", - "editorBracketHighlight.foreground4": "#9ccfd880", - "editorBracketHighlight.foreground5": "#ebbcba80", - "editorBracketHighlight.foreground6": "#c4a7e780", - "editorBracketMatch.background": "#000000", - "editorBracketMatch.border": "#908caa", - "editorBracketPairGuide.activeBackground1": "#31748f", - "editorBracketPairGuide.activeBackground2": "#ebbcba", - "editorBracketPairGuide.activeBackground3": "#c4a7e7", - "editorBracketPairGuide.activeBackground4": "#9ccfd8", - "editorBracketPairGuide.activeBackground5": "#f6c177", - "editorBracketPairGuide.activeBackground6": "#eb6f92", - "editorBracketPairGuide.background1": "#31748f80", - "editorBracketPairGuide.background2": "#ebbcba80", - "editorBracketPairGuide.background3": "#c4a7e780", - "editorBracketPairGuide.background4": "#9ccfd880", - "editorBracketPairGuide.background5": "#f6c17780", - "editorBracketPairGuide.background6": "#eb6f9280", - "editorCodeLens.foreground": "#ebbcba", - "editorCursor.background": "#e0def4", - "editorCursor.foreground": "#6e6a86", - "editorError.border": "#000000", - "editorError.foreground": "#eb6f92", - "editorGhostText.foreground": "#908caa", - "editorGroup.border": "#000000", - "editorGroup.dropBackground": "#1f1d2e", - "editorGroup.emptyBackground": "#000000", - "editorGroup.focusedEmptyBorder": "#000000", - "editorGroupHeader.noTabsBackground": "#000000", - "editorGroupHeader.tabsBackground": "#000000", - "editorGroupHeader.tabsBorder": "#000000", - "editorGutter.addedBackground": "#9ccfd8", - "editorGutter.background": "#191724", - "editorGutter.commentRangeForeground": "#908caa", - "editorGutter.deletedBackground": "#eb6f92", - "editorGutter.foldingControlForeground": "#c4a7e7", - "editorGutter.modifiedBackground": "#ebbcba", - "editorHint.border": "#000000", - "editorHint.foreground": "#908caa", - "editorHoverWidget.background": "#1f1d2e", - "editorHoverWidget.border": "#6e6a8680", - "editorHoverWidget.foreground": "#908caa", - "editorHoverWidget.highlightForeground": "#e0def4", - "editorHoverWidget.statusBarBackground": "#000000", - "editorIndentGuide.activeBackground": "#6e6a86", - "editorIndentGuide.background": "#6e6a8666", - "editorInfo.border": "#26233a", - "editorInfo.foreground": "#9ccfd8", - "editorInlayHint.background": "#26233a", - "editorInlayHint.foreground": "#908caa", - "editorInlayHint.parameterBackground": "#26233a", - "editorInlayHint.parameterForeground": "#c4a7e7", - "editorInlayHint.typeBackground": "#26233a", - "editorInlayHint.typeForeground": "#9ccfd8", - "editorLightBulb.foreground": "#31748f", - "editorLightBulbAutoFix.foreground": "#ebbcba", - "editorLineNumber.activeForeground": "#e0def4", - "editorLineNumber.foreground": "#908caa", - "editorLink.activeForeground": "#ebbcba", - "editorMarkerNavigation.background": "#1f1d2e", - "editorMarkerNavigationError.background": "#1f1d2e", - "editorMarkerNavigationInfo.background": "#1f1d2e", - "editorMarkerNavigationWarning.background": "#1f1d2e", - "editorOverviewRuler.addedForeground": "#9ccfd880", - "editorOverviewRuler.background": "#191724", - "editorOverviewRuler.border": "#6e6a8666", - "editorOverviewRuler.bracketMatchForeground": "#908caa", - "editorOverviewRuler.commonContentForeground": "#6e6a861a", - "editorOverviewRuler.currentContentForeground": "#6e6a8633", - "editorOverviewRuler.deletedForeground": "#eb6f9280", - "editorOverviewRuler.errorForeground": "#eb6f9280", - "editorOverviewRuler.findMatchForeground": "#6e6a8666", - "editorOverviewRuler.incomingContentForeground": "#c4a7e780", - "editorOverviewRuler.infoForeground": "#9ccfd880", - "editorOverviewRuler.modifiedForeground": "#ebbcba80", - "editorOverviewRuler.rangeHighlightForeground": "#6e6a8666", - "editorOverviewRuler.selectionHighlightForeground": "#6e6a8666", - "editorOverviewRuler.warningForeground": "#f6c17780", - "editorOverviewRuler.wordHighlightForeground": "#6e6a8633", - "editorOverviewRuler.wordHighlightStrongForeground": "#6e6a8666", - "editorPane.background": "#000000", - "editorRuler.foreground": "#6e6a8666", - "editorSuggestWidget.background": "#1f1d2e", - "editorSuggestWidget.border": "#000000", - "editorSuggestWidget.focusHighlightForeground": "#ebbcba", - "editorSuggestWidget.foreground": "#908caa", - "editorSuggestWidget.highlightForeground": "#ebbcba", - "editorSuggestWidget.selectedBackground": "#6e6a8633", - "editorSuggestWidget.selectedForeground": "#e0def4", - "editorSuggestWidget.selectedIconForeground": "#e0def4", - "editorUnnecessaryCode.border": "#000000", - "editorUnnecessaryCode.opacity": "#e0def480", - "editorWarning.border": "#000000", - "editorWarning.foreground": "#f6c177", - "editorWhitespace.foreground": "#6e6a86", - "editorWidget.background": "#1f1d2e", - "editorWidget.border": "#26233a", - "editorWidget.foreground": "#908caa", - "editorWidget.resizeBorder": "#6e6a86", - "errorForeground": "#eb6f92", - "extensionBadge.remoteBackground": "#c4a7e7", - "extensionBadge.remoteForeground": "#191724", - "extensionButton.prominentBackground": "#ebbcba", - "extensionButton.prominentForeground": "#191724", - "extensionButton.prominentHoverBackground": "#ebbcbae6", - "extensionIcon.preReleaseForeground": "#31748f", - "extensionIcon.starForeground": "#ebbcba", - "extensionIcon.verifiedForeground": "#c4a7e7", - "focusBorder": "#6e6a8633", - "foreground": "#e0def4", - "gitDecoration.addedResourceForeground": "#9ccfd8", - "gitDecoration.conflictingResourceForeground": "#eb6f92", - "gitDecoration.deletedResourceForeground": "#908caa", - "gitDecoration.ignoredResourceForeground": "#6e6a86", - "gitDecoration.modifiedResourceForeground": "#ebbcba", - "gitDecoration.renamedResourceForeground": "#31748f", - "gitDecoration.stageDeletedResourceForeground": "#eb6f92", - "gitDecoration.stageModifiedResourceForeground": "#c4a7e7", - "gitDecoration.submoduleResourceForeground": "#f6c177", - "gitDecoration.untrackedResourceForeground": "#f6c177", - "icon.foreground": "#908caa", - "input.background": "#26233a80", - "input.border": "#6e6a8633", - "input.foreground": "#e0def4", - "input.placeholderForeground": "#908caa", - "inputOption.activeBackground": "#ebbcba26", - "inputOption.activeForeground": "#ebbcba", - "inputValidation.errorBackground": "#1f1d2e", - "inputValidation.errorBorder": "#6e6a8666", - "inputValidation.errorForeground": "#eb6f92", - "inputValidation.infoBackground": "#1f1d2e", - "inputValidation.infoBorder": "#6e6a8666", - "inputValidation.infoForeground": "#9ccfd8", - "inputValidation.warningBackground": "#1f1d2e", - "inputValidation.warningBorder": "#6e6a8666", - "inputValidation.warningForeground": "#9ccfd880", - "keybindingLabel.background": "#26233a", - "keybindingLabel.border": "#6e6a8666", - "keybindingLabel.bottomBorder": "#6e6a8666", - "keybindingLabel.foreground": "#c4a7e7", - "keybindingTable.headerBackground": "#26233a", - "keybindingTable.rowsBackground": "#1f1d2e", - "list.activeSelectionBackground": "#6e6a8633", - "list.activeSelectionForeground": "#e0def4", - "list.deemphasizedForeground": "#908caa", - "list.dropBackground": "#1f1d2e", - "list.errorForeground": "#eb6f92", - "list.filterMatchBackground": "#1f1d2e", - "list.filterMatchBorder": "#ebbcba", - "list.focusBackground": "#6e6a8666", - "list.focusForeground": "#e0def4", - "list.focusOutline": "#6e6a8633", - "list.highlightForeground": "#ebbcba", - "list.hoverBackground": "#6e6a861a", - "list.hoverForeground": "#e0def4", - "list.inactiveFocusBackground": "#6e6a861a", - "list.inactiveSelectionBackground": "#1f1d2e", - "list.inactiveSelectionForeground": "#e0def4", - "list.invalidItemForeground": "#eb6f92", - "list.warningForeground": "#f6c177", - "listFilterWidget.background": "#1f1d2e", - "listFilterWidget.noMatchesOutline": "#eb6f92", - "listFilterWidget.outline": "#26233a", - "menu.background": "#1f1d2e", - "menu.border": "#6e6a861a", - "menu.foreground": "#e0def4", - "menu.selectionBackground": "#6e6a8633", - "menu.selectionBorder": "#26233a", - "menu.selectionForeground": "#e0def4", - "menu.separatorBackground": "#6e6a8666", - "menubar.selectionBackground": "#6e6a8633", - "menubar.selectionBorder": "#6e6a861a", - "menubar.selectionForeground": "#e0def4", - "merge.border": "#26233a", - "merge.commonContentBackground": "#6e6a8633", - "merge.commonHeaderBackground": "#6e6a8633", - "merge.currentContentBackground": "#f6c17780", - "merge.currentHeaderBackground": "#f6c17780", - "merge.incomingContentBackground": "#9ccfd880", - "merge.incomingHeaderBackground": "#9ccfd880", - "minimap.background": "#1f1d2e", - "minimap.errorHighlight": "#eb6f9280", - "minimap.findMatchHighlight": "#6e6a8633", - "minimap.selectionHighlight": "#6e6a8633", - "minimap.warningHighlight": "#f6c17780", - "minimapGutter.addedBackground": "#9ccfd8", - "minimapGutter.deletedBackground": "#eb6f92", - "minimapGutter.modifiedBackground": "#ebbcba", - "minimapSlider.activeBackground": "#6e6a8666", - "minimapSlider.background": "#6e6a8633", - "minimapSlider.hoverBackground": "#6e6a8633", - "notebook.cellBorderColor": "#9ccfd880", - "notebook.cellEditorBackground": "#1f1d2e", - "notebook.cellHoverBackground": "#26233a80", - "notebook.focusedCellBackground": "#6e6a861a", - "notebook.focusedCellBorder": "#9ccfd8", - "notebook.outputContainerBackgroundColor": "#6e6a861a", - "notificationCenter.border": "#6e6a8633", - "notificationCenterHeader.background": "#1f1d2e", - "notificationCenterHeader.foreground": "#908caa", - "notificationLink.foreground": "#c4a7e7", - "notifications.background": "#1f1d2e", - "notifications.border": "#6e6a8633", - "notifications.foreground": "#e0def4", - "notificationsErrorIcon.foreground": "#eb6f92", - "notificationsInfoIcon.foreground": "#9ccfd8", - "notificationsWarningIcon.foreground": "#f6c177", - "notificationToast.border": "#6e6a8633", - "panel.background": "#1f1d2e", - "panel.border": "#000000", - "panel.dropBorder": "#26233a", - "panelInput.border": "#1f1d2e", - "panelSection.dropBackground": "#6e6a8633", - "panelSectionHeader.background": "#1f1d2e", - "panelSectionHeader.foreground": "#e0def4", - "panelTitle.activeBorder": "#6e6a8666", - "panelTitle.activeForeground": "#e0def4", - "panelTitle.inactiveForeground": "#908caa", - "peekView.border": "#26233a", - "peekViewEditor.background": "#1f1d2e", - "peekViewEditor.matchHighlightBackground": "#6e6a8666", - "peekViewResult.background": "#1f1d2e", - "peekViewResult.fileForeground": "#908caa", - "peekViewResult.lineForeground": "#908caa", - "peekViewResult.matchHighlightBackground": "#6e6a8666", - "peekViewResult.selectionBackground": "#6e6a8633", - "peekViewResult.selectionForeground": "#e0def4", - "peekViewTitle.background": "#26233a", - "peekViewTitleDescription.foreground": "#908caa", - "pickerGroup.border": "#6e6a8666", - "pickerGroup.foreground": "#c4a7e7", - "ports.iconRunningProcessForeground": "#ebbcba", - "problemsErrorIcon.foreground": "#eb6f92", - "problemsInfoIcon.foreground": "#9ccfd8", - "problemsWarningIcon.foreground": "#f6c177", - "progressBar.background": "#ebbcba", - "quickInput.background": "#1f1d2e", - "quickInput.foreground": "#908caa", - "quickInputList.focusBackground": "#6e6a8633", - "quickInputList.focusForeground": "#e0def4", - "quickInputList.focusIconForeground": "#e0def4", - "scrollbar.shadow": "#1f1d2e4d", - "scrollbarSlider.activeBackground": "#31748f80", - "scrollbarSlider.background": "#6e6a8633", - "scrollbarSlider.hoverBackground": "#6e6a8666", - "searchEditor.findMatchBackground": "#6e6a8633", - "selection.background": "#6e6a8666", - "settings.focusedRowBackground": "#1f1d2e", - "settings.headerForeground": "#e0def4", - "settings.modifiedItemIndicator": "#ebbcba", - "settings.focusedRowBorder": "#6e6a8633", - "settings.rowHoverBackground": "#1f1d2e", - "sideBar.background": "#191724", - "sideBar.dropBackground": "#1f1d2e", - "sideBar.foreground": "#908caa", - "sideBarSectionHeader.background": "#000000", - "sideBarSectionHeader.border": "#6e6a8633", - "statusBar.background": "#191724", - "statusBar.debuggingBackground": "#c4a7e7", - "statusBar.debuggingForeground": "#191724", - "statusBar.foreground": "#908caa", - "statusBar.noFolderBackground": "#191724", - "statusBar.noFolderForeground": "#908caa", - "statusBarItem.activeBackground": "#6e6a8666", - "statusBarItem.hoverBackground": "#6e6a8633", - "statusBarItem.prominentBackground": "#26233a", - "statusBarItem.prominentForeground": "#e0def4", - "statusBarItem.prominentHoverBackground": "#6e6a8633", - "statusBarItem.remoteBackground": "#191724", - "statusBarItem.remoteForeground": "#f6c177", - "statusBarItem.errorBackground": "#191724", - "statusBarItem.errorForeground": "#eb6f92", - "symbolIcon.arrayForeground": "#908caa", - "symbolIcon.classForeground": "#908caa", - "symbolIcon.colorForeground": "#908caa", - "symbolIcon.constantForeground": "#908caa", - "symbolIcon.constructorForeground": "#908caa", - "symbolIcon.enumeratorForeground": "#908caa", - "symbolIcon.enumeratorMemberForeground": "#908caa", - "symbolIcon.eventForeground": "#908caa", - "symbolIcon.fieldForeground": "#908caa", - "symbolIcon.fileForeground": "#908caa", - "symbolIcon.folderForeground": "#908caa", - "symbolIcon.functionForeground": "#908caa", - "symbolIcon.interfaceForeground": "#908caa", - "symbolIcon.keyForeground": "#908caa", - "symbolIcon.keywordForeground": "#908caa", - "symbolIcon.methodForeground": "#908caa", - "symbolIcon.moduleForeground": "#908caa", - "symbolIcon.namespaceForeground": "#908caa", - "symbolIcon.nullForeground": "#908caa", - "symbolIcon.numberForeground": "#908caa", - "symbolIcon.objectForeground": "#908caa", - "symbolIcon.operatorForeground": "#908caa", - "symbolIcon.packageForeground": "#908caa", - "symbolIcon.propertyForeground": "#908caa", - "symbolIcon.referenceForeground": "#908caa", - "symbolIcon.snippetForeground": "#908caa", - "symbolIcon.stringForeground": "#908caa", - "symbolIcon.structForeground": "#908caa", - "symbolIcon.textForeground": "#908caa", - "symbolIcon.typeParameterForeground": "#908caa", - "symbolIcon.unitForeground": "#908caa", - "symbolIcon.variableForeground": "#908caa", - "tab.activeBackground": "#6e6a861a", - "tab.activeForeground": "#e0def4", - "tab.activeModifiedBorder": "#9ccfd8", - "tab.border": "#000000", - "tab.hoverBackground": "#6e6a8633", - "tab.inactiveBackground": "#000000", - "tab.inactiveForeground": "#908caa", - "tab.inactiveModifiedBorder": "#9ccfd880", - "tab.lastPinnedBorder": "#6e6a86", - "tab.unfocusedActiveBackground": "#000000", - "tab.unfocusedHoverBackground": "#000000", - "tab.unfocusedInactiveBackground": "#000000", - "tab.unfocusedInactiveModifiedBorder": "#9ccfd880", - "terminal.ansiBlack": "#26233a", - "terminal.ansiBlue": "#9ccfd8", - "terminal.ansiBrightBlack": "#908caa", - "terminal.ansiBrightBlue": "#9ccfd8", - "terminal.ansiBrightCyan": "#ebbcba", - "terminal.ansiBrightGreen": "#31748f", - "terminal.ansiBrightMagenta": "#c4a7e7", - "terminal.ansiBrightRed": "#eb6f92", - "terminal.ansiBrightWhite": "#e0def4", - "terminal.ansiBrightYellow": "#f6c177", - "terminal.ansiCyan": "#ebbcba", - "terminal.ansiGreen": "#31748f", - "terminal.ansiMagenta": "#c4a7e7", - "terminal.ansiRed": "#eb6f92", - "terminal.ansiWhite": "#e0def4", - "terminal.ansiYellow": "#f6c177", - "terminal.dropBackground": "#6e6a8633", - "terminal.foreground": "#e0def4", - "terminal.selectionBackground": "#6e6a8633", - "terminal.tab.activeBorder": "#e0def4", - "terminalCursor.background": "#e0def4", - "terminalCursor.foreground": "#6e6a86", - "textBlockQuote.background": "#1f1d2e", - "textBlockQuote.border": "#6e6a8633", - "textCodeBlock.background": "#1f1d2e", - "textLink.activeForeground": "#c4a7e7e6", - "textLink.foreground": "#c4a7e7", - "textPreformat.foreground": "#f6c177", - "textSeparator.foreground": "#908caa", - "titleBar.activeBackground": "#191724", - "titleBar.activeForeground": "#908caa", - "titleBar.inactiveBackground": "#1f1d2e", - "titleBar.inactiveForeground": "#908caa", - "toolbar.activeBackground": "#6e6a8666", - "toolbar.hoverBackground": "#6e6a8633", - "tree.indentGuidesStroke": "#908caa", - "walkThrough.embeddedEditorBackground": "#191724", - "welcomePage.background": "#191724", - "welcomePage.buttonBackground": "#1f1d2e", - "welcomePage.buttonHoverBackground": "#26233a", - "widget.shadow": "#1f1d2e4d", - "window.activeBorder": "#1f1d2e", - "window.inactiveBorder": "#1f1d2e" - }, - "tokenColors": [ - { - "scope": ["comment"], - "settings": { - "foreground": "#6e6a86", - "fontStyle": "italic" - } - }, - { - "scope": ["constant"], - "settings": { - "foreground": "#31748f" - } - }, - { - "scope": ["constant.numeric", "constant.language"], - "settings": { - "foreground": "#ebbcba" - } - }, - { - "scope": ["entity.name"], - "settings": { - "foreground": "#ebbcba" - } - }, - { - "scope": [ - "entity.name.section", - "entity.name.tag", - "entity.name.namespace", - "entity.name.type" - ], - "settings": { - "foreground": "#9ccfd8" - } - }, - { - "scope": ["entity.other.attribute-name", "entity.other.inherited-class"], - "settings": { - "foreground": "#c4a7e7", - "fontStyle": "italic" - } - }, - { - "scope": ["invalid"], - "settings": { - "foreground": "#eb6f92" - } - }, - { - "scope": ["invalid.deprecated"], - "settings": { - "foreground": "#908caa" - } - }, - { - "scope": ["keyword"], - "settings": { - "foreground": "#31748f" - } - }, - { - "scope": ["markup.inserted.diff"], - "settings": { - "foreground": "#9ccfd8" - } - }, - { - "scope": ["markup.deleted.diff"], - "settings": { - "foreground": "#eb6f92" - } - }, - { - "scope": "markup.heading", - "settings": { - "fontStyle": "bold" - } - }, - { - "scope": "markup.bold.markdown", - "settings": { - "fontStyle": "bold" - } - }, - { - "scope": "markup.italic.markdown", - "settings": { - "fontStyle": "italic" - } - }, - { - "scope": ["meta.diff.range"], - "settings": { - "foreground": "#c4a7e7" - } - }, - { - "scope": ["meta.tag", "meta.brace"], - "settings": { - "foreground": "#e0def4" - } - }, - { - "scope": ["meta.import", "meta.export"], - "settings": { - "foreground": "#31748f" - } - }, - { - "scope": "meta.directive.vue", - "settings": { - "foreground": "#c4a7e7", - "fontStyle": "italic" - } - }, - { - "scope": "meta.property-name.css", - "settings": { - "foreground": "#9ccfd8" - } - }, - { - "scope": "meta.property-value.css", - "settings": { - "foreground": "#f6c177" - } - }, - { - "scope": "meta.tag.other.html", - "settings": { - "foreground": "#908caa" - } - }, - { - "scope": ["punctuation"], - "settings": { - "foreground": "#908caa" - } - }, - { - "scope": ["punctuation.accessor"], - "settings": { - "foreground": "#31748f" - } - }, - { - "scope": ["punctuation.definition.string"], - "settings": { - "foreground": "#f6c177" - } - }, - { - "scope": ["punctuation.definition.tag"], - "settings": { - "foreground": "#6e6a86" - } - }, - { - "scope": ["storage.type", "storage.modifier"], - "settings": { - "foreground": "#31748f" - } - }, - { - "scope": ["string"], - "settings": { - "foreground": "#f6c177" - } - }, - { - "scope": ["support"], - "settings": { - "foreground": "#9ccfd8" - } - }, - { - "scope": ["support.constant"], - "settings": { - "foreground": "#f6c177" - } - }, - { - "scope": ["support.function"], - "settings": { - "foreground": "#eb6f92", - "fontStyle": "italic" - } - }, - { - "scope": ["variable"], - "settings": { - "foreground": "#ebbcba", - "fontStyle": "italic" - } - }, - { - "scope": [ - "variable.other", - "variable.language", - "variable.function", - "variable.argument" - ], - "settings": { - "foreground": "#e0def4" - } - }, - { - "scope": ["variable.parameter"], - "settings": { - "foreground": "#c4a7e7" - } - } - ] + "name": "Rosé Pine", + "type": "dark", + "colors": { + "activityBar.activeBorder": "#e0def4", + "activityBar.background": "#191724", + "activityBar.dropBorder": "#26233a", + "activityBar.foreground": "#e0def4", + "activityBar.inactiveForeground": "#908caa", + "activityBarBadge.background": "#ebbcba", + "activityBarBadge.foreground": "#191724", + "badge.background": "#ebbcba", + "badge.foreground": "#191724", + "banner.background": "#1f1d2e", + "banner.foreground": "#e0def4", + "banner.iconForeground": "#908caa", + "breadcrumb.activeSelectionForeground": "#ebbcba", + "breadcrumb.background": "#191724", + "breadcrumb.focusForeground": "#908caa", + "breadcrumb.foreground": "#6e6a86", + "breadcrumbPicker.background": "#1f1d2e", + "button.background": "#ebbcba", + "button.foreground": "#191724", + "button.hoverBackground": "#ebbcbae6", + "button.secondaryBackground": "#1f1d2e", + "button.secondaryForeground": "#e0def4", + "button.secondaryHoverBackground": "#26233a", + "charts.blue": "#9ccfd8", + "charts.foreground": "#e0def4", + "charts.green": "#31748f", + "charts.lines": "#908caa", + "charts.orange": "#ebbcba", + "charts.purple": "#c4a7e7", + "charts.red": "#eb6f92", + "charts.yellow": "#f6c177", + "checkbox.background": "#1f1d2e", + "checkbox.border": "#6e6a8633", + "checkbox.foreground": "#e0def4", + "debugExceptionWidget.background": "#1f1d2e", + "debugExceptionWidget.border": "#6e6a8633", + "debugIcon.breakpointCurrentStackframeForeground": "#908caa", + "debugIcon.breakpointDisabledForeground": "#908caa", + "debugIcon.breakpointForeground": "#908caa", + "debugIcon.breakpointStackframeForeground": "#908caa", + "debugIcon.breakpointUnverifiedForeground": "#908caa", + "debugIcon.continueForeground": "#908caa", + "debugIcon.disconnectForeground": "#908caa", + "debugIcon.pauseForeground": "#908caa", + "debugIcon.restartForeground": "#908caa", + "debugIcon.startForeground": "#908caa", + "debugIcon.stepBackForeground": "#908caa", + "debugIcon.stepIntoForeground": "#908caa", + "debugIcon.stepOutForeground": "#908caa", + "debugIcon.stepOverForeground": "#908caa", + "debugIcon.stopForeground": "#eb6f92", + "debugToolBar.background": "#1f1d2e", + "debugToolBar.border": "#26233a", + "descriptionForeground": "#908caa", + "diffEditor.border": "#26233a", + "diffEditor.diagonalFill": "#6e6a8666", + "diffEditor.insertedLineBackground": "#9ccfd826", + "diffEditor.insertedTextBackground": "#9ccfd826", + "diffEditor.removedLineBackground": "#eb6f9226", + "diffEditor.removedTextBackground": "#eb6f9226", + "diffEditorOverview.insertedForeground": "#9ccfd880", + "diffEditorOverview.removedForeground": "#eb6f9280", + "dropdown.background": "#1f1d2e", + "dropdown.border": "#6e6a8633", + "dropdown.foreground": "#e0def4", + "dropdown.listBackground": "#1f1d2e", + "editor.background": "#191724", + "editor.findMatchBackground": "#6e6a8666", + "editor.findMatchHighlightBackground": "#6e6a8666", + "editor.findRangeHighlightBackground": "#6e6a8666", + "editor.findRangeHighlightBorder": "#0000", + "editor.focusedStackFrameHighlightBackground": "#6e6a8633", + "editor.foldBackground": "#1f1d2e", + "editor.foreground": "#e0def4", + "editor.hoverHighlightBackground": "#0000", + "editor.inactiveSelectionBackground": "#6e6a861a", + "editor.inlineValuesBackground": "#0000", + "editor.inlineValuesForeground": "#908caa", + "editor.lineHighlightBackground": "#6e6a861a", + "editor.lineHighlightBorder": "#0000", + "editor.linkedEditingBackground": "#1f1d2e", + "editor.rangeHighlightBackground": "#6e6a861a", + "editor.selectionBackground": "#6e6a8633", + "editor.selectionForeground": "#e0def4", + "editor.selectionHighlightBackground": "#6e6a8633", + "editor.selectionHighlightBorder": "#191724", + "editor.snippetFinalTabstopHighlightBackground": "#6e6a8633", + "editor.snippetFinalTabstopHighlightBorder": "#1f1d2e", + "editor.snippetTabstopHighlightBackground": "#6e6a8633", + "editor.snippetTabstopHighlightBorder": "#1f1d2e", + "editor.stackFrameHighlightBackground": "#6e6a8633", + "editor.symbolHighlightBackground": "#6e6a8633", + "editor.symbolHighlightBorder": "#0000", + "editor.wordHighlightBackground": "#6e6a8633", + "editor.wordHighlightBorder": "#0000", + "editor.wordHighlightStrongBackground": "#6e6a8633", + "editor.wordHighlightStrongBorder": "#6e6a8633", + "editorBracketHighlight.foreground1": "#eb6f9280", + "editorBracketHighlight.foreground2": "#31748f80", + "editorBracketHighlight.foreground3": "#f6c17780", + "editorBracketHighlight.foreground4": "#9ccfd880", + "editorBracketHighlight.foreground5": "#ebbcba80", + "editorBracketHighlight.foreground6": "#c4a7e780", + "editorBracketMatch.background": "#0000", + "editorBracketMatch.border": "#908caa", + "editorBracketPairGuide.activeBackground1": "#31748f", + "editorBracketPairGuide.activeBackground2": "#ebbcba", + "editorBracketPairGuide.activeBackground3": "#c4a7e7", + "editorBracketPairGuide.activeBackground4": "#9ccfd8", + "editorBracketPairGuide.activeBackground5": "#f6c177", + "editorBracketPairGuide.activeBackground6": "#eb6f92", + "editorBracketPairGuide.background1": "#31748f80", + "editorBracketPairGuide.background2": "#ebbcba80", + "editorBracketPairGuide.background3": "#c4a7e780", + "editorBracketPairGuide.background4": "#9ccfd880", + "editorBracketPairGuide.background5": "#f6c17780", + "editorBracketPairGuide.background6": "#eb6f9280", + "editorCodeLens.foreground": "#ebbcba", + "editorCursor.background": "#e0def4", + "editorCursor.foreground": "#6e6a86", + "editorError.border": "#0000", + "editorError.foreground": "#eb6f92", + "editorGhostText.foreground": "#908caa", + "editorGroup.border": "#0000", + "editorGroup.dropBackground": "#1f1d2e", + "editorGroup.emptyBackground": "#0000", + "editorGroup.focusedEmptyBorder": "#0000", + "editorGroupHeader.noTabsBackground": "#0000", + "editorGroupHeader.tabsBackground": "#0000", + "editorGroupHeader.tabsBorder": "#0000", + "editorGutter.addedBackground": "#9ccfd8", + "editorGutter.background": "#191724", + "editorGutter.commentRangeForeground": "#908caa", + "editorGutter.deletedBackground": "#eb6f92", + "editorGutter.foldingControlForeground": "#c4a7e7", + "editorGutter.modifiedBackground": "#ebbcba", + "editorHint.border": "#0000", + "editorHint.foreground": "#908caa", + "editorHoverWidget.background": "#1f1d2e", + "editorHoverWidget.border": "#6e6a8680", + "editorHoverWidget.foreground": "#908caa", + "editorHoverWidget.highlightForeground": "#e0def4", + "editorHoverWidget.statusBarBackground": "#0000", + "editorIndentGuide.activeBackground": "#6e6a86", + "editorIndentGuide.background": "#6e6a8666", + "editorInfo.border": "#26233a", + "editorInfo.foreground": "#9ccfd8", + "editorInlayHint.background": "#26233a", + "editorInlayHint.foreground": "#908caa", + "editorInlayHint.parameterBackground": "#26233a", + "editorInlayHint.parameterForeground": "#c4a7e7", + "editorInlayHint.typeBackground": "#26233a", + "editorInlayHint.typeForeground": "#9ccfd8", + "editorLightBulb.foreground": "#31748f", + "editorLightBulbAutoFix.foreground": "#ebbcba", + "editorLineNumber.activeForeground": "#e0def4", + "editorLineNumber.foreground": "#908caa", + "editorLink.activeForeground": "#ebbcba", + "editorMarkerNavigation.background": "#1f1d2e", + "editorMarkerNavigationError.background": "#1f1d2e", + "editorMarkerNavigationInfo.background": "#1f1d2e", + "editorMarkerNavigationWarning.background": "#1f1d2e", + "editorOverviewRuler.addedForeground": "#9ccfd880", + "editorOverviewRuler.background": "#191724", + "editorOverviewRuler.border": "#6e6a8666", + "editorOverviewRuler.bracketMatchForeground": "#908caa", + "editorOverviewRuler.commonContentForeground": "#6e6a861a", + "editorOverviewRuler.currentContentForeground": "#6e6a8633", + "editorOverviewRuler.deletedForeground": "#eb6f9280", + "editorOverviewRuler.errorForeground": "#eb6f9280", + "editorOverviewRuler.findMatchForeground": "#6e6a8666", + "editorOverviewRuler.incomingContentForeground": "#c4a7e780", + "editorOverviewRuler.infoForeground": "#9ccfd880", + "editorOverviewRuler.modifiedForeground": "#ebbcba80", + "editorOverviewRuler.rangeHighlightForeground": "#6e6a8666", + "editorOverviewRuler.selectionHighlightForeground": "#6e6a8666", + "editorOverviewRuler.warningForeground": "#f6c17780", + "editorOverviewRuler.wordHighlightForeground": "#6e6a8633", + "editorOverviewRuler.wordHighlightStrongForeground": "#6e6a8666", + "editorPane.background": "#0000", + "editorRuler.foreground": "#6e6a8666", + "editorSuggestWidget.background": "#1f1d2e", + "editorSuggestWidget.border": "#0000", + "editorSuggestWidget.focusHighlightForeground": "#ebbcba", + "editorSuggestWidget.foreground": "#908caa", + "editorSuggestWidget.highlightForeground": "#ebbcba", + "editorSuggestWidget.selectedBackground": "#6e6a8633", + "editorSuggestWidget.selectedForeground": "#e0def4", + "editorSuggestWidget.selectedIconForeground": "#e0def4", + "editorUnnecessaryCode.border": "#0000", + "editorUnnecessaryCode.opacity": "#e0def480", + "editorWarning.border": "#0000", + "editorWarning.foreground": "#f6c177", + "editorWhitespace.foreground": "#6e6a86", + "editorWidget.background": "#1f1d2e", + "editorWidget.border": "#26233a", + "editorWidget.foreground": "#908caa", + "editorWidget.resizeBorder": "#6e6a86", + "errorForeground": "#eb6f92", + "extensionBadge.remoteBackground": "#c4a7e7", + "extensionBadge.remoteForeground": "#191724", + "extensionButton.prominentBackground": "#ebbcba", + "extensionButton.prominentForeground": "#191724", + "extensionButton.prominentHoverBackground": "#ebbcbae6", + "extensionIcon.preReleaseForeground": "#31748f", + "extensionIcon.starForeground": "#ebbcba", + "extensionIcon.verifiedForeground": "#c4a7e7", + "focusBorder": "#6e6a8633", + "foreground": "#e0def4", + "gitDecoration.addedResourceForeground": "#9ccfd8", + "gitDecoration.conflictingResourceForeground": "#eb6f92", + "gitDecoration.deletedResourceForeground": "#908caa", + "gitDecoration.ignoredResourceForeground": "#6e6a86", + "gitDecoration.modifiedResourceForeground": "#ebbcba", + "gitDecoration.renamedResourceForeground": "#31748f", + "gitDecoration.stageDeletedResourceForeground": "#eb6f92", + "gitDecoration.stageModifiedResourceForeground": "#c4a7e7", + "gitDecoration.submoduleResourceForeground": "#f6c177", + "gitDecoration.untrackedResourceForeground": "#f6c177", + "icon.foreground": "#908caa", + "input.background": "#26233a80", + "input.border": "#6e6a8633", + "input.foreground": "#e0def4", + "input.placeholderForeground": "#908caa", + "inputOption.activeBackground": "#ebbcba26", + "inputOption.activeForeground": "#ebbcba", + "inputValidation.errorBackground": "#1f1d2e", + "inputValidation.errorBorder": "#6e6a8666", + "inputValidation.errorForeground": "#eb6f92", + "inputValidation.infoBackground": "#1f1d2e", + "inputValidation.infoBorder": "#6e6a8666", + "inputValidation.infoForeground": "#9ccfd8", + "inputValidation.warningBackground": "#1f1d2e", + "inputValidation.warningBorder": "#6e6a8666", + "inputValidation.warningForeground": "#9ccfd880", + "keybindingLabel.background": "#26233a", + "keybindingLabel.border": "#6e6a8666", + "keybindingLabel.bottomBorder": "#6e6a8666", + "keybindingLabel.foreground": "#c4a7e7", + "keybindingTable.headerBackground": "#26233a", + "keybindingTable.rowsBackground": "#1f1d2e", + "list.activeSelectionBackground": "#6e6a8633", + "list.activeSelectionForeground": "#e0def4", + "list.deemphasizedForeground": "#908caa", + "list.dropBackground": "#1f1d2e", + "list.errorForeground": "#eb6f92", + "list.filterMatchBackground": "#1f1d2e", + "list.filterMatchBorder": "#ebbcba", + "list.focusBackground": "#6e6a8666", + "list.focusForeground": "#e0def4", + "list.focusOutline": "#6e6a8633", + "list.highlightForeground": "#ebbcba", + "list.hoverBackground": "#6e6a861a", + "list.hoverForeground": "#e0def4", + "list.inactiveFocusBackground": "#6e6a861a", + "list.inactiveSelectionBackground": "#1f1d2e", + "list.inactiveSelectionForeground": "#e0def4", + "list.invalidItemForeground": "#eb6f92", + "list.warningForeground": "#f6c177", + "listFilterWidget.background": "#1f1d2e", + "listFilterWidget.noMatchesOutline": "#eb6f92", + "listFilterWidget.outline": "#26233a", + "menu.background": "#1f1d2e", + "menu.border": "#6e6a861a", + "menu.foreground": "#e0def4", + "menu.selectionBackground": "#6e6a8633", + "menu.selectionBorder": "#26233a", + "menu.selectionForeground": "#e0def4", + "menu.separatorBackground": "#6e6a8666", + "menubar.selectionBackground": "#6e6a8633", + "menubar.selectionBorder": "#6e6a861a", + "menubar.selectionForeground": "#e0def4", + "merge.border": "#26233a", + "merge.commonContentBackground": "#6e6a8633", + "merge.commonHeaderBackground": "#6e6a8633", + "merge.currentContentBackground": "#f6c17780", + "merge.currentHeaderBackground": "#f6c17780", + "merge.incomingContentBackground": "#9ccfd880", + "merge.incomingHeaderBackground": "#9ccfd880", + "minimap.background": "#1f1d2e", + "minimap.errorHighlight": "#eb6f9280", + "minimap.findMatchHighlight": "#6e6a8633", + "minimap.selectionHighlight": "#6e6a8633", + "minimap.warningHighlight": "#f6c17780", + "minimapGutter.addedBackground": "#9ccfd8", + "minimapGutter.deletedBackground": "#eb6f92", + "minimapGutter.modifiedBackground": "#ebbcba", + "minimapSlider.activeBackground": "#6e6a8666", + "minimapSlider.background": "#6e6a8633", + "minimapSlider.hoverBackground": "#6e6a8633", + "notebook.cellBorderColor": "#9ccfd880", + "notebook.cellEditorBackground": "#1f1d2e", + "notebook.cellHoverBackground": "#26233a80", + "notebook.focusedCellBackground": "#6e6a861a", + "notebook.focusedCellBorder": "#9ccfd8", + "notebook.outputContainerBackgroundColor": "#6e6a861a", + "notificationCenter.border": "#6e6a8633", + "notificationCenterHeader.background": "#1f1d2e", + "notificationCenterHeader.foreground": "#908caa", + "notificationLink.foreground": "#c4a7e7", + "notifications.background": "#1f1d2e", + "notifications.border": "#6e6a8633", + "notifications.foreground": "#e0def4", + "notificationsErrorIcon.foreground": "#eb6f92", + "notificationsInfoIcon.foreground": "#9ccfd8", + "notificationsWarningIcon.foreground": "#f6c177", + "notificationToast.border": "#6e6a8633", + "panel.background": "#1f1d2e", + "panel.border": "#0000", + "panel.dropBorder": "#26233a", + "panelInput.border": "#1f1d2e", + "panelSection.dropBackground": "#6e6a8633", + "panelSectionHeader.background": "#1f1d2e", + "panelSectionHeader.foreground": "#e0def4", + "panelTitle.activeBorder": "#6e6a8666", + "panelTitle.activeForeground": "#e0def4", + "panelTitle.inactiveForeground": "#908caa", + "peekView.border": "#26233a", + "peekViewEditor.background": "#1f1d2e", + "peekViewEditor.matchHighlightBackground": "#6e6a8666", + "peekViewResult.background": "#1f1d2e", + "peekViewResult.fileForeground": "#908caa", + "peekViewResult.lineForeground": "#908caa", + "peekViewResult.matchHighlightBackground": "#6e6a8666", + "peekViewResult.selectionBackground": "#6e6a8633", + "peekViewResult.selectionForeground": "#e0def4", + "peekViewTitle.background": "#26233a", + "peekViewTitleDescription.foreground": "#908caa", + "pickerGroup.border": "#6e6a8666", + "pickerGroup.foreground": "#c4a7e7", + "ports.iconRunningProcessForeground": "#ebbcba", + "problemsErrorIcon.foreground": "#eb6f92", + "problemsInfoIcon.foreground": "#9ccfd8", + "problemsWarningIcon.foreground": "#f6c177", + "progressBar.background": "#ebbcba", + "quickInput.background": "#1f1d2e", + "quickInput.foreground": "#908caa", + "quickInputList.focusBackground": "#6e6a8633", + "quickInputList.focusForeground": "#e0def4", + "quickInputList.focusIconForeground": "#e0def4", + "scrollbar.shadow": "#1f1d2e4d", + "scrollbarSlider.activeBackground": "#31748f80", + "scrollbarSlider.background": "#6e6a8633", + "scrollbarSlider.hoverBackground": "#6e6a8666", + "searchEditor.findMatchBackground": "#6e6a8633", + "selection.background": "#6e6a8666", + "settings.focusedRowBackground": "#1f1d2e", + "settings.headerForeground": "#e0def4", + "settings.modifiedItemIndicator": "#ebbcba", + "settings.focusedRowBorder": "#6e6a8633", + "settings.rowHoverBackground": "#1f1d2e", + "sideBar.background": "#191724", + "sideBar.dropBackground": "#1f1d2e", + "sideBar.foreground": "#908caa", + "sideBarSectionHeader.background": "#0000", + "sideBarSectionHeader.border": "#6e6a8633", + "statusBar.background": "#191724", + "statusBar.debuggingBackground": "#c4a7e7", + "statusBar.debuggingForeground": "#191724", + "statusBar.foreground": "#908caa", + "statusBar.noFolderBackground": "#191724", + "statusBar.noFolderForeground": "#908caa", + "statusBarItem.activeBackground": "#6e6a8666", + "statusBarItem.hoverBackground": "#6e6a8633", + "statusBarItem.prominentBackground": "#26233a", + "statusBarItem.prominentForeground": "#e0def4", + "statusBarItem.prominentHoverBackground": "#6e6a8633", + "statusBarItem.remoteBackground": "#191724", + "statusBarItem.remoteForeground": "#f6c177", + "statusBarItem.errorBackground": "#191724", + "statusBarItem.errorForeground": "#eb6f92", + "symbolIcon.arrayForeground": "#908caa", + "symbolIcon.classForeground": "#908caa", + "symbolIcon.colorForeground": "#908caa", + "symbolIcon.constantForeground": "#908caa", + "symbolIcon.constructorForeground": "#908caa", + "symbolIcon.enumeratorForeground": "#908caa", + "symbolIcon.enumeratorMemberForeground": "#908caa", + "symbolIcon.eventForeground": "#908caa", + "symbolIcon.fieldForeground": "#908caa", + "symbolIcon.fileForeground": "#908caa", + "symbolIcon.folderForeground": "#908caa", + "symbolIcon.functionForeground": "#908caa", + "symbolIcon.interfaceForeground": "#908caa", + "symbolIcon.keyForeground": "#908caa", + "symbolIcon.keywordForeground": "#908caa", + "symbolIcon.methodForeground": "#908caa", + "symbolIcon.moduleForeground": "#908caa", + "symbolIcon.namespaceForeground": "#908caa", + "symbolIcon.nullForeground": "#908caa", + "symbolIcon.numberForeground": "#908caa", + "symbolIcon.objectForeground": "#908caa", + "symbolIcon.operatorForeground": "#908caa", + "symbolIcon.packageForeground": "#908caa", + "symbolIcon.propertyForeground": "#908caa", + "symbolIcon.referenceForeground": "#908caa", + "symbolIcon.snippetForeground": "#908caa", + "symbolIcon.stringForeground": "#908caa", + "symbolIcon.structForeground": "#908caa", + "symbolIcon.textForeground": "#908caa", + "symbolIcon.typeParameterForeground": "#908caa", + "symbolIcon.unitForeground": "#908caa", + "symbolIcon.variableForeground": "#908caa", + "tab.activeBackground": "#6e6a861a", + "tab.activeForeground": "#e0def4", + "tab.activeModifiedBorder": "#9ccfd8", + "tab.border": "#0000", + "tab.hoverBackground": "#6e6a8633", + "tab.inactiveBackground": "#0000", + "tab.inactiveForeground": "#908caa", + "tab.inactiveModifiedBorder": "#9ccfd880", + "tab.lastPinnedBorder": "#6e6a86", + "tab.unfocusedActiveBackground": "#0000", + "tab.unfocusedHoverBackground": "#0000", + "tab.unfocusedInactiveBackground": "#0000", + "tab.unfocusedInactiveModifiedBorder": "#9ccfd880", + "terminal.ansiBlack": "#26233a", + "terminal.ansiBlue": "#9ccfd8", + "terminal.ansiBrightBlack": "#908caa", + "terminal.ansiBrightBlue": "#9ccfd8", + "terminal.ansiBrightCyan": "#ebbcba", + "terminal.ansiBrightGreen": "#31748f", + "terminal.ansiBrightMagenta": "#c4a7e7", + "terminal.ansiBrightRed": "#eb6f92", + "terminal.ansiBrightWhite": "#e0def4", + "terminal.ansiBrightYellow": "#f6c177", + "terminal.ansiCyan": "#ebbcba", + "terminal.ansiGreen": "#31748f", + "terminal.ansiMagenta": "#c4a7e7", + "terminal.ansiRed": "#eb6f92", + "terminal.ansiWhite": "#e0def4", + "terminal.ansiYellow": "#f6c177", + "terminal.dropBackground": "#6e6a8633", + "terminal.foreground": "#e0def4", + "terminal.selectionBackground": "#6e6a8633", + "terminal.tab.activeBorder": "#e0def4", + "terminalCursor.background": "#e0def4", + "terminalCursor.foreground": "#6e6a86", + "textBlockQuote.background": "#1f1d2e", + "textBlockQuote.border": "#6e6a8633", + "textCodeBlock.background": "#1f1d2e", + "textLink.activeForeground": "#c4a7e7e6", + "textLink.foreground": "#c4a7e7", + "textPreformat.foreground": "#f6c177", + "textSeparator.foreground": "#908caa", + "titleBar.activeBackground": "#191724", + "titleBar.activeForeground": "#908caa", + "titleBar.inactiveBackground": "#1f1d2e", + "titleBar.inactiveForeground": "#908caa", + "toolbar.activeBackground": "#6e6a8666", + "toolbar.hoverBackground": "#6e6a8633", + "tree.indentGuidesStroke": "#908caa", + "walkThrough.embeddedEditorBackground": "#191724", + "welcomePage.background": "#191724", + "welcomePage.buttonBackground": "#1f1d2e", + "welcomePage.buttonHoverBackground": "#26233a", + "widget.shadow": "#1f1d2e4d", + "window.activeBorder": "#1f1d2e", + "window.inactiveBorder": "#1f1d2e" + }, + "tokenColors": [ + { + "scope": ["comment"], + "settings": { + "foreground": "#6e6a86", + "fontStyle": "italic" + } + }, + { + "scope": ["constant"], + "settings": { + "foreground": "#31748f" + } + }, + { + "scope": ["constant.numeric", "constant.language"], + "settings": { + "foreground": "#ebbcba" + } + }, + { + "scope": ["entity.name"], + "settings": { + "foreground": "#ebbcba" + } + }, + { + "scope": [ + "entity.name.section", + "entity.name.tag", + "entity.name.namespace", + "entity.name.type" + ], + "settings": { + "foreground": "#9ccfd8" + } + }, + { + "scope": ["entity.other.attribute-name", "entity.other.inherited-class"], + "settings": { + "foreground": "#c4a7e7", + "fontStyle": "italic" + } + }, + { + "scope": ["invalid"], + "settings": { + "foreground": "#eb6f92" + } + }, + { + "scope": ["invalid.deprecated"], + "settings": { + "foreground": "#908caa" + } + }, + { + "scope": ["keyword"], + "settings": { + "foreground": "#31748f" + } + }, + { + "scope": ["markup.inserted.diff"], + "settings": { + "foreground": "#9ccfd8" + } + }, + { + "scope": ["markup.deleted.diff"], + "settings": { + "foreground": "#eb6f92" + } + }, + { + "scope": "markup.heading", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "markup.bold.markdown", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "markup.italic.markdown", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": ["meta.diff.range"], + "settings": { + "foreground": "#c4a7e7" + } + }, + { + "scope": ["meta.tag", "meta.brace"], + "settings": { + "foreground": "#e0def4" + } + }, + { + "scope": ["meta.import", "meta.export"], + "settings": { + "foreground": "#31748f" + } + }, + { + "scope": "meta.directive.vue", + "settings": { + "foreground": "#c4a7e7", + "fontStyle": "italic" + } + }, + { + "scope": "meta.property-name.css", + "settings": { + "foreground": "#9ccfd8" + } + }, + { + "scope": "meta.property-value.css", + "settings": { + "foreground": "#f6c177" + } + }, + { + "scope": "meta.tag.other.html", + "settings": { + "foreground": "#908caa" + } + }, + { + "scope": ["punctuation"], + "settings": { + "foreground": "#908caa" + } + }, + { + "scope": ["punctuation.accessor"], + "settings": { + "foreground": "#31748f" + } + }, + { + "scope": ["punctuation.definition.string"], + "settings": { + "foreground": "#f6c177" + } + }, + { + "scope": ["punctuation.definition.tag"], + "settings": { + "foreground": "#6e6a86" + } + }, + { + "scope": ["storage.type", "storage.modifier"], + "settings": { + "foreground": "#31748f" + } + }, + { + "scope": ["string"], + "settings": { + "foreground": "#f6c177" + } + }, + { + "scope": ["support"], + "settings": { + "foreground": "#9ccfd8" + } + }, + { + "scope": ["support.constant"], + "settings": { + "foreground": "#f6c177" + } + }, + { + "scope": ["support.function"], + "settings": { + "foreground": "#eb6f92", + "fontStyle": "italic" + } + }, + { + "scope": ["variable"], + "settings": { + "foreground": "#ebbcba", + "fontStyle": "italic" + } + }, + { + "scope": [ + "variable.other", + "variable.language", + "variable.function", + "variable.argument" + ], + "settings": { + "foreground": "#e0def4" + } + }, + { + "scope": ["variable.parameter"], + "settings": { + "foreground": "#c4a7e7" + } + } + ] } diff --git a/crates/theme2/src/themes/rose_pine.rs b/crates/theme2/src/themes/rose_pine.rs index 460903e2e5c2e05e514df1291a83fd5f5b04a240..2e5cf835ab930b5bb4b49f8cf31005aa10d17954 100644 --- a/crates/theme2/src/themes/rose_pine.rs +++ b/crates/theme2/src/themes/rose_pine.rs @@ -19,12 +19,12 @@ pub fn rose_pine() -> UserThemeFamily { appearance: Appearance::Dark, styles: UserThemeStylesRefinement { colors: ThemeColorsRefinement { - border: Some(rgba(0x000000ff).into()), - border_variant: Some(rgba(0x000000ff).into()), + border: Some(rgba(0x00000000).into()), + border_variant: Some(rgba(0x00000000).into()), border_focused: Some(rgba(0x6e6a8633).into()), - border_selected: Some(rgba(0x000000ff).into()), - border_transparent: Some(rgba(0x000000ff).into()), - border_disabled: Some(rgba(0x000000ff).into()), + border_selected: Some(rgba(0x00000000).into()), + border_transparent: Some(rgba(0x00000000).into()), + border_disabled: Some(rgba(0x00000000).into()), elevated_surface_background: Some(rgba(0x1f1d2eff).into()), surface_background: Some(rgba(0x1f1d2eff).into()), background: Some(rgba(0x191724ff).into()), @@ -38,7 +38,7 @@ pub fn rose_pine() -> UserThemeFamily { title_bar_background: Some(rgba(0x191724ff).into()), toolbar_background: Some(rgba(0x1f1d2eff).into()), tab_bar_background: Some(rgba(0x1f1d2eff).into()), - tab_inactive_background: Some(rgba(0x000000ff).into()), + tab_inactive_background: Some(rgba(0x00000000).into()), tab_active_background: Some(rgba(0x6e6a861a).into()), editor_background: Some(rgba(0x191724ff).into()), editor_gutter_background: Some(rgba(0x191724ff).into()), @@ -266,12 +266,12 @@ pub fn rose_pine() -> UserThemeFamily { appearance: Appearance::Dark, styles: UserThemeStylesRefinement { colors: ThemeColorsRefinement { - border: Some(rgba(0x000000ff).into()), - border_variant: Some(rgba(0x000000ff).into()), + border: Some(rgba(0x00000000).into()), + border_variant: Some(rgba(0x00000000).into()), border_focused: Some(rgba(0x817c9c26).into()), - border_selected: Some(rgba(0x000000ff).into()), - border_transparent: Some(rgba(0x000000ff).into()), - border_disabled: Some(rgba(0x000000ff).into()), + border_selected: Some(rgba(0x00000000).into()), + border_transparent: Some(rgba(0x00000000).into()), + border_disabled: Some(rgba(0x00000000).into()), elevated_surface_background: Some(rgba(0x2a273fff).into()), surface_background: Some(rgba(0x2a273fff).into()), background: Some(rgba(0x232136ff).into()), @@ -285,7 +285,7 @@ pub fn rose_pine() -> UserThemeFamily { title_bar_background: Some(rgba(0x232136ff).into()), toolbar_background: Some(rgba(0x2a273fff).into()), tab_bar_background: Some(rgba(0x2a273fff).into()), - tab_inactive_background: Some(rgba(0x000000ff).into()), + tab_inactive_background: Some(rgba(0x00000000).into()), tab_active_background: Some(rgba(0x817c9c14).into()), editor_background: Some(rgba(0x232136ff).into()), editor_gutter_background: Some(rgba(0x232136ff).into()), @@ -513,12 +513,12 @@ pub fn rose_pine() -> UserThemeFamily { appearance: Appearance::Light, styles: UserThemeStylesRefinement { colors: ThemeColorsRefinement { - border: Some(rgba(0x000000ff).into()), - border_variant: Some(rgba(0x000000ff).into()), + border: Some(rgba(0x00000000).into()), + border_variant: Some(rgba(0x00000000).into()), border_focused: Some(rgba(0x6e6a8614).into()), - border_selected: Some(rgba(0x000000ff).into()), - border_transparent: Some(rgba(0x000000ff).into()), - border_disabled: Some(rgba(0x000000ff).into()), + border_selected: Some(rgba(0x00000000).into()), + border_transparent: Some(rgba(0x00000000).into()), + border_disabled: Some(rgba(0x00000000).into()), elevated_surface_background: Some(rgba(0xfffaf3ff).into()), surface_background: Some(rgba(0xfffaf3ff).into()), background: Some(rgba(0xfaf4edff).into()), @@ -532,7 +532,7 @@ pub fn rose_pine() -> UserThemeFamily { title_bar_background: Some(rgba(0xfaf4edff).into()), toolbar_background: Some(rgba(0xfffaf3ff).into()), tab_bar_background: Some(rgba(0xfffaf3ff).into()), - tab_inactive_background: Some(rgba(0x000000ff).into()), + tab_inactive_background: Some(rgba(0x00000000).into()), tab_active_background: Some(rgba(0x6e6a860d).into()), editor_background: Some(rgba(0xfaf4edff).into()), editor_gutter_background: Some(rgba(0xfaf4edff).into()), From a283cbaf8f5a3a1d1d2ac881c259d82bbc6e9bc1 Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Fri, 8 Dec 2023 17:59:52 +0100 Subject: [PATCH 035/115] Re-enable navigation with mouse navigation buttons --- crates/workspace2/src/pane.rs | 349 +++++++++++++++++----------------- 1 file changed, 170 insertions(+), 179 deletions(-) diff --git a/crates/workspace2/src/pane.rs b/crates/workspace2/src/pane.rs index 3b1c00994fa01a98d6ce3c3866515195e0d94aba..713fa711adbe211d56f90f1c3569f0bddfa40839 100644 --- a/crates/workspace2/src/pane.rs +++ b/crates/workspace2/src/pane.rs @@ -9,8 +9,8 @@ use collections::{HashMap, HashSet, VecDeque}; use gpui::{ actions, overlay, prelude::*, rems, Action, AnchorCorner, AnyWeakView, AppContext, AsyncWindowContext, DismissEvent, Div, EntityId, EventEmitter, FocusHandle, Focusable, - FocusableView, Model, Pixels, Point, PromptLevel, Render, Task, View, ViewContext, - VisualContext, WeakView, WindowContext, + FocusableView, Model, MouseButton, NavigationDirection, Pixels, Point, PromptLevel, Render, + Task, View, ViewContext, VisualContext, WeakView, WindowContext, }; use parking_lot::Mutex; use project::{Project, ProjectEntryId, ProjectPath}; @@ -2139,183 +2139,174 @@ impl Render for Pane { .justify_center() .child(Label::new("Open a file or project to get started.").color(Color::Muted)) }) - - // enum MouseNavigationHandler {} - - // MouseEventHandler::new::(0, cx, |_, cx| { - // let active_item_index = self.active_item_index; - - // if let Some(active_item) = self.active_item() { - // Flex::column() - // .with_child({ - // let theme = theme::current(cx).clone(); - - // let mut stack = Stack::new(); - - // enum TabBarEventHandler {} - // stack.add_child( - // MouseEventHandler::new::(0, cx, |_, _| { - // Empty::new() - // .contained() - // .with_style(theme.workspace.tab_bar.container) - // }) - // .on_down( - // MouseButton::Left, - // move |_, this, cx| { - // this.activate_item(active_item_index, true, true, cx); - // }, - // ), - // ); - // let tooltip_style = theme.tooltip.clone(); - // let tab_bar_theme = theme.workspace.tab_bar.clone(); - - // let nav_button_height = tab_bar_theme.height; - // let button_style = tab_bar_theme.nav_button; - // let border_for_nav_buttons = tab_bar_theme - // .tab_style(false, false) - // .container - // .border - // .clone(); - - // let mut tab_row = Flex::row() - // .with_child(nav_button( - // "icons/arrow_left.svg", - // button_style.clone(), - // nav_button_height, - // tooltip_style.clone(), - // self.can_navigate_backward(), - // { - // move |pane, cx| { - // if let Some(workspace) = pane.workspace.upgrade(cx) { - // let pane = cx.weak_handle(); - // cx.window_context().defer(move |cx| { - // workspace.update(cx, |workspace, cx| { - // workspace - // .go_back(pane, cx) - // .detach_and_log_err(cx) - // }) - // }) - // } - // } - // }, - // super::GoBack, - // "Go Back", - // cx, - // )) - // .with_child( - // nav_button( - // "icons/arrow_right.svg", - // button_style.clone(), - // nav_button_height, - // tooltip_style, - // self.can_navigate_forward(), - // { - // move |pane, cx| { - // if let Some(workspace) = pane.workspace.upgrade(cx) { - // let pane = cx.weak_handle(); - // cx.window_context().defer(move |cx| { - // workspace.update(cx, |workspace, cx| { - // workspace - // .go_forward(pane, cx) - // .detach_and_log_err(cx) - // }) - // }) - // } - // } - // }, - // super::GoForward, - // "Go Forward", - // cx, - // ) - // .contained() - // .with_border(border_for_nav_buttons), - // ) - // .with_child(self.render_tabs(cx).flex(1., true).into_any_named("tabs")); - - // if self.has_focus { - // let render_tab_bar_buttons = self.render_tab_bar_buttons.clone(); - // tab_row.add_child( - // (render_tab_bar_buttons)(self, cx) - // .contained() - // .with_style(theme.workspace.tab_bar.pane_button_container) - // .flex(1., false) - // .into_any(), - // ) - // } - - // stack.add_child(tab_row); - // stack - // .constrained() - // .with_height(theme.workspace.tab_bar.height) - // .flex(1., false) - // .into_any_named("tab bar") - // }) - // .with_child({ - // enum PaneContentTabDropTarget {} - // dragged_item_receiver::( - // self, - // 0, - // self.active_item_index + 1, - // !self.can_split, - // if self.can_split { Some(100.) } else { None }, - // cx, - // { - // let toolbar = self.toolbar.clone(); - // let toolbar_hidden = toolbar.read(cx).hidden(); - // move |_, cx| { - // Flex::column() - // .with_children( - // (!toolbar_hidden) - // .then(|| ChildView::new(&toolbar, cx).expanded()), - // ) - // .with_child( - // ChildView::new(active_item.as_any(), cx).flex(1., true), - // ) - // } - // }, - // ) - // .flex(1., true) - // }) - // .with_child(ChildView::new(&self.tab_context_menu, cx)) - // .into_any() - // } else { - // enum EmptyPane {} - // let theme = theme::current(cx).clone(); - - // dragged_item_receiver::(self, 0, 0, false, None, cx, |_, cx| { - // self.render_blank_pane(&theme, cx) - // }) - // .on_down(MouseButton::Left, |_, _, cx| { - // cx.focus_parent(); - // }) - // .into_any() - // } - // }) - // .on_down( - // MouseButton::Navigate(NavigationDirection::Back), - // move |_, pane, cx| { - // if let Some(workspace) = pane.workspace.upgrade(cx) { - // let pane = cx.weak_handle(); - // cx.window_context().defer(move |cx| { - // workspace.update(cx, |workspace, cx| { - // workspace.go_back(pane, cx).detach_and_log_err(cx) - // }) - // }) - // } - // }, - // ) - // .on_down(MouseButton::Navigate(NavigationDirection::Forward), { - // move |_, pane, cx| { - // if let Some(workspace) = pane.workspace.upgrade(cx) { - // let pane = cx.weak_handle(); - // cx.window_context().defer(move |cx| { - // workspace.update(cx, |workspace, cx| { - // workspace.go_forward(pane, cx).detach_and_log_err(cx) - // }) - // }) - // } - // } - // }) + // enum MouseNavigationHandler {} + // MouseEventHandler::new::(0, cx, |_, cx| { + // let active_item_index = self.active_item_index; + // if let Some(active_item) = self.active_item() { + // Flex::column() + // .with_child({ + // let theme = theme::current(cx).clone(); + // let mut stack = Stack::new(); + // enum TabBarEventHandler {} + // stack.add_child( + // MouseEventHandler::new::(0, cx, |_, _| { + // Empty::new() + // .contained() + // .with_style(theme.workspace.tab_bar.container) + // }) + // .on_down( + // MouseButton::Left, + // move |_, this, cx| { + // this.activate_item(active_item_index, true, true, cx); + // }, + // ), + // ); + // let tooltip_style = theme.tooltip.clone(); + // let tab_bar_theme = theme.workspace.tab_bar.clone(); + // let nav_button_height = tab_bar_theme.height; + // let button_style = tab_bar_theme.nav_button; + // let border_for_nav_buttons = tab_bar_theme + // .tab_style(false, false) + // .container + // .border + // .clone(); + // let mut tab_row = Flex::row() + // .with_child(nav_button( + // "icons/arrow_left.svg", + // button_style.clone(), + // nav_button_height, + // tooltip_style.clone(), + // self.can_navigate_backward(), + // { + // move |pane, cx| { + // if let Some(workspace) = pane.workspace.upgrade(cx) { + // let pane = cx.weak_handle(); + // cx.window_context().defer(move |cx| { + // workspace.update(cx, |workspace, cx| { + // workspace + // .go_back(pane, cx) + // .detach_and_log_err(cx) + // }) + // }) + // } + // } + // }, + // super::GoBack, + // "Go Back", + // cx, + // )) + // .with_child( + // nav_button( + // "icons/arrow_right.svg", + // button_style.clone(), + // nav_button_height, + // tooltip_style, + // self.can_navigate_forward(), + // { + // move |pane, cx| { + // if let Some(workspace) = pane.workspace.upgrade(cx) { + // let pane = cx.weak_handle(); + // cx.window_context().defer(move |cx| { + // workspace.update(cx, |workspace, cx| { + // workspace + // .go_forward(pane, cx) + // .detach_and_log_err(cx) + // }) + // }) + // } + // } + // }, + // super::GoForward, + // "Go Forward", + // cx, + // ) + // .contained() + // .with_border(border_for_nav_buttons), + // ) + // .with_child(self.render_tabs(cx).flex(1., true).into_any_named("tabs")); + // if self.has_focus { + // let render_tab_bar_buttons = self.render_tab_bar_buttons.clone(); + // tab_row.add_child( + // (render_tab_bar_buttons)(self, cx) + // .contained() + // .with_style(theme.workspace.tab_bar.pane_button_container) + // .flex(1., false) + // .into_any(), + // ) + // } + // stack.add_child(tab_row); + // stack + // .constrained() + // .with_height(theme.workspace.tab_bar.height) + // .flex(1., false) + // .into_any_named("tab bar") + // }) + // .with_child({ + // enum PaneContentTabDropTarget {} + // dragged_item_receiver::( + // self, + // 0, + // self.active_item_index + 1, + // !self.can_split, + // if self.can_split { Some(100.) } else { None }, + // cx, + // { + // let toolbar = self.toolbar.clone(); + // let toolbar_hidden = toolbar.read(cx).hidden(); + // move |_, cx| { + // Flex::column() + // .with_children( + // (!toolbar_hidden) + // .then(|| ChildView::new(&toolbar, cx).expanded()), + // ) + // .with_child( + // ChildView::new(active_item.as_any(), cx).flex(1., true), + // ) + // } + // }, + // ) + // .flex(1., true) + // }) + // .with_child(ChildView::new(&self.tab_context_menu, cx)) + // .into_any() + // } else { + // enum EmptyPane {} + // let theme = theme::current(cx).clone(); + // dragged_item_receiver::(self, 0, 0, false, None, cx, |_, cx| { + // self.render_blank_pane(&theme, cx) + // }) + // .on_down(MouseButton::Left, |_, _, cx| { + // cx.focus_parent(); + // }) + // .into_any() + // } + // }) + .on_mouse_down( + MouseButton::Navigate(NavigationDirection::Back), + cx.listener(|pane, _, cx| { + if let Some(workspace) = pane.workspace.upgrade() { + let pane = cx.view().downgrade(); + cx.window_context().defer(move |cx| { + workspace.update(cx, |workspace, cx| { + workspace.go_back(pane, cx).detach_and_log_err(cx) + }) + }) + } + }), + ) + .on_mouse_down( + MouseButton::Navigate(NavigationDirection::Forward), + cx.listener(|pane, _, cx| { + if let Some(workspace) = pane.workspace.upgrade() { + let pane = cx.view().downgrade(); + cx.window_context().defer(move |cx| { + workspace.update(cx, |workspace, cx| { + workspace.go_forward(pane, cx).detach_and_log_err(cx) + }) + }) + } + }), + ) // .into_any_named("pane") } From 970c7b89877fb12ca571fa1514e75bf7f29f417a Mon Sep 17 00:00:00 2001 From: Julia Date: Fri, 8 Dec 2023 12:02:31 -0500 Subject: [PATCH 036/115] zed2: Properly position terminal context menu & hide on dismiss --- crates/terminal_view2/src/terminal_view.rs | 42 ++++++++++++++-------- 1 file changed, 27 insertions(+), 15 deletions(-) diff --git a/crates/terminal_view2/src/terminal_view.rs b/crates/terminal_view2/src/terminal_view.rs index 5a81b494b300a09a947b4012f2e7460859df996c..c4f1512e8cc22df8175eb1cf6af3d73ae2846f7c 100644 --- a/crates/terminal_view2/src/terminal_view.rs +++ b/crates/terminal_view2/src/terminal_view.rs @@ -9,9 +9,10 @@ pub mod terminal_panel; // use crate::terminal_element::TerminalElement; use editor::{scroll::autoscroll::Autoscroll, Editor}; use gpui::{ - div, Action, AnyElement, AppContext, Div, EventEmitter, FocusEvent, FocusHandle, Focusable, - FocusableElement, FocusableView, KeyContext, KeyDownEvent, Keystroke, Model, MouseButton, - MouseDownEvent, Pixels, Render, Subscription, Task, View, VisualContext, WeakView, + div, overlay, Action, AnyElement, AppContext, DismissEvent, Div, EventEmitter, FocusEvent, + FocusHandle, Focusable, FocusableElement, FocusableView, KeyContext, KeyDownEvent, Keystroke, + Model, MouseButton, MouseDownEvent, Pixels, Render, Subscription, Task, View, VisualContext, + WeakView, }; use language::Bias; use persistence::TERMINAL_DB; @@ -81,7 +82,7 @@ pub struct TerminalView { has_new_content: bool, //Currently using iTerm bell, show bell emoji in tab until input is received has_bell: bool, - context_menu: Option>, + context_menu: Option<(View, gpui::Point, Subscription)>, blink_state: bool, blinking_on: bool, blinking_paused: bool, @@ -312,14 +313,24 @@ impl TerminalView { position: gpui::Point, cx: &mut ViewContext, ) { - self.context_menu = Some(ContextMenu::build(cx, |menu, cx| { + let context_menu = ContextMenu::build(cx, |menu, cx| { menu.action("Clear", Box::new(Clear)) .action("Close", Box::new(CloseActiveItem { save_intent: None })) - })); - // todo!(context menus) - // self.context_menu - // .show(position, AnchorCorner::TopLeft, menu_entries, cx); - // cx.notify(); + }); + + cx.focus_view(&context_menu); + let subscription = + cx.subscribe(&context_menu, |this, _, _: &DismissEvent, cx| { + if this.context_menu.as_ref().is_some_and(|context_menu| { + context_menu.0.focus_handle(cx).contains_focused(cx) + }) { + cx.focus_self(); + } + this.context_menu.take(); + cx.notify(); + }); + + self.context_menu = Some((context_menu, position, subscription)); } fn show_character_palette(&mut self, _: &ShowCharacterPalette, cx: &mut ViewContext) { @@ -658,11 +669,12 @@ impl Render for TerminalView { }), ), ) - .children( - self.context_menu - .clone() - .map(|context_menu| div().z_index(1).absolute().child(context_menu)), - ) + .children(self.context_menu.as_ref().map(|(menu, positon, _)| { + overlay() + .position(*positon) + .anchor(gpui::AnchorCorner::TopLeft) + .child(menu.clone()) + })) .track_focus(&self.focus_handle) .on_focus_in(cx.listener(Self::focus_in)) .on_focus_out(cx.listener(Self::focus_out)) From 8987b2205c5693a08b94cdc0e2865da4727d31a8 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 8 Dec 2023 12:04:24 -0500 Subject: [PATCH 037/115] Fix line endings in Palenight source themes (#3554) This PR fixes the line endings in the Palenight source themes. Release Notes: - N/A --- .../palenight/palenight-mild-contrast.json | 3138 ++++++++-------- .../vscode/palenight/palenight-operator.json | 3280 ++++++++--------- .../src/vscode/palenight/palenight.json | 3138 ++++++++-------- 3 files changed, 4778 insertions(+), 4778 deletions(-) diff --git a/assets/themes/src/vscode/palenight/palenight-mild-contrast.json b/assets/themes/src/vscode/palenight/palenight-mild-contrast.json index 60164e29c72228a0acd6b56c3a76ac426da1a362..7533d90ffd5752e5ea160ab2c686a2173aa9e4eb 100644 --- a/assets/themes/src/vscode/palenight/palenight-mild-contrast.json +++ b/assets/themes/src/vscode/palenight/palenight-mild-contrast.json @@ -1,1569 +1,1569 @@ -{ - "name": "Palenight (Mild Contrast)", - "author": "Olaolu Olawuyi", - "maintainers": ["Olaolu Olawuyi "], - "type": "dark", - "semanticClass": "palenight-mild-contrast", - "colors": { - "contrastActiveBorder": null, - "contrastBorder": "#2C2F40", - "focusBorder": "#2C2F40", - "foreground": "#ffffff", - "widget.shadow": "#232635", - "selection.background": "#7580B850", - "descriptionForeground": null, - "errorForeground": "#EF5350", - "button.background": "#7e57c2cc", - "button.foreground": "#ffffffcc", - "button.hoverBackground": "#7e57c2", - "dropdown.background": "#292D3E", - "dropdown.border": "#7e57c2", - "dropdown.foreground": "#ffffffcc", - "input.background": "#313850", - "input.border": "#7e57c2", - "input.foreground": "#ffffffcc", - "input.placeholderForeground": "#ffffffcc", - "inputOption.activeBorder": "#ffffffcc", - "inputValidation.errorBackground": "#ef5350f2", - "inputValidation.errorBorder": "#EF5350", - "inputValidation.infoBackground": "#64b5f6f2", - "inputValidation.infoBorder": "#64B5F6", - "inputValidation.warningBackground": "#ffca28f2", - "inputValidation.warningBorder": "#FFCA28", - "scrollbar.shadow": "#292D3E00", - "scrollbarSlider.activeBackground": "#694CA4cc", - "scrollbarSlider.background": "#694CA466", - "scrollbarSlider.hoverBackground": "#694CA4cc", - "badge.background": "#7e57c2", - "badge.foreground": "#ffffff", - "progress.background": "#7e57c2", - "list.activeSelectionBackground": "#7e57c2", - "list.activeSelectionForeground": "#ffffff", - "list.dropBackground": "#2E3245", - "list.focusBackground": "#0000002e", - "list.focusForeground": "#ffffff", - "list.highlightForeground": "#ffffff", - "list.hoverBackground": "#0000001a", - "list.hoverForeground": "#ffffff", - "list.inactiveSelectionBackground": "#929ac90d", - "list.inactiveSelectionForeground": "#929ac9", - "activityBar.background": "#242839", - "activityBar.dropBackground": "#7e57c2e3", - "activityBar.foreground": "#eeffff", - "activityBar.border": "#2E3243", - "activityBarBadge.background": "#7e57c2", - "activityBarBadge.foreground": "#ffffff", - "sideBar.background": "#25293A", - "sideBar.foreground": "#6C739A", - "sideBar.border": "#2C2F40", - "sideBarTitle.foreground": "#eeffff", - "sideBarSectionHeader.background": "#25293A", - "sideBarSectionHeader.foreground": "#eeffff", - "editorGroup.background": "#32374C", - "editorGroup.border": "#2E3245", - "editorGroup.dropBackground": "#7e57c273", - "editorGroupHeader.noTabsBackground": "#32374C", - "editorGroupHeader.tabsBackground": "#31364a", - "editorGroupHeader.tabsBorder": "#2C3041", - "tab.activeBackground": "#25293A", - "tab.activeForeground": "#eeffff", - "tab.border": "#272B3B", - "tab.activeBorder": "#2C3041", - "tab.unfocusedActiveBorder": "#2C3041", - "tab.inactiveBackground": "#31364A", - "tab.inactiveForeground": "#929ac9", - "tab.unfocusedActiveForeground": null, - "tab.unfocusedInactiveForeground": null, - "editor.background": "#292D3E", - "editor.foreground": "#BFC7D5", - "editorLineNumber.foreground": "#4c5374", - "editorLineNumber.activeForeground": "#eeffff", - "editorCursor.foreground": "#7e57c2", - "editorCursor.background": null, - "editor.selectionBackground": "#7580B850", - "editor.selectionHighlightBackground": "#383D51", - "editor.inactiveSelectionBackground": "#7e57c25a", - "editor.wordHighlightBackground": "#32374D", - "editor.wordHighlightStrongBackground": "#2E3250", - "editor.findMatchBackground": "#2e3248fc", - "editor.findMatchHighlightBackground": "#7e57c233", - "editor.findRangeHighlightBackground": null, - "editor.hoverHighlightBackground": "#7e57c25a", - "editor.lineHighlightBackground": "#0003", - "editor.lineHighlightBorder": null, - "editorLink.activeForeground": null, - "editor.rangeHighlightBackground": "#7e57c25a", - "editorWhitespace.foreground": null, - "editorIndentGuide.background": "#4E557980", - "editorRuler.foreground": "#4E557980", - "editorCodeLens.foreground": "#FFCA28", - "editorBracketMatch.background": null, - "editorBracketMatch.border": null, - "editorOverviewRuler.currentContentForeground": "#7e57c2", - "editorOverviewRuler.incomingContentForeground": "#7e57c2", - "editorOverviewRuler.commonContentForeground": "#7e57c2", - "editorError.foreground": "#EF5350", - "editorError.border": null, - "editorWarning.foreground": "#FFCA28", - "editorWarning.border": null, - "editorGutter.background": null, - "editorGutter.modifiedBackground": "#e2b93d", - "editorGutter.addedBackground": "#9CCC65", - "editorGutter.deletedBackground": "#EF5350", - "diffEditor.insertedTextBackground": "#99b76d23", - "diffEditor.removedTextBackground": "#ef535033", - "editorWidget.background": "#31364a", - "editorWidget.border": null, - "editorSuggestWidget.background": "#2C3043", - "editorSuggestWidget.border": "#2B2F40", - "editorSuggestWidget.foreground": "#bfc7d5", - "editorSuggestWidget.highlightForeground": "#ffffff", - "editorSuggestWidget.selectedBackground": "#7e57c2", - "editorHoverWidget.background": "#292D3E", - "editorHoverWidget.border": "#7e57c2", - "debugExceptionWidget.background": "#292D3E", - "debugExceptionWidget.border": "#7e57c2", - "editorMarkerNavigation.background": "#31364a", - "editorMarkerNavigationError.background": "#EF5350", - "editorMarkerNavigationWarning.background": "#FFCA28", - "peekView.border": "#7e57c2", - "peekViewEditor.background": "#232635", - "peekViewEditor.matchHighlightBackground": "#7e57c25a", - "peekViewResult.background": "#2E3245", - "peekViewResult.fileForeground": "#eeffff", - "peekViewResult.lineForeground": "#eeffff", - "peekViewResult.matchHighlightBackground": "#7e57c25a", - "peekViewResult.selectionBackground": "#2E3250", - "peekViewResult.selectionForeground": "#eeffff", - "peekViewTitle.background": "#292D3E", - "peekViewTitleDescription.foreground": "#697098", - "peekViewTitleLabel.foreground": "#eeffff", - "merge.currentHeaderBackground": "#7e57c25a", - "merge.currentContentBackground": null, - "merge.incomingHeaderBackground": "#7e57c25a", - "merge.incomingContentBackground": null, - "merge.border": null, - "panel.background": "#25293A", - "panel.border": "#2C2F40", - "panelTitle.activeBorder": "#7e57c2", - "panelTitle.activeForeground": "#eeffff", - "panelTitle.inactiveForeground": "#bfc7d580", - "statusBar.background": "#25293A", - "statusBar.foreground": "#676E95", - "statusBar.border": "#2C3041", - "statusBar.debuggingBackground": "#202431", - "statusBar.debuggingForeground": null, - "statusBar.debuggingBorder": "#1F2330", - "statusBar.noFolderForeground": null, - "statusBar.noFolderBackground": "#292D3E", - "statusBar.noFolderBorder": "#25293A", - "statusBarItem.activeBackground": "#202431", - "statusBarItem.hoverBackground": "#202431", - "statusBarItem.prominentBackground": "#202431", - "statusBarItem.prominentHoverBackground": "#202431", - "titleBar.activeBackground": "#25293A", - "titleBar.activeForeground": "#eeefff", - "titleBar.border": "#2C3041", - "titleBar.inactiveBackground": "#30364c", - "titleBar.inactiveForeground": null, - "notifications.background": "#292D3E", - "notifications.foreground": "#ffffffcc", - "notificationLink.foreground": "#80CBC4", - "extensionButton.prominentForeground": "#ffffffcc", - "extensionButton.prominentBackground": "#7e57c2cc", - "extensionButton.prominentHoverBackground": "#7e57c2", - "pickerGroup.foreground": "#d1aaff", - "pickerGroup.border": "#2E3245", - "terminal.ansiWhite": "#ffffff", - "terminal.ansiBlack": "#676E95", - "terminal.ansiBlue": "#82AAFF", - "terminal.ansiCyan": "#89DDFF", - "terminal.ansiGreen": "#a9c77d", - "terminal.ansiMagenta": "#C792EA", - "terminal.ansiRed": "#ff5572", - "terminal.ansiYellow": "#FFCB6B", - "terminal.ansiBrightWhite": "#ffffff", - "terminal.ansiBrightBlack": "#676E95", - "terminal.ansiBrightBlue": "#82AAFF", - "terminal.ansiBrightCyan": "#89DDFF", - "terminal.ansiBrightGreen": "#C3E88D", - "terminal.ansiBrightMagenta": "#C792EA", - "terminal.ansiBrightRed": "#ff5572", - "terminal.ansiBrightYellow": "#FFCB6B", - "debugToolBar.background": "#292D3E", - "welcomePage.buttonBackground": null, - "welcomePage.buttonHoverBackground": null, - "walkThrough.embeddedEditorBackground": "#232635", - "gitDecoration.modifiedResourceForeground": "#e2c08de6", - "gitDecoration.deletedResourceForeground": "#EF535090", - "gitDecoration.untrackedResourceForeground": "#a9c77dff", - "gitDecoration.ignoredResourceForeground": "#69709890", - "gitDecoration.conflictingResourceForeground": "#FFEB95CC", - "editorActiveLineNumber.foreground": "#eeffff", - "breadcrumb.foreground": "#6c739a", - "breadcrumb.focusForeground": "#bfc7d5", - "breadcrumb.activeSelectionForeground": "#eeffff", - "breadcrumbPicker.background": "#292D3E" - }, - "tokenColors": [ - { - "name": "Global settings", - "settings": { - "background": "#292D3E", - "foreground": "#bfc7d5" - } - }, - { - "name": "Comment", - "scope": "comment", - "settings": { - "foreground": "#697098", - "fontStyle": "italic" - } - }, - { - "name": "String", - "scope": "string", - "settings": { - "foreground": "#C3E88D" - } - }, - { - "name": "String Quoted", - "scope": "string.quoted", - "settings": { - "foreground": "#C3E88D" - } - }, - { - "name": "String Unquoted", - "scope": "string.unquoted", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "Support Constant Math", - "scope": "support.constant.math", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Number", - "scope": ["constant.numeric", "constant.character.numeric"], - "settings": { - "foreground": "#F78C6C" - } - }, - { - "name": "Built-in constant", - "scope": [ - "constant.language", - "punctuation.definition.constant", - "variable.other.constant" - ], - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "User-defined constant", - "scope": ["constant.character", "constant.other"], - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "Constant Character Escape", - "scope": "constant.character.escape", - "settings": { - "foreground": "#F78C6C" - } - }, - { - "name": "RegExp String", - "scope": ["string.regexp", "string.regexp keyword.other"], - "settings": { - "foreground": "#80CBC4" - } - }, - { - "name": "Comma in functions", - "scope": "meta.function punctuation.separator.comma", - "settings": { - "foreground": "#eeffff" - } - }, - { - "name": "Variable", - "scope": "variable", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Keyword", - "scope": ["punctuation.accessor", "keyword"], - "settings": { - "foreground": "#c792ea" - } - }, - { - "name": "Storage", - "scope": [ - "storage", - "storage.type", - "meta.var.expr storage.type", - "storage.type.property.js", - "storage.type.property.ts", - "storage.type.property.tsx", - "meta.class meta.method.declaration meta.var.expr storage.type.js" - ], - "settings": { - "foreground": "#c792ea" - } - }, - { - "name": "Class name", - "scope": ["entity.name.class", "meta.class entity.name.type.class"], - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Inherited class", - "scope": "entity.other.inherited-class", - "settings": { - "foreground": "#a9c77d" - } - }, - { - "name": "Function name", - "scope": "entity.name.function", - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "Function Parameters", - "scope": "variable.parameter", - "settings": { - "foreground": "#7986E7" - } - }, - { - "name": "Meta Tag", - "scope": ["punctuation.definition.tag", "meta.tag"], - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "HTML Tag names", - "scope": [ - "entity.name.tag support.class.component", - "meta.tag.other.html", - "meta.tag.other.js", - "meta.tag.other.tsx", - "entity.name.tag.tsx", - "entity.name.tag.js", - "entity.name.tag", - "meta.tag.js", - "meta.tag.tsx", - "meta.tag.html" - ], - "settings": { - "foreground": "#ff5572" - } - }, - { - "name": "Tag attribute", - "scope": "entity.other.attribute-name", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Entity Name Tag Custom", - "scope": "entity.name.tag.custom", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Library (function & constant)", - "scope": ["support.function", "support.constant"], - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "Support Constant Property Value meta", - "scope": "support.constant.meta.property-value", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "Library class/type", - "scope": ["support.type", "support.class"], - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Support Variable DOM", - "scope": "support.variable.dom", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Invalid", - "scope": "invalid", - "settings": { - "background": "#ff2c83", - "foreground": "#ffffff" - } - }, - { - "name": "Invalid deprecated", - "scope": "invalid.deprecated", - "settings": { - "foreground": "#ffffff", - "background": "#d3423e" - } - }, - { - "name": "Keyword Operator", - "scope": "keyword.operator", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "Keyword Operator Relational", - "scope": "keyword.operator.relational", - "settings": { - "foreground": "#c792ea" - } - }, - { - "name": "Keyword Operator Assignment", - "scope": "keyword.operator.assignment", - "settings": { - "foreground": "#c792ea" - } - }, - { - "name": "Double-Slashed Comment", - "scope": "comment.line.double-slash", - "settings": { - "foreground": "#697098" - } - }, - { - "name": "Object", - "scope": "object", - "settings": { - "foreground": "#cdebf7" - } - }, - { - "name": "Null", - "scope": "constant.language.null", - "settings": { - "foreground": "#ff5874" - } - }, - { - "name": "Meta Brace", - "scope": "meta.brace", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "Meta Delimiter Period", - "scope": "meta.delimiter.period", - "settings": { - "foreground": "#c792ea" - } - }, - { - "name": "Punctuation Definition String", - "scope": "punctuation.definition.string", - "settings": { - "foreground": "#d9f5dd" - } - }, - { - "name": "Boolean", - "scope": "constant.language.boolean", - "settings": { - "foreground": "#ff5874" - } - }, - { - "name": "Object Comma", - "scope": "object.comma", - "settings": { - "foreground": "#ffffff" - } - }, - { - "name": "Variable Parameter Function", - "scope": "variable.parameter.function", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "Support Type Property Name & entity name tags", - "scope": [ - "support.type.vendored.property-name", - "support.constant.vendored.property-value", - "support.type.property-name", - "meta.property-list entity.name.tag" - ], - "settings": { - "foreground": "#80CBC4" - } - }, - { - "name": "Entity Name tag reference in stylesheets", - "scope": "meta.property-list entity.name.tag.reference", - "settings": { - "foreground": "#ff5572" - } - }, - { - "name": "Constant Other Color RGB Value Punctuation Definition Constant", - "scope": "constant.other.color.rgb-value punctuation.definition.constant", - "settings": { - "foreground": "#F78C6C" - } - }, - { - "name": "Constant Other Color", - "scope": "constant.other.color", - "settings": { - "foreground": "#FFEB95" - } - }, - { - "name": "Keyword Other Unit", - "scope": "keyword.other.unit", - "settings": { - "foreground": "#FFEB95" - } - }, - { - "name": "Meta Selector", - "scope": "meta.selector", - "settings": { - "foreground": "#c792ea" - } - }, - { - "name": "Entity Other Attribute Name Id", - "scope": "entity.other.attribute-name.id", - "settings": { - "foreground": "#FAD430" - } - }, - { - "name": "Meta Property Name", - "scope": "meta.property-name", - "settings": { - "foreground": "#80CBC4" - } - }, - { - "name": "Doctypes", - "scope": ["entity.name.tag.doctype", "meta.tag.sgml.doctype"], - "settings": { - "foreground": "#c792ea", - "fontStyle": "italic" - } - }, - { - "name": "Punctuation Definition Parameters", - "scope": "punctuation.definition.parameters", - "settings": { - "foreground": "#d9f5dd" - } - }, - { - "name": "Keyword Control Operator", - "scope": "keyword.control.operator", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "Keyword Operator Logical", - "scope": "keyword.operator.logical", - "settings": { - "foreground": "#c792ea" - } - }, - { - "name": "Variable Instances", - "scope": [ - "variable.instance", - "variable.other.instance", - "variable.reaedwrite.instance", - "variable.other.readwrite.instance" - ], - "settings": { - "foreground": "#ff5572" - } - }, - { - "name": "Variable Property Other", - "scope": ["variable.other.property", "variable.other.object.property"], - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "Entity Name Function", - "scope": "entity.name.function", - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "Keyword Operator Comparison", - "scope": "keyword.operator.comparison", - "settings": { - "foreground": "#c792ea" - } - }, - { - "name": "Support Constant, `new` keyword, Special Method Keyword", - "scope": [ - "support.constant", - "keyword.other.special-method", - "keyword.other.new" - ], - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "Support Function", - "scope": "support.function", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "Invalid Broken", - "scope": "invalid.broken", - "settings": { - "foreground": "#020e14", - "background": "#F78C6C" - } - }, - { - "name": "Invalid Unimplemented", - "scope": "invalid.unimplemented", - "settings": { - "background": "#8BD649", - "foreground": "#ffffff" - } - }, - { - "name": "Invalid Illegal", - "scope": "invalid.illegal", - "settings": { - "foreground": "#ffffff", - "background": "#ec5f67" - } - }, - { - "name": "Language Variable", - "scope": "variable.language", - "settings": { - "foreground": "#ff5572" - } - }, - { - "name": "Support Variable Property", - "scope": "support.variable.property", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "Variable Function", - "scope": "variable.function", - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "Variable Interpolation", - "scope": "variable.interpolation", - "settings": { - "foreground": "#ec5f67" - } - }, - { - "name": "Meta Function Call", - "scope": "meta.function-call", - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "Punctuation Section Embedded", - "scope": "punctuation.section.embedded", - "settings": { - "foreground": "#d3423e" - } - }, - { - "name": "Punctuation Tweaks", - "scope": [ - "punctuation.terminator.expression", - "punctuation.definition.arguments", - "punctuation.definition.array", - "punctuation.section.array", - "meta.array" - ], - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "More Punctuation Tweaks", - "scope": [ - "punctuation.definition.list.begin", - "punctuation.definition.list.end", - "punctuation.separator.arguments", - "punctuation.definition.list" - ], - "settings": { - "foreground": "#d9f5dd" - } - }, - { - "name": "Template Strings", - "scope": "string.template meta.template.expression", - "settings": { - "foreground": "#d3423e" - } - }, - { - "name": "Backtics(``) in Template Strings", - "scope": "string.template punctuation.definition.string", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "Italics", - "scope": "italic", - "settings": { - "foreground": "#c792ea", - "fontStyle": "italic" - } - }, - { - "name": "Bold", - "scope": "bold", - "settings": { - "foreground": "#ffcb6b", - "fontStyle": "bold" - } - }, - { - "name": "Quote", - "scope": "quote", - "settings": { - "foreground": "#697098", - "fontStyle": "italic" - } - }, - { - "name": "Raw Code", - "scope": "raw", - "settings": { - "foreground": "#80CBC4" - } - }, - { - "name": "CoffeScript Variable Assignment", - "scope": "variable.assignment.coffee", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "CoffeScript Parameter Function", - "scope": "variable.parameter.function.coffee", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "CoffeeScript Assignments", - "scope": "variable.assignment.coffee", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "C# Readwrite Variables", - "scope": "variable.other.readwrite.cs", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "C# Classes & Storage types", - "scope": ["entity.name.type.class.cs", "storage.type.cs"], - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "C# Namespaces", - "scope": "entity.name.type.namespace.cs", - "settings": { - "foreground": "#B2CCD6" - } - }, - { - "name": "Tag names in Stylesheets", - "scope": [ - "entity.name.tag.css", - "entity.name.tag.less", - "entity.name.tag.custom.css" - ], - "settings": { - "foreground": "#ff5572" - } - }, - { - "name": "Wildcard(*) selector in Stylesheets", - "scope": [ - "entity.name.tag.wildcard.css", - "entity.name.tag.wildcard.less", - "entity.name.tag.wildcard.scss", - "entity.name.tag.wildcard.sass" - ], - "settings": { - "foreground": "#ff5572" - } - }, - { - "name": "(C|SC|SA|LE)SS property value unit", - "scope": [ - "keyword.other.unit.css", - "constant.length.units.css", - "keyword.other.unit.less", - "constant.length.units.less", - "keyword.other.unit.scss", - "constant.length.units.scss", - "keyword.other.unit.sass", - "constant.length.units.sass" - ], - "settings": { - "foreground": "#FFEB95" - } - }, - { - "name": "Attribute Name for CSS", - "scope": "meta.attribute-selector.css entity.other.attribute-name.attribute", - "settings": { - "foreground": "#F78C6C" - } - }, - { - "name": "punctuations in styled components", - "scope": [ - "source.js source.css meta.property-list", - "source.js source.css punctuation.section", - "source.js source.css punctuation.terminator.rule", - "source.js source.css punctuation.definition.entity.end.bracket", - "source.js source.css punctuation.definition.entity.begin.bracket", - "source.js source.css punctuation.separator.key-value", - "source.js source.css punctuation.definition.attribute-selector", - "source.js source.css meta.property-list", - "source.js source.css meta.property-list punctuation.separator.comma", - "source.ts source.css punctuation.section", - "source.ts source.css punctuation.terminator.rule", - "source.ts source.css punctuation.definition.entity.end.bracket", - "source.ts source.css punctuation.definition.entity.begin.bracket", - "source.ts source.css punctuation.separator.key-value", - "source.ts source.css punctuation.definition.attribute-selector", - "source.ts source.css meta.property-list", - "source.ts source.css meta.property-list punctuation.separator.comma" - ], - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "Elixir Classes", - "scope": [ - "source.elixir support.type.elixir", - "source.elixir meta.module.elixir entity.name.class.elixir" - ], - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "Elixir Functions", - "scope": "source.elixir entity.name.function", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Elixir Constants", - "scope": [ - "source.elixir constant.other.symbol.elixir", - "source.elixir constant.other.keywords.elixir" - ], - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "Elixir String Punctuations", - "scope": "source.elixir punctuation.definition.string", - "settings": { - "foreground": "#a9c77d" - } - }, - { - "name": "Elixir", - "scope": [ - "source.elixir variable.other.readwrite.module.elixir", - "source.elixir variable.other.readwrite.module.elixir punctuation.definition.variable.elixir" - ], - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Elixir Binary Punctuations", - "scope": "source.elixir .punctuation.binary.elixir", - "settings": { - "foreground": "#c792ea" - } - }, - { - "name": "Go Function Calls", - "scope": "source.go meta.function-call.go", - "settings": { - "foreground": "#DDDDDD" - } - }, - { - "name": "GraphQL Variables", - "scope": "variable.qraphql", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "ID Attribute Name in HTML", - "scope": "entity.other.attribute-name.id.html", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "HTML Punctuation Definition Tag", - "scope": "punctuation.definition.tag.html", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "HTML Doctype", - "scope": "meta.tag.sgml.doctype.html", - "settings": { - "foreground": "#c792ea", - "fontStyle": "italic" - } - }, - { - "name": "JavaScript Classes", - "scope": "meta.class entity.name.type.class.js", - "settings": { - "foreground": "#ffcb8b" - } - }, - { - "name": "JavaScript Method Declaration e.g. `constructor`", - "scope": "meta.method.declaration storage.type.js", - "settings": { - "foreground": "#82AAFF", - "fontStyle": "normal" - } - }, - { - "name": "JavaScript Terminator", - "scope": "terminator.js", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "JavaScript Meta Punctuation Definition", - "scope": "meta.js punctuation.definition.js", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "Entity Names in Code Documentations", - "scope": [ - "entity.name.type.instance.jsdoc", - "entity.name.type.instance.phpdoc" - ], - "settings": { - "foreground": "#eeffff" - } - }, - { - "name": "Other Variables in Code Documentations", - "scope": ["variable.other.jsdoc", "variable.other.phpdoc"], - "settings": { - "foreground": "#78ccf0" - } - }, - { - "name": "JavaScript module imports and exports", - "scope": [ - "variable.other.meta.import.js", - "meta.import.js variable.other", - "variable.other.meta.export.js", - "meta.export.js variable.other" - ], - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "JavaScript Variable Parameter Function", - "scope": "variable.parameter.function.js", - "settings": { - "foreground": "#7986E7" - } - }, - { - "name": "JavaScript Variable Other ReadWrite", - "scope": "variable.other.readwrite.js", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "Text nested in React tags", - "scope": [ - "meta.jsx.children", - "meta.jsx.children.js", - "meta.jsx.children.tsx" - ], - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "JavaScript[React] Variable Other Object", - "scope": [ - "variable.other.object.js", - "variable.other.object.jsx", - "meta.object-literal.key.js", - "meta.object-literal.key.jsx", - "variable.object.property.js", - "variable.object.property.jsx" - ], - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "JavaScript Variables", - "scope": ["variable.js", "variable.other.js"], - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "JavaScript Entity Name Type", - "scope": ["entity.name.type.js", "entity.name.type.module.js"], - "settings": { - "foreground": "#ffcb8b" - } - }, - { - "name": "JavaScript Support Classes", - "scope": "support.class.js", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "JSON Property Names", - "scope": "support.type.property-name.json", - "settings": { - "foreground": "#C3E88D", - "fontStyle": "normal" - } - }, - { - "name": "JSON Support Constants", - "scope": "support.constant.json", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "JSON Property values (string)", - "scope": "meta.structure.dictionary.value.json string.quoted.double", - "settings": { - "foreground": "#80CBC4", - "fontStyle": "normal" - } - }, - { - "name": "Strings in JSON values", - "scope": "string.quoted.double.json punctuation.definition.string.json", - "settings": { - "foreground": "#80CBC4", - "fontStyle": "normal" - } - }, - { - "name": "Specific JSON Property values like null", - "scope": "meta.structure.dictionary.json meta.structure.dictionary.value constant.language", - "settings": { - "foreground": "#ff5874" - } - }, - { - "name": "Ruby Variables", - "scope": "variable.other.ruby", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "Ruby Hashkeys", - "scope": "constant.language.symbol.hashkey.ruby", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "LESS Tag names", - "scope": "entity.name.tag.less", - "settings": { - "foreground": "#ff5572" - } - }, - { - "name": "Attribute Name for LESS", - "scope": "meta.attribute-selector.less entity.other.attribute-name.attribute", - "settings": { - "foreground": "#F78C6C" - } - }, - { - "name": "Markup Headings", - "scope": "markup.heading", - "settings": { - "foreground": "#82b1ff" - } - }, - { - "name": "Markup Italics", - "scope": "markup.italic", - "settings": { - "foreground": "#c792ea", - "fontStyle": "italic" - } - }, - { - "name": "Markup Bold", - "scope": "markup.bold", - "settings": { - "foreground": "#ffcb6b", - "fontStyle": "bold" - } - }, - { - "name": "Markup Quote + others", - "scope": "markup.quote", - "settings": { - "foreground": "#697098", - "fontStyle": "italic" - } - }, - { - "name": "Markup Raw Code + others", - "scope": "markup.inline.raw", - "settings": { - "foreground": "#80CBC4" - } - }, - { - "name": "Markup Links", - "scope": ["markup.underline.link", "markup.underline.link.image"], - "settings": { - "foreground": "#ff869a" - } - }, - { - "name": "Markup Attributes", - "scope": ["markup.meta.attribute-list"], - "settings": { - "foreground": "#a9c77d" - } - }, - { - "name": "Markup Admonitions", - "scope": "markup.admonition", - "settings": { - "fontStyle": "bold" - } - }, - { - "name": "Markup Lists", - "scope": "markup.list.bullet", - "settings": { - "foreground": "#D9F5DD" - } - }, - { - "name": "Markup Superscript and Subscript", - "scope": ["markup.superscript", "markup.subscript"], - "settings": { - "fontStyle": "italic" - } - }, - { - "name": "Markdown Link Title and Description", - "scope": [ - "string.other.link.title.markdown", - "string.other.link.description.markdown" - ], - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "Markdown Punctuation", - "scope": [ - "punctuation.definition.string.markdown", - "punctuation.definition.string.begin.markdown", - "punctuation.definition.string.end.markdown", - "meta.link.inline.markdown punctuation.definition.string" - ], - "settings": { - "foreground": "#82b1ff" - } - }, - { - "name": "Markdown MetaData Punctuation", - "scope": ["punctuation.definition.metadata.markdown"], - "settings": { - "foreground": "#ff5572" - } - }, - { - "name": "Markdown List Punctuation", - "scope": ["beginning.punctuation.definition.list.markdown"], - "settings": { - "foreground": "#82b1ff" - } - }, - { - "name": "Asciidoc Function", - "scope": "entity.name.function.asciidoc", - "settings": { - "foreground": "#F78C6C" - } - }, - { - "name": "PHP Variables", - "scope": "variable.other.php", - "settings": { - "foreground": "#bec5d4" - } - }, - { - "name": "Support Classes in PHP", - "scope": "support.class.php", - "settings": { - "foreground": "#ffcb8b" - } - }, - { - "name": "Punctuations in PHP function calls", - "scope": "meta.function-call.php punctuation", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "PHP Global Variables", - "scope": "variable.other.global.php", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Declaration Punctuation in PHP Global Variables", - "scope": "variable.other.global.php punctuation.definition.variable", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Language Constants in Python", - "scope": "constant.language.python", - "settings": { - "foreground": "#ff5874" - } - }, - { - "name": "Python Function Parameter and Arguments", - "scope": [ - "variable.parameter.function.python", - "meta.function-call.arguments.python" - ], - "settings": { - "foreground": "#7986E7" - } - }, - { - "name": "Python Function Call", - "scope": [ - "meta.function-call.python", - "meta.function-call.generic.python" - ], - "settings": { - "foreground": "#B2CCD6" - } - }, - { - "name": "Punctuations in Python", - "scope": "punctuation.python", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "Decorator Functions in Python", - "scope": "entity.name.function.decorator.python", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Python Language Variable", - "scope": "source.python variable.language.special", - "settings": { - "foreground": "#8EACE3" - } - }, - { - "name": "SCSS Variable", - "scope": [ - "variable.scss", - "variable.sass", - "variable.parameter.url.scss", - "variable.parameter.url.sass" - ], - "settings": { - "foreground": "#DDDDDD" - } - }, - { - "name": "Variables in SASS At-Rules", - "scope": [ - "source.css.scss meta.at-rule variable", - "source.css.sass meta.at-rule variable" - ], - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "Variables in SASS At-Rules", - "scope": [ - "source.css.scss meta.at-rule variable", - "source.css.sass meta.at-rule variable" - ], - "settings": { - "foreground": "#bec5d4" - } - }, - { - "name": "Attribute Name for SASS", - "scope": [ - "meta.attribute-selector.scss entity.other.attribute-name.attribute", - "meta.attribute-selector.sass entity.other.attribute-name.attribute" - ], - "settings": { - "foreground": "#F78C6C" - } - }, - { - "name": "Tag names in SASS", - "scope": ["entity.name.tag.scss", "entity.name.tag.sass"], - "settings": { - "foreground": "#ff5572" - } - }, - { - "name": "TypeScript[React] Variables and Object Properties", - "scope": [ - "variable.other.readwrite.alias.ts", - "variable.other.readwrite.alias.tsx", - "variable.other.readwrite.ts", - "variable.other.readwrite.tsx", - "variable.other.object.ts", - "variable.other.object.tsx", - "variable.object.property.ts", - "variable.object.property.tsx", - "variable.other.ts", - "variable.other.tsx", - "variable.tsx", - "variable.ts" - ], - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "TypeScript[React] Entity Name Types", - "scope": ["entity.name.type.ts", "entity.name.type.tsx"], - "settings": { - "foreground": "#78ccf0" - } - }, - { - "name": "TypeScript[React] Node Classes", - "scope": ["support.class.node.ts", "support.class.node.tsx"], - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "TypeScript[React] Entity Name Types as Parameters", - "scope": [ - "meta.type.parameters.ts entity.name.type", - "meta.type.parameters.tsx entity.name.type" - ], - "settings": { - "foreground": "#eeffff" - } - }, - { - "name": "TypeScript[React] Import/Export Punctuations", - "scope": [ - "meta.import.ts punctuation.definition.block", - "meta.import.tsx punctuation.definition.block", - "meta.export.ts punctuation.definition.block", - "meta.export.tsx punctuation.definition.block" - ], - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "TypeScript[React] Punctuation Decorators", - "scope": [ - "meta.decorator punctuation.decorator.ts", - "meta.decorator punctuation.decorator.tsx" - ], - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "TypeScript[React] Punctuation Decorators", - "scope": "meta.tag.js meta.jsx.children.tsx", - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "YAML Entity Name Tags", - "scope": "entity.name.tag.yaml", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "handlebars variables", - "scope": "variable.parameter.handlebars", - "settings": { - "foreground": "#bec5d4" - } - }, - { - "name": "handlebars parameters", - "scope": "entity.other.attribute-name.handlebars variable.parameter.handlebars", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "handlebars enitity attribute names", - "scope": "entity.other.attribute-name.handlebars", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "handlebars enitity attribute values", - "scope": "entity.other.attribute-value.handlebars variable.parameter.handlebars", - "settings": { - "foreground": "#7986E7" - } - }, - { - "name": "normalize font style of certain components", - "scope": [ - "meta.tag.js meta.embedded.expression.js punctuation.section.embedded.begin.js", - "meta.tag.js meta.embedded.expression.js punctuation.section.embedded.end.js", - "meta.property-list.css meta.property-value.css variable.other.less", - "punctuation.section.embedded.begin.js.jsx", - "punctuation.section.embedded.end.js.jsx", - "meta.property-list.scss variable.scss", - "meta.property-list.sass variable.sass", - "keyword.operator.logical", - "keyword.operator.arithmetic", - "keyword.operator.bitwise", - "keyword.operator.increment", - "keyword.operator.ternary", - "keyword.operator.comparison", - "keyword.operator.assignment", - "keyword.operator.operator", - "keyword.operator.or.regexp", - "keyword.operator.expression.in", - "keyword.operator.type", - "punctuation.section.embedded.js", - "punctuation.definintion.string", - "punctuation" - ], - "settings": { - "fontStyle": "normal" - } - } - ] -} +{ + "name": "Palenight (Mild Contrast)", + "author": "Olaolu Olawuyi", + "maintainers": ["Olaolu Olawuyi "], + "type": "dark", + "semanticClass": "palenight-mild-contrast", + "colors": { + "contrastActiveBorder": null, + "contrastBorder": "#2C2F40", + "focusBorder": "#2C2F40", + "foreground": "#ffffff", + "widget.shadow": "#232635", + "selection.background": "#7580B850", + "descriptionForeground": null, + "errorForeground": "#EF5350", + "button.background": "#7e57c2cc", + "button.foreground": "#ffffffcc", + "button.hoverBackground": "#7e57c2", + "dropdown.background": "#292D3E", + "dropdown.border": "#7e57c2", + "dropdown.foreground": "#ffffffcc", + "input.background": "#313850", + "input.border": "#7e57c2", + "input.foreground": "#ffffffcc", + "input.placeholderForeground": "#ffffffcc", + "inputOption.activeBorder": "#ffffffcc", + "inputValidation.errorBackground": "#ef5350f2", + "inputValidation.errorBorder": "#EF5350", + "inputValidation.infoBackground": "#64b5f6f2", + "inputValidation.infoBorder": "#64B5F6", + "inputValidation.warningBackground": "#ffca28f2", + "inputValidation.warningBorder": "#FFCA28", + "scrollbar.shadow": "#292D3E00", + "scrollbarSlider.activeBackground": "#694CA4cc", + "scrollbarSlider.background": "#694CA466", + "scrollbarSlider.hoverBackground": "#694CA4cc", + "badge.background": "#7e57c2", + "badge.foreground": "#ffffff", + "progress.background": "#7e57c2", + "list.activeSelectionBackground": "#7e57c2", + "list.activeSelectionForeground": "#ffffff", + "list.dropBackground": "#2E3245", + "list.focusBackground": "#0000002e", + "list.focusForeground": "#ffffff", + "list.highlightForeground": "#ffffff", + "list.hoverBackground": "#0000001a", + "list.hoverForeground": "#ffffff", + "list.inactiveSelectionBackground": "#929ac90d", + "list.inactiveSelectionForeground": "#929ac9", + "activityBar.background": "#242839", + "activityBar.dropBackground": "#7e57c2e3", + "activityBar.foreground": "#eeffff", + "activityBar.border": "#2E3243", + "activityBarBadge.background": "#7e57c2", + "activityBarBadge.foreground": "#ffffff", + "sideBar.background": "#25293A", + "sideBar.foreground": "#6C739A", + "sideBar.border": "#2C2F40", + "sideBarTitle.foreground": "#eeffff", + "sideBarSectionHeader.background": "#25293A", + "sideBarSectionHeader.foreground": "#eeffff", + "editorGroup.background": "#32374C", + "editorGroup.border": "#2E3245", + "editorGroup.dropBackground": "#7e57c273", + "editorGroupHeader.noTabsBackground": "#32374C", + "editorGroupHeader.tabsBackground": "#31364a", + "editorGroupHeader.tabsBorder": "#2C3041", + "tab.activeBackground": "#25293A", + "tab.activeForeground": "#eeffff", + "tab.border": "#272B3B", + "tab.activeBorder": "#2C3041", + "tab.unfocusedActiveBorder": "#2C3041", + "tab.inactiveBackground": "#31364A", + "tab.inactiveForeground": "#929ac9", + "tab.unfocusedActiveForeground": null, + "tab.unfocusedInactiveForeground": null, + "editor.background": "#292D3E", + "editor.foreground": "#BFC7D5", + "editorLineNumber.foreground": "#4c5374", + "editorLineNumber.activeForeground": "#eeffff", + "editorCursor.foreground": "#7e57c2", + "editorCursor.background": null, + "editor.selectionBackground": "#7580B850", + "editor.selectionHighlightBackground": "#383D51", + "editor.inactiveSelectionBackground": "#7e57c25a", + "editor.wordHighlightBackground": "#32374D", + "editor.wordHighlightStrongBackground": "#2E3250", + "editor.findMatchBackground": "#2e3248fc", + "editor.findMatchHighlightBackground": "#7e57c233", + "editor.findRangeHighlightBackground": null, + "editor.hoverHighlightBackground": "#7e57c25a", + "editor.lineHighlightBackground": "#0003", + "editor.lineHighlightBorder": null, + "editorLink.activeForeground": null, + "editor.rangeHighlightBackground": "#7e57c25a", + "editorWhitespace.foreground": null, + "editorIndentGuide.background": "#4E557980", + "editorRuler.foreground": "#4E557980", + "editorCodeLens.foreground": "#FFCA28", + "editorBracketMatch.background": null, + "editorBracketMatch.border": null, + "editorOverviewRuler.currentContentForeground": "#7e57c2", + "editorOverviewRuler.incomingContentForeground": "#7e57c2", + "editorOverviewRuler.commonContentForeground": "#7e57c2", + "editorError.foreground": "#EF5350", + "editorError.border": null, + "editorWarning.foreground": "#FFCA28", + "editorWarning.border": null, + "editorGutter.background": null, + "editorGutter.modifiedBackground": "#e2b93d", + "editorGutter.addedBackground": "#9CCC65", + "editorGutter.deletedBackground": "#EF5350", + "diffEditor.insertedTextBackground": "#99b76d23", + "diffEditor.removedTextBackground": "#ef535033", + "editorWidget.background": "#31364a", + "editorWidget.border": null, + "editorSuggestWidget.background": "#2C3043", + "editorSuggestWidget.border": "#2B2F40", + "editorSuggestWidget.foreground": "#bfc7d5", + "editorSuggestWidget.highlightForeground": "#ffffff", + "editorSuggestWidget.selectedBackground": "#7e57c2", + "editorHoverWidget.background": "#292D3E", + "editorHoverWidget.border": "#7e57c2", + "debugExceptionWidget.background": "#292D3E", + "debugExceptionWidget.border": "#7e57c2", + "editorMarkerNavigation.background": "#31364a", + "editorMarkerNavigationError.background": "#EF5350", + "editorMarkerNavigationWarning.background": "#FFCA28", + "peekView.border": "#7e57c2", + "peekViewEditor.background": "#232635", + "peekViewEditor.matchHighlightBackground": "#7e57c25a", + "peekViewResult.background": "#2E3245", + "peekViewResult.fileForeground": "#eeffff", + "peekViewResult.lineForeground": "#eeffff", + "peekViewResult.matchHighlightBackground": "#7e57c25a", + "peekViewResult.selectionBackground": "#2E3250", + "peekViewResult.selectionForeground": "#eeffff", + "peekViewTitle.background": "#292D3E", + "peekViewTitleDescription.foreground": "#697098", + "peekViewTitleLabel.foreground": "#eeffff", + "merge.currentHeaderBackground": "#7e57c25a", + "merge.currentContentBackground": null, + "merge.incomingHeaderBackground": "#7e57c25a", + "merge.incomingContentBackground": null, + "merge.border": null, + "panel.background": "#25293A", + "panel.border": "#2C2F40", + "panelTitle.activeBorder": "#7e57c2", + "panelTitle.activeForeground": "#eeffff", + "panelTitle.inactiveForeground": "#bfc7d580", + "statusBar.background": "#25293A", + "statusBar.foreground": "#676E95", + "statusBar.border": "#2C3041", + "statusBar.debuggingBackground": "#202431", + "statusBar.debuggingForeground": null, + "statusBar.debuggingBorder": "#1F2330", + "statusBar.noFolderForeground": null, + "statusBar.noFolderBackground": "#292D3E", + "statusBar.noFolderBorder": "#25293A", + "statusBarItem.activeBackground": "#202431", + "statusBarItem.hoverBackground": "#202431", + "statusBarItem.prominentBackground": "#202431", + "statusBarItem.prominentHoverBackground": "#202431", + "titleBar.activeBackground": "#25293A", + "titleBar.activeForeground": "#eeefff", + "titleBar.border": "#2C3041", + "titleBar.inactiveBackground": "#30364c", + "titleBar.inactiveForeground": null, + "notifications.background": "#292D3E", + "notifications.foreground": "#ffffffcc", + "notificationLink.foreground": "#80CBC4", + "extensionButton.prominentForeground": "#ffffffcc", + "extensionButton.prominentBackground": "#7e57c2cc", + "extensionButton.prominentHoverBackground": "#7e57c2", + "pickerGroup.foreground": "#d1aaff", + "pickerGroup.border": "#2E3245", + "terminal.ansiWhite": "#ffffff", + "terminal.ansiBlack": "#676E95", + "terminal.ansiBlue": "#82AAFF", + "terminal.ansiCyan": "#89DDFF", + "terminal.ansiGreen": "#a9c77d", + "terminal.ansiMagenta": "#C792EA", + "terminal.ansiRed": "#ff5572", + "terminal.ansiYellow": "#FFCB6B", + "terminal.ansiBrightWhite": "#ffffff", + "terminal.ansiBrightBlack": "#676E95", + "terminal.ansiBrightBlue": "#82AAFF", + "terminal.ansiBrightCyan": "#89DDFF", + "terminal.ansiBrightGreen": "#C3E88D", + "terminal.ansiBrightMagenta": "#C792EA", + "terminal.ansiBrightRed": "#ff5572", + "terminal.ansiBrightYellow": "#FFCB6B", + "debugToolBar.background": "#292D3E", + "welcomePage.buttonBackground": null, + "welcomePage.buttonHoverBackground": null, + "walkThrough.embeddedEditorBackground": "#232635", + "gitDecoration.modifiedResourceForeground": "#e2c08de6", + "gitDecoration.deletedResourceForeground": "#EF535090", + "gitDecoration.untrackedResourceForeground": "#a9c77dff", + "gitDecoration.ignoredResourceForeground": "#69709890", + "gitDecoration.conflictingResourceForeground": "#FFEB95CC", + "editorActiveLineNumber.foreground": "#eeffff", + "breadcrumb.foreground": "#6c739a", + "breadcrumb.focusForeground": "#bfc7d5", + "breadcrumb.activeSelectionForeground": "#eeffff", + "breadcrumbPicker.background": "#292D3E" + }, + "tokenColors": [ + { + "name": "Global settings", + "settings": { + "background": "#292D3E", + "foreground": "#bfc7d5" + } + }, + { + "name": "Comment", + "scope": "comment", + "settings": { + "foreground": "#697098", + "fontStyle": "italic" + } + }, + { + "name": "String", + "scope": "string", + "settings": { + "foreground": "#C3E88D" + } + }, + { + "name": "String Quoted", + "scope": "string.quoted", + "settings": { + "foreground": "#C3E88D" + } + }, + { + "name": "String Unquoted", + "scope": "string.unquoted", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Support Constant Math", + "scope": "support.constant.math", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Number", + "scope": ["constant.numeric", "constant.character.numeric"], + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Built-in constant", + "scope": [ + "constant.language", + "punctuation.definition.constant", + "variable.other.constant" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "User-defined constant", + "scope": ["constant.character", "constant.other"], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Constant Character Escape", + "scope": "constant.character.escape", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "RegExp String", + "scope": ["string.regexp", "string.regexp keyword.other"], + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "Comma in functions", + "scope": "meta.function punctuation.separator.comma", + "settings": { + "foreground": "#eeffff" + } + }, + { + "name": "Variable", + "scope": "variable", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Keyword", + "scope": ["punctuation.accessor", "keyword"], + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Storage", + "scope": [ + "storage", + "storage.type", + "meta.var.expr storage.type", + "storage.type.property.js", + "storage.type.property.ts", + "storage.type.property.tsx", + "meta.class meta.method.declaration meta.var.expr storage.type.js" + ], + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Class name", + "scope": ["entity.name.class", "meta.class entity.name.type.class"], + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Inherited class", + "scope": "entity.other.inherited-class", + "settings": { + "foreground": "#a9c77d" + } + }, + { + "name": "Function name", + "scope": "entity.name.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Function Parameters", + "scope": "variable.parameter", + "settings": { + "foreground": "#7986E7" + } + }, + { + "name": "Meta Tag", + "scope": ["punctuation.definition.tag", "meta.tag"], + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "HTML Tag names", + "scope": [ + "entity.name.tag support.class.component", + "meta.tag.other.html", + "meta.tag.other.js", + "meta.tag.other.tsx", + "entity.name.tag.tsx", + "entity.name.tag.js", + "entity.name.tag", + "meta.tag.js", + "meta.tag.tsx", + "meta.tag.html" + ], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Tag attribute", + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Entity Name Tag Custom", + "scope": "entity.name.tag.custom", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Library (function & constant)", + "scope": ["support.function", "support.constant"], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Support Constant Property Value meta", + "scope": "support.constant.meta.property-value", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Library class/type", + "scope": ["support.type", "support.class"], + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Support Variable DOM", + "scope": "support.variable.dom", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Invalid", + "scope": "invalid", + "settings": { + "background": "#ff2c83", + "foreground": "#ffffff" + } + }, + { + "name": "Invalid deprecated", + "scope": "invalid.deprecated", + "settings": { + "foreground": "#ffffff", + "background": "#d3423e" + } + }, + { + "name": "Keyword Operator", + "scope": "keyword.operator", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Keyword Operator Relational", + "scope": "keyword.operator.relational", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Keyword Operator Assignment", + "scope": "keyword.operator.assignment", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Double-Slashed Comment", + "scope": "comment.line.double-slash", + "settings": { + "foreground": "#697098" + } + }, + { + "name": "Object", + "scope": "object", + "settings": { + "foreground": "#cdebf7" + } + }, + { + "name": "Null", + "scope": "constant.language.null", + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "Meta Brace", + "scope": "meta.brace", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Meta Delimiter Period", + "scope": "meta.delimiter.period", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Punctuation Definition String", + "scope": "punctuation.definition.string", + "settings": { + "foreground": "#d9f5dd" + } + }, + { + "name": "Boolean", + "scope": "constant.language.boolean", + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "Object Comma", + "scope": "object.comma", + "settings": { + "foreground": "#ffffff" + } + }, + { + "name": "Variable Parameter Function", + "scope": "variable.parameter.function", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Support Type Property Name & entity name tags", + "scope": [ + "support.type.vendored.property-name", + "support.constant.vendored.property-value", + "support.type.property-name", + "meta.property-list entity.name.tag" + ], + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "Entity Name tag reference in stylesheets", + "scope": "meta.property-list entity.name.tag.reference", + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Constant Other Color RGB Value Punctuation Definition Constant", + "scope": "constant.other.color.rgb-value punctuation.definition.constant", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Constant Other Color", + "scope": "constant.other.color", + "settings": { + "foreground": "#FFEB95" + } + }, + { + "name": "Keyword Other Unit", + "scope": "keyword.other.unit", + "settings": { + "foreground": "#FFEB95" + } + }, + { + "name": "Meta Selector", + "scope": "meta.selector", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Entity Other Attribute Name Id", + "scope": "entity.other.attribute-name.id", + "settings": { + "foreground": "#FAD430" + } + }, + { + "name": "Meta Property Name", + "scope": "meta.property-name", + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "Doctypes", + "scope": ["entity.name.tag.doctype", "meta.tag.sgml.doctype"], + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Punctuation Definition Parameters", + "scope": "punctuation.definition.parameters", + "settings": { + "foreground": "#d9f5dd" + } + }, + { + "name": "Keyword Control Operator", + "scope": "keyword.control.operator", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Keyword Operator Logical", + "scope": "keyword.operator.logical", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Variable Instances", + "scope": [ + "variable.instance", + "variable.other.instance", + "variable.reaedwrite.instance", + "variable.other.readwrite.instance" + ], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Variable Property Other", + "scope": ["variable.other.property", "variable.other.object.property"], + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Entity Name Function", + "scope": "entity.name.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Keyword Operator Comparison", + "scope": "keyword.operator.comparison", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Support Constant, `new` keyword, Special Method Keyword", + "scope": [ + "support.constant", + "keyword.other.special-method", + "keyword.other.new" + ], + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Support Function", + "scope": "support.function", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Invalid Broken", + "scope": "invalid.broken", + "settings": { + "foreground": "#020e14", + "background": "#F78C6C" + } + }, + { + "name": "Invalid Unimplemented", + "scope": "invalid.unimplemented", + "settings": { + "background": "#8BD649", + "foreground": "#ffffff" + } + }, + { + "name": "Invalid Illegal", + "scope": "invalid.illegal", + "settings": { + "foreground": "#ffffff", + "background": "#ec5f67" + } + }, + { + "name": "Language Variable", + "scope": "variable.language", + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Support Variable Property", + "scope": "support.variable.property", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Variable Function", + "scope": "variable.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Variable Interpolation", + "scope": "variable.interpolation", + "settings": { + "foreground": "#ec5f67" + } + }, + { + "name": "Meta Function Call", + "scope": "meta.function-call", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Punctuation Section Embedded", + "scope": "punctuation.section.embedded", + "settings": { + "foreground": "#d3423e" + } + }, + { + "name": "Punctuation Tweaks", + "scope": [ + "punctuation.terminator.expression", + "punctuation.definition.arguments", + "punctuation.definition.array", + "punctuation.section.array", + "meta.array" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "More Punctuation Tweaks", + "scope": [ + "punctuation.definition.list.begin", + "punctuation.definition.list.end", + "punctuation.separator.arguments", + "punctuation.definition.list" + ], + "settings": { + "foreground": "#d9f5dd" + } + }, + { + "name": "Template Strings", + "scope": "string.template meta.template.expression", + "settings": { + "foreground": "#d3423e" + } + }, + { + "name": "Backtics(``) in Template Strings", + "scope": "string.template punctuation.definition.string", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Italics", + "scope": "italic", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Bold", + "scope": "bold", + "settings": { + "foreground": "#ffcb6b", + "fontStyle": "bold" + } + }, + { + "name": "Quote", + "scope": "quote", + "settings": { + "foreground": "#697098", + "fontStyle": "italic" + } + }, + { + "name": "Raw Code", + "scope": "raw", + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "CoffeScript Variable Assignment", + "scope": "variable.assignment.coffee", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "CoffeScript Parameter Function", + "scope": "variable.parameter.function.coffee", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "CoffeeScript Assignments", + "scope": "variable.assignment.coffee", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "C# Readwrite Variables", + "scope": "variable.other.readwrite.cs", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "C# Classes & Storage types", + "scope": ["entity.name.type.class.cs", "storage.type.cs"], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "C# Namespaces", + "scope": "entity.name.type.namespace.cs", + "settings": { + "foreground": "#B2CCD6" + } + }, + { + "name": "Tag names in Stylesheets", + "scope": [ + "entity.name.tag.css", + "entity.name.tag.less", + "entity.name.tag.custom.css" + ], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Wildcard(*) selector in Stylesheets", + "scope": [ + "entity.name.tag.wildcard.css", + "entity.name.tag.wildcard.less", + "entity.name.tag.wildcard.scss", + "entity.name.tag.wildcard.sass" + ], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "(C|SC|SA|LE)SS property value unit", + "scope": [ + "keyword.other.unit.css", + "constant.length.units.css", + "keyword.other.unit.less", + "constant.length.units.less", + "keyword.other.unit.scss", + "constant.length.units.scss", + "keyword.other.unit.sass", + "constant.length.units.sass" + ], + "settings": { + "foreground": "#FFEB95" + } + }, + { + "name": "Attribute Name for CSS", + "scope": "meta.attribute-selector.css entity.other.attribute-name.attribute", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "punctuations in styled components", + "scope": [ + "source.js source.css meta.property-list", + "source.js source.css punctuation.section", + "source.js source.css punctuation.terminator.rule", + "source.js source.css punctuation.definition.entity.end.bracket", + "source.js source.css punctuation.definition.entity.begin.bracket", + "source.js source.css punctuation.separator.key-value", + "source.js source.css punctuation.definition.attribute-selector", + "source.js source.css meta.property-list", + "source.js source.css meta.property-list punctuation.separator.comma", + "source.ts source.css punctuation.section", + "source.ts source.css punctuation.terminator.rule", + "source.ts source.css punctuation.definition.entity.end.bracket", + "source.ts source.css punctuation.definition.entity.begin.bracket", + "source.ts source.css punctuation.separator.key-value", + "source.ts source.css punctuation.definition.attribute-selector", + "source.ts source.css meta.property-list", + "source.ts source.css meta.property-list punctuation.separator.comma" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Elixir Classes", + "scope": [ + "source.elixir support.type.elixir", + "source.elixir meta.module.elixir entity.name.class.elixir" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Elixir Functions", + "scope": "source.elixir entity.name.function", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Elixir Constants", + "scope": [ + "source.elixir constant.other.symbol.elixir", + "source.elixir constant.other.keywords.elixir" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Elixir String Punctuations", + "scope": "source.elixir punctuation.definition.string", + "settings": { + "foreground": "#a9c77d" + } + }, + { + "name": "Elixir", + "scope": [ + "source.elixir variable.other.readwrite.module.elixir", + "source.elixir variable.other.readwrite.module.elixir punctuation.definition.variable.elixir" + ], + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Elixir Binary Punctuations", + "scope": "source.elixir .punctuation.binary.elixir", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Go Function Calls", + "scope": "source.go meta.function-call.go", + "settings": { + "foreground": "#DDDDDD" + } + }, + { + "name": "GraphQL Variables", + "scope": "variable.qraphql", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "ID Attribute Name in HTML", + "scope": "entity.other.attribute-name.id.html", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "HTML Punctuation Definition Tag", + "scope": "punctuation.definition.tag.html", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "HTML Doctype", + "scope": "meta.tag.sgml.doctype.html", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "JavaScript Classes", + "scope": "meta.class entity.name.type.class.js", + "settings": { + "foreground": "#ffcb8b" + } + }, + { + "name": "JavaScript Method Declaration e.g. `constructor`", + "scope": "meta.method.declaration storage.type.js", + "settings": { + "foreground": "#82AAFF", + "fontStyle": "normal" + } + }, + { + "name": "JavaScript Terminator", + "scope": "terminator.js", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JavaScript Meta Punctuation Definition", + "scope": "meta.js punctuation.definition.js", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Entity Names in Code Documentations", + "scope": [ + "entity.name.type.instance.jsdoc", + "entity.name.type.instance.phpdoc" + ], + "settings": { + "foreground": "#eeffff" + } + }, + { + "name": "Other Variables in Code Documentations", + "scope": ["variable.other.jsdoc", "variable.other.phpdoc"], + "settings": { + "foreground": "#78ccf0" + } + }, + { + "name": "JavaScript module imports and exports", + "scope": [ + "variable.other.meta.import.js", + "meta.import.js variable.other", + "variable.other.meta.export.js", + "meta.export.js variable.other" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JavaScript Variable Parameter Function", + "scope": "variable.parameter.function.js", + "settings": { + "foreground": "#7986E7" + } + }, + { + "name": "JavaScript Variable Other ReadWrite", + "scope": "variable.other.readwrite.js", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Text nested in React tags", + "scope": [ + "meta.jsx.children", + "meta.jsx.children.js", + "meta.jsx.children.tsx" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JavaScript[React] Variable Other Object", + "scope": [ + "variable.other.object.js", + "variable.other.object.jsx", + "meta.object-literal.key.js", + "meta.object-literal.key.jsx", + "variable.object.property.js", + "variable.object.property.jsx" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JavaScript Variables", + "scope": ["variable.js", "variable.other.js"], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JavaScript Entity Name Type", + "scope": ["entity.name.type.js", "entity.name.type.module.js"], + "settings": { + "foreground": "#ffcb8b" + } + }, + { + "name": "JavaScript Support Classes", + "scope": "support.class.js", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JSON Property Names", + "scope": "support.type.property-name.json", + "settings": { + "foreground": "#C3E88D", + "fontStyle": "normal" + } + }, + { + "name": "JSON Support Constants", + "scope": "support.constant.json", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "JSON Property values (string)", + "scope": "meta.structure.dictionary.value.json string.quoted.double", + "settings": { + "foreground": "#80CBC4", + "fontStyle": "normal" + } + }, + { + "name": "Strings in JSON values", + "scope": "string.quoted.double.json punctuation.definition.string.json", + "settings": { + "foreground": "#80CBC4", + "fontStyle": "normal" + } + }, + { + "name": "Specific JSON Property values like null", + "scope": "meta.structure.dictionary.json meta.structure.dictionary.value constant.language", + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "Ruby Variables", + "scope": "variable.other.ruby", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Ruby Hashkeys", + "scope": "constant.language.symbol.hashkey.ruby", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "LESS Tag names", + "scope": "entity.name.tag.less", + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Attribute Name for LESS", + "scope": "meta.attribute-selector.less entity.other.attribute-name.attribute", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Markup Headings", + "scope": "markup.heading", + "settings": { + "foreground": "#82b1ff" + } + }, + { + "name": "Markup Italics", + "scope": "markup.italic", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Markup Bold", + "scope": "markup.bold", + "settings": { + "foreground": "#ffcb6b", + "fontStyle": "bold" + } + }, + { + "name": "Markup Quote + others", + "scope": "markup.quote", + "settings": { + "foreground": "#697098", + "fontStyle": "italic" + } + }, + { + "name": "Markup Raw Code + others", + "scope": "markup.inline.raw", + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "Markup Links", + "scope": ["markup.underline.link", "markup.underline.link.image"], + "settings": { + "foreground": "#ff869a" + } + }, + { + "name": "Markup Attributes", + "scope": ["markup.meta.attribute-list"], + "settings": { + "foreground": "#a9c77d" + } + }, + { + "name": "Markup Admonitions", + "scope": "markup.admonition", + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "Markup Lists", + "scope": "markup.list.bullet", + "settings": { + "foreground": "#D9F5DD" + } + }, + { + "name": "Markup Superscript and Subscript", + "scope": ["markup.superscript", "markup.subscript"], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "Markdown Link Title and Description", + "scope": [ + "string.other.link.title.markdown", + "string.other.link.description.markdown" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Markdown Punctuation", + "scope": [ + "punctuation.definition.string.markdown", + "punctuation.definition.string.begin.markdown", + "punctuation.definition.string.end.markdown", + "meta.link.inline.markdown punctuation.definition.string" + ], + "settings": { + "foreground": "#82b1ff" + } + }, + { + "name": "Markdown MetaData Punctuation", + "scope": ["punctuation.definition.metadata.markdown"], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Markdown List Punctuation", + "scope": ["beginning.punctuation.definition.list.markdown"], + "settings": { + "foreground": "#82b1ff" + } + }, + { + "name": "Asciidoc Function", + "scope": "entity.name.function.asciidoc", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "PHP Variables", + "scope": "variable.other.php", + "settings": { + "foreground": "#bec5d4" + } + }, + { + "name": "Support Classes in PHP", + "scope": "support.class.php", + "settings": { + "foreground": "#ffcb8b" + } + }, + { + "name": "Punctuations in PHP function calls", + "scope": "meta.function-call.php punctuation", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "PHP Global Variables", + "scope": "variable.other.global.php", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Declaration Punctuation in PHP Global Variables", + "scope": "variable.other.global.php punctuation.definition.variable", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Language Constants in Python", + "scope": "constant.language.python", + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "Python Function Parameter and Arguments", + "scope": [ + "variable.parameter.function.python", + "meta.function-call.arguments.python" + ], + "settings": { + "foreground": "#7986E7" + } + }, + { + "name": "Python Function Call", + "scope": [ + "meta.function-call.python", + "meta.function-call.generic.python" + ], + "settings": { + "foreground": "#B2CCD6" + } + }, + { + "name": "Punctuations in Python", + "scope": "punctuation.python", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Decorator Functions in Python", + "scope": "entity.name.function.decorator.python", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Python Language Variable", + "scope": "source.python variable.language.special", + "settings": { + "foreground": "#8EACE3" + } + }, + { + "name": "SCSS Variable", + "scope": [ + "variable.scss", + "variable.sass", + "variable.parameter.url.scss", + "variable.parameter.url.sass" + ], + "settings": { + "foreground": "#DDDDDD" + } + }, + { + "name": "Variables in SASS At-Rules", + "scope": [ + "source.css.scss meta.at-rule variable", + "source.css.sass meta.at-rule variable" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Variables in SASS At-Rules", + "scope": [ + "source.css.scss meta.at-rule variable", + "source.css.sass meta.at-rule variable" + ], + "settings": { + "foreground": "#bec5d4" + } + }, + { + "name": "Attribute Name for SASS", + "scope": [ + "meta.attribute-selector.scss entity.other.attribute-name.attribute", + "meta.attribute-selector.sass entity.other.attribute-name.attribute" + ], + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Tag names in SASS", + "scope": ["entity.name.tag.scss", "entity.name.tag.sass"], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "TypeScript[React] Variables and Object Properties", + "scope": [ + "variable.other.readwrite.alias.ts", + "variable.other.readwrite.alias.tsx", + "variable.other.readwrite.ts", + "variable.other.readwrite.tsx", + "variable.other.object.ts", + "variable.other.object.tsx", + "variable.object.property.ts", + "variable.object.property.tsx", + "variable.other.ts", + "variable.other.tsx", + "variable.tsx", + "variable.ts" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "TypeScript[React] Entity Name Types", + "scope": ["entity.name.type.ts", "entity.name.type.tsx"], + "settings": { + "foreground": "#78ccf0" + } + }, + { + "name": "TypeScript[React] Node Classes", + "scope": ["support.class.node.ts", "support.class.node.tsx"], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "TypeScript[React] Entity Name Types as Parameters", + "scope": [ + "meta.type.parameters.ts entity.name.type", + "meta.type.parameters.tsx entity.name.type" + ], + "settings": { + "foreground": "#eeffff" + } + }, + { + "name": "TypeScript[React] Import/Export Punctuations", + "scope": [ + "meta.import.ts punctuation.definition.block", + "meta.import.tsx punctuation.definition.block", + "meta.export.ts punctuation.definition.block", + "meta.export.tsx punctuation.definition.block" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "TypeScript[React] Punctuation Decorators", + "scope": [ + "meta.decorator punctuation.decorator.ts", + "meta.decorator punctuation.decorator.tsx" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "TypeScript[React] Punctuation Decorators", + "scope": "meta.tag.js meta.jsx.children.tsx", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "YAML Entity Name Tags", + "scope": "entity.name.tag.yaml", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "handlebars variables", + "scope": "variable.parameter.handlebars", + "settings": { + "foreground": "#bec5d4" + } + }, + { + "name": "handlebars parameters", + "scope": "entity.other.attribute-name.handlebars variable.parameter.handlebars", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "handlebars enitity attribute names", + "scope": "entity.other.attribute-name.handlebars", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "handlebars enitity attribute values", + "scope": "entity.other.attribute-value.handlebars variable.parameter.handlebars", + "settings": { + "foreground": "#7986E7" + } + }, + { + "name": "normalize font style of certain components", + "scope": [ + "meta.tag.js meta.embedded.expression.js punctuation.section.embedded.begin.js", + "meta.tag.js meta.embedded.expression.js punctuation.section.embedded.end.js", + "meta.property-list.css meta.property-value.css variable.other.less", + "punctuation.section.embedded.begin.js.jsx", + "punctuation.section.embedded.end.js.jsx", + "meta.property-list.scss variable.scss", + "meta.property-list.sass variable.sass", + "keyword.operator.logical", + "keyword.operator.arithmetic", + "keyword.operator.bitwise", + "keyword.operator.increment", + "keyword.operator.ternary", + "keyword.operator.comparison", + "keyword.operator.assignment", + "keyword.operator.operator", + "keyword.operator.or.regexp", + "keyword.operator.expression.in", + "keyword.operator.type", + "punctuation.section.embedded.js", + "punctuation.definintion.string", + "punctuation" + ], + "settings": { + "fontStyle": "normal" + } + } + ] +} diff --git a/assets/themes/src/vscode/palenight/palenight-operator.json b/assets/themes/src/vscode/palenight/palenight-operator.json index 92104cd9edf493785961407824aa5e372eb9d6e7..450d36cb9ae1233086847429ec795d5ff8e41a9f 100644 --- a/assets/themes/src/vscode/palenight/palenight-operator.json +++ b/assets/themes/src/vscode/palenight/palenight-operator.json @@ -1,1640 +1,1640 @@ -{ - "name": "Palenight Operator", - "author": "Olaolu Olawuyi", - "maintainers": ["Olaolu Olawuyi "], - "type": "dark", - "semanticClass": "palenight-operator", - "colors": { - "contrastActiveBorder": null, - "contrastBorder": "#282B3C", - "focusBorder": "#282B3C", - "foreground": "#ffffff", - "widget.shadow": "#232635", - "selection.background": "#7580B850", - "descriptionForeground": null, - "errorForeground": "#EF5350", - "button.background": "#7e57c2cc", - "button.foreground": "#ffffffcc", - "button.hoverBackground": "#7e57c2", - "dropdown.background": "#292D3E", - "dropdown.border": "#7e57c2", - "dropdown.foreground": "#ffffffcc", - "input.background": "#313850", - "input.border": "#7e57c2", - "input.foreground": "#ffffffcc", - "input.placeholderForeground": "#ffffffcc", - "inputOption.activeBorder": "#ffffffcc", - "inputValidation.errorBackground": "#ef5350f2", - "inputValidation.errorBorder": "#EF5350", - "inputValidation.infoBackground": "#64b5f6f2", - "inputValidation.infoBorder": "#64B5F6", - "inputValidation.warningBackground": "#ffca28f2", - "inputValidation.warningBorder": "#FFCA28", - "scrollbar.shadow": "#292D3E00", - "scrollbarSlider.activeBackground": "#694CA4cc", - "scrollbarSlider.background": "#694CA466", - "scrollbarSlider.hoverBackground": "#694CA4cc", - "badge.background": "#7e57c2", - "badge.foreground": "#ffffff", - "progress.background": "#7e57c2", - "list.activeSelectionBackground": "#7e57c2", - "list.activeSelectionForeground": "#ffffff", - "list.dropBackground": "#2E3245", - "list.focusBackground": "#0000002e", - "list.focusForeground": "#ffffff", - "list.highlightForeground": "#ffffff", - "list.hoverBackground": "#0000001a", - "list.hoverForeground": "#ffffff", - "list.inactiveSelectionBackground": "#929ac90d", - "list.inactiveSelectionForeground": "#929ac9", - "activityBar.background": "#282C3D", - "activityBar.dropBackground": "#7e57c2e3", - "activityBar.foreground": "#eeffff", - "activityBar.border": "#282C3D", - "activityBarBadge.background": "#7e57c2", - "activityBarBadge.foreground": "#ffffff", - "sideBar.background": "#292D3E", - "sideBar.foreground": "#6C739A", - "sideBar.border": "#282B3C", - "sideBarTitle.foreground": "#eeffff", - "sideBarSectionHeader.background": "#292D3E", - "sideBarSectionHeader.foreground": "#eeffff", - "editorGroup.background": "#32374C", - "editorGroup.border": "#2E3245", - "editorGroup.dropBackground": "#7e57c273", - "editorGroupHeader.noTabsBackground": "#32374C", - "editorGroupHeader.tabsBackground": "#31364a", - "editorGroupHeader.tabsBorder": "#262A39", - "tab.activeBackground": "#292D3E", - "tab.activeForeground": "#eeffff", - "tab.border": "#272B3B", - "tab.activeBorder": "#262A39", - "tab.unfocusedActiveBorder": "#262A39", - "tab.inactiveBackground": "#31364A", - "tab.inactiveForeground": "#929ac9", - "tab.unfocusedActiveForeground": null, - "tab.unfocusedInactiveForeground": null, - "editor.background": "#292D3E", - "editor.foreground": "#BFC7D5", - "editorLineNumber.foreground": "#4c5374", - "editorLineNumber.activeForeground": "#eeffff", - "editorCursor.foreground": "#7e57c2", - "editorCursor.background": null, - "editor.selectionBackground": "#7580B850", - "editor.selectionHighlightBackground": "#383D51", - "editor.inactiveSelectionBackground": "#7e57c25a", - "editor.wordHighlightBackground": "#32374D", - "editor.wordHighlightStrongBackground": "#2E3250", - "editor.findMatchBackground": "#2e3248fc", - "editor.findMatchHighlightBackground": "#7e57c233", - "editor.findRangeHighlightBackground": null, - "editor.hoverHighlightBackground": "#7e57c25a", - "editor.lineHighlightBackground": "#0003", - "editor.lineHighlightBorder": null, - "editorLink.activeForeground": null, - "editor.rangeHighlightBackground": "#7e57c25a", - "editorWhitespace.foreground": null, - "editorIndentGuide.background": "#4E557980", - "editorRuler.foreground": "#4E557980", - "editorCodeLens.foreground": "#FFCA28", - "editorBracketMatch.background": null, - "editorBracketMatch.border": null, - "editorOverviewRuler.currentContentForeground": "#7e57c2", - "editorOverviewRuler.incomingContentForeground": "#7e57c2", - "editorOverviewRuler.commonContentForeground": "#7e57c2", - "editorError.foreground": "#EF5350", - "editorError.border": null, - "editorWarning.foreground": "#FFCA28", - "editorWarning.border": null, - "editorGutter.background": null, - "editorGutter.modifiedBackground": "#e2b93d", - "editorGutter.addedBackground": "#9CCC65", - "editorGutter.deletedBackground": "#EF5350", - "diffEditor.insertedTextBackground": "#99b76d23", - "diffEditor.removedTextBackground": "#ef535033", - "editorWidget.background": "#31364a", - "editorWidget.border": null, - "editorSuggestWidget.background": "#2C3043", - "editorSuggestWidget.border": "#2B2F40", - "editorSuggestWidget.foreground": "#bfc7d5", - "editorSuggestWidget.highlightForeground": "#ffffff", - "editorSuggestWidget.selectedBackground": "#7e57c2", - "editorHoverWidget.background": "#292D3E", - "editorHoverWidget.border": "#7e57c2", - "debugExceptionWidget.background": "#292D3E", - "debugExceptionWidget.border": "#7e57c2", - "editorMarkerNavigation.background": "#31364a", - "editorMarkerNavigationError.background": "#EF5350", - "editorMarkerNavigationWarning.background": "#FFCA28", - "peekView.border": "#7e57c2", - "peekViewEditor.background": "#232635", - "peekViewEditor.matchHighlightBackground": "#7e57c25a", - "peekViewResult.background": "#2E3245", - "peekViewResult.fileForeground": "#eeffff", - "peekViewResult.lineForeground": "#eeffff", - "peekViewResult.matchHighlightBackground": "#7e57c25a", - "peekViewResult.selectionBackground": "#2E3250", - "peekViewResult.selectionForeground": "#eeffff", - "peekViewTitle.background": "#292D3E", - "peekViewTitleDescription.foreground": "#697098", - "peekViewTitleLabel.foreground": "#eeffff", - "merge.currentHeaderBackground": "#7e57c25a", - "merge.currentContentBackground": null, - "merge.incomingHeaderBackground": "#7e57c25a", - "merge.incomingContentBackground": null, - "merge.border": null, - "panel.background": "#292D3E", - "panel.border": "#282B3C", - "panelTitle.activeBorder": "#7e57c2", - "panelTitle.activeForeground": "#eeffff", - "panelTitle.inactiveForeground": "#bfc7d580", - "statusBar.background": "#282C3D", - "statusBar.foreground": "#676E95", - "statusBar.border": "#262A39", - "statusBar.debuggingBackground": "#202431", - "statusBar.debuggingForeground": null, - "statusBar.debuggingBorder": "#1F2330", - "statusBar.noFolderForeground": null, - "statusBar.noFolderBackground": "#292D3E", - "statusBar.noFolderBorder": "#25293A", - "statusBarItem.activeBackground": "#202431", - "statusBarItem.hoverBackground": "#202431", - "statusBarItem.prominentBackground": "#202431", - "statusBarItem.prominentHoverBackground": "#202431", - "titleBar.activeBackground": "#292d3e", - "titleBar.activeForeground": "#eeefff", - "titleBar.border": "#30364c", - "titleBar.inactiveBackground": "#30364c", - "titleBar.inactiveForeground": null, - "notifications.background": "#292D3E", - "notifications.foreground": "#ffffffcc", - "notificationLink.foreground": "#80CBC4", - "extensionButton.prominentForeground": "#ffffffcc", - "extensionButton.prominentBackground": "#7e57c2cc", - "extensionButton.prominentHoverBackground": "#7e57c2", - "pickerGroup.foreground": "#d1aaff", - "pickerGroup.border": "#2E3245", - "terminal.ansiWhite": "#ffffff", - "terminal.ansiBlack": "#676E95", - "terminal.ansiBlue": "#82AAFF", - "terminal.ansiCyan": "#89DDFF", - "terminal.ansiGreen": "#a9c77d", - "terminal.ansiMagenta": "#C792EA", - "terminal.ansiRed": "#ff5572", - "terminal.ansiYellow": "#FFCB6B", - "terminal.ansiBrightWhite": "#ffffff", - "terminal.ansiBrightBlack": "#676E95", - "terminal.ansiBrightBlue": "#82AAFF", - "terminal.ansiBrightCyan": "#89DDFF", - "terminal.ansiBrightGreen": "#C3E88D", - "terminal.ansiBrightMagenta": "#C792EA", - "terminal.ansiBrightRed": "#ff5572", - "terminal.ansiBrightYellow": "#FFCB6B", - "debugToolBar.background": "#292D3E", - "welcomePage.buttonBackground": null, - "welcomePage.buttonHoverBackground": null, - "walkThrough.embeddedEditorBackground": "#232635", - "gitDecoration.modifiedResourceForeground": "#e2c08de6", - "gitDecoration.deletedResourceForeground": "#EF535090", - "gitDecoration.untrackedResourceForeground": "#a9c77dff", - "gitDecoration.ignoredResourceForeground": "#69709890", - "gitDecoration.conflictingResourceForeground": "#FFEB95CC", - "editorActiveLineNumber.foreground": "#eeffff", - "breadcrumb.foreground": "#6c739a", - "breadcrumb.focusForeground": "#bfc7d5", - "breadcrumb.activeSelectionForeground": "#eeffff", - "breadcrumbPicker.background": "#292D3E" - }, - "tokenColors": [ - { - "name": "Global settings", - "settings": { - "background": "#292D3E", - "foreground": "#bfc7d5" - } - }, - { - "name": "Comment", - "scope": "comment", - "settings": { - "foreground": "#697098", - "fontStyle": "italic" - } - }, - { - "name": "String", - "scope": "string", - "settings": { - "foreground": "#C3E88D" - } - }, - { - "name": "String Quoted", - "scope": "string.quoted", - "settings": { - "foreground": "#C3E88D" - } - }, - { - "name": "String Unquoted", - "scope": "string.unquoted", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "Support Constant Math", - "scope": "support.constant.math", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Number", - "scope": ["constant.numeric", "constant.character.numeric"], - "settings": { - "foreground": "#F78C6C" - } - }, - { - "name": "Built-in constant", - "scope": [ - "constant.language", - "punctuation.definition.constant", - "variable.other.constant" - ], - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "User-defined constant", - "scope": ["constant.character", "constant.other"], - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "Constant Character Escape", - "scope": "constant.character.escape", - "settings": { - "foreground": "#F78C6C" - } - }, - { - "name": "RegExp String", - "scope": ["string.regexp", "string.regexp keyword.other"], - "settings": { - "foreground": "#80CBC4" - } - }, - { - "name": "Comma in functions", - "scope": "meta.function punctuation.separator.comma", - "settings": { - "foreground": "#eeffff" - } - }, - { - "name": "Variable", - "scope": "variable", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Keyword", - "scope": ["punctuation.accessor", "keyword"], - "settings": { - "foreground": "#c792ea" - } - }, - { - "name": "Storage", - "scope": [ - "storage", - "storage.type", - "meta.var.expr storage.type", - "storage.type.property.js", - "storage.type.property.ts", - "storage.type.property.tsx", - "meta.class meta.method.declaration meta.var.expr storage.type.js" - ], - "settings": { - "foreground": "#c792ea" - } - }, - { - "name": "Class name", - "scope": ["entity.name.class", "meta.class entity.name.type.class"], - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Inherited class", - "scope": "entity.other.inherited-class", - "settings": { - "foreground": "#a9c77d" - } - }, - { - "name": "Function name", - "scope": "entity.name.function", - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "Function Parameters", - "scope": "variable.parameter", - "settings": { - "foreground": "#7986E7" - } - }, - { - "name": "Meta Tag", - "scope": ["punctuation.definition.tag", "meta.tag"], - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "HTML Tag names", - "scope": [ - "entity.name.tag support.class.component", - "meta.tag.other.html", - "meta.tag.other.js", - "meta.tag.other.tsx", - "entity.name.tag.tsx", - "entity.name.tag.js", - "entity.name.tag", - "meta.tag.js", - "meta.tag.tsx", - "meta.tag.html" - ], - "settings": { - "foreground": "#ff5572" - } - }, - { - "name": "Tag attribute", - "scope": "entity.other.attribute-name", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Entity Name Tag Custom", - "scope": "entity.name.tag.custom", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Library (function & constant)", - "scope": ["support.function", "support.constant"], - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "Support Constant Property Value meta", - "scope": "support.constant.meta.property-value", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "Library class/type", - "scope": ["support.type", "support.class"], - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Support Variable DOM", - "scope": "support.variable.dom", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Invalid", - "scope": "invalid", - "settings": { - "background": "#ff2c83", - "foreground": "#ffffff" - } - }, - { - "name": "Invalid deprecated", - "scope": "invalid.deprecated", - "settings": { - "foreground": "#ffffff", - "background": "#d3423e" - } - }, - { - "name": "Keyword Operator", - "scope": "keyword.operator", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "Keyword Operator Relational", - "scope": "keyword.operator.relational", - "settings": { - "foreground": "#c792ea" - } - }, - { - "name": "Keyword Operator Assignment", - "scope": "keyword.operator.assignment", - "settings": { - "foreground": "#c792ea" - } - }, - { - "name": "Double-Slashed Comment", - "scope": "comment.line.double-slash", - "settings": { - "foreground": "#697098" - } - }, - { - "name": "Object", - "scope": "object", - "settings": { - "foreground": "#cdebf7" - } - }, - { - "name": "Null", - "scope": "constant.language.null", - "settings": { - "foreground": "#ff5874" - } - }, - { - "name": "Meta Brace", - "scope": "meta.brace", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "Meta Delimiter Period", - "scope": "meta.delimiter.period", - "settings": { - "foreground": "#c792ea" - } - }, - { - "name": "Punctuation Definition String", - "scope": "punctuation.definition.string", - "settings": { - "foreground": "#d9f5dd" - } - }, - { - "name": "Boolean", - "scope": "constant.language.boolean", - "settings": { - "foreground": "#ff5874" - } - }, - { - "name": "Object Comma", - "scope": "object.comma", - "settings": { - "foreground": "#ffffff" - } - }, - { - "name": "Variable Parameter Function", - "scope": "variable.parameter.function", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "Support Type Property Name & entity name tags", - "scope": [ - "support.type.vendored.property-name", - "support.constant.vendored.property-value", - "support.type.property-name", - "meta.property-list entity.name.tag" - ], - "settings": { - "foreground": "#80CBC4" - } - }, - { - "name": "Entity Name tag reference in stylesheets", - "scope": "meta.property-list entity.name.tag.reference", - "settings": { - "foreground": "#ff5572" - } - }, - { - "name": "Constant Other Color RGB Value Punctuation Definition Constant", - "scope": "constant.other.color.rgb-value punctuation.definition.constant", - "settings": { - "foreground": "#F78C6C" - } - }, - { - "name": "Constant Other Color", - "scope": "constant.other.color", - "settings": { - "foreground": "#FFEB95" - } - }, - { - "name": "Keyword Other Unit", - "scope": "keyword.other.unit", - "settings": { - "foreground": "#FFEB95" - } - }, - { - "name": "Meta Selector", - "scope": "meta.selector", - "settings": { - "foreground": "#c792ea" - } - }, - { - "name": "Entity Other Attribute Name Id", - "scope": "entity.other.attribute-name.id", - "settings": { - "foreground": "#FAD430" - } - }, - { - "name": "Meta Property Name", - "scope": "meta.property-name", - "settings": { - "foreground": "#80CBC4" - } - }, - { - "name": "Doctypes", - "scope": ["entity.name.tag.doctype", "meta.tag.sgml.doctype"], - "settings": { - "foreground": "#c792ea", - "fontStyle": "italic" - } - }, - { - "name": "Punctuation Definition Parameters", - "scope": "punctuation.definition.parameters", - "settings": { - "foreground": "#d9f5dd" - } - }, - { - "name": "Keyword Control Operator", - "scope": "keyword.control.operator", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "Keyword Operator Logical", - "scope": "keyword.operator.logical", - "settings": { - "foreground": "#c792ea" - } - }, - { - "name": "Variable Instances", - "scope": [ - "variable.instance", - "variable.other.instance", - "variable.reaedwrite.instance", - "variable.other.readwrite.instance" - ], - "settings": { - "foreground": "#ff5572" - } - }, - { - "name": "Variable Property Other", - "scope": ["variable.other.property", "variable.other.object.property"], - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "Entity Name Function", - "scope": "entity.name.function", - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "Keyword Operator Comparison", - "scope": "keyword.operator.comparison", - "settings": { - "foreground": "#c792ea" - } - }, - { - "name": "Support Constant, `new` keyword, Special Method Keyword", - "scope": [ - "support.constant", - "keyword.other.special-method", - "keyword.other.new" - ], - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "Support Function", - "scope": "support.function", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "Invalid Broken", - "scope": "invalid.broken", - "settings": { - "foreground": "#020e14", - "background": "#F78C6C" - } - }, - { - "name": "Invalid Unimplemented", - "scope": "invalid.unimplemented", - "settings": { - "background": "#8BD649", - "foreground": "#ffffff" - } - }, - { - "name": "Invalid Illegal", - "scope": "invalid.illegal", - "settings": { - "foreground": "#ffffff", - "background": "#ec5f67" - } - }, - { - "name": "Language Variable", - "scope": "variable.language", - "settings": { - "foreground": "#ff5572" - } - }, - { - "name": "Support Variable Property", - "scope": "support.variable.property", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "Variable Function", - "scope": "variable.function", - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "Variable Interpolation", - "scope": "variable.interpolation", - "settings": { - "foreground": "#ec5f67" - } - }, - { - "name": "Meta Function Call", - "scope": "meta.function-call", - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "Punctuation Section Embedded", - "scope": "punctuation.section.embedded", - "settings": { - "foreground": "#d3423e" - } - }, - { - "name": "Punctuation Tweaks", - "scope": [ - "punctuation.terminator.expression", - "punctuation.definition.arguments", - "punctuation.definition.array", - "punctuation.section.array", - "meta.array" - ], - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "More Punctuation Tweaks", - "scope": [ - "punctuation.definition.list.begin", - "punctuation.definition.list.end", - "punctuation.separator.arguments", - "punctuation.definition.list" - ], - "settings": { - "foreground": "#d9f5dd" - } - }, - { - "name": "Template Strings", - "scope": "string.template meta.template.expression", - "settings": { - "foreground": "#d3423e" - } - }, - { - "name": "Backtics(``) in Template Strings", - "scope": "string.template punctuation.definition.string", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "Italics", - "scope": "italic", - "settings": { - "foreground": "#c792ea", - "fontStyle": "italic" - } - }, - { - "name": "Bold", - "scope": "bold", - "settings": { - "foreground": "#ffcb6b", - "fontStyle": "bold" - } - }, - { - "name": "Quote", - "scope": "quote", - "settings": { - "foreground": "#697098", - "fontStyle": "italic" - } - }, - { - "name": "Raw Code", - "scope": "raw", - "settings": { - "foreground": "#80CBC4" - } - }, - { - "name": "CoffeScript Variable Assignment", - "scope": "variable.assignment.coffee", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "CoffeScript Parameter Function", - "scope": "variable.parameter.function.coffee", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "CoffeeScript Assignments", - "scope": "variable.assignment.coffee", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "C# Readwrite Variables", - "scope": "variable.other.readwrite.cs", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "C# Classes & Storage types", - "scope": ["entity.name.type.class.cs", "storage.type.cs"], - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "C# Namespaces", - "scope": "entity.name.type.namespace.cs", - "settings": { - "foreground": "#B2CCD6" - } - }, - { - "name": "Tag names in Stylesheets", - "scope": [ - "entity.name.tag.css", - "entity.name.tag.less", - "entity.name.tag.custom.css" - ], - "settings": { - "foreground": "#ff5572" - } - }, - { - "name": "Wildcard(*) selector in Stylesheets", - "scope": [ - "entity.name.tag.wildcard.css", - "entity.name.tag.wildcard.less", - "entity.name.tag.wildcard.scss", - "entity.name.tag.wildcard.sass" - ], - "settings": { - "foreground": "#ff5572" - } - }, - { - "name": "(C|SC|SA|LE)SS property value unit", - "scope": [ - "keyword.other.unit.css", - "constant.length.units.css", - "keyword.other.unit.less", - "constant.length.units.less", - "keyword.other.unit.scss", - "constant.length.units.scss", - "keyword.other.unit.sass", - "constant.length.units.sass" - ], - "settings": { - "foreground": "#FFEB95" - } - }, - { - "name": "Attribute Name for CSS", - "scope": "meta.attribute-selector.css entity.other.attribute-name.attribute", - "settings": { - "foreground": "#F78C6C" - } - }, - { - "name": "punctuations in styled components", - "scope": [ - "source.js source.css meta.property-list", - "source.js source.css punctuation.section", - "source.js source.css punctuation.terminator.rule", - "source.js source.css punctuation.definition.entity.end.bracket", - "source.js source.css punctuation.definition.entity.begin.bracket", - "source.js source.css punctuation.separator.key-value", - "source.js source.css punctuation.definition.attribute-selector", - "source.js source.css meta.property-list", - "source.js source.css meta.property-list punctuation.separator.comma", - "source.ts source.css punctuation.section", - "source.ts source.css punctuation.terminator.rule", - "source.ts source.css punctuation.definition.entity.end.bracket", - "source.ts source.css punctuation.definition.entity.begin.bracket", - "source.ts source.css punctuation.separator.key-value", - "source.ts source.css punctuation.definition.attribute-selector", - "source.ts source.css meta.property-list", - "source.ts source.css meta.property-list punctuation.separator.comma" - ], - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "Elixir Classes", - "scope": [ - "source.elixir support.type.elixir", - "source.elixir meta.module.elixir entity.name.class.elixir" - ], - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "Elixir Functions", - "scope": "source.elixir entity.name.function", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Elixir Constants", - "scope": [ - "source.elixir constant.other.symbol.elixir", - "source.elixir constant.other.keywords.elixir" - ], - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "Elixir String Punctuations", - "scope": "source.elixir punctuation.definition.string", - "settings": { - "foreground": "#a9c77d" - } - }, - { - "name": "Elixir", - "scope": [ - "source.elixir variable.other.readwrite.module.elixir", - "source.elixir variable.other.readwrite.module.elixir punctuation.definition.variable.elixir" - ], - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Elixir Binary Punctuations", - "scope": "source.elixir .punctuation.binary.elixir", - "settings": { - "foreground": "#c792ea" - } - }, - { - "name": "Go Function Calls", - "scope": "source.go meta.function-call.go", - "settings": { - "foreground": "#DDDDDD" - } - }, - { - "name": "GraphQL Variables", - "scope": "variable.qraphql", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "ID Attribute Name in HTML", - "scope": "entity.other.attribute-name.id.html", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "HTML Punctuation Definition Tag", - "scope": "punctuation.definition.tag.html", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "HTML Doctype", - "scope": "meta.tag.sgml.doctype.html", - "settings": { - "foreground": "#c792ea", - "fontStyle": "italic" - } - }, - { - "name": "JavaScript Classes", - "scope": "meta.class entity.name.type.class.js", - "settings": { - "foreground": "#ffcb8b" - } - }, - { - "name": "JavaScript Method Declaration e.g. `constructor`", - "scope": "meta.method.declaration storage.type.js", - "settings": { - "foreground": "#82AAFF", - "fontStyle": "normal" - } - }, - { - "name": "JavaScript Terminator", - "scope": "terminator.js", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "JavaScript Meta Punctuation Definition", - "scope": "meta.js punctuation.definition.js", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "Entity Names in Code Documentations", - "scope": [ - "entity.name.type.instance.jsdoc", - "entity.name.type.instance.phpdoc" - ], - "settings": { - "foreground": "#eeffff" - } - }, - { - "name": "Other Variables in Code Documentations", - "scope": ["variable.other.jsdoc", "variable.other.phpdoc"], - "settings": { - "foreground": "#78ccf0" - } - }, - { - "name": "JavaScript module imports and exports", - "scope": [ - "variable.other.meta.import.js", - "meta.import.js variable.other", - "variable.other.meta.export.js", - "meta.export.js variable.other" - ], - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "JavaScript Variable Parameter Function", - "scope": "variable.parameter.function.js", - "settings": { - "foreground": "#7986E7" - } - }, - { - "name": "JavaScript Variable Other ReadWrite", - "scope": "variable.other.readwrite.js", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "Text nested in React tags", - "scope": [ - "meta.jsx.children", - "meta.jsx.children.js", - "meta.jsx.children.tsx" - ], - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "JavaScript[React] Variable Other Object", - "scope": [ - "variable.other.object.js", - "variable.other.object.jsx", - "meta.object-literal.key.js", - "meta.object-literal.key.jsx", - "variable.object.property.js", - "variable.object.property.jsx" - ], - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "JavaScript Variables", - "scope": ["variable.js", "variable.other.js"], - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "JavaScript Entity Name Type", - "scope": ["entity.name.type.js", "entity.name.type.module.js"], - "settings": { - "foreground": "#ffcb8b" - } - }, - { - "name": "JavaScript Support Classes", - "scope": "support.class.js", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "JSON Property Names", - "scope": "support.type.property-name.json", - "settings": { - "foreground": "#C3E88D", - "fontStyle": "normal" - } - }, - { - "name": "JSON Support Constants", - "scope": "support.constant.json", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "JSON Property values (string)", - "scope": "meta.structure.dictionary.value.json string.quoted.double", - "settings": { - "foreground": "#80CBC4", - "fontStyle": "normal" - } - }, - { - "name": "Strings in JSON values", - "scope": "string.quoted.double.json punctuation.definition.string.json", - "settings": { - "foreground": "#80CBC4", - "fontStyle": "normal" - } - }, - { - "name": "Specific JSON Property values like null", - "scope": "meta.structure.dictionary.json meta.structure.dictionary.value constant.language", - "settings": { - "foreground": "#ff5874" - } - }, - { - "name": "Ruby Variables", - "scope": "variable.other.ruby", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "Ruby Hashkeys", - "scope": "constant.language.symbol.hashkey.ruby", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "LESS Tag names", - "scope": "entity.name.tag.less", - "settings": { - "foreground": "#ff5572" - } - }, - { - "name": "Attribute Name for LESS", - "scope": "meta.attribute-selector.less entity.other.attribute-name.attribute", - "settings": { - "foreground": "#F78C6C" - } - }, - { - "name": "Markup Headings", - "scope": "markup.heading", - "settings": { - "foreground": "#82b1ff" - } - }, - { - "name": "Markup Italics", - "scope": "markup.italic", - "settings": { - "foreground": "#c792ea", - "fontStyle": "italic" - } - }, - { - "name": "Markup Bold", - "scope": "markup.bold", - "settings": { - "foreground": "#ffcb6b", - "fontStyle": "bold" - } - }, - { - "name": "Markup Quote + others", - "scope": "markup.quote", - "settings": { - "foreground": "#697098", - "fontStyle": "italic" - } - }, - { - "name": "Markup Raw Code + others", - "scope": "markup.inline.raw", - "settings": { - "foreground": "#80CBC4" - } - }, - { - "name": "Markup Links", - "scope": ["markup.underline.link", "markup.underline.link.image"], - "settings": { - "foreground": "#ff869a" - } - }, - { - "name": "Markup Attributes", - "scope": ["markup.meta.attribute-list"], - "settings": { - "foreground": "#a9c77d" - } - }, - { - "name": "Markup Admonitions", - "scope": "markup.admonition", - "settings": { - "fontStyle": "bold" - } - }, - { - "name": "Markup Lists", - "scope": "markup.list.bullet", - "settings": { - "foreground": "#D9F5DD" - } - }, - { - "name": "Markup Superscript and Subscript", - "scope": ["markup.superscript", "markup.subscript"], - "settings": { - "fontStyle": "italic" - } - }, - { - "name": "Markdown Link Title and Description", - "scope": [ - "string.other.link.title.markdown", - "string.other.link.description.markdown" - ], - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "Markdown Punctuation", - "scope": [ - "punctuation.definition.string.markdown", - "punctuation.definition.string.begin.markdown", - "punctuation.definition.string.end.markdown", - "meta.link.inline.markdown punctuation.definition.string" - ], - "settings": { - "foreground": "#82b1ff" - } - }, - { - "name": "Markdown MetaData Punctuation", - "scope": ["punctuation.definition.metadata.markdown"], - "settings": { - "foreground": "#ff5572" - } - }, - { - "name": "Markdown List Punctuation", - "scope": ["beginning.punctuation.definition.list.markdown"], - "settings": { - "foreground": "#82b1ff" - } - }, - { - "name": "Asciidoc Function", - "scope": "entity.name.function.asciidoc", - "settings": { - "foreground": "#F78C6C" - } - }, - { - "name": "PHP Variables", - "scope": "variable.other.php", - "settings": { - "foreground": "#bec5d4" - } - }, - { - "name": "Support Classes in PHP", - "scope": "support.class.php", - "settings": { - "foreground": "#ffcb8b" - } - }, - { - "name": "Punctuations in PHP function calls", - "scope": "meta.function-call.php punctuation", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "PHP Global Variables", - "scope": "variable.other.global.php", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Declaration Punctuation in PHP Global Variables", - "scope": "variable.other.global.php punctuation.definition.variable", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Language Constants in Python", - "scope": "constant.language.python", - "settings": { - "foreground": "#ff5874" - } - }, - { - "name": "Python Function Parameter and Arguments", - "scope": [ - "variable.parameter.function.python", - "meta.function-call.arguments.python" - ], - "settings": { - "foreground": "#7986E7" - } - }, - { - "name": "Python Function Call", - "scope": [ - "meta.function-call.python", - "meta.function-call.generic.python" - ], - "settings": { - "foreground": "#B2CCD6" - } - }, - { - "name": "Punctuations in Python", - "scope": "punctuation.python", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "Decorator Functions in Python", - "scope": "entity.name.function.decorator.python", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Python Language Variable", - "scope": "source.python variable.language.special", - "settings": { - "foreground": "#8EACE3" - } - }, - { - "name": "SCSS Variable", - "scope": [ - "variable.scss", - "variable.sass", - "variable.parameter.url.scss", - "variable.parameter.url.sass" - ], - "settings": { - "foreground": "#DDDDDD" - } - }, - { - "name": "Variables in SASS At-Rules", - "scope": [ - "source.css.scss meta.at-rule variable", - "source.css.sass meta.at-rule variable" - ], - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "Variables in SASS At-Rules", - "scope": [ - "source.css.scss meta.at-rule variable", - "source.css.sass meta.at-rule variable" - ], - "settings": { - "foreground": "#bec5d4" - } - }, - { - "name": "Attribute Name for SASS", - "scope": [ - "meta.attribute-selector.scss entity.other.attribute-name.attribute", - "meta.attribute-selector.sass entity.other.attribute-name.attribute" - ], - "settings": { - "foreground": "#F78C6C" - } - }, - { - "name": "Tag names in SASS", - "scope": ["entity.name.tag.scss", "entity.name.tag.sass"], - "settings": { - "foreground": "#ff5572" - } - }, - { - "name": "TypeScript[React] Variables and Object Properties", - "scope": [ - "variable.other.readwrite.alias.ts", - "variable.other.readwrite.alias.tsx", - "variable.other.readwrite.ts", - "variable.other.readwrite.tsx", - "variable.other.object.ts", - "variable.other.object.tsx", - "variable.object.property.ts", - "variable.object.property.tsx", - "variable.other.ts", - "variable.other.tsx", - "variable.tsx", - "variable.ts" - ], - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "TypeScript[React] Entity Name Types", - "scope": ["entity.name.type.ts", "entity.name.type.tsx"], - "settings": { - "foreground": "#78ccf0" - } - }, - { - "name": "TypeScript[React] Node Classes", - "scope": ["support.class.node.ts", "support.class.node.tsx"], - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "TypeScript[React] Entity Name Types as Parameters", - "scope": [ - "meta.type.parameters.ts entity.name.type", - "meta.type.parameters.tsx entity.name.type" - ], - "settings": { - "foreground": "#eeffff" - } - }, - { - "name": "TypeScript[React] Import/Export Punctuations", - "scope": [ - "meta.import.ts punctuation.definition.block", - "meta.import.tsx punctuation.definition.block", - "meta.export.ts punctuation.definition.block", - "meta.export.tsx punctuation.definition.block" - ], - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "TypeScript[React] Punctuation Decorators", - "scope": [ - "meta.decorator punctuation.decorator.ts", - "meta.decorator punctuation.decorator.tsx" - ], - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "TypeScript[React] Punctuation Decorators", - "scope": "meta.tag.js meta.jsx.children.tsx", - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "YAML Entity Name Tags", - "scope": "entity.name.tag.yaml", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "handlebars variables", - "scope": "variable.parameter.handlebars", - "settings": { - "foreground": "#bec5d4" - } - }, - { - "name": "handlebars parameters", - "scope": "entity.other.attribute-name.handlebars variable.parameter.handlebars", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "handlebars enitity attribute names", - "scope": "entity.other.attribute-name.handlebars", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "handlebars enitity attribute values", - "scope": "entity.other.attribute-value.handlebars variable.parameter.handlebars", - "settings": { - "foreground": "#7986E7" - } - }, - { - "name": "normalize font style of certain components", - "scope": [ - "meta.tag.js meta.embedded.expression.js punctuation.section.embedded.begin.js", - "meta.tag.js meta.embedded.expression.js punctuation.section.embedded.end.js", - "meta.property-list.css meta.property-value.css variable.other.less", - "punctuation.section.embedded.begin.js.jsx", - "punctuation.section.embedded.end.js.jsx", - "meta.property-list.scss variable.scss", - "meta.property-list.sass variable.sass", - "keyword.operator.logical", - "keyword.operator.arithmetic", - "keyword.operator.bitwise", - "keyword.operator.increment", - "keyword.operator.ternary", - "keyword.operator.comparison", - "keyword.operator.assignment", - "keyword.operator.operator", - "keyword.operator.or.regexp", - "keyword.operator.expression.in", - "keyword.operator.type", - "punctuation.section.embedded.js", - "punctuation.definintion.string", - "punctuation" - ], - "settings": { - "fontStyle": "normal" - } - }, - { - "name": "italicsify for operator mono", - "scope": [ - "keyword.other.unit", - "support.type.property-name.css", - "support.type.vendored.property-name.css", - "support.constant.vendored.property-value.css", - "meta.import.ts meta.block.ts variable.other.readwrite.alias.ts", - "meta.import.tsx meta.block.tsx variable.other.readwrite.alias.tsx", - "meta.import.js variable.other", - "meta.export.ts meta.block.ts variable.other.readwrite.alias.ts", - "meta.export.tsx meta.block.tsx variable.other.readwrite.alias.tsx", - "meta.export.js variable.other", - "entity.name.function.ts", - "entity.name.function.tsx", - "support.type.primitive", - "entity.name.tag.yaml", - "entity.other.attribute-name", - "meta.tag.sgml.doctype.html", - "entity.name.tag.doctype", - "meta.tag.sgml.doctype", - "entity.name.tag.custom", - "source.js.jsx keyword.control.flow.js", - "support.type.property.css", - "support.function.basic_functions", - "constant.other.color.rgb-value.hex.css", - "constant.other.rgb-value.css", - "variable.assignment.coffee", - "support.function.basic_functions", - "keyword.operator.expression.typeof", - "punctuation.section.embedded", - "keyword.operator.type.annotation", - "variable.object.property.ts", - "variable.object.property.js", - "variable.object.property.jsx", - "variable.object.property.tsx", - "assignment.coffee", - "entity.name.type.ts", - "support.constant.math", - "meta.object-literal.key", - "meta.var.expr storage.type", - "variable.scss", - "variable.sass", - "variable.other.less", - "variable.parameter.url.scss", - "variable.parameter.url.sass", - "parameter", - "string", - "italic", - "quote", - "keyword", - "storage", - "language", - "constant.language", - "variable.language", - "type .function", - "type.function", - "storage.type.class", - "type.var", - "meta.parameter", - "variable.parameter", - "meta.parameters", - "keyword.control", - "modifier", - "this", - "comment" - ], - "settings": { - "fontStyle": "italic" - } - } - ] -} +{ + "name": "Palenight Operator", + "author": "Olaolu Olawuyi", + "maintainers": ["Olaolu Olawuyi "], + "type": "dark", + "semanticClass": "palenight-operator", + "colors": { + "contrastActiveBorder": null, + "contrastBorder": "#282B3C", + "focusBorder": "#282B3C", + "foreground": "#ffffff", + "widget.shadow": "#232635", + "selection.background": "#7580B850", + "descriptionForeground": null, + "errorForeground": "#EF5350", + "button.background": "#7e57c2cc", + "button.foreground": "#ffffffcc", + "button.hoverBackground": "#7e57c2", + "dropdown.background": "#292D3E", + "dropdown.border": "#7e57c2", + "dropdown.foreground": "#ffffffcc", + "input.background": "#313850", + "input.border": "#7e57c2", + "input.foreground": "#ffffffcc", + "input.placeholderForeground": "#ffffffcc", + "inputOption.activeBorder": "#ffffffcc", + "inputValidation.errorBackground": "#ef5350f2", + "inputValidation.errorBorder": "#EF5350", + "inputValidation.infoBackground": "#64b5f6f2", + "inputValidation.infoBorder": "#64B5F6", + "inputValidation.warningBackground": "#ffca28f2", + "inputValidation.warningBorder": "#FFCA28", + "scrollbar.shadow": "#292D3E00", + "scrollbarSlider.activeBackground": "#694CA4cc", + "scrollbarSlider.background": "#694CA466", + "scrollbarSlider.hoverBackground": "#694CA4cc", + "badge.background": "#7e57c2", + "badge.foreground": "#ffffff", + "progress.background": "#7e57c2", + "list.activeSelectionBackground": "#7e57c2", + "list.activeSelectionForeground": "#ffffff", + "list.dropBackground": "#2E3245", + "list.focusBackground": "#0000002e", + "list.focusForeground": "#ffffff", + "list.highlightForeground": "#ffffff", + "list.hoverBackground": "#0000001a", + "list.hoverForeground": "#ffffff", + "list.inactiveSelectionBackground": "#929ac90d", + "list.inactiveSelectionForeground": "#929ac9", + "activityBar.background": "#282C3D", + "activityBar.dropBackground": "#7e57c2e3", + "activityBar.foreground": "#eeffff", + "activityBar.border": "#282C3D", + "activityBarBadge.background": "#7e57c2", + "activityBarBadge.foreground": "#ffffff", + "sideBar.background": "#292D3E", + "sideBar.foreground": "#6C739A", + "sideBar.border": "#282B3C", + "sideBarTitle.foreground": "#eeffff", + "sideBarSectionHeader.background": "#292D3E", + "sideBarSectionHeader.foreground": "#eeffff", + "editorGroup.background": "#32374C", + "editorGroup.border": "#2E3245", + "editorGroup.dropBackground": "#7e57c273", + "editorGroupHeader.noTabsBackground": "#32374C", + "editorGroupHeader.tabsBackground": "#31364a", + "editorGroupHeader.tabsBorder": "#262A39", + "tab.activeBackground": "#292D3E", + "tab.activeForeground": "#eeffff", + "tab.border": "#272B3B", + "tab.activeBorder": "#262A39", + "tab.unfocusedActiveBorder": "#262A39", + "tab.inactiveBackground": "#31364A", + "tab.inactiveForeground": "#929ac9", + "tab.unfocusedActiveForeground": null, + "tab.unfocusedInactiveForeground": null, + "editor.background": "#292D3E", + "editor.foreground": "#BFC7D5", + "editorLineNumber.foreground": "#4c5374", + "editorLineNumber.activeForeground": "#eeffff", + "editorCursor.foreground": "#7e57c2", + "editorCursor.background": null, + "editor.selectionBackground": "#7580B850", + "editor.selectionHighlightBackground": "#383D51", + "editor.inactiveSelectionBackground": "#7e57c25a", + "editor.wordHighlightBackground": "#32374D", + "editor.wordHighlightStrongBackground": "#2E3250", + "editor.findMatchBackground": "#2e3248fc", + "editor.findMatchHighlightBackground": "#7e57c233", + "editor.findRangeHighlightBackground": null, + "editor.hoverHighlightBackground": "#7e57c25a", + "editor.lineHighlightBackground": "#0003", + "editor.lineHighlightBorder": null, + "editorLink.activeForeground": null, + "editor.rangeHighlightBackground": "#7e57c25a", + "editorWhitespace.foreground": null, + "editorIndentGuide.background": "#4E557980", + "editorRuler.foreground": "#4E557980", + "editorCodeLens.foreground": "#FFCA28", + "editorBracketMatch.background": null, + "editorBracketMatch.border": null, + "editorOverviewRuler.currentContentForeground": "#7e57c2", + "editorOverviewRuler.incomingContentForeground": "#7e57c2", + "editorOverviewRuler.commonContentForeground": "#7e57c2", + "editorError.foreground": "#EF5350", + "editorError.border": null, + "editorWarning.foreground": "#FFCA28", + "editorWarning.border": null, + "editorGutter.background": null, + "editorGutter.modifiedBackground": "#e2b93d", + "editorGutter.addedBackground": "#9CCC65", + "editorGutter.deletedBackground": "#EF5350", + "diffEditor.insertedTextBackground": "#99b76d23", + "diffEditor.removedTextBackground": "#ef535033", + "editorWidget.background": "#31364a", + "editorWidget.border": null, + "editorSuggestWidget.background": "#2C3043", + "editorSuggestWidget.border": "#2B2F40", + "editorSuggestWidget.foreground": "#bfc7d5", + "editorSuggestWidget.highlightForeground": "#ffffff", + "editorSuggestWidget.selectedBackground": "#7e57c2", + "editorHoverWidget.background": "#292D3E", + "editorHoverWidget.border": "#7e57c2", + "debugExceptionWidget.background": "#292D3E", + "debugExceptionWidget.border": "#7e57c2", + "editorMarkerNavigation.background": "#31364a", + "editorMarkerNavigationError.background": "#EF5350", + "editorMarkerNavigationWarning.background": "#FFCA28", + "peekView.border": "#7e57c2", + "peekViewEditor.background": "#232635", + "peekViewEditor.matchHighlightBackground": "#7e57c25a", + "peekViewResult.background": "#2E3245", + "peekViewResult.fileForeground": "#eeffff", + "peekViewResult.lineForeground": "#eeffff", + "peekViewResult.matchHighlightBackground": "#7e57c25a", + "peekViewResult.selectionBackground": "#2E3250", + "peekViewResult.selectionForeground": "#eeffff", + "peekViewTitle.background": "#292D3E", + "peekViewTitleDescription.foreground": "#697098", + "peekViewTitleLabel.foreground": "#eeffff", + "merge.currentHeaderBackground": "#7e57c25a", + "merge.currentContentBackground": null, + "merge.incomingHeaderBackground": "#7e57c25a", + "merge.incomingContentBackground": null, + "merge.border": null, + "panel.background": "#292D3E", + "panel.border": "#282B3C", + "panelTitle.activeBorder": "#7e57c2", + "panelTitle.activeForeground": "#eeffff", + "panelTitle.inactiveForeground": "#bfc7d580", + "statusBar.background": "#282C3D", + "statusBar.foreground": "#676E95", + "statusBar.border": "#262A39", + "statusBar.debuggingBackground": "#202431", + "statusBar.debuggingForeground": null, + "statusBar.debuggingBorder": "#1F2330", + "statusBar.noFolderForeground": null, + "statusBar.noFolderBackground": "#292D3E", + "statusBar.noFolderBorder": "#25293A", + "statusBarItem.activeBackground": "#202431", + "statusBarItem.hoverBackground": "#202431", + "statusBarItem.prominentBackground": "#202431", + "statusBarItem.prominentHoverBackground": "#202431", + "titleBar.activeBackground": "#292d3e", + "titleBar.activeForeground": "#eeefff", + "titleBar.border": "#30364c", + "titleBar.inactiveBackground": "#30364c", + "titleBar.inactiveForeground": null, + "notifications.background": "#292D3E", + "notifications.foreground": "#ffffffcc", + "notificationLink.foreground": "#80CBC4", + "extensionButton.prominentForeground": "#ffffffcc", + "extensionButton.prominentBackground": "#7e57c2cc", + "extensionButton.prominentHoverBackground": "#7e57c2", + "pickerGroup.foreground": "#d1aaff", + "pickerGroup.border": "#2E3245", + "terminal.ansiWhite": "#ffffff", + "terminal.ansiBlack": "#676E95", + "terminal.ansiBlue": "#82AAFF", + "terminal.ansiCyan": "#89DDFF", + "terminal.ansiGreen": "#a9c77d", + "terminal.ansiMagenta": "#C792EA", + "terminal.ansiRed": "#ff5572", + "terminal.ansiYellow": "#FFCB6B", + "terminal.ansiBrightWhite": "#ffffff", + "terminal.ansiBrightBlack": "#676E95", + "terminal.ansiBrightBlue": "#82AAFF", + "terminal.ansiBrightCyan": "#89DDFF", + "terminal.ansiBrightGreen": "#C3E88D", + "terminal.ansiBrightMagenta": "#C792EA", + "terminal.ansiBrightRed": "#ff5572", + "terminal.ansiBrightYellow": "#FFCB6B", + "debugToolBar.background": "#292D3E", + "welcomePage.buttonBackground": null, + "welcomePage.buttonHoverBackground": null, + "walkThrough.embeddedEditorBackground": "#232635", + "gitDecoration.modifiedResourceForeground": "#e2c08de6", + "gitDecoration.deletedResourceForeground": "#EF535090", + "gitDecoration.untrackedResourceForeground": "#a9c77dff", + "gitDecoration.ignoredResourceForeground": "#69709890", + "gitDecoration.conflictingResourceForeground": "#FFEB95CC", + "editorActiveLineNumber.foreground": "#eeffff", + "breadcrumb.foreground": "#6c739a", + "breadcrumb.focusForeground": "#bfc7d5", + "breadcrumb.activeSelectionForeground": "#eeffff", + "breadcrumbPicker.background": "#292D3E" + }, + "tokenColors": [ + { + "name": "Global settings", + "settings": { + "background": "#292D3E", + "foreground": "#bfc7d5" + } + }, + { + "name": "Comment", + "scope": "comment", + "settings": { + "foreground": "#697098", + "fontStyle": "italic" + } + }, + { + "name": "String", + "scope": "string", + "settings": { + "foreground": "#C3E88D" + } + }, + { + "name": "String Quoted", + "scope": "string.quoted", + "settings": { + "foreground": "#C3E88D" + } + }, + { + "name": "String Unquoted", + "scope": "string.unquoted", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Support Constant Math", + "scope": "support.constant.math", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Number", + "scope": ["constant.numeric", "constant.character.numeric"], + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Built-in constant", + "scope": [ + "constant.language", + "punctuation.definition.constant", + "variable.other.constant" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "User-defined constant", + "scope": ["constant.character", "constant.other"], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Constant Character Escape", + "scope": "constant.character.escape", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "RegExp String", + "scope": ["string.regexp", "string.regexp keyword.other"], + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "Comma in functions", + "scope": "meta.function punctuation.separator.comma", + "settings": { + "foreground": "#eeffff" + } + }, + { + "name": "Variable", + "scope": "variable", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Keyword", + "scope": ["punctuation.accessor", "keyword"], + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Storage", + "scope": [ + "storage", + "storage.type", + "meta.var.expr storage.type", + "storage.type.property.js", + "storage.type.property.ts", + "storage.type.property.tsx", + "meta.class meta.method.declaration meta.var.expr storage.type.js" + ], + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Class name", + "scope": ["entity.name.class", "meta.class entity.name.type.class"], + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Inherited class", + "scope": "entity.other.inherited-class", + "settings": { + "foreground": "#a9c77d" + } + }, + { + "name": "Function name", + "scope": "entity.name.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Function Parameters", + "scope": "variable.parameter", + "settings": { + "foreground": "#7986E7" + } + }, + { + "name": "Meta Tag", + "scope": ["punctuation.definition.tag", "meta.tag"], + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "HTML Tag names", + "scope": [ + "entity.name.tag support.class.component", + "meta.tag.other.html", + "meta.tag.other.js", + "meta.tag.other.tsx", + "entity.name.tag.tsx", + "entity.name.tag.js", + "entity.name.tag", + "meta.tag.js", + "meta.tag.tsx", + "meta.tag.html" + ], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Tag attribute", + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Entity Name Tag Custom", + "scope": "entity.name.tag.custom", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Library (function & constant)", + "scope": ["support.function", "support.constant"], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Support Constant Property Value meta", + "scope": "support.constant.meta.property-value", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Library class/type", + "scope": ["support.type", "support.class"], + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Support Variable DOM", + "scope": "support.variable.dom", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Invalid", + "scope": "invalid", + "settings": { + "background": "#ff2c83", + "foreground": "#ffffff" + } + }, + { + "name": "Invalid deprecated", + "scope": "invalid.deprecated", + "settings": { + "foreground": "#ffffff", + "background": "#d3423e" + } + }, + { + "name": "Keyword Operator", + "scope": "keyword.operator", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Keyword Operator Relational", + "scope": "keyword.operator.relational", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Keyword Operator Assignment", + "scope": "keyword.operator.assignment", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Double-Slashed Comment", + "scope": "comment.line.double-slash", + "settings": { + "foreground": "#697098" + } + }, + { + "name": "Object", + "scope": "object", + "settings": { + "foreground": "#cdebf7" + } + }, + { + "name": "Null", + "scope": "constant.language.null", + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "Meta Brace", + "scope": "meta.brace", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Meta Delimiter Period", + "scope": "meta.delimiter.period", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Punctuation Definition String", + "scope": "punctuation.definition.string", + "settings": { + "foreground": "#d9f5dd" + } + }, + { + "name": "Boolean", + "scope": "constant.language.boolean", + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "Object Comma", + "scope": "object.comma", + "settings": { + "foreground": "#ffffff" + } + }, + { + "name": "Variable Parameter Function", + "scope": "variable.parameter.function", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Support Type Property Name & entity name tags", + "scope": [ + "support.type.vendored.property-name", + "support.constant.vendored.property-value", + "support.type.property-name", + "meta.property-list entity.name.tag" + ], + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "Entity Name tag reference in stylesheets", + "scope": "meta.property-list entity.name.tag.reference", + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Constant Other Color RGB Value Punctuation Definition Constant", + "scope": "constant.other.color.rgb-value punctuation.definition.constant", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Constant Other Color", + "scope": "constant.other.color", + "settings": { + "foreground": "#FFEB95" + } + }, + { + "name": "Keyword Other Unit", + "scope": "keyword.other.unit", + "settings": { + "foreground": "#FFEB95" + } + }, + { + "name": "Meta Selector", + "scope": "meta.selector", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Entity Other Attribute Name Id", + "scope": "entity.other.attribute-name.id", + "settings": { + "foreground": "#FAD430" + } + }, + { + "name": "Meta Property Name", + "scope": "meta.property-name", + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "Doctypes", + "scope": ["entity.name.tag.doctype", "meta.tag.sgml.doctype"], + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Punctuation Definition Parameters", + "scope": "punctuation.definition.parameters", + "settings": { + "foreground": "#d9f5dd" + } + }, + { + "name": "Keyword Control Operator", + "scope": "keyword.control.operator", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Keyword Operator Logical", + "scope": "keyword.operator.logical", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Variable Instances", + "scope": [ + "variable.instance", + "variable.other.instance", + "variable.reaedwrite.instance", + "variable.other.readwrite.instance" + ], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Variable Property Other", + "scope": ["variable.other.property", "variable.other.object.property"], + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Entity Name Function", + "scope": "entity.name.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Keyword Operator Comparison", + "scope": "keyword.operator.comparison", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Support Constant, `new` keyword, Special Method Keyword", + "scope": [ + "support.constant", + "keyword.other.special-method", + "keyword.other.new" + ], + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Support Function", + "scope": "support.function", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Invalid Broken", + "scope": "invalid.broken", + "settings": { + "foreground": "#020e14", + "background": "#F78C6C" + } + }, + { + "name": "Invalid Unimplemented", + "scope": "invalid.unimplemented", + "settings": { + "background": "#8BD649", + "foreground": "#ffffff" + } + }, + { + "name": "Invalid Illegal", + "scope": "invalid.illegal", + "settings": { + "foreground": "#ffffff", + "background": "#ec5f67" + } + }, + { + "name": "Language Variable", + "scope": "variable.language", + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Support Variable Property", + "scope": "support.variable.property", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Variable Function", + "scope": "variable.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Variable Interpolation", + "scope": "variable.interpolation", + "settings": { + "foreground": "#ec5f67" + } + }, + { + "name": "Meta Function Call", + "scope": "meta.function-call", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Punctuation Section Embedded", + "scope": "punctuation.section.embedded", + "settings": { + "foreground": "#d3423e" + } + }, + { + "name": "Punctuation Tweaks", + "scope": [ + "punctuation.terminator.expression", + "punctuation.definition.arguments", + "punctuation.definition.array", + "punctuation.section.array", + "meta.array" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "More Punctuation Tweaks", + "scope": [ + "punctuation.definition.list.begin", + "punctuation.definition.list.end", + "punctuation.separator.arguments", + "punctuation.definition.list" + ], + "settings": { + "foreground": "#d9f5dd" + } + }, + { + "name": "Template Strings", + "scope": "string.template meta.template.expression", + "settings": { + "foreground": "#d3423e" + } + }, + { + "name": "Backtics(``) in Template Strings", + "scope": "string.template punctuation.definition.string", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Italics", + "scope": "italic", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Bold", + "scope": "bold", + "settings": { + "foreground": "#ffcb6b", + "fontStyle": "bold" + } + }, + { + "name": "Quote", + "scope": "quote", + "settings": { + "foreground": "#697098", + "fontStyle": "italic" + } + }, + { + "name": "Raw Code", + "scope": "raw", + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "CoffeScript Variable Assignment", + "scope": "variable.assignment.coffee", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "CoffeScript Parameter Function", + "scope": "variable.parameter.function.coffee", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "CoffeeScript Assignments", + "scope": "variable.assignment.coffee", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "C# Readwrite Variables", + "scope": "variable.other.readwrite.cs", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "C# Classes & Storage types", + "scope": ["entity.name.type.class.cs", "storage.type.cs"], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "C# Namespaces", + "scope": "entity.name.type.namespace.cs", + "settings": { + "foreground": "#B2CCD6" + } + }, + { + "name": "Tag names in Stylesheets", + "scope": [ + "entity.name.tag.css", + "entity.name.tag.less", + "entity.name.tag.custom.css" + ], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Wildcard(*) selector in Stylesheets", + "scope": [ + "entity.name.tag.wildcard.css", + "entity.name.tag.wildcard.less", + "entity.name.tag.wildcard.scss", + "entity.name.tag.wildcard.sass" + ], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "(C|SC|SA|LE)SS property value unit", + "scope": [ + "keyword.other.unit.css", + "constant.length.units.css", + "keyword.other.unit.less", + "constant.length.units.less", + "keyword.other.unit.scss", + "constant.length.units.scss", + "keyword.other.unit.sass", + "constant.length.units.sass" + ], + "settings": { + "foreground": "#FFEB95" + } + }, + { + "name": "Attribute Name for CSS", + "scope": "meta.attribute-selector.css entity.other.attribute-name.attribute", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "punctuations in styled components", + "scope": [ + "source.js source.css meta.property-list", + "source.js source.css punctuation.section", + "source.js source.css punctuation.terminator.rule", + "source.js source.css punctuation.definition.entity.end.bracket", + "source.js source.css punctuation.definition.entity.begin.bracket", + "source.js source.css punctuation.separator.key-value", + "source.js source.css punctuation.definition.attribute-selector", + "source.js source.css meta.property-list", + "source.js source.css meta.property-list punctuation.separator.comma", + "source.ts source.css punctuation.section", + "source.ts source.css punctuation.terminator.rule", + "source.ts source.css punctuation.definition.entity.end.bracket", + "source.ts source.css punctuation.definition.entity.begin.bracket", + "source.ts source.css punctuation.separator.key-value", + "source.ts source.css punctuation.definition.attribute-selector", + "source.ts source.css meta.property-list", + "source.ts source.css meta.property-list punctuation.separator.comma" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Elixir Classes", + "scope": [ + "source.elixir support.type.elixir", + "source.elixir meta.module.elixir entity.name.class.elixir" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Elixir Functions", + "scope": "source.elixir entity.name.function", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Elixir Constants", + "scope": [ + "source.elixir constant.other.symbol.elixir", + "source.elixir constant.other.keywords.elixir" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Elixir String Punctuations", + "scope": "source.elixir punctuation.definition.string", + "settings": { + "foreground": "#a9c77d" + } + }, + { + "name": "Elixir", + "scope": [ + "source.elixir variable.other.readwrite.module.elixir", + "source.elixir variable.other.readwrite.module.elixir punctuation.definition.variable.elixir" + ], + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Elixir Binary Punctuations", + "scope": "source.elixir .punctuation.binary.elixir", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Go Function Calls", + "scope": "source.go meta.function-call.go", + "settings": { + "foreground": "#DDDDDD" + } + }, + { + "name": "GraphQL Variables", + "scope": "variable.qraphql", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "ID Attribute Name in HTML", + "scope": "entity.other.attribute-name.id.html", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "HTML Punctuation Definition Tag", + "scope": "punctuation.definition.tag.html", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "HTML Doctype", + "scope": "meta.tag.sgml.doctype.html", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "JavaScript Classes", + "scope": "meta.class entity.name.type.class.js", + "settings": { + "foreground": "#ffcb8b" + } + }, + { + "name": "JavaScript Method Declaration e.g. `constructor`", + "scope": "meta.method.declaration storage.type.js", + "settings": { + "foreground": "#82AAFF", + "fontStyle": "normal" + } + }, + { + "name": "JavaScript Terminator", + "scope": "terminator.js", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JavaScript Meta Punctuation Definition", + "scope": "meta.js punctuation.definition.js", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Entity Names in Code Documentations", + "scope": [ + "entity.name.type.instance.jsdoc", + "entity.name.type.instance.phpdoc" + ], + "settings": { + "foreground": "#eeffff" + } + }, + { + "name": "Other Variables in Code Documentations", + "scope": ["variable.other.jsdoc", "variable.other.phpdoc"], + "settings": { + "foreground": "#78ccf0" + } + }, + { + "name": "JavaScript module imports and exports", + "scope": [ + "variable.other.meta.import.js", + "meta.import.js variable.other", + "variable.other.meta.export.js", + "meta.export.js variable.other" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JavaScript Variable Parameter Function", + "scope": "variable.parameter.function.js", + "settings": { + "foreground": "#7986E7" + } + }, + { + "name": "JavaScript Variable Other ReadWrite", + "scope": "variable.other.readwrite.js", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Text nested in React tags", + "scope": [ + "meta.jsx.children", + "meta.jsx.children.js", + "meta.jsx.children.tsx" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JavaScript[React] Variable Other Object", + "scope": [ + "variable.other.object.js", + "variable.other.object.jsx", + "meta.object-literal.key.js", + "meta.object-literal.key.jsx", + "variable.object.property.js", + "variable.object.property.jsx" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JavaScript Variables", + "scope": ["variable.js", "variable.other.js"], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JavaScript Entity Name Type", + "scope": ["entity.name.type.js", "entity.name.type.module.js"], + "settings": { + "foreground": "#ffcb8b" + } + }, + { + "name": "JavaScript Support Classes", + "scope": "support.class.js", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JSON Property Names", + "scope": "support.type.property-name.json", + "settings": { + "foreground": "#C3E88D", + "fontStyle": "normal" + } + }, + { + "name": "JSON Support Constants", + "scope": "support.constant.json", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "JSON Property values (string)", + "scope": "meta.structure.dictionary.value.json string.quoted.double", + "settings": { + "foreground": "#80CBC4", + "fontStyle": "normal" + } + }, + { + "name": "Strings in JSON values", + "scope": "string.quoted.double.json punctuation.definition.string.json", + "settings": { + "foreground": "#80CBC4", + "fontStyle": "normal" + } + }, + { + "name": "Specific JSON Property values like null", + "scope": "meta.structure.dictionary.json meta.structure.dictionary.value constant.language", + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "Ruby Variables", + "scope": "variable.other.ruby", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Ruby Hashkeys", + "scope": "constant.language.symbol.hashkey.ruby", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "LESS Tag names", + "scope": "entity.name.tag.less", + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Attribute Name for LESS", + "scope": "meta.attribute-selector.less entity.other.attribute-name.attribute", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Markup Headings", + "scope": "markup.heading", + "settings": { + "foreground": "#82b1ff" + } + }, + { + "name": "Markup Italics", + "scope": "markup.italic", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Markup Bold", + "scope": "markup.bold", + "settings": { + "foreground": "#ffcb6b", + "fontStyle": "bold" + } + }, + { + "name": "Markup Quote + others", + "scope": "markup.quote", + "settings": { + "foreground": "#697098", + "fontStyle": "italic" + } + }, + { + "name": "Markup Raw Code + others", + "scope": "markup.inline.raw", + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "Markup Links", + "scope": ["markup.underline.link", "markup.underline.link.image"], + "settings": { + "foreground": "#ff869a" + } + }, + { + "name": "Markup Attributes", + "scope": ["markup.meta.attribute-list"], + "settings": { + "foreground": "#a9c77d" + } + }, + { + "name": "Markup Admonitions", + "scope": "markup.admonition", + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "Markup Lists", + "scope": "markup.list.bullet", + "settings": { + "foreground": "#D9F5DD" + } + }, + { + "name": "Markup Superscript and Subscript", + "scope": ["markup.superscript", "markup.subscript"], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "Markdown Link Title and Description", + "scope": [ + "string.other.link.title.markdown", + "string.other.link.description.markdown" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Markdown Punctuation", + "scope": [ + "punctuation.definition.string.markdown", + "punctuation.definition.string.begin.markdown", + "punctuation.definition.string.end.markdown", + "meta.link.inline.markdown punctuation.definition.string" + ], + "settings": { + "foreground": "#82b1ff" + } + }, + { + "name": "Markdown MetaData Punctuation", + "scope": ["punctuation.definition.metadata.markdown"], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Markdown List Punctuation", + "scope": ["beginning.punctuation.definition.list.markdown"], + "settings": { + "foreground": "#82b1ff" + } + }, + { + "name": "Asciidoc Function", + "scope": "entity.name.function.asciidoc", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "PHP Variables", + "scope": "variable.other.php", + "settings": { + "foreground": "#bec5d4" + } + }, + { + "name": "Support Classes in PHP", + "scope": "support.class.php", + "settings": { + "foreground": "#ffcb8b" + } + }, + { + "name": "Punctuations in PHP function calls", + "scope": "meta.function-call.php punctuation", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "PHP Global Variables", + "scope": "variable.other.global.php", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Declaration Punctuation in PHP Global Variables", + "scope": "variable.other.global.php punctuation.definition.variable", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Language Constants in Python", + "scope": "constant.language.python", + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "Python Function Parameter and Arguments", + "scope": [ + "variable.parameter.function.python", + "meta.function-call.arguments.python" + ], + "settings": { + "foreground": "#7986E7" + } + }, + { + "name": "Python Function Call", + "scope": [ + "meta.function-call.python", + "meta.function-call.generic.python" + ], + "settings": { + "foreground": "#B2CCD6" + } + }, + { + "name": "Punctuations in Python", + "scope": "punctuation.python", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Decorator Functions in Python", + "scope": "entity.name.function.decorator.python", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Python Language Variable", + "scope": "source.python variable.language.special", + "settings": { + "foreground": "#8EACE3" + } + }, + { + "name": "SCSS Variable", + "scope": [ + "variable.scss", + "variable.sass", + "variable.parameter.url.scss", + "variable.parameter.url.sass" + ], + "settings": { + "foreground": "#DDDDDD" + } + }, + { + "name": "Variables in SASS At-Rules", + "scope": [ + "source.css.scss meta.at-rule variable", + "source.css.sass meta.at-rule variable" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Variables in SASS At-Rules", + "scope": [ + "source.css.scss meta.at-rule variable", + "source.css.sass meta.at-rule variable" + ], + "settings": { + "foreground": "#bec5d4" + } + }, + { + "name": "Attribute Name for SASS", + "scope": [ + "meta.attribute-selector.scss entity.other.attribute-name.attribute", + "meta.attribute-selector.sass entity.other.attribute-name.attribute" + ], + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Tag names in SASS", + "scope": ["entity.name.tag.scss", "entity.name.tag.sass"], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "TypeScript[React] Variables and Object Properties", + "scope": [ + "variable.other.readwrite.alias.ts", + "variable.other.readwrite.alias.tsx", + "variable.other.readwrite.ts", + "variable.other.readwrite.tsx", + "variable.other.object.ts", + "variable.other.object.tsx", + "variable.object.property.ts", + "variable.object.property.tsx", + "variable.other.ts", + "variable.other.tsx", + "variable.tsx", + "variable.ts" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "TypeScript[React] Entity Name Types", + "scope": ["entity.name.type.ts", "entity.name.type.tsx"], + "settings": { + "foreground": "#78ccf0" + } + }, + { + "name": "TypeScript[React] Node Classes", + "scope": ["support.class.node.ts", "support.class.node.tsx"], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "TypeScript[React] Entity Name Types as Parameters", + "scope": [ + "meta.type.parameters.ts entity.name.type", + "meta.type.parameters.tsx entity.name.type" + ], + "settings": { + "foreground": "#eeffff" + } + }, + { + "name": "TypeScript[React] Import/Export Punctuations", + "scope": [ + "meta.import.ts punctuation.definition.block", + "meta.import.tsx punctuation.definition.block", + "meta.export.ts punctuation.definition.block", + "meta.export.tsx punctuation.definition.block" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "TypeScript[React] Punctuation Decorators", + "scope": [ + "meta.decorator punctuation.decorator.ts", + "meta.decorator punctuation.decorator.tsx" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "TypeScript[React] Punctuation Decorators", + "scope": "meta.tag.js meta.jsx.children.tsx", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "YAML Entity Name Tags", + "scope": "entity.name.tag.yaml", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "handlebars variables", + "scope": "variable.parameter.handlebars", + "settings": { + "foreground": "#bec5d4" + } + }, + { + "name": "handlebars parameters", + "scope": "entity.other.attribute-name.handlebars variable.parameter.handlebars", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "handlebars enitity attribute names", + "scope": "entity.other.attribute-name.handlebars", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "handlebars enitity attribute values", + "scope": "entity.other.attribute-value.handlebars variable.parameter.handlebars", + "settings": { + "foreground": "#7986E7" + } + }, + { + "name": "normalize font style of certain components", + "scope": [ + "meta.tag.js meta.embedded.expression.js punctuation.section.embedded.begin.js", + "meta.tag.js meta.embedded.expression.js punctuation.section.embedded.end.js", + "meta.property-list.css meta.property-value.css variable.other.less", + "punctuation.section.embedded.begin.js.jsx", + "punctuation.section.embedded.end.js.jsx", + "meta.property-list.scss variable.scss", + "meta.property-list.sass variable.sass", + "keyword.operator.logical", + "keyword.operator.arithmetic", + "keyword.operator.bitwise", + "keyword.operator.increment", + "keyword.operator.ternary", + "keyword.operator.comparison", + "keyword.operator.assignment", + "keyword.operator.operator", + "keyword.operator.or.regexp", + "keyword.operator.expression.in", + "keyword.operator.type", + "punctuation.section.embedded.js", + "punctuation.definintion.string", + "punctuation" + ], + "settings": { + "fontStyle": "normal" + } + }, + { + "name": "italicsify for operator mono", + "scope": [ + "keyword.other.unit", + "support.type.property-name.css", + "support.type.vendored.property-name.css", + "support.constant.vendored.property-value.css", + "meta.import.ts meta.block.ts variable.other.readwrite.alias.ts", + "meta.import.tsx meta.block.tsx variable.other.readwrite.alias.tsx", + "meta.import.js variable.other", + "meta.export.ts meta.block.ts variable.other.readwrite.alias.ts", + "meta.export.tsx meta.block.tsx variable.other.readwrite.alias.tsx", + "meta.export.js variable.other", + "entity.name.function.ts", + "entity.name.function.tsx", + "support.type.primitive", + "entity.name.tag.yaml", + "entity.other.attribute-name", + "meta.tag.sgml.doctype.html", + "entity.name.tag.doctype", + "meta.tag.sgml.doctype", + "entity.name.tag.custom", + "source.js.jsx keyword.control.flow.js", + "support.type.property.css", + "support.function.basic_functions", + "constant.other.color.rgb-value.hex.css", + "constant.other.rgb-value.css", + "variable.assignment.coffee", + "support.function.basic_functions", + "keyword.operator.expression.typeof", + "punctuation.section.embedded", + "keyword.operator.type.annotation", + "variable.object.property.ts", + "variable.object.property.js", + "variable.object.property.jsx", + "variable.object.property.tsx", + "assignment.coffee", + "entity.name.type.ts", + "support.constant.math", + "meta.object-literal.key", + "meta.var.expr storage.type", + "variable.scss", + "variable.sass", + "variable.other.less", + "variable.parameter.url.scss", + "variable.parameter.url.sass", + "parameter", + "string", + "italic", + "quote", + "keyword", + "storage", + "language", + "constant.language", + "variable.language", + "type .function", + "type.function", + "storage.type.class", + "type.var", + "meta.parameter", + "variable.parameter", + "meta.parameters", + "keyword.control", + "modifier", + "this", + "comment" + ], + "settings": { + "fontStyle": "italic" + } + } + ] +} diff --git a/assets/themes/src/vscode/palenight/palenight.json b/assets/themes/src/vscode/palenight/palenight.json index 5351dc4f2312a54c3714ab14641d27cfc4b6988a..cfbf2f8788c13cc66abfeccf9b0d619416fb642b 100644 --- a/assets/themes/src/vscode/palenight/palenight.json +++ b/assets/themes/src/vscode/palenight/palenight.json @@ -1,1569 +1,1569 @@ -{ - "name": "Palenight Theme", - "author": "Olaolu Olawuyi", - "maintainers": ["Olaolu Olawuyi "], - "type": "dark", - "semanticClass": "palenight", - "colors": { - "contrastActiveBorder": null, - "contrastBorder": "#282B3C", - "focusBorder": "#282B3C", - "foreground": "#ffffff", - "widget.shadow": "#232635", - "selection.background": "#7580B850", - "descriptionForeground": null, - "errorForeground": "#EF5350", - "button.background": "#7e57c2cc", - "button.foreground": "#ffffffcc", - "button.hoverBackground": "#7e57c2", - "dropdown.background": "#292D3E", - "dropdown.border": "#7e57c2", - "dropdown.foreground": "#ffffffcc", - "input.background": "#313850", - "input.border": "#7e57c2", - "input.foreground": "#ffffffcc", - "input.placeholderForeground": "#ffffffcc", - "inputOption.activeBorder": "#ffffffcc", - "inputValidation.errorBackground": "#ef5350f2", - "inputValidation.errorBorder": "#EF5350", - "inputValidation.infoBackground": "#64b5f6f2", - "inputValidation.infoBorder": "#64B5F6", - "inputValidation.warningBackground": "#ffca28f2", - "inputValidation.warningBorder": "#FFCA28", - "scrollbar.shadow": "#292D3E00", - "scrollbarSlider.activeBackground": "#694CA4cc", - "scrollbarSlider.background": "#694CA466", - "scrollbarSlider.hoverBackground": "#694CA4cc", - "badge.background": "#7e57c2", - "badge.foreground": "#ffffff", - "progress.background": "#7e57c2", - "list.activeSelectionBackground": "#7e57c2", - "list.activeSelectionForeground": "#ffffff", - "list.dropBackground": "#2E3245", - "list.focusBackground": "#0000002e", - "list.focusForeground": "#ffffff", - "list.highlightForeground": "#ffffff", - "list.hoverBackground": "#0000001a", - "list.hoverForeground": "#ffffff", - "list.inactiveSelectionBackground": "#929ac90d", - "list.inactiveSelectionForeground": "#929ac9", - "activityBar.background": "#282C3D", - "activityBar.dropBackground": "#7e57c2e3", - "activityBar.foreground": "#eeffff", - "activityBar.border": "#282C3D", - "activityBarBadge.background": "#7e57c2", - "activityBarBadge.foreground": "#ffffff", - "sideBar.background": "#292D3E", - "sideBar.foreground": "#6C739A", - "sideBar.border": "#282B3C", - "sideBarTitle.foreground": "#eeffff", - "sideBarSectionHeader.background": "#292D3E", - "sideBarSectionHeader.foreground": "#eeffff", - "editorGroup.background": "#32374C", - "editorGroup.border": "#2E3245", - "editorGroup.dropBackground": "#7e57c273", - "editorGroupHeader.noTabsBackground": "#32374C", - "editorGroupHeader.tabsBackground": "#31364a", - "editorGroupHeader.tabsBorder": "#262A39", - "tab.activeBackground": "#292D3E", - "tab.activeForeground": "#eeffff", - "tab.border": "#272B3B", - "tab.activeBorder": "#262A39", - "tab.unfocusedActiveBorder": "#262A39", - "tab.inactiveBackground": "#31364A", - "tab.inactiveForeground": "#929ac9", - "tab.unfocusedActiveForeground": null, - "tab.unfocusedInactiveForeground": null, - "editor.background": "#292D3E", - "editor.foreground": "#BFC7D5", - "editorLineNumber.foreground": "#4c5374", - "editorLineNumber.activeForeground": "#eeffff", - "editorCursor.foreground": "#7e57c2", - "editorCursor.background": null, - "editor.selectionBackground": "#7580B850", - "editor.selectionHighlightBackground": "#383D51", - "editor.inactiveSelectionBackground": "#7e57c25a", - "editor.wordHighlightBackground": "#32374D", - "editor.wordHighlightStrongBackground": "#2E3250", - "editor.findMatchBackground": "#2e3248fc", - "editor.findMatchHighlightBackground": "#7e57c233", - "editor.findRangeHighlightBackground": null, - "editor.hoverHighlightBackground": "#7e57c25a", - "editor.lineHighlightBackground": "#0003", - "editor.lineHighlightBorder": null, - "editorLink.activeForeground": null, - "editor.rangeHighlightBackground": "#7e57c25a", - "editorWhitespace.foreground": null, - "editorIndentGuide.background": "#4E557980", - "editorRuler.foreground": "#4E557980", - "editorCodeLens.foreground": "#FFCA28", - "editorBracketMatch.background": null, - "editorBracketMatch.border": null, - "editorOverviewRuler.currentContentForeground": "#7e57c2", - "editorOverviewRuler.incomingContentForeground": "#7e57c2", - "editorOverviewRuler.commonContentForeground": "#7e57c2", - "editorError.foreground": "#EF5350", - "editorError.border": null, - "editorWarning.foreground": "#FFCA28", - "editorWarning.border": null, - "editorGutter.background": null, - "editorGutter.modifiedBackground": "#e2b93d", - "editorGutter.addedBackground": "#9CCC65", - "editorGutter.deletedBackground": "#EF5350", - "diffEditor.insertedTextBackground": "#99b76d23", - "diffEditor.removedTextBackground": "#ef535033", - "editorWidget.background": "#31364a", - "editorWidget.border": null, - "editorSuggestWidget.background": "#2C3043", - "editorSuggestWidget.border": "#2B2F40", - "editorSuggestWidget.foreground": "#bfc7d5", - "editorSuggestWidget.highlightForeground": "#ffffff", - "editorSuggestWidget.selectedBackground": "#7e57c2", - "editorHoverWidget.background": "#292D3E", - "editorHoverWidget.border": "#7e57c2", - "debugExceptionWidget.background": "#292D3E", - "debugExceptionWidget.border": "#7e57c2", - "editorMarkerNavigation.background": "#31364a", - "editorMarkerNavigationError.background": "#EF5350", - "editorMarkerNavigationWarning.background": "#FFCA28", - "peekView.border": "#7e57c2", - "peekViewEditor.background": "#232635", - "peekViewEditor.matchHighlightBackground": "#7e57c25a", - "peekViewResult.background": "#2E3245", - "peekViewResult.fileForeground": "#eeffff", - "peekViewResult.lineForeground": "#eeffff", - "peekViewResult.matchHighlightBackground": "#7e57c25a", - "peekViewResult.selectionBackground": "#2E3250", - "peekViewResult.selectionForeground": "#eeffff", - "peekViewTitle.background": "#292D3E", - "peekViewTitleDescription.foreground": "#697098", - "peekViewTitleLabel.foreground": "#eeffff", - "merge.currentHeaderBackground": "#7e57c25a", - "merge.currentContentBackground": null, - "merge.incomingHeaderBackground": "#7e57c25a", - "merge.incomingContentBackground": null, - "merge.border": null, - "panel.background": "#292D3E", - "panel.border": "#282B3C", - "panelTitle.activeBorder": "#7e57c2", - "panelTitle.activeForeground": "#eeffff", - "panelTitle.inactiveForeground": "#bfc7d580", - "statusBar.background": "#282C3D", - "statusBar.foreground": "#676E95", - "statusBar.border": "#262A39", - "statusBar.debuggingBackground": "#202431", - "statusBar.debuggingForeground": null, - "statusBar.debuggingBorder": "#1F2330", - "statusBar.noFolderForeground": null, - "statusBar.noFolderBackground": "#292D3E", - "statusBar.noFolderBorder": "#25293A", - "statusBarItem.activeBackground": "#202431", - "statusBarItem.hoverBackground": "#202431", - "statusBarItem.prominentBackground": "#202431", - "statusBarItem.prominentHoverBackground": "#202431", - "titleBar.activeBackground": "#292d3e", - "titleBar.activeForeground": "#eeefff", - "titleBar.border": "#30364c", - "titleBar.inactiveBackground": "#30364c", - "titleBar.inactiveForeground": null, - "notifications.background": "#292D3E", - "notifications.foreground": "#ffffffcc", - "notificationLink.foreground": "#80CBC4", - "extensionButton.prominentForeground": "#ffffffcc", - "extensionButton.prominentBackground": "#7e57c2cc", - "extensionButton.prominentHoverBackground": "#7e57c2", - "pickerGroup.foreground": "#d1aaff", - "pickerGroup.border": "#2E3245", - "terminal.ansiWhite": "#ffffff", - "terminal.ansiBlack": "#676E95", - "terminal.ansiBlue": "#82AAFF", - "terminal.ansiCyan": "#89DDFF", - "terminal.ansiGreen": "#a9c77d", - "terminal.ansiMagenta": "#C792EA", - "terminal.ansiRed": "#ff5572", - "terminal.ansiYellow": "#FFCB6B", - "terminal.ansiBrightWhite": "#ffffff", - "terminal.ansiBrightBlack": "#676E95", - "terminal.ansiBrightBlue": "#82AAFF", - "terminal.ansiBrightCyan": "#89DDFF", - "terminal.ansiBrightGreen": "#C3E88D", - "terminal.ansiBrightMagenta": "#C792EA", - "terminal.ansiBrightRed": "#ff5572", - "terminal.ansiBrightYellow": "#FFCB6B", - "debugToolBar.background": "#292D3E", - "welcomePage.buttonBackground": null, - "welcomePage.buttonHoverBackground": null, - "walkThrough.embeddedEditorBackground": "#232635", - "gitDecoration.modifiedResourceForeground": "#e2c08de6", - "gitDecoration.deletedResourceForeground": "#EF535090", - "gitDecoration.untrackedResourceForeground": "#a9c77dff", - "gitDecoration.ignoredResourceForeground": "#69709890", - "gitDecoration.conflictingResourceForeground": "#FFEB95CC", - "editorActiveLineNumber.foreground": "#eeffff", - "breadcrumb.foreground": "#6c739a", - "breadcrumb.focusForeground": "#bfc7d5", - "breadcrumb.activeSelectionForeground": "#eeffff", - "breadcrumbPicker.background": "#292D3E" - }, - "tokenColors": [ - { - "name": "Global settings", - "settings": { - "background": "#292D3E", - "foreground": "#bfc7d5" - } - }, - { - "name": "Comment", - "scope": "comment", - "settings": { - "foreground": "#697098", - "fontStyle": "italic" - } - }, - { - "name": "String", - "scope": "string", - "settings": { - "foreground": "#C3E88D" - } - }, - { - "name": "String Quoted", - "scope": "string.quoted", - "settings": { - "foreground": "#C3E88D" - } - }, - { - "name": "String Unquoted", - "scope": "string.unquoted", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "Support Constant Math", - "scope": "support.constant.math", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Number", - "scope": ["constant.numeric", "constant.character.numeric"], - "settings": { - "foreground": "#F78C6C" - } - }, - { - "name": "Built-in constant", - "scope": [ - "constant.language", - "punctuation.definition.constant", - "variable.other.constant" - ], - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "User-defined constant", - "scope": ["constant.character", "constant.other"], - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "Constant Character Escape", - "scope": "constant.character.escape", - "settings": { - "foreground": "#F78C6C" - } - }, - { - "name": "RegExp String", - "scope": ["string.regexp", "string.regexp keyword.other"], - "settings": { - "foreground": "#80CBC4" - } - }, - { - "name": "Comma in functions", - "scope": "meta.function punctuation.separator.comma", - "settings": { - "foreground": "#eeffff" - } - }, - { - "name": "Variable", - "scope": "variable", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Keyword", - "scope": ["punctuation.accessor", "keyword"], - "settings": { - "foreground": "#c792ea" - } - }, - { - "name": "Storage", - "scope": [ - "storage", - "storage.type", - "meta.var.expr storage.type", - "storage.type.property.js", - "storage.type.property.ts", - "storage.type.property.tsx", - "meta.class meta.method.declaration meta.var.expr storage.type.js" - ], - "settings": { - "foreground": "#c792ea" - } - }, - { - "name": "Class name", - "scope": ["entity.name.class", "meta.class entity.name.type.class"], - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Inherited class", - "scope": "entity.other.inherited-class", - "settings": { - "foreground": "#a9c77d" - } - }, - { - "name": "Function name", - "scope": "entity.name.function", - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "Function Parameters", - "scope": "variable.parameter", - "settings": { - "foreground": "#7986E7" - } - }, - { - "name": "Meta Tag", - "scope": ["punctuation.definition.tag", "meta.tag"], - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "HTML Tag names", - "scope": [ - "entity.name.tag support.class.component", - "meta.tag.other.html", - "meta.tag.other.js", - "meta.tag.other.tsx", - "entity.name.tag.tsx", - "entity.name.tag.js", - "entity.name.tag", - "meta.tag.js", - "meta.tag.tsx", - "meta.tag.html" - ], - "settings": { - "foreground": "#ff5572" - } - }, - { - "name": "Tag attribute", - "scope": "entity.other.attribute-name", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Entity Name Tag Custom", - "scope": "entity.name.tag.custom", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Library (function & constant)", - "scope": ["support.function", "support.constant"], - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "Support Constant Property Value meta", - "scope": "support.constant.meta.property-value", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "Library class/type", - "scope": ["support.type", "support.class"], - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Support Variable DOM", - "scope": "support.variable.dom", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Invalid", - "scope": "invalid", - "settings": { - "background": "#ff2c83", - "foreground": "#ffffff" - } - }, - { - "name": "Invalid deprecated", - "scope": "invalid.deprecated", - "settings": { - "foreground": "#ffffff", - "background": "#d3423e" - } - }, - { - "name": "Keyword Operator", - "scope": "keyword.operator", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "Keyword Operator Relational", - "scope": "keyword.operator.relational", - "settings": { - "foreground": "#c792ea" - } - }, - { - "name": "Keyword Operator Assignment", - "scope": "keyword.operator.assignment", - "settings": { - "foreground": "#c792ea" - } - }, - { - "name": "Double-Slashed Comment", - "scope": "comment.line.double-slash", - "settings": { - "foreground": "#697098" - } - }, - { - "name": "Object", - "scope": "object", - "settings": { - "foreground": "#cdebf7" - } - }, - { - "name": "Null", - "scope": "constant.language.null", - "settings": { - "foreground": "#ff5874" - } - }, - { - "name": "Meta Brace", - "scope": "meta.brace", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "Meta Delimiter Period", - "scope": "meta.delimiter.period", - "settings": { - "foreground": "#c792ea" - } - }, - { - "name": "Punctuation Definition String", - "scope": "punctuation.definition.string", - "settings": { - "foreground": "#d9f5dd" - } - }, - { - "name": "Boolean", - "scope": "constant.language.boolean", - "settings": { - "foreground": "#ff5874" - } - }, - { - "name": "Object Comma", - "scope": "object.comma", - "settings": { - "foreground": "#ffffff" - } - }, - { - "name": "Variable Parameter Function", - "scope": "variable.parameter.function", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "Support Type Property Name & entity name tags", - "scope": [ - "support.type.vendored.property-name", - "support.constant.vendored.property-value", - "support.type.property-name", - "meta.property-list entity.name.tag" - ], - "settings": { - "foreground": "#80CBC4" - } - }, - { - "name": "Entity Name tag reference in stylesheets", - "scope": "meta.property-list entity.name.tag.reference", - "settings": { - "foreground": "#ff5572" - } - }, - { - "name": "Constant Other Color RGB Value Punctuation Definition Constant", - "scope": "constant.other.color.rgb-value punctuation.definition.constant", - "settings": { - "foreground": "#F78C6C" - } - }, - { - "name": "Constant Other Color", - "scope": "constant.other.color", - "settings": { - "foreground": "#FFEB95" - } - }, - { - "name": "Keyword Other Unit", - "scope": "keyword.other.unit", - "settings": { - "foreground": "#FFEB95" - } - }, - { - "name": "Meta Selector", - "scope": "meta.selector", - "settings": { - "foreground": "#c792ea" - } - }, - { - "name": "Entity Other Attribute Name Id", - "scope": "entity.other.attribute-name.id", - "settings": { - "foreground": "#FAD430" - } - }, - { - "name": "Meta Property Name", - "scope": "meta.property-name", - "settings": { - "foreground": "#80CBC4" - } - }, - { - "name": "Doctypes", - "scope": ["entity.name.tag.doctype", "meta.tag.sgml.doctype"], - "settings": { - "foreground": "#c792ea", - "fontStyle": "italic" - } - }, - { - "name": "Punctuation Definition Parameters", - "scope": "punctuation.definition.parameters", - "settings": { - "foreground": "#d9f5dd" - } - }, - { - "name": "Keyword Control Operator", - "scope": "keyword.control.operator", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "Keyword Operator Logical", - "scope": "keyword.operator.logical", - "settings": { - "foreground": "#c792ea" - } - }, - { - "name": "Variable Instances", - "scope": [ - "variable.instance", - "variable.other.instance", - "variable.reaedwrite.instance", - "variable.other.readwrite.instance" - ], - "settings": { - "foreground": "#ff5572" - } - }, - { - "name": "Variable Property Other", - "scope": ["variable.other.property", "variable.other.object.property"], - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "Entity Name Function", - "scope": "entity.name.function", - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "Keyword Operator Comparison", - "scope": "keyword.operator.comparison", - "settings": { - "foreground": "#c792ea" - } - }, - { - "name": "Support Constant, `new` keyword, Special Method Keyword", - "scope": [ - "support.constant", - "keyword.other.special-method", - "keyword.other.new" - ], - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "Support Function", - "scope": "support.function", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "Invalid Broken", - "scope": "invalid.broken", - "settings": { - "foreground": "#020e14", - "background": "#F78C6C" - } - }, - { - "name": "Invalid Unimplemented", - "scope": "invalid.unimplemented", - "settings": { - "background": "#8BD649", - "foreground": "#ffffff" - } - }, - { - "name": "Invalid Illegal", - "scope": "invalid.illegal", - "settings": { - "foreground": "#ffffff", - "background": "#ec5f67" - } - }, - { - "name": "Language Variable", - "scope": "variable.language", - "settings": { - "foreground": "#ff5572" - } - }, - { - "name": "Support Variable Property", - "scope": "support.variable.property", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "Variable Function", - "scope": "variable.function", - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "Variable Interpolation", - "scope": "variable.interpolation", - "settings": { - "foreground": "#ec5f67" - } - }, - { - "name": "Meta Function Call", - "scope": "meta.function-call", - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "Punctuation Section Embedded", - "scope": "punctuation.section.embedded", - "settings": { - "foreground": "#d3423e" - } - }, - { - "name": "Punctuation Tweaks", - "scope": [ - "punctuation.terminator.expression", - "punctuation.definition.arguments", - "punctuation.definition.array", - "punctuation.section.array", - "meta.array" - ], - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "More Punctuation Tweaks", - "scope": [ - "punctuation.definition.list.begin", - "punctuation.definition.list.end", - "punctuation.separator.arguments", - "punctuation.definition.list" - ], - "settings": { - "foreground": "#d9f5dd" - } - }, - { - "name": "Template Strings", - "scope": "string.template meta.template.expression", - "settings": { - "foreground": "#d3423e" - } - }, - { - "name": "Backtics(``) in Template Strings", - "scope": "string.template punctuation.definition.string", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "Italics", - "scope": "italic", - "settings": { - "foreground": "#c792ea", - "fontStyle": "italic" - } - }, - { - "name": "Bold", - "scope": "bold", - "settings": { - "foreground": "#ffcb6b", - "fontStyle": "bold" - } - }, - { - "name": "Quote", - "scope": "quote", - "settings": { - "foreground": "#697098", - "fontStyle": "italic" - } - }, - { - "name": "Raw Code", - "scope": "raw", - "settings": { - "foreground": "#80CBC4" - } - }, - { - "name": "CoffeScript Variable Assignment", - "scope": "variable.assignment.coffee", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "CoffeScript Parameter Function", - "scope": "variable.parameter.function.coffee", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "CoffeeScript Assignments", - "scope": "variable.assignment.coffee", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "C# Readwrite Variables", - "scope": "variable.other.readwrite.cs", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "C# Classes & Storage types", - "scope": ["entity.name.type.class.cs", "storage.type.cs"], - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "C# Namespaces", - "scope": "entity.name.type.namespace.cs", - "settings": { - "foreground": "#B2CCD6" - } - }, - { - "name": "Tag names in Stylesheets", - "scope": [ - "entity.name.tag.css", - "entity.name.tag.less", - "entity.name.tag.custom.css" - ], - "settings": { - "foreground": "#ff5572" - } - }, - { - "name": "Wildcard(*) selector in Stylesheets", - "scope": [ - "entity.name.tag.wildcard.css", - "entity.name.tag.wildcard.less", - "entity.name.tag.wildcard.scss", - "entity.name.tag.wildcard.sass" - ], - "settings": { - "foreground": "#ff5572" - } - }, - { - "name": "(C|SC|SA|LE)SS property value unit", - "scope": [ - "keyword.other.unit.css", - "constant.length.units.css", - "keyword.other.unit.less", - "constant.length.units.less", - "keyword.other.unit.scss", - "constant.length.units.scss", - "keyword.other.unit.sass", - "constant.length.units.sass" - ], - "settings": { - "foreground": "#FFEB95" - } - }, - { - "name": "Attribute Name for CSS", - "scope": "meta.attribute-selector.css entity.other.attribute-name.attribute", - "settings": { - "foreground": "#F78C6C" - } - }, - { - "name": "punctuations in styled components", - "scope": [ - "source.js source.css meta.property-list", - "source.js source.css punctuation.section", - "source.js source.css punctuation.terminator.rule", - "source.js source.css punctuation.definition.entity.end.bracket", - "source.js source.css punctuation.definition.entity.begin.bracket", - "source.js source.css punctuation.separator.key-value", - "source.js source.css punctuation.definition.attribute-selector", - "source.js source.css meta.property-list", - "source.js source.css meta.property-list punctuation.separator.comma", - "source.ts source.css punctuation.section", - "source.ts source.css punctuation.terminator.rule", - "source.ts source.css punctuation.definition.entity.end.bracket", - "source.ts source.css punctuation.definition.entity.begin.bracket", - "source.ts source.css punctuation.separator.key-value", - "source.ts source.css punctuation.definition.attribute-selector", - "source.ts source.css meta.property-list", - "source.ts source.css meta.property-list punctuation.separator.comma" - ], - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "Elixir Classes", - "scope": [ - "source.elixir support.type.elixir", - "source.elixir meta.module.elixir entity.name.class.elixir" - ], - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "Elixir Functions", - "scope": "source.elixir entity.name.function", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Elixir Constants", - "scope": [ - "source.elixir constant.other.symbol.elixir", - "source.elixir constant.other.keywords.elixir" - ], - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "Elixir String Punctuations", - "scope": "source.elixir punctuation.definition.string", - "settings": { - "foreground": "#a9c77d" - } - }, - { - "name": "Elixir", - "scope": [ - "source.elixir variable.other.readwrite.module.elixir", - "source.elixir variable.other.readwrite.module.elixir punctuation.definition.variable.elixir" - ], - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Elixir Binary Punctuations", - "scope": "source.elixir .punctuation.binary.elixir", - "settings": { - "foreground": "#c792ea" - } - }, - { - "name": "Go Function Calls", - "scope": "source.go meta.function-call.go", - "settings": { - "foreground": "#DDDDDD" - } - }, - { - "name": "GraphQL Variables", - "scope": "variable.qraphql", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "ID Attribute Name in HTML", - "scope": "entity.other.attribute-name.id.html", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "HTML Punctuation Definition Tag", - "scope": "punctuation.definition.tag.html", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "HTML Doctype", - "scope": "meta.tag.sgml.doctype.html", - "settings": { - "foreground": "#c792ea", - "fontStyle": "italic" - } - }, - { - "name": "JavaScript Classes", - "scope": "meta.class entity.name.type.class.js", - "settings": { - "foreground": "#ffcb8b" - } - }, - { - "name": "JavaScript Method Declaration e.g. `constructor`", - "scope": "meta.method.declaration storage.type.js", - "settings": { - "foreground": "#82AAFF", - "fontStyle": "normal" - } - }, - { - "name": "JavaScript Terminator", - "scope": "terminator.js", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "JavaScript Meta Punctuation Definition", - "scope": "meta.js punctuation.definition.js", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "Entity Names in Code Documentations", - "scope": [ - "entity.name.type.instance.jsdoc", - "entity.name.type.instance.phpdoc" - ], - "settings": { - "foreground": "#eeffff" - } - }, - { - "name": "Other Variables in Code Documentations", - "scope": ["variable.other.jsdoc", "variable.other.phpdoc"], - "settings": { - "foreground": "#78ccf0" - } - }, - { - "name": "JavaScript module imports and exports", - "scope": [ - "variable.other.meta.import.js", - "meta.import.js variable.other", - "variable.other.meta.export.js", - "meta.export.js variable.other" - ], - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "JavaScript Variable Parameter Function", - "scope": "variable.parameter.function.js", - "settings": { - "foreground": "#7986E7" - } - }, - { - "name": "JavaScript Variable Other ReadWrite", - "scope": "variable.other.readwrite.js", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "Text nested in React tags", - "scope": [ - "meta.jsx.children", - "meta.jsx.children.js", - "meta.jsx.children.tsx" - ], - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "JavaScript[React] Variable Other Object", - "scope": [ - "variable.other.object.js", - "variable.other.object.jsx", - "meta.object-literal.key.js", - "meta.object-literal.key.jsx", - "variable.object.property.js", - "variable.object.property.jsx" - ], - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "JavaScript Variables", - "scope": ["variable.js", "variable.other.js"], - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "JavaScript Entity Name Type", - "scope": ["entity.name.type.js", "entity.name.type.module.js"], - "settings": { - "foreground": "#ffcb8b" - } - }, - { - "name": "JavaScript Support Classes", - "scope": "support.class.js", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "JSON Property Names", - "scope": "support.type.property-name.json", - "settings": { - "foreground": "#C3E88D", - "fontStyle": "normal" - } - }, - { - "name": "JSON Support Constants", - "scope": "support.constant.json", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "JSON Property values (string)", - "scope": "meta.structure.dictionary.value.json string.quoted.double", - "settings": { - "foreground": "#80CBC4", - "fontStyle": "normal" - } - }, - { - "name": "Strings in JSON values", - "scope": "string.quoted.double.json punctuation.definition.string.json", - "settings": { - "foreground": "#80CBC4", - "fontStyle": "normal" - } - }, - { - "name": "Specific JSON Property values like null", - "scope": "meta.structure.dictionary.json meta.structure.dictionary.value constant.language", - "settings": { - "foreground": "#ff5874" - } - }, - { - "name": "Ruby Variables", - "scope": "variable.other.ruby", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "Ruby Hashkeys", - "scope": "constant.language.symbol.hashkey.ruby", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "LESS Tag names", - "scope": "entity.name.tag.less", - "settings": { - "foreground": "#ff5572" - } - }, - { - "name": "Attribute Name for LESS", - "scope": "meta.attribute-selector.less entity.other.attribute-name.attribute", - "settings": { - "foreground": "#F78C6C" - } - }, - { - "name": "Markup Headings", - "scope": "markup.heading", - "settings": { - "foreground": "#82b1ff" - } - }, - { - "name": "Markup Italics", - "scope": "markup.italic", - "settings": { - "foreground": "#c792ea", - "fontStyle": "italic" - } - }, - { - "name": "Markup Bold", - "scope": "markup.bold", - "settings": { - "foreground": "#ffcb6b", - "fontStyle": "bold" - } - }, - { - "name": "Markup Quote + others", - "scope": "markup.quote", - "settings": { - "foreground": "#697098", - "fontStyle": "italic" - } - }, - { - "name": "Markup Raw Code + others", - "scope": "markup.inline.raw", - "settings": { - "foreground": "#80CBC4" - } - }, - { - "name": "Markup Links", - "scope": ["markup.underline.link", "markup.underline.link.image"], - "settings": { - "foreground": "#ff869a" - } - }, - { - "name": "Markup Attributes", - "scope": ["markup.meta.attribute-list"], - "settings": { - "foreground": "#a9c77d" - } - }, - { - "name": "Markup Admonitions", - "scope": "markup.admonition", - "settings": { - "fontStyle": "bold" - } - }, - { - "name": "Markup Lists", - "scope": "markup.list.bullet", - "settings": { - "foreground": "#D9F5DD" - } - }, - { - "name": "Markup Superscript and Subscript", - "scope": ["markup.superscript", "markup.subscript"], - "settings": { - "fontStyle": "italic" - } - }, - { - "name": "Markdown Link Title and Description", - "scope": [ - "string.other.link.title.markdown", - "string.other.link.description.markdown" - ], - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "Markdown Punctuation", - "scope": [ - "punctuation.definition.string.markdown", - "punctuation.definition.string.begin.markdown", - "punctuation.definition.string.end.markdown", - "meta.link.inline.markdown punctuation.definition.string" - ], - "settings": { - "foreground": "#82b1ff" - } - }, - { - "name": "Markdown MetaData Punctuation", - "scope": ["punctuation.definition.metadata.markdown"], - "settings": { - "foreground": "#ff5572" - } - }, - { - "name": "Markdown List Punctuation", - "scope": ["beginning.punctuation.definition.list.markdown"], - "settings": { - "foreground": "#82b1ff" - } - }, - { - "name": "Asciidoc Function", - "scope": "entity.name.function.asciidoc", - "settings": { - "foreground": "#F78C6C" - } - }, - { - "name": "PHP Variables", - "scope": "variable.other.php", - "settings": { - "foreground": "#bec5d4" - } - }, - { - "name": "Support Classes in PHP", - "scope": "support.class.php", - "settings": { - "foreground": "#ffcb8b" - } - }, - { - "name": "Punctuations in PHP function calls", - "scope": "meta.function-call.php punctuation", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "PHP Global Variables", - "scope": "variable.other.global.php", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Declaration Punctuation in PHP Global Variables", - "scope": "variable.other.global.php punctuation.definition.variable", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Language Constants in Python", - "scope": "constant.language.python", - "settings": { - "foreground": "#ff5874" - } - }, - { - "name": "Python Function Parameter and Arguments", - "scope": [ - "variable.parameter.function.python", - "meta.function-call.arguments.python" - ], - "settings": { - "foreground": "#7986E7" - } - }, - { - "name": "Python Function Call", - "scope": [ - "meta.function-call.python", - "meta.function-call.generic.python" - ], - "settings": { - "foreground": "#B2CCD6" - } - }, - { - "name": "Punctuations in Python", - "scope": "punctuation.python", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "Decorator Functions in Python", - "scope": "entity.name.function.decorator.python", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Python Language Variable", - "scope": "source.python variable.language.special", - "settings": { - "foreground": "#8EACE3" - } - }, - { - "name": "SCSS Variable", - "scope": [ - "variable.scss", - "variable.sass", - "variable.parameter.url.scss", - "variable.parameter.url.sass" - ], - "settings": { - "foreground": "#DDDDDD" - } - }, - { - "name": "Variables in SASS At-Rules", - "scope": [ - "source.css.scss meta.at-rule variable", - "source.css.sass meta.at-rule variable" - ], - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "Variables in SASS At-Rules", - "scope": [ - "source.css.scss meta.at-rule variable", - "source.css.sass meta.at-rule variable" - ], - "settings": { - "foreground": "#bec5d4" - } - }, - { - "name": "Attribute Name for SASS", - "scope": [ - "meta.attribute-selector.scss entity.other.attribute-name.attribute", - "meta.attribute-selector.sass entity.other.attribute-name.attribute" - ], - "settings": { - "foreground": "#F78C6C" - } - }, - { - "name": "Tag names in SASS", - "scope": ["entity.name.tag.scss", "entity.name.tag.sass"], - "settings": { - "foreground": "#ff5572" - } - }, - { - "name": "TypeScript[React] Variables and Object Properties", - "scope": [ - "variable.other.readwrite.alias.ts", - "variable.other.readwrite.alias.tsx", - "variable.other.readwrite.ts", - "variable.other.readwrite.tsx", - "variable.other.object.ts", - "variable.other.object.tsx", - "variable.object.property.ts", - "variable.object.property.tsx", - "variable.other.ts", - "variable.other.tsx", - "variable.tsx", - "variable.ts" - ], - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "TypeScript[React] Entity Name Types", - "scope": ["entity.name.type.ts", "entity.name.type.tsx"], - "settings": { - "foreground": "#78ccf0" - } - }, - { - "name": "TypeScript[React] Node Classes", - "scope": ["support.class.node.ts", "support.class.node.tsx"], - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "TypeScript[React] Entity Name Types as Parameters", - "scope": [ - "meta.type.parameters.ts entity.name.type", - "meta.type.parameters.tsx entity.name.type" - ], - "settings": { - "foreground": "#eeffff" - } - }, - { - "name": "TypeScript[React] Import/Export Punctuations", - "scope": [ - "meta.import.ts punctuation.definition.block", - "meta.import.tsx punctuation.definition.block", - "meta.export.ts punctuation.definition.block", - "meta.export.tsx punctuation.definition.block" - ], - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "TypeScript[React] Punctuation Decorators", - "scope": [ - "meta.decorator punctuation.decorator.ts", - "meta.decorator punctuation.decorator.tsx" - ], - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "TypeScript[React] Punctuation Decorators", - "scope": "meta.tag.js meta.jsx.children.tsx", - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "YAML Entity Name Tags", - "scope": "entity.name.tag.yaml", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "handlebars variables", - "scope": "variable.parameter.handlebars", - "settings": { - "foreground": "#bec5d4" - } - }, - { - "name": "handlebars parameters", - "scope": "entity.other.attribute-name.handlebars variable.parameter.handlebars", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "handlebars enitity attribute names", - "scope": "entity.other.attribute-name.handlebars", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "handlebars enitity attribute values", - "scope": "entity.other.attribute-value.handlebars variable.parameter.handlebars", - "settings": { - "foreground": "#7986E7" - } - }, - { - "name": "normalize font style of certain components", - "scope": [ - "meta.tag.js meta.embedded.expression.js punctuation.section.embedded.begin.js", - "meta.tag.js meta.embedded.expression.js punctuation.section.embedded.end.js", - "meta.property-list.css meta.property-value.css variable.other.less", - "punctuation.section.embedded.begin.js.jsx", - "punctuation.section.embedded.end.js.jsx", - "meta.property-list.scss variable.scss", - "meta.property-list.sass variable.sass", - "keyword.operator.logical", - "keyword.operator.arithmetic", - "keyword.operator.bitwise", - "keyword.operator.increment", - "keyword.operator.ternary", - "keyword.operator.comparison", - "keyword.operator.assignment", - "keyword.operator.operator", - "keyword.operator.or.regexp", - "keyword.operator.expression.in", - "keyword.operator.type", - "punctuation.section.embedded.js", - "punctuation.definintion.string", - "punctuation" - ], - "settings": { - "fontStyle": "normal" - } - } - ] -} +{ + "name": "Palenight Theme", + "author": "Olaolu Olawuyi", + "maintainers": ["Olaolu Olawuyi "], + "type": "dark", + "semanticClass": "palenight", + "colors": { + "contrastActiveBorder": null, + "contrastBorder": "#282B3C", + "focusBorder": "#282B3C", + "foreground": "#ffffff", + "widget.shadow": "#232635", + "selection.background": "#7580B850", + "descriptionForeground": null, + "errorForeground": "#EF5350", + "button.background": "#7e57c2cc", + "button.foreground": "#ffffffcc", + "button.hoverBackground": "#7e57c2", + "dropdown.background": "#292D3E", + "dropdown.border": "#7e57c2", + "dropdown.foreground": "#ffffffcc", + "input.background": "#313850", + "input.border": "#7e57c2", + "input.foreground": "#ffffffcc", + "input.placeholderForeground": "#ffffffcc", + "inputOption.activeBorder": "#ffffffcc", + "inputValidation.errorBackground": "#ef5350f2", + "inputValidation.errorBorder": "#EF5350", + "inputValidation.infoBackground": "#64b5f6f2", + "inputValidation.infoBorder": "#64B5F6", + "inputValidation.warningBackground": "#ffca28f2", + "inputValidation.warningBorder": "#FFCA28", + "scrollbar.shadow": "#292D3E00", + "scrollbarSlider.activeBackground": "#694CA4cc", + "scrollbarSlider.background": "#694CA466", + "scrollbarSlider.hoverBackground": "#694CA4cc", + "badge.background": "#7e57c2", + "badge.foreground": "#ffffff", + "progress.background": "#7e57c2", + "list.activeSelectionBackground": "#7e57c2", + "list.activeSelectionForeground": "#ffffff", + "list.dropBackground": "#2E3245", + "list.focusBackground": "#0000002e", + "list.focusForeground": "#ffffff", + "list.highlightForeground": "#ffffff", + "list.hoverBackground": "#0000001a", + "list.hoverForeground": "#ffffff", + "list.inactiveSelectionBackground": "#929ac90d", + "list.inactiveSelectionForeground": "#929ac9", + "activityBar.background": "#282C3D", + "activityBar.dropBackground": "#7e57c2e3", + "activityBar.foreground": "#eeffff", + "activityBar.border": "#282C3D", + "activityBarBadge.background": "#7e57c2", + "activityBarBadge.foreground": "#ffffff", + "sideBar.background": "#292D3E", + "sideBar.foreground": "#6C739A", + "sideBar.border": "#282B3C", + "sideBarTitle.foreground": "#eeffff", + "sideBarSectionHeader.background": "#292D3E", + "sideBarSectionHeader.foreground": "#eeffff", + "editorGroup.background": "#32374C", + "editorGroup.border": "#2E3245", + "editorGroup.dropBackground": "#7e57c273", + "editorGroupHeader.noTabsBackground": "#32374C", + "editorGroupHeader.tabsBackground": "#31364a", + "editorGroupHeader.tabsBorder": "#262A39", + "tab.activeBackground": "#292D3E", + "tab.activeForeground": "#eeffff", + "tab.border": "#272B3B", + "tab.activeBorder": "#262A39", + "tab.unfocusedActiveBorder": "#262A39", + "tab.inactiveBackground": "#31364A", + "tab.inactiveForeground": "#929ac9", + "tab.unfocusedActiveForeground": null, + "tab.unfocusedInactiveForeground": null, + "editor.background": "#292D3E", + "editor.foreground": "#BFC7D5", + "editorLineNumber.foreground": "#4c5374", + "editorLineNumber.activeForeground": "#eeffff", + "editorCursor.foreground": "#7e57c2", + "editorCursor.background": null, + "editor.selectionBackground": "#7580B850", + "editor.selectionHighlightBackground": "#383D51", + "editor.inactiveSelectionBackground": "#7e57c25a", + "editor.wordHighlightBackground": "#32374D", + "editor.wordHighlightStrongBackground": "#2E3250", + "editor.findMatchBackground": "#2e3248fc", + "editor.findMatchHighlightBackground": "#7e57c233", + "editor.findRangeHighlightBackground": null, + "editor.hoverHighlightBackground": "#7e57c25a", + "editor.lineHighlightBackground": "#0003", + "editor.lineHighlightBorder": null, + "editorLink.activeForeground": null, + "editor.rangeHighlightBackground": "#7e57c25a", + "editorWhitespace.foreground": null, + "editorIndentGuide.background": "#4E557980", + "editorRuler.foreground": "#4E557980", + "editorCodeLens.foreground": "#FFCA28", + "editorBracketMatch.background": null, + "editorBracketMatch.border": null, + "editorOverviewRuler.currentContentForeground": "#7e57c2", + "editorOverviewRuler.incomingContentForeground": "#7e57c2", + "editorOverviewRuler.commonContentForeground": "#7e57c2", + "editorError.foreground": "#EF5350", + "editorError.border": null, + "editorWarning.foreground": "#FFCA28", + "editorWarning.border": null, + "editorGutter.background": null, + "editorGutter.modifiedBackground": "#e2b93d", + "editorGutter.addedBackground": "#9CCC65", + "editorGutter.deletedBackground": "#EF5350", + "diffEditor.insertedTextBackground": "#99b76d23", + "diffEditor.removedTextBackground": "#ef535033", + "editorWidget.background": "#31364a", + "editorWidget.border": null, + "editorSuggestWidget.background": "#2C3043", + "editorSuggestWidget.border": "#2B2F40", + "editorSuggestWidget.foreground": "#bfc7d5", + "editorSuggestWidget.highlightForeground": "#ffffff", + "editorSuggestWidget.selectedBackground": "#7e57c2", + "editorHoverWidget.background": "#292D3E", + "editorHoverWidget.border": "#7e57c2", + "debugExceptionWidget.background": "#292D3E", + "debugExceptionWidget.border": "#7e57c2", + "editorMarkerNavigation.background": "#31364a", + "editorMarkerNavigationError.background": "#EF5350", + "editorMarkerNavigationWarning.background": "#FFCA28", + "peekView.border": "#7e57c2", + "peekViewEditor.background": "#232635", + "peekViewEditor.matchHighlightBackground": "#7e57c25a", + "peekViewResult.background": "#2E3245", + "peekViewResult.fileForeground": "#eeffff", + "peekViewResult.lineForeground": "#eeffff", + "peekViewResult.matchHighlightBackground": "#7e57c25a", + "peekViewResult.selectionBackground": "#2E3250", + "peekViewResult.selectionForeground": "#eeffff", + "peekViewTitle.background": "#292D3E", + "peekViewTitleDescription.foreground": "#697098", + "peekViewTitleLabel.foreground": "#eeffff", + "merge.currentHeaderBackground": "#7e57c25a", + "merge.currentContentBackground": null, + "merge.incomingHeaderBackground": "#7e57c25a", + "merge.incomingContentBackground": null, + "merge.border": null, + "panel.background": "#292D3E", + "panel.border": "#282B3C", + "panelTitle.activeBorder": "#7e57c2", + "panelTitle.activeForeground": "#eeffff", + "panelTitle.inactiveForeground": "#bfc7d580", + "statusBar.background": "#282C3D", + "statusBar.foreground": "#676E95", + "statusBar.border": "#262A39", + "statusBar.debuggingBackground": "#202431", + "statusBar.debuggingForeground": null, + "statusBar.debuggingBorder": "#1F2330", + "statusBar.noFolderForeground": null, + "statusBar.noFolderBackground": "#292D3E", + "statusBar.noFolderBorder": "#25293A", + "statusBarItem.activeBackground": "#202431", + "statusBarItem.hoverBackground": "#202431", + "statusBarItem.prominentBackground": "#202431", + "statusBarItem.prominentHoverBackground": "#202431", + "titleBar.activeBackground": "#292d3e", + "titleBar.activeForeground": "#eeefff", + "titleBar.border": "#30364c", + "titleBar.inactiveBackground": "#30364c", + "titleBar.inactiveForeground": null, + "notifications.background": "#292D3E", + "notifications.foreground": "#ffffffcc", + "notificationLink.foreground": "#80CBC4", + "extensionButton.prominentForeground": "#ffffffcc", + "extensionButton.prominentBackground": "#7e57c2cc", + "extensionButton.prominentHoverBackground": "#7e57c2", + "pickerGroup.foreground": "#d1aaff", + "pickerGroup.border": "#2E3245", + "terminal.ansiWhite": "#ffffff", + "terminal.ansiBlack": "#676E95", + "terminal.ansiBlue": "#82AAFF", + "terminal.ansiCyan": "#89DDFF", + "terminal.ansiGreen": "#a9c77d", + "terminal.ansiMagenta": "#C792EA", + "terminal.ansiRed": "#ff5572", + "terminal.ansiYellow": "#FFCB6B", + "terminal.ansiBrightWhite": "#ffffff", + "terminal.ansiBrightBlack": "#676E95", + "terminal.ansiBrightBlue": "#82AAFF", + "terminal.ansiBrightCyan": "#89DDFF", + "terminal.ansiBrightGreen": "#C3E88D", + "terminal.ansiBrightMagenta": "#C792EA", + "terminal.ansiBrightRed": "#ff5572", + "terminal.ansiBrightYellow": "#FFCB6B", + "debugToolBar.background": "#292D3E", + "welcomePage.buttonBackground": null, + "welcomePage.buttonHoverBackground": null, + "walkThrough.embeddedEditorBackground": "#232635", + "gitDecoration.modifiedResourceForeground": "#e2c08de6", + "gitDecoration.deletedResourceForeground": "#EF535090", + "gitDecoration.untrackedResourceForeground": "#a9c77dff", + "gitDecoration.ignoredResourceForeground": "#69709890", + "gitDecoration.conflictingResourceForeground": "#FFEB95CC", + "editorActiveLineNumber.foreground": "#eeffff", + "breadcrumb.foreground": "#6c739a", + "breadcrumb.focusForeground": "#bfc7d5", + "breadcrumb.activeSelectionForeground": "#eeffff", + "breadcrumbPicker.background": "#292D3E" + }, + "tokenColors": [ + { + "name": "Global settings", + "settings": { + "background": "#292D3E", + "foreground": "#bfc7d5" + } + }, + { + "name": "Comment", + "scope": "comment", + "settings": { + "foreground": "#697098", + "fontStyle": "italic" + } + }, + { + "name": "String", + "scope": "string", + "settings": { + "foreground": "#C3E88D" + } + }, + { + "name": "String Quoted", + "scope": "string.quoted", + "settings": { + "foreground": "#C3E88D" + } + }, + { + "name": "String Unquoted", + "scope": "string.unquoted", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Support Constant Math", + "scope": "support.constant.math", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Number", + "scope": ["constant.numeric", "constant.character.numeric"], + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Built-in constant", + "scope": [ + "constant.language", + "punctuation.definition.constant", + "variable.other.constant" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "User-defined constant", + "scope": ["constant.character", "constant.other"], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Constant Character Escape", + "scope": "constant.character.escape", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "RegExp String", + "scope": ["string.regexp", "string.regexp keyword.other"], + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "Comma in functions", + "scope": "meta.function punctuation.separator.comma", + "settings": { + "foreground": "#eeffff" + } + }, + { + "name": "Variable", + "scope": "variable", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Keyword", + "scope": ["punctuation.accessor", "keyword"], + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Storage", + "scope": [ + "storage", + "storage.type", + "meta.var.expr storage.type", + "storage.type.property.js", + "storage.type.property.ts", + "storage.type.property.tsx", + "meta.class meta.method.declaration meta.var.expr storage.type.js" + ], + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Class name", + "scope": ["entity.name.class", "meta.class entity.name.type.class"], + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Inherited class", + "scope": "entity.other.inherited-class", + "settings": { + "foreground": "#a9c77d" + } + }, + { + "name": "Function name", + "scope": "entity.name.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Function Parameters", + "scope": "variable.parameter", + "settings": { + "foreground": "#7986E7" + } + }, + { + "name": "Meta Tag", + "scope": ["punctuation.definition.tag", "meta.tag"], + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "HTML Tag names", + "scope": [ + "entity.name.tag support.class.component", + "meta.tag.other.html", + "meta.tag.other.js", + "meta.tag.other.tsx", + "entity.name.tag.tsx", + "entity.name.tag.js", + "entity.name.tag", + "meta.tag.js", + "meta.tag.tsx", + "meta.tag.html" + ], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Tag attribute", + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Entity Name Tag Custom", + "scope": "entity.name.tag.custom", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Library (function & constant)", + "scope": ["support.function", "support.constant"], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Support Constant Property Value meta", + "scope": "support.constant.meta.property-value", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Library class/type", + "scope": ["support.type", "support.class"], + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Support Variable DOM", + "scope": "support.variable.dom", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Invalid", + "scope": "invalid", + "settings": { + "background": "#ff2c83", + "foreground": "#ffffff" + } + }, + { + "name": "Invalid deprecated", + "scope": "invalid.deprecated", + "settings": { + "foreground": "#ffffff", + "background": "#d3423e" + } + }, + { + "name": "Keyword Operator", + "scope": "keyword.operator", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Keyword Operator Relational", + "scope": "keyword.operator.relational", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Keyword Operator Assignment", + "scope": "keyword.operator.assignment", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Double-Slashed Comment", + "scope": "comment.line.double-slash", + "settings": { + "foreground": "#697098" + } + }, + { + "name": "Object", + "scope": "object", + "settings": { + "foreground": "#cdebf7" + } + }, + { + "name": "Null", + "scope": "constant.language.null", + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "Meta Brace", + "scope": "meta.brace", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Meta Delimiter Period", + "scope": "meta.delimiter.period", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Punctuation Definition String", + "scope": "punctuation.definition.string", + "settings": { + "foreground": "#d9f5dd" + } + }, + { + "name": "Boolean", + "scope": "constant.language.boolean", + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "Object Comma", + "scope": "object.comma", + "settings": { + "foreground": "#ffffff" + } + }, + { + "name": "Variable Parameter Function", + "scope": "variable.parameter.function", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Support Type Property Name & entity name tags", + "scope": [ + "support.type.vendored.property-name", + "support.constant.vendored.property-value", + "support.type.property-name", + "meta.property-list entity.name.tag" + ], + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "Entity Name tag reference in stylesheets", + "scope": "meta.property-list entity.name.tag.reference", + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Constant Other Color RGB Value Punctuation Definition Constant", + "scope": "constant.other.color.rgb-value punctuation.definition.constant", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Constant Other Color", + "scope": "constant.other.color", + "settings": { + "foreground": "#FFEB95" + } + }, + { + "name": "Keyword Other Unit", + "scope": "keyword.other.unit", + "settings": { + "foreground": "#FFEB95" + } + }, + { + "name": "Meta Selector", + "scope": "meta.selector", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Entity Other Attribute Name Id", + "scope": "entity.other.attribute-name.id", + "settings": { + "foreground": "#FAD430" + } + }, + { + "name": "Meta Property Name", + "scope": "meta.property-name", + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "Doctypes", + "scope": ["entity.name.tag.doctype", "meta.tag.sgml.doctype"], + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Punctuation Definition Parameters", + "scope": "punctuation.definition.parameters", + "settings": { + "foreground": "#d9f5dd" + } + }, + { + "name": "Keyword Control Operator", + "scope": "keyword.control.operator", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Keyword Operator Logical", + "scope": "keyword.operator.logical", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Variable Instances", + "scope": [ + "variable.instance", + "variable.other.instance", + "variable.reaedwrite.instance", + "variable.other.readwrite.instance" + ], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Variable Property Other", + "scope": ["variable.other.property", "variable.other.object.property"], + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Entity Name Function", + "scope": "entity.name.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Keyword Operator Comparison", + "scope": "keyword.operator.comparison", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Support Constant, `new` keyword, Special Method Keyword", + "scope": [ + "support.constant", + "keyword.other.special-method", + "keyword.other.new" + ], + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Support Function", + "scope": "support.function", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Invalid Broken", + "scope": "invalid.broken", + "settings": { + "foreground": "#020e14", + "background": "#F78C6C" + } + }, + { + "name": "Invalid Unimplemented", + "scope": "invalid.unimplemented", + "settings": { + "background": "#8BD649", + "foreground": "#ffffff" + } + }, + { + "name": "Invalid Illegal", + "scope": "invalid.illegal", + "settings": { + "foreground": "#ffffff", + "background": "#ec5f67" + } + }, + { + "name": "Language Variable", + "scope": "variable.language", + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Support Variable Property", + "scope": "support.variable.property", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Variable Function", + "scope": "variable.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Variable Interpolation", + "scope": "variable.interpolation", + "settings": { + "foreground": "#ec5f67" + } + }, + { + "name": "Meta Function Call", + "scope": "meta.function-call", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Punctuation Section Embedded", + "scope": "punctuation.section.embedded", + "settings": { + "foreground": "#d3423e" + } + }, + { + "name": "Punctuation Tweaks", + "scope": [ + "punctuation.terminator.expression", + "punctuation.definition.arguments", + "punctuation.definition.array", + "punctuation.section.array", + "meta.array" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "More Punctuation Tweaks", + "scope": [ + "punctuation.definition.list.begin", + "punctuation.definition.list.end", + "punctuation.separator.arguments", + "punctuation.definition.list" + ], + "settings": { + "foreground": "#d9f5dd" + } + }, + { + "name": "Template Strings", + "scope": "string.template meta.template.expression", + "settings": { + "foreground": "#d3423e" + } + }, + { + "name": "Backtics(``) in Template Strings", + "scope": "string.template punctuation.definition.string", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Italics", + "scope": "italic", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Bold", + "scope": "bold", + "settings": { + "foreground": "#ffcb6b", + "fontStyle": "bold" + } + }, + { + "name": "Quote", + "scope": "quote", + "settings": { + "foreground": "#697098", + "fontStyle": "italic" + } + }, + { + "name": "Raw Code", + "scope": "raw", + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "CoffeScript Variable Assignment", + "scope": "variable.assignment.coffee", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "CoffeScript Parameter Function", + "scope": "variable.parameter.function.coffee", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "CoffeeScript Assignments", + "scope": "variable.assignment.coffee", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "C# Readwrite Variables", + "scope": "variable.other.readwrite.cs", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "C# Classes & Storage types", + "scope": ["entity.name.type.class.cs", "storage.type.cs"], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "C# Namespaces", + "scope": "entity.name.type.namespace.cs", + "settings": { + "foreground": "#B2CCD6" + } + }, + { + "name": "Tag names in Stylesheets", + "scope": [ + "entity.name.tag.css", + "entity.name.tag.less", + "entity.name.tag.custom.css" + ], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Wildcard(*) selector in Stylesheets", + "scope": [ + "entity.name.tag.wildcard.css", + "entity.name.tag.wildcard.less", + "entity.name.tag.wildcard.scss", + "entity.name.tag.wildcard.sass" + ], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "(C|SC|SA|LE)SS property value unit", + "scope": [ + "keyword.other.unit.css", + "constant.length.units.css", + "keyword.other.unit.less", + "constant.length.units.less", + "keyword.other.unit.scss", + "constant.length.units.scss", + "keyword.other.unit.sass", + "constant.length.units.sass" + ], + "settings": { + "foreground": "#FFEB95" + } + }, + { + "name": "Attribute Name for CSS", + "scope": "meta.attribute-selector.css entity.other.attribute-name.attribute", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "punctuations in styled components", + "scope": [ + "source.js source.css meta.property-list", + "source.js source.css punctuation.section", + "source.js source.css punctuation.terminator.rule", + "source.js source.css punctuation.definition.entity.end.bracket", + "source.js source.css punctuation.definition.entity.begin.bracket", + "source.js source.css punctuation.separator.key-value", + "source.js source.css punctuation.definition.attribute-selector", + "source.js source.css meta.property-list", + "source.js source.css meta.property-list punctuation.separator.comma", + "source.ts source.css punctuation.section", + "source.ts source.css punctuation.terminator.rule", + "source.ts source.css punctuation.definition.entity.end.bracket", + "source.ts source.css punctuation.definition.entity.begin.bracket", + "source.ts source.css punctuation.separator.key-value", + "source.ts source.css punctuation.definition.attribute-selector", + "source.ts source.css meta.property-list", + "source.ts source.css meta.property-list punctuation.separator.comma" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Elixir Classes", + "scope": [ + "source.elixir support.type.elixir", + "source.elixir meta.module.elixir entity.name.class.elixir" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Elixir Functions", + "scope": "source.elixir entity.name.function", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Elixir Constants", + "scope": [ + "source.elixir constant.other.symbol.elixir", + "source.elixir constant.other.keywords.elixir" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Elixir String Punctuations", + "scope": "source.elixir punctuation.definition.string", + "settings": { + "foreground": "#a9c77d" + } + }, + { + "name": "Elixir", + "scope": [ + "source.elixir variable.other.readwrite.module.elixir", + "source.elixir variable.other.readwrite.module.elixir punctuation.definition.variable.elixir" + ], + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Elixir Binary Punctuations", + "scope": "source.elixir .punctuation.binary.elixir", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Go Function Calls", + "scope": "source.go meta.function-call.go", + "settings": { + "foreground": "#DDDDDD" + } + }, + { + "name": "GraphQL Variables", + "scope": "variable.qraphql", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "ID Attribute Name in HTML", + "scope": "entity.other.attribute-name.id.html", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "HTML Punctuation Definition Tag", + "scope": "punctuation.definition.tag.html", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "HTML Doctype", + "scope": "meta.tag.sgml.doctype.html", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "JavaScript Classes", + "scope": "meta.class entity.name.type.class.js", + "settings": { + "foreground": "#ffcb8b" + } + }, + { + "name": "JavaScript Method Declaration e.g. `constructor`", + "scope": "meta.method.declaration storage.type.js", + "settings": { + "foreground": "#82AAFF", + "fontStyle": "normal" + } + }, + { + "name": "JavaScript Terminator", + "scope": "terminator.js", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JavaScript Meta Punctuation Definition", + "scope": "meta.js punctuation.definition.js", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Entity Names in Code Documentations", + "scope": [ + "entity.name.type.instance.jsdoc", + "entity.name.type.instance.phpdoc" + ], + "settings": { + "foreground": "#eeffff" + } + }, + { + "name": "Other Variables in Code Documentations", + "scope": ["variable.other.jsdoc", "variable.other.phpdoc"], + "settings": { + "foreground": "#78ccf0" + } + }, + { + "name": "JavaScript module imports and exports", + "scope": [ + "variable.other.meta.import.js", + "meta.import.js variable.other", + "variable.other.meta.export.js", + "meta.export.js variable.other" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JavaScript Variable Parameter Function", + "scope": "variable.parameter.function.js", + "settings": { + "foreground": "#7986E7" + } + }, + { + "name": "JavaScript Variable Other ReadWrite", + "scope": "variable.other.readwrite.js", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Text nested in React tags", + "scope": [ + "meta.jsx.children", + "meta.jsx.children.js", + "meta.jsx.children.tsx" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JavaScript[React] Variable Other Object", + "scope": [ + "variable.other.object.js", + "variable.other.object.jsx", + "meta.object-literal.key.js", + "meta.object-literal.key.jsx", + "variable.object.property.js", + "variable.object.property.jsx" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JavaScript Variables", + "scope": ["variable.js", "variable.other.js"], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JavaScript Entity Name Type", + "scope": ["entity.name.type.js", "entity.name.type.module.js"], + "settings": { + "foreground": "#ffcb8b" + } + }, + { + "name": "JavaScript Support Classes", + "scope": "support.class.js", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JSON Property Names", + "scope": "support.type.property-name.json", + "settings": { + "foreground": "#C3E88D", + "fontStyle": "normal" + } + }, + { + "name": "JSON Support Constants", + "scope": "support.constant.json", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "JSON Property values (string)", + "scope": "meta.structure.dictionary.value.json string.quoted.double", + "settings": { + "foreground": "#80CBC4", + "fontStyle": "normal" + } + }, + { + "name": "Strings in JSON values", + "scope": "string.quoted.double.json punctuation.definition.string.json", + "settings": { + "foreground": "#80CBC4", + "fontStyle": "normal" + } + }, + { + "name": "Specific JSON Property values like null", + "scope": "meta.structure.dictionary.json meta.structure.dictionary.value constant.language", + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "Ruby Variables", + "scope": "variable.other.ruby", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Ruby Hashkeys", + "scope": "constant.language.symbol.hashkey.ruby", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "LESS Tag names", + "scope": "entity.name.tag.less", + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Attribute Name for LESS", + "scope": "meta.attribute-selector.less entity.other.attribute-name.attribute", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Markup Headings", + "scope": "markup.heading", + "settings": { + "foreground": "#82b1ff" + } + }, + { + "name": "Markup Italics", + "scope": "markup.italic", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Markup Bold", + "scope": "markup.bold", + "settings": { + "foreground": "#ffcb6b", + "fontStyle": "bold" + } + }, + { + "name": "Markup Quote + others", + "scope": "markup.quote", + "settings": { + "foreground": "#697098", + "fontStyle": "italic" + } + }, + { + "name": "Markup Raw Code + others", + "scope": "markup.inline.raw", + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "Markup Links", + "scope": ["markup.underline.link", "markup.underline.link.image"], + "settings": { + "foreground": "#ff869a" + } + }, + { + "name": "Markup Attributes", + "scope": ["markup.meta.attribute-list"], + "settings": { + "foreground": "#a9c77d" + } + }, + { + "name": "Markup Admonitions", + "scope": "markup.admonition", + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "Markup Lists", + "scope": "markup.list.bullet", + "settings": { + "foreground": "#D9F5DD" + } + }, + { + "name": "Markup Superscript and Subscript", + "scope": ["markup.superscript", "markup.subscript"], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "Markdown Link Title and Description", + "scope": [ + "string.other.link.title.markdown", + "string.other.link.description.markdown" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Markdown Punctuation", + "scope": [ + "punctuation.definition.string.markdown", + "punctuation.definition.string.begin.markdown", + "punctuation.definition.string.end.markdown", + "meta.link.inline.markdown punctuation.definition.string" + ], + "settings": { + "foreground": "#82b1ff" + } + }, + { + "name": "Markdown MetaData Punctuation", + "scope": ["punctuation.definition.metadata.markdown"], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Markdown List Punctuation", + "scope": ["beginning.punctuation.definition.list.markdown"], + "settings": { + "foreground": "#82b1ff" + } + }, + { + "name": "Asciidoc Function", + "scope": "entity.name.function.asciidoc", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "PHP Variables", + "scope": "variable.other.php", + "settings": { + "foreground": "#bec5d4" + } + }, + { + "name": "Support Classes in PHP", + "scope": "support.class.php", + "settings": { + "foreground": "#ffcb8b" + } + }, + { + "name": "Punctuations in PHP function calls", + "scope": "meta.function-call.php punctuation", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "PHP Global Variables", + "scope": "variable.other.global.php", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Declaration Punctuation in PHP Global Variables", + "scope": "variable.other.global.php punctuation.definition.variable", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Language Constants in Python", + "scope": "constant.language.python", + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "Python Function Parameter and Arguments", + "scope": [ + "variable.parameter.function.python", + "meta.function-call.arguments.python" + ], + "settings": { + "foreground": "#7986E7" + } + }, + { + "name": "Python Function Call", + "scope": [ + "meta.function-call.python", + "meta.function-call.generic.python" + ], + "settings": { + "foreground": "#B2CCD6" + } + }, + { + "name": "Punctuations in Python", + "scope": "punctuation.python", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Decorator Functions in Python", + "scope": "entity.name.function.decorator.python", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Python Language Variable", + "scope": "source.python variable.language.special", + "settings": { + "foreground": "#8EACE3" + } + }, + { + "name": "SCSS Variable", + "scope": [ + "variable.scss", + "variable.sass", + "variable.parameter.url.scss", + "variable.parameter.url.sass" + ], + "settings": { + "foreground": "#DDDDDD" + } + }, + { + "name": "Variables in SASS At-Rules", + "scope": [ + "source.css.scss meta.at-rule variable", + "source.css.sass meta.at-rule variable" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Variables in SASS At-Rules", + "scope": [ + "source.css.scss meta.at-rule variable", + "source.css.sass meta.at-rule variable" + ], + "settings": { + "foreground": "#bec5d4" + } + }, + { + "name": "Attribute Name for SASS", + "scope": [ + "meta.attribute-selector.scss entity.other.attribute-name.attribute", + "meta.attribute-selector.sass entity.other.attribute-name.attribute" + ], + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Tag names in SASS", + "scope": ["entity.name.tag.scss", "entity.name.tag.sass"], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "TypeScript[React] Variables and Object Properties", + "scope": [ + "variable.other.readwrite.alias.ts", + "variable.other.readwrite.alias.tsx", + "variable.other.readwrite.ts", + "variable.other.readwrite.tsx", + "variable.other.object.ts", + "variable.other.object.tsx", + "variable.object.property.ts", + "variable.object.property.tsx", + "variable.other.ts", + "variable.other.tsx", + "variable.tsx", + "variable.ts" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "TypeScript[React] Entity Name Types", + "scope": ["entity.name.type.ts", "entity.name.type.tsx"], + "settings": { + "foreground": "#78ccf0" + } + }, + { + "name": "TypeScript[React] Node Classes", + "scope": ["support.class.node.ts", "support.class.node.tsx"], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "TypeScript[React] Entity Name Types as Parameters", + "scope": [ + "meta.type.parameters.ts entity.name.type", + "meta.type.parameters.tsx entity.name.type" + ], + "settings": { + "foreground": "#eeffff" + } + }, + { + "name": "TypeScript[React] Import/Export Punctuations", + "scope": [ + "meta.import.ts punctuation.definition.block", + "meta.import.tsx punctuation.definition.block", + "meta.export.ts punctuation.definition.block", + "meta.export.tsx punctuation.definition.block" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "TypeScript[React] Punctuation Decorators", + "scope": [ + "meta.decorator punctuation.decorator.ts", + "meta.decorator punctuation.decorator.tsx" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "TypeScript[React] Punctuation Decorators", + "scope": "meta.tag.js meta.jsx.children.tsx", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "YAML Entity Name Tags", + "scope": "entity.name.tag.yaml", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "handlebars variables", + "scope": "variable.parameter.handlebars", + "settings": { + "foreground": "#bec5d4" + } + }, + { + "name": "handlebars parameters", + "scope": "entity.other.attribute-name.handlebars variable.parameter.handlebars", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "handlebars enitity attribute names", + "scope": "entity.other.attribute-name.handlebars", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "handlebars enitity attribute values", + "scope": "entity.other.attribute-value.handlebars variable.parameter.handlebars", + "settings": { + "foreground": "#7986E7" + } + }, + { + "name": "normalize font style of certain components", + "scope": [ + "meta.tag.js meta.embedded.expression.js punctuation.section.embedded.begin.js", + "meta.tag.js meta.embedded.expression.js punctuation.section.embedded.end.js", + "meta.property-list.css meta.property-value.css variable.other.less", + "punctuation.section.embedded.begin.js.jsx", + "punctuation.section.embedded.end.js.jsx", + "meta.property-list.scss variable.scss", + "meta.property-list.sass variable.sass", + "keyword.operator.logical", + "keyword.operator.arithmetic", + "keyword.operator.bitwise", + "keyword.operator.increment", + "keyword.operator.ternary", + "keyword.operator.comparison", + "keyword.operator.assignment", + "keyword.operator.operator", + "keyword.operator.or.regexp", + "keyword.operator.expression.in", + "keyword.operator.type", + "punctuation.section.embedded.js", + "punctuation.definintion.string", + "punctuation" + ], + "settings": { + "fontStyle": "normal" + } + } + ] +} From 7964b3560742fa3d821e13548c762b0531b45fc4 Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Fri, 8 Dec 2023 12:10:25 -0500 Subject: [PATCH 038/115] Add release channel to panic collab upload --- crates/collab/src/api.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/crates/collab/src/api.rs b/crates/collab/src/api.rs index a84fcf328ba4e92214074b55fc0d849e5b69db61..8d286388cfe936f3e3883f41759f7b8a62466afb 100644 --- a/crates/collab/src/api.rs +++ b/crates/collab/src/api.rs @@ -116,12 +116,13 @@ struct CreateUserResponse { #[derive(Debug, Deserialize)] struct Panic { version: String, + release_channel: String, text: String, } #[instrument(skip(panic))] async fn trace_panic(panic: Json) -> Result<()> { - tracing::error!(version = %panic.version, text = %panic.text, "panic report"); + tracing::error!(version = %panic.version, release_channel = %panic.release_channel, text = %panic.text, "panic report"); Ok(()) } From 0cab3de0ae6e57ad806730290c883d1ba9d69a8f Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Fri, 8 Dec 2023 12:48:02 -0500 Subject: [PATCH 039/115] collab 0.30.1 --- Cargo.lock | 2 +- crates/collab/Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 841812e19e99a682603daf3382a02e036b8d4737..44b705c129113b369f82c97d441cd532a676507e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1753,7 +1753,7 @@ dependencies = [ [[package]] name = "collab" -version = "0.30.0" +version = "0.30.1" dependencies = [ "anyhow", "async-trait", diff --git a/crates/collab/Cargo.toml b/crates/collab/Cargo.toml index 50491704c9792a241f10b2c2ac3dbcf146b77c61..674a324d9733e97486c283a857e8b41547ee5910 100644 --- a/crates/collab/Cargo.toml +++ b/crates/collab/Cargo.toml @@ -3,7 +3,7 @@ authors = ["Nathan Sobo "] default-run = "collab" edition = "2021" name = "collab" -version = "0.30.0" +version = "0.30.1" publish = false [[bin]] From 63cc9e506801694f3413f6155834751652811833 Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Fri, 8 Dec 2023 13:07:16 -0500 Subject: [PATCH 040/115] Move character counter up above editor in feedback modal --- crates/feedback2/src/feedback_modal.rs | 46 +++++++++++++------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/crates/feedback2/src/feedback_modal.rs b/crates/feedback2/src/feedback_modal.rs index 5ac2197609e3e2811678ccc9a50825badc27240e..ada844ecdac11bc971b9edb894b3718ede8be69f 100644 --- a/crates/feedback2/src/feedback_modal.rs +++ b/crates/feedback2/src/feedback_modal.rs @@ -301,6 +301,29 @@ impl Render for FeedbackModal { // TODO: Add Headline component to `ui2` div().text_xl().child("Share Feedback"), )) + .child( + Label::new(if self.character_count < *FEEDBACK_CHAR_LIMIT.start() { + format!( + "Feedback must be at least {} characters.", + FEEDBACK_CHAR_LIMIT.start() + ) + } else if self.character_count > *FEEDBACK_CHAR_LIMIT.end() { + format!( + "Feedback must be less than {} characters.", + FEEDBACK_CHAR_LIMIT.end() + ) + } else { + format!( + "Characters: {}", + *FEEDBACK_CHAR_LIMIT.end() - self.character_count + ) + }) + .color(if valid_character_count { + Color::Success + } else { + Color::Error + }), + ) .child( div() .flex_1() @@ -313,29 +336,6 @@ impl Render for FeedbackModal { ) .child( div() - .child( - Label::new(if self.character_count < *FEEDBACK_CHAR_LIMIT.start() { - format!( - "Feedback must be at least {} characters.", - FEEDBACK_CHAR_LIMIT.start() - ) - } else if self.character_count > *FEEDBACK_CHAR_LIMIT.end() { - format!( - "Feedback must be less than {} characters.", - FEEDBACK_CHAR_LIMIT.end() - ) - } else { - format!( - "Characters: {}", - *FEEDBACK_CHAR_LIMIT.end() - self.character_count - ) - }) - .color(if valid_character_count { - Color::Success - } else { - Color::Error - }), - ) .child( h_stack() .bg(cx.theme().colors().editor_background) From 9ac9532d3d0542f241c8f5b7eabe233227d5cff9 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 8 Dec 2023 13:12:09 -0500 Subject: [PATCH 041/115] Treat empty strings as `None` when deserializing VS Code themes --- crates/theme_importer/src/vscode/theme.rs | 1410 ++++++++++++++++++--- 1 file changed, 1209 insertions(+), 201 deletions(-) diff --git a/crates/theme_importer/src/vscode/theme.rs b/crates/theme_importer/src/vscode/theme.rs index d2c1136d7b46fb31fbf2df1d8242c0510f805f34..2c3fcd1752306720833eb4cbe8580f1ee61cd94b 100644 --- a/crates/theme_importer/src/vscode/theme.rs +++ b/crates/theme_importer/src/vscode/theme.rs @@ -1,7 +1,15 @@ -use serde::Deserialize; +use serde::{Deserialize, Deserializer}; use crate::vscode::VsCodeTokenColor; +fn empty_string_as_none<'de, D>(deserializer: D) -> Result, D::Error> +where + D: Deserializer<'de>, +{ + let value = Option::::deserialize(deserializer)?; + Ok(value.filter(|value| !value.is_empty())) +} + #[derive(Deserialize, Debug)] pub struct VsCodeTheme { #[serde(rename = "$schema")] @@ -20,405 +28,1405 @@ pub struct VsCodeTheme { #[derive(Debug, Deserialize)] pub struct VsCodeColors { - #[serde(rename = "terminal.background")] + #[serde( + default, + rename = "terminal.background", + deserialize_with = "empty_string_as_none" + )] pub terminal_background: Option, - #[serde(rename = "terminal.foreground")] + + #[serde( + default, + rename = "terminal.foreground", + deserialize_with = "empty_string_as_none" + )] pub terminal_foreground: Option, - #[serde(rename = "terminal.ansiBrightBlack")] + + #[serde( + default, + rename = "terminal.ansiBrightBlack", + deserialize_with = "empty_string_as_none" + )] pub terminal_ansi_bright_black: Option, - #[serde(rename = "terminal.ansiBrightRed")] + + #[serde( + default, + rename = "terminal.ansiBrightRed", + deserialize_with = "empty_string_as_none" + )] pub terminal_ansi_bright_red: Option, - #[serde(rename = "terminal.ansiBrightGreen")] + + #[serde( + default, + rename = "terminal.ansiBrightGreen", + deserialize_with = "empty_string_as_none" + )] pub terminal_ansi_bright_green: Option, - #[serde(rename = "terminal.ansiBrightYellow")] + + #[serde( + default, + rename = "terminal.ansiBrightYellow", + deserialize_with = "empty_string_as_none" + )] pub terminal_ansi_bright_yellow: Option, - #[serde(rename = "terminal.ansiBrightBlue")] + + #[serde( + default, + rename = "terminal.ansiBrightBlue", + deserialize_with = "empty_string_as_none" + )] pub terminal_ansi_bright_blue: Option, - #[serde(rename = "terminal.ansiBrightMagenta")] + + #[serde( + default, + rename = "terminal.ansiBrightMagenta", + deserialize_with = "empty_string_as_none" + )] pub terminal_ansi_bright_magenta: Option, - #[serde(rename = "terminal.ansiBrightCyan")] + + #[serde( + default, + rename = "terminal.ansiBrightCyan", + deserialize_with = "empty_string_as_none" + )] pub terminal_ansi_bright_cyan: Option, - #[serde(rename = "terminal.ansiBrightWhite")] + + #[serde( + default, + rename = "terminal.ansiBrightWhite", + deserialize_with = "empty_string_as_none" + )] pub terminal_ansi_bright_white: Option, - #[serde(rename = "terminal.ansiBlack")] + + #[serde( + default, + rename = "terminal.ansiBlack", + deserialize_with = "empty_string_as_none" + )] pub terminal_ansi_black: Option, - #[serde(rename = "terminal.ansiRed")] + + #[serde( + default, + rename = "terminal.ansiRed", + deserialize_with = "empty_string_as_none" + )] pub terminal_ansi_red: Option, - #[serde(rename = "terminal.ansiGreen")] + + #[serde( + default, + rename = "terminal.ansiGreen", + deserialize_with = "empty_string_as_none" + )] pub terminal_ansi_green: Option, - #[serde(rename = "terminal.ansiYellow")] + + #[serde( + default, + rename = "terminal.ansiYellow", + deserialize_with = "empty_string_as_none" + )] pub terminal_ansi_yellow: Option, - #[serde(rename = "terminal.ansiBlue")] + + #[serde( + default, + rename = "terminal.ansiBlue", + deserialize_with = "empty_string_as_none" + )] pub terminal_ansi_blue: Option, - #[serde(rename = "terminal.ansiMagenta")] + + #[serde( + default, + rename = "terminal.ansiMagenta", + deserialize_with = "empty_string_as_none" + )] pub terminal_ansi_magenta: Option, - #[serde(rename = "terminal.ansiCyan")] + + #[serde( + default, + rename = "terminal.ansiCyan", + deserialize_with = "empty_string_as_none" + )] pub terminal_ansi_cyan: Option, - #[serde(rename = "terminal.ansiWhite")] + + #[serde( + default, + rename = "terminal.ansiWhite", + deserialize_with = "empty_string_as_none" + )] pub terminal_ansi_white: Option, - #[serde(rename = "focusBorder")] + + #[serde( + default, + rename = "focusBorder", + deserialize_with = "empty_string_as_none" + )] pub focus_border: Option, + pub foreground: Option, - #[serde(rename = "selection.background")] + + #[serde( + default, + rename = "selection.background", + deserialize_with = "empty_string_as_none" + )] pub selection_background: Option, - #[serde(rename = "errorForeground")] + + #[serde( + default, + rename = "errorForeground", + deserialize_with = "empty_string_as_none" + )] pub error_foreground: Option, - #[serde(rename = "button.background")] + + #[serde( + default, + rename = "button.background", + deserialize_with = "empty_string_as_none" + )] pub button_background: Option, - #[serde(rename = "button.foreground")] + + #[serde( + default, + rename = "button.foreground", + deserialize_with = "empty_string_as_none" + )] pub button_foreground: Option, - #[serde(rename = "button.secondaryBackground")] + + #[serde( + default, + rename = "button.secondaryBackground", + deserialize_with = "empty_string_as_none" + )] pub button_secondary_background: Option, - #[serde(rename = "button.secondaryForeground")] + + #[serde( + default, + rename = "button.secondaryForeground", + deserialize_with = "empty_string_as_none" + )] pub button_secondary_foreground: Option, - #[serde(rename = "button.secondaryHoverBackground")] + + #[serde( + default, + rename = "button.secondaryHoverBackground", + deserialize_with = "empty_string_as_none" + )] pub button_secondary_hover_background: Option, - #[serde(rename = "dropdown.background")] + + #[serde( + default, + rename = "dropdown.background", + deserialize_with = "empty_string_as_none" + )] pub dropdown_background: Option, - #[serde(rename = "dropdown.border")] + + #[serde( + default, + rename = "dropdown.border", + deserialize_with = "empty_string_as_none" + )] pub dropdown_border: Option, - #[serde(rename = "dropdown.foreground")] + + #[serde( + default, + rename = "dropdown.foreground", + deserialize_with = "empty_string_as_none" + )] pub dropdown_foreground: Option, - #[serde(rename = "input.background")] + + #[serde( + default, + rename = "input.background", + deserialize_with = "empty_string_as_none" + )] pub input_background: Option, - #[serde(rename = "input.foreground")] + + #[serde( + default, + rename = "input.foreground", + deserialize_with = "empty_string_as_none" + )] pub input_foreground: Option, - #[serde(rename = "input.border")] + + #[serde( + default, + rename = "input.border", + deserialize_with = "empty_string_as_none" + )] pub input_border: Option, - #[serde(rename = "input.placeholderForeground")] + + #[serde( + default, + rename = "input.placeholderForeground", + deserialize_with = "empty_string_as_none" + )] pub input_placeholder_foreground: Option, - #[serde(rename = "inputOption.activeBorder")] + + #[serde( + default, + rename = "inputOption.activeBorder", + deserialize_with = "empty_string_as_none" + )] pub input_option_active_border: Option, - #[serde(rename = "inputValidation.infoBorder")] + + #[serde( + default, + rename = "inputValidation.infoBorder", + deserialize_with = "empty_string_as_none" + )] pub input_validation_info_border: Option, - #[serde(rename = "inputValidation.warningBorder")] + + #[serde( + default, + rename = "inputValidation.warningBorder", + deserialize_with = "empty_string_as_none" + )] pub input_validation_warning_border: Option, - #[serde(rename = "inputValidation.errorBorder")] + + #[serde( + default, + rename = "inputValidation.errorBorder", + deserialize_with = "empty_string_as_none" + )] pub input_validation_error_border: Option, - #[serde(rename = "badge.foreground")] + + #[serde( + default, + rename = "badge.foreground", + deserialize_with = "empty_string_as_none" + )] pub badge_foreground: Option, - #[serde(rename = "badge.background")] + + #[serde( + default, + rename = "badge.background", + deserialize_with = "empty_string_as_none" + )] pub badge_background: Option, - #[serde(rename = "progressBar.background")] + + #[serde( + default, + rename = "progressBar.background", + deserialize_with = "empty_string_as_none" + )] pub progress_bar_background: Option, - #[serde(rename = "list.activeSelectionBackground")] + + #[serde( + default, + rename = "list.activeSelectionBackground", + deserialize_with = "empty_string_as_none" + )] pub list_active_selection_background: Option, - #[serde(rename = "list.activeSelectionForeground")] + + #[serde( + default, + rename = "list.activeSelectionForeground", + deserialize_with = "empty_string_as_none" + )] pub list_active_selection_foreground: Option, - #[serde(rename = "list.dropBackground")] + + #[serde( + default, + rename = "list.dropBackground", + deserialize_with = "empty_string_as_none" + )] pub list_drop_background: Option, - #[serde(rename = "list.focusBackground")] + + #[serde( + default, + rename = "list.focusBackground", + deserialize_with = "empty_string_as_none" + )] pub list_focus_background: Option, - #[serde(rename = "list.highlightForeground")] + + #[serde( + default, + rename = "list.highlightForeground", + deserialize_with = "empty_string_as_none" + )] pub list_highlight_foreground: Option, - #[serde(rename = "list.hoverBackground")] + + #[serde( + default, + rename = "list.hoverBackground", + deserialize_with = "empty_string_as_none" + )] pub list_hover_background: Option, - #[serde(rename = "list.inactiveSelectionBackground")] + + #[serde( + default, + rename = "list.inactiveSelectionBackground", + deserialize_with = "empty_string_as_none" + )] pub list_inactive_selection_background: Option, - #[serde(rename = "list.warningForeground")] + + #[serde( + default, + rename = "list.warningForeground", + deserialize_with = "empty_string_as_none" + )] pub list_warning_foreground: Option, - #[serde(rename = "list.errorForeground")] + + #[serde( + default, + rename = "list.errorForeground", + deserialize_with = "empty_string_as_none" + )] pub list_error_foreground: Option, - #[serde(rename = "activityBar.background")] + + #[serde( + default, + rename = "activityBar.background", + deserialize_with = "empty_string_as_none" + )] pub activity_bar_background: Option, - #[serde(rename = "activityBar.inactiveForeground")] + + #[serde( + default, + rename = "activityBar.inactiveForeground", + deserialize_with = "empty_string_as_none" + )] pub activity_bar_inactive_foreground: Option, - #[serde(rename = "activityBar.foreground")] + + #[serde( + default, + rename = "activityBar.foreground", + deserialize_with = "empty_string_as_none" + )] pub activity_bar_foreground: Option, - #[serde(rename = "activityBar.activeBorder")] + + #[serde( + default, + rename = "activityBar.activeBorder", + deserialize_with = "empty_string_as_none" + )] pub activity_bar_active_border: Option, - #[serde(rename = "activityBar.activeBackground")] + + #[serde( + default, + rename = "activityBar.activeBackground", + deserialize_with = "empty_string_as_none" + )] pub activity_bar_active_background: Option, - #[serde(rename = "activityBarBadge.background")] + + #[serde( + default, + rename = "activityBarBadge.background", + deserialize_with = "empty_string_as_none" + )] pub activity_bar_badge_background: Option, - #[serde(rename = "activityBarBadge.foreground")] + + #[serde( + default, + rename = "activityBarBadge.foreground", + deserialize_with = "empty_string_as_none" + )] pub activity_bar_badge_foreground: Option, - #[serde(rename = "sideBar.background")] + + #[serde( + default, + rename = "sideBar.background", + deserialize_with = "empty_string_as_none" + )] pub side_bar_background: Option, - #[serde(rename = "sideBarTitle.foreground")] + + #[serde( + default, + rename = "sideBarTitle.foreground", + deserialize_with = "empty_string_as_none" + )] pub side_bar_title_foreground: Option, - #[serde(rename = "sideBarSectionHeader.background")] + + #[serde( + default, + rename = "sideBarSectionHeader.background", + deserialize_with = "empty_string_as_none" + )] pub side_bar_section_header_background: Option, - #[serde(rename = "sideBarSectionHeader.border")] + + #[serde( + default, + rename = "sideBarSectionHeader.border", + deserialize_with = "empty_string_as_none" + )] pub side_bar_section_header_border: Option, - #[serde(rename = "editorGroup.border")] + + #[serde( + default, + rename = "editorGroup.border", + deserialize_with = "empty_string_as_none" + )] pub editor_group_border: Option, - #[serde(rename = "editorGroup.dropBackground")] + + #[serde( + default, + rename = "editorGroup.dropBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_group_drop_background: Option, - #[serde(rename = "editorGroupHeader.tabsBackground")] + + #[serde( + default, + rename = "editorGroupHeader.tabsBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_group_header_tabs_background: Option, - #[serde(rename = "tab.activeBackground")] + + #[serde( + default, + rename = "tab.activeBackground", + deserialize_with = "empty_string_as_none" + )] pub tab_active_background: Option, - #[serde(rename = "tab.activeForeground")] + + #[serde( + default, + rename = "tab.activeForeground", + deserialize_with = "empty_string_as_none" + )] pub tab_active_foreground: Option, - #[serde(rename = "tab.border")] + + #[serde( + default, + rename = "tab.border", + deserialize_with = "empty_string_as_none" + )] pub tab_border: Option, - #[serde(rename = "tab.activeBorderTop")] + + #[serde( + default, + rename = "tab.activeBorderTop", + deserialize_with = "empty_string_as_none" + )] pub tab_active_border_top: Option, - #[serde(rename = "tab.inactiveBackground")] + + #[serde( + default, + rename = "tab.inactiveBackground", + deserialize_with = "empty_string_as_none" + )] pub tab_inactive_background: Option, - #[serde(rename = "tab.inactiveForeground")] + + #[serde( + default, + rename = "tab.inactiveForeground", + deserialize_with = "empty_string_as_none" + )] pub tab_inactive_foreground: Option, - #[serde(rename = "editor.foreground")] + + #[serde( + default, + rename = "editor.foreground", + deserialize_with = "empty_string_as_none" + )] pub editor_foreground: Option, - #[serde(rename = "editor.background")] + + #[serde( + default, + rename = "editor.background", + deserialize_with = "empty_string_as_none" + )] pub editor_background: Option, - #[serde(rename = "editorInlayHint.foreground")] + + #[serde( + default, + rename = "editorInlayHint.foreground", + deserialize_with = "empty_string_as_none" + )] pub editor_inlay_hint_foreground: Option, - #[serde(rename = "editorInlayHint.background")] + + #[serde( + default, + rename = "editorInlayHint.background", + deserialize_with = "empty_string_as_none" + )] pub editor_inlay_hint_background: Option, - #[serde(rename = "editorInlayHint.parameterForeground")] + + #[serde( + default, + rename = "editorInlayHint.parameterForeground", + deserialize_with = "empty_string_as_none" + )] pub editor_inlay_hint_parameter_foreground: Option, - #[serde(rename = "editorInlayHint.parameterBackground")] + + #[serde( + default, + rename = "editorInlayHint.parameterBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_inlay_hint_parameter_background: Option, - #[serde(rename = "editorInlayHint.typForeground")] + + #[serde( + default, + rename = "editorInlayHint.typForeground", + deserialize_with = "empty_string_as_none" + )] pub editor_inlay_hint_typ_foreground: Option, - #[serde(rename = "editorInlayHint.typBackground")] + + #[serde( + default, + rename = "editorInlayHint.typBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_inlay_hint_typ_background: Option, - #[serde(rename = "editorLineNumber.foreground")] + + #[serde( + default, + rename = "editorLineNumber.foreground", + deserialize_with = "empty_string_as_none" + )] pub editor_line_number_foreground: Option, - #[serde(rename = "editor.selectionBackground")] + + #[serde( + default, + rename = "editor.selectionBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_selection_background: Option, - #[serde(rename = "editor.selectionHighlightBackground")] + + #[serde( + default, + rename = "editor.selectionHighlightBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_selection_highlight_background: Option, - #[serde(rename = "editor.foldBackground")] + + #[serde( + default, + rename = "editor.foldBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_fold_background: Option, - #[serde(rename = "editor.wordHighlightBackground")] + + #[serde( + default, + rename = "editor.wordHighlightBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_word_highlight_background: Option, - #[serde(rename = "editor.wordHighlightStrongBackground")] + + #[serde( + default, + rename = "editor.wordHighlightStrongBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_word_highlight_strong_background: Option, - #[serde(rename = "editor.findMatchBackground")] + + #[serde( + default, + rename = "editor.findMatchBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_find_match_background: Option, - #[serde(rename = "editor.findMatchHighlightBackground")] + + #[serde( + default, + rename = "editor.findMatchHighlightBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_find_match_highlight_background: Option, - #[serde(rename = "editor.findRangeHighlightBackground")] + + #[serde( + default, + rename = "editor.findRangeHighlightBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_find_range_highlight_background: Option, - #[serde(rename = "editor.hoverHighlightBackground")] + + #[serde( + default, + rename = "editor.hoverHighlightBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_hover_highlight_background: Option, - #[serde(rename = "editor.lineHighlightBorder")] + + #[serde( + default, + rename = "editor.lineHighlightBorder", + deserialize_with = "empty_string_as_none" + )] pub editor_line_highlight_border: Option, - #[serde(rename = "editorLink.activeForeground")] + + #[serde( + default, + rename = "editorLink.activeForeground", + deserialize_with = "empty_string_as_none" + )] pub editor_link_active_foreground: Option, - #[serde(rename = "editor.rangeHighlightBackground")] + + #[serde( + default, + rename = "editor.rangeHighlightBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_range_highlight_background: Option, - #[serde(rename = "editor.snippetTabstopHighlightBackground")] + + #[serde( + default, + rename = "editor.snippetTabstopHighlightBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_snippet_tabstop_highlight_background: Option, - #[serde(rename = "editor.snippetTabstopHighlightBorder")] + + #[serde( + default, + rename = "editor.snippetTabstopHighlightBorder", + deserialize_with = "empty_string_as_none" + )] pub editor_snippet_tabstop_highlight_border: Option, - #[serde(rename = "editor.snippetFinalTabstopHighlightBackground")] + + #[serde( + default, + rename = "editor.snippetFinalTabstopHighlightBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_snippet_final_tabstop_highlight_background: Option, - #[serde(rename = "editor.snippetFinalTabstopHighlightBorder")] + + #[serde( + default, + rename = "editor.snippetFinalTabstopHighlightBorder", + deserialize_with = "empty_string_as_none" + )] pub editor_snippet_final_tabstop_highlight_border: Option, - #[serde(rename = "editorWhitespace.foreground")] + + #[serde( + default, + rename = "editorWhitespace.foreground", + deserialize_with = "empty_string_as_none" + )] pub editor_whitespace_foreground: Option, - #[serde(rename = "editorIndentGuide.background")] + + #[serde( + default, + rename = "editorIndentGuide.background", + deserialize_with = "empty_string_as_none" + )] pub editor_indent_guide_background: Option, - #[serde(rename = "editorIndentGuide.activeBackground")] + + #[serde( + default, + rename = "editorIndentGuide.activeBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_indent_guide_active_background: Option, - #[serde(rename = "editorRuler.foreground")] + + #[serde( + default, + rename = "editorRuler.foreground", + deserialize_with = "empty_string_as_none" + )] pub editor_ruler_foreground: Option, - #[serde(rename = "editorCodeLens.foreground")] + + #[serde( + default, + rename = "editorCodeLens.foreground", + deserialize_with = "empty_string_as_none" + )] pub editor_code_lens_foreground: Option, - #[serde(rename = "editorBracketHighlight.foreground1")] + + #[serde( + default, + rename = "editorBracketHighlight.foreground1", + deserialize_with = "empty_string_as_none" + )] pub editor_bracket_highlight_foreground1: Option, - #[serde(rename = "editorBracketHighlight.foreground2")] + + #[serde( + default, + rename = "editorBracketHighlight.foreground2", + deserialize_with = "empty_string_as_none" + )] pub editor_bracket_highlight_foreground2: Option, - #[serde(rename = "editorBracketHighlight.foreground3")] + + #[serde( + default, + rename = "editorBracketHighlight.foreground3", + deserialize_with = "empty_string_as_none" + )] pub editor_bracket_highlight_foreground3: Option, - #[serde(rename = "editorBracketHighlight.foreground4")] + + #[serde( + default, + rename = "editorBracketHighlight.foreground4", + deserialize_with = "empty_string_as_none" + )] pub editor_bracket_highlight_foreground4: Option, - #[serde(rename = "editorBracketHighlight.foreground5")] + + #[serde( + default, + rename = "editorBracketHighlight.foreground5", + deserialize_with = "empty_string_as_none" + )] pub editor_bracket_highlight_foreground5: Option, - #[serde(rename = "editorBracketHighlight.foreground6")] + + #[serde( + default, + rename = "editorBracketHighlight.foreground6", + deserialize_with = "empty_string_as_none" + )] pub editor_bracket_highlight_foreground6: Option, - #[serde(rename = "editorBracketHighlight.unexpectedBracket.foreground")] + + #[serde( + default, + rename = "editorBracketHighlight.unexpectedBracket.foreground", + deserialize_with = "empty_string_as_none" + )] pub editor_bracket_highlight_unexpected_bracket_foreground: Option, - #[serde(rename = "editorOverviewRuler.border")] + + #[serde( + default, + rename = "editorOverviewRuler.border", + deserialize_with = "empty_string_as_none" + )] pub editor_overview_ruler_border: Option, - #[serde(rename = "editorOverviewRuler.selectionHighlightForeground")] + + #[serde( + default, + rename = "editorOverviewRuler.selectionHighlightForeground", + deserialize_with = "empty_string_as_none" + )] pub editor_overview_ruler_selection_highlight_foreground: Option, - #[serde(rename = "editorOverviewRuler.wordHighlightForeground")] + + #[serde( + default, + rename = "editorOverviewRuler.wordHighlightForeground", + deserialize_with = "empty_string_as_none" + )] pub editor_overview_ruler_word_highlight_foreground: Option, - #[serde(rename = "editorOverviewRuler.wordHighlightStrongForeground")] + + #[serde( + default, + rename = "editorOverviewRuler.wordHighlightStrongForeground", + deserialize_with = "empty_string_as_none" + )] pub editor_overview_ruler_word_highlight_strong_foreground: Option, - #[serde(rename = "editorOverviewRuler.modifiedForeground")] + + #[serde( + default, + rename = "editorOverviewRuler.modifiedForeground", + deserialize_with = "empty_string_as_none" + )] pub editor_overview_ruler_modified_foreground: Option, - #[serde(rename = "editorOverviewRuler.addedForeground")] + + #[serde( + default, + rename = "editorOverviewRuler.addedForeground", + deserialize_with = "empty_string_as_none" + )] pub editor_overview_ruler_added_foreground: Option, - #[serde(rename = "editorOverviewRuler.deletedForeground")] + + #[serde( + default, + rename = "editorOverviewRuler.deletedForeground", + deserialize_with = "empty_string_as_none" + )] pub editor_overview_ruler_deleted_foreground: Option, - #[serde(rename = "editorOverviewRuler.errorForeground")] + + #[serde( + default, + rename = "editorOverviewRuler.errorForeground", + deserialize_with = "empty_string_as_none" + )] pub editor_overview_ruler_error_foreground: Option, - #[serde(rename = "editorOverviewRuler.warningForeground")] + + #[serde( + default, + rename = "editorOverviewRuler.warningForeground", + deserialize_with = "empty_string_as_none" + )] pub editor_overview_ruler_warning_foreground: Option, - #[serde(rename = "editorOverviewRuler.infoForeground")] + + #[serde( + default, + rename = "editorOverviewRuler.infoForeground", + deserialize_with = "empty_string_as_none" + )] pub editor_overview_ruler_info_foreground: Option, - #[serde(rename = "editorError.foreground")] + + #[serde( + default, + rename = "editorError.foreground", + deserialize_with = "empty_string_as_none" + )] pub editor_error_foreground: Option, - #[serde(rename = "editorWarning.foreground")] + + #[serde( + default, + rename = "editorWarning.foreground", + deserialize_with = "empty_string_as_none" + )] pub editor_warning_foreground: Option, - #[serde(rename = "editorGutter.modifiedBackground")] + + #[serde( + default, + rename = "editorGutter.modifiedBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_gutter_modified_background: Option, - #[serde(rename = "editorGutter.addedBackground")] + + #[serde( + default, + rename = "editorGutter.addedBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_gutter_added_background: Option, - #[serde(rename = "editorGutter.deletedBackground")] + + #[serde( + default, + rename = "editorGutter.deletedBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_gutter_deleted_background: Option, - #[serde(rename = "gitDecoration.modifiedResourceForeground")] + + #[serde( + default, + rename = "gitDecoration.modifiedResourceForeground", + deserialize_with = "empty_string_as_none" + )] pub git_decoration_modified_resource_foreground: Option, - #[serde(rename = "gitDecoration.deletedResourceForeground")] + + #[serde( + default, + rename = "gitDecoration.deletedResourceForeground", + deserialize_with = "empty_string_as_none" + )] pub git_decoration_deleted_resource_foreground: Option, - #[serde(rename = "gitDecoration.untrackedResourceForeground")] + + #[serde( + default, + rename = "gitDecoration.untrackedResourceForeground", + deserialize_with = "empty_string_as_none" + )] pub git_decoration_untracked_resource_foreground: Option, - #[serde(rename = "gitDecoration.ignoredResourceForeground")] + + #[serde( + default, + rename = "gitDecoration.ignoredResourceForeground", + deserialize_with = "empty_string_as_none" + )] pub git_decoration_ignored_resource_foreground: Option, - #[serde(rename = "gitDecoration.conflictingResourceForeground")] + + #[serde( + default, + rename = "gitDecoration.conflictingResourceForeground", + deserialize_with = "empty_string_as_none" + )] pub git_decoration_conflicting_resource_foreground: Option, - #[serde(rename = "diffEditor.insertedTextBackground")] + + #[serde( + default, + rename = "diffEditor.insertedTextBackground", + deserialize_with = "empty_string_as_none" + )] pub diff_editor_inserted_text_background: Option, - #[serde(rename = "diffEditor.removedTextBackground")] + + #[serde( + default, + rename = "diffEditor.removedTextBackground", + deserialize_with = "empty_string_as_none" + )] pub diff_editor_removed_text_background: Option, - #[serde(rename = "inlineChat.regionHighlight")] + + #[serde( + default, + rename = "inlineChat.regionHighlight", + deserialize_with = "empty_string_as_none" + )] pub inline_chat_region_highlight: Option, - #[serde(rename = "editorWidget.background")] + + #[serde( + default, + rename = "editorWidget.background", + deserialize_with = "empty_string_as_none" + )] pub editor_widget_background: Option, - #[serde(rename = "editorSuggestWidget.background")] + + #[serde( + default, + rename = "editorSuggestWidget.background", + deserialize_with = "empty_string_as_none" + )] pub editor_suggest_widget_background: Option, - #[serde(rename = "editorSuggestWidget.foreground")] + + #[serde( + default, + rename = "editorSuggestWidget.foreground", + deserialize_with = "empty_string_as_none" + )] pub editor_suggest_widget_foreground: Option, - #[serde(rename = "editorSuggestWidget.selectedBackground")] + + #[serde( + default, + rename = "editorSuggestWidget.selectedBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_suggest_widget_selected_background: Option, - #[serde(rename = "editorHoverWidget.background")] + + #[serde( + default, + rename = "editorHoverWidget.background", + deserialize_with = "empty_string_as_none" + )] pub editor_hover_widget_background: Option, - #[serde(rename = "editorHoverWidget.border")] + + #[serde( + default, + rename = "editorHoverWidget.border", + deserialize_with = "empty_string_as_none" + )] pub editor_hover_widget_border: Option, - #[serde(rename = "editorMarkerNavigation.background")] + + #[serde( + default, + rename = "editorMarkerNavigation.background", + deserialize_with = "empty_string_as_none" + )] pub editor_marker_navigation_background: Option, - #[serde(rename = "peekView.border")] + + #[serde( + default, + rename = "peekView.border", + deserialize_with = "empty_string_as_none" + )] pub peek_view_border: Option, - #[serde(rename = "peekViewEditor.background")] + + #[serde( + default, + rename = "peekViewEditor.background", + deserialize_with = "empty_string_as_none" + )] pub peek_view_editor_background: Option, - #[serde(rename = "peekViewEditor.matchHighlightBackground")] + + #[serde( + default, + rename = "peekViewEditor.matchHighlightBackground", + deserialize_with = "empty_string_as_none" + )] pub peek_view_editor_match_highlight_background: Option, - #[serde(rename = "peekViewResult.background")] + + #[serde( + default, + rename = "peekViewResult.background", + deserialize_with = "empty_string_as_none" + )] pub peek_view_result_background: Option, - #[serde(rename = "peekViewResult.fileForeground")] + + #[serde( + default, + rename = "peekViewResult.fileForeground", + deserialize_with = "empty_string_as_none" + )] pub peek_view_result_file_foreground: Option, - #[serde(rename = "peekViewResult.lineForeground")] + + #[serde( + default, + rename = "peekViewResult.lineForeground", + deserialize_with = "empty_string_as_none" + )] pub peek_view_result_line_foreground: Option, - #[serde(rename = "peekViewResult.matchHighlightBackground")] + + #[serde( + default, + rename = "peekViewResult.matchHighlightBackground", + deserialize_with = "empty_string_as_none" + )] pub peek_view_result_match_highlight_background: Option, - #[serde(rename = "peekViewResult.selectionBackground")] + + #[serde( + default, + rename = "peekViewResult.selectionBackground", + deserialize_with = "empty_string_as_none" + )] pub peek_view_result_selection_background: Option, - #[serde(rename = "peekViewResult.selectionForeground")] + + #[serde( + default, + rename = "peekViewResult.selectionForeground", + deserialize_with = "empty_string_as_none" + )] pub peek_view_result_selection_foreground: Option, - #[serde(rename = "peekViewTitle.background")] + + #[serde( + default, + rename = "peekViewTitle.background", + deserialize_with = "empty_string_as_none" + )] pub peek_view_title_background: Option, - #[serde(rename = "peekViewTitleDescription.foreground")] + + #[serde( + default, + rename = "peekViewTitleDescription.foreground", + deserialize_with = "empty_string_as_none" + )] pub peek_view_title_description_foreground: Option, - #[serde(rename = "peekViewTitleLabel.foreground")] + + #[serde( + default, + rename = "peekViewTitleLabel.foreground", + deserialize_with = "empty_string_as_none" + )] pub peek_view_title_label_foreground: Option, - #[serde(rename = "merge.currentHeaderBackground")] + + #[serde( + default, + rename = "merge.currentHeaderBackground", + deserialize_with = "empty_string_as_none" + )] pub merge_current_header_background: Option, - #[serde(rename = "merge.incomingHeaderBackground")] + + #[serde( + default, + rename = "merge.incomingHeaderBackground", + deserialize_with = "empty_string_as_none" + )] pub merge_incoming_header_background: Option, - #[serde(rename = "editorOverviewRuler.currentContentForeground")] + + #[serde( + default, + rename = "editorOverviewRuler.currentContentForeground", + deserialize_with = "empty_string_as_none" + )] pub editor_overview_ruler_current_content_foreground: Option, - #[serde(rename = "editorOverviewRuler.incomingContentForeground")] + + #[serde( + default, + rename = "editorOverviewRuler.incomingContentForeground", + deserialize_with = "empty_string_as_none" + )] pub editor_overview_ruler_incoming_content_foreground: Option, - #[serde(rename = "panel.background")] + + #[serde( + default, + rename = "panel.background", + deserialize_with = "empty_string_as_none" + )] pub panel_background: Option, - #[serde(rename = "panel.border")] + + #[serde( + default, + rename = "panel.border", + deserialize_with = "empty_string_as_none" + )] pub panel_border: Option, - #[serde(rename = "panelTitle.activeBorder")] + + #[serde( + default, + rename = "panelTitle.activeBorder", + deserialize_with = "empty_string_as_none" + )] pub panel_title_active_border: Option, - #[serde(rename = "panelTitle.activeForeground")] + + #[serde( + default, + rename = "panelTitle.activeForeground", + deserialize_with = "empty_string_as_none" + )] pub panel_title_active_foreground: Option, - #[serde(rename = "panelTitle.inactiveForeground")] + + #[serde( + default, + rename = "panelTitle.inactiveForeground", + deserialize_with = "empty_string_as_none" + )] pub panel_title_inactive_foreground: Option, - #[serde(rename = "statusBar.background")] + + #[serde( + default, + rename = "statusBar.background", + deserialize_with = "empty_string_as_none" + )] pub status_bar_background: Option, - #[serde(rename = "statusBar.foreground")] + + #[serde( + default, + rename = "statusBar.foreground", + deserialize_with = "empty_string_as_none" + )] pub status_bar_foreground: Option, - #[serde(rename = "statusBar.debuggingBackground")] + + #[serde( + default, + rename = "statusBar.debuggingBackground", + deserialize_with = "empty_string_as_none" + )] pub status_bar_debugging_background: Option, - #[serde(rename = "statusBar.debuggingForeground")] + + #[serde( + default, + rename = "statusBar.debuggingForeground", + deserialize_with = "empty_string_as_none" + )] pub status_bar_debugging_foreground: Option, - #[serde(rename = "statusBar.noFolderBackground")] + + #[serde( + default, + rename = "statusBar.noFolderBackground", + deserialize_with = "empty_string_as_none" + )] pub status_bar_no_folder_background: Option, - #[serde(rename = "statusBar.noFolderForeground")] + + #[serde( + default, + rename = "statusBar.noFolderForeground", + deserialize_with = "empty_string_as_none" + )] pub status_bar_no_folder_foreground: Option, - #[serde(rename = "statusBarItem.prominentBackground")] + + #[serde( + default, + rename = "statusBarItem.prominentBackground", + deserialize_with = "empty_string_as_none" + )] pub status_bar_item_prominent_background: Option, - #[serde(rename = "statusBarItem.prominentHoverBackground")] + + #[serde( + default, + rename = "statusBarItem.prominentHoverBackground", + deserialize_with = "empty_string_as_none" + )] pub status_bar_item_prominent_hover_background: Option, - #[serde(rename = "statusBarItem.remoteForeground")] + + #[serde( + default, + rename = "statusBarItem.remoteForeground", + deserialize_with = "empty_string_as_none" + )] pub status_bar_item_remote_foreground: Option, - #[serde(rename = "statusBarItem.remoteBackground")] + + #[serde( + default, + rename = "statusBarItem.remoteBackground", + deserialize_with = "empty_string_as_none" + )] pub status_bar_item_remote_background: Option, - #[serde(rename = "titleBar.activeBackground")] + + #[serde( + default, + rename = "titleBar.activeBackground", + deserialize_with = "empty_string_as_none" + )] pub title_bar_active_background: Option, - #[serde(rename = "titleBar.activeForeground")] + + #[serde( + default, + rename = "titleBar.activeForeground", + deserialize_with = "empty_string_as_none" + )] pub title_bar_active_foreground: Option, - #[serde(rename = "titleBar.inactiveBackground")] + + #[serde( + default, + rename = "titleBar.inactiveBackground", + deserialize_with = "empty_string_as_none" + )] pub title_bar_inactive_background: Option, - #[serde(rename = "titleBar.inactiveForeground")] + + #[serde( + default, + rename = "titleBar.inactiveForeground", + deserialize_with = "empty_string_as_none" + )] pub title_bar_inactive_foreground: Option, - #[serde(rename = "extensionButton.prominentForeground")] + + #[serde( + default, + rename = "extensionButton.prominentForeground", + deserialize_with = "empty_string_as_none" + )] pub extension_button_prominent_foreground: Option, - #[serde(rename = "extensionButton.prominentBackground")] + + #[serde( + default, + rename = "extensionButton.prominentBackground", + deserialize_with = "empty_string_as_none" + )] pub extension_button_prominent_background: Option, - #[serde(rename = "extensionButton.prominentHoverBackground")] + + #[serde( + default, + rename = "extensionButton.prominentHoverBackground", + deserialize_with = "empty_string_as_none" + )] pub extension_button_prominent_hover_background: Option, - #[serde(rename = "pickerGroup.border")] + + #[serde( + default, + rename = "pickerGroup.border", + deserialize_with = "empty_string_as_none" + )] pub picker_group_border: Option, - #[serde(rename = "pickerGroup.foreground")] + + #[serde( + default, + rename = "pickerGroup.foreground", + deserialize_with = "empty_string_as_none" + )] pub picker_group_foreground: Option, - #[serde(rename = "debugToolBar.background")] + + #[serde( + default, + rename = "debugToolBar.background", + deserialize_with = "empty_string_as_none" + )] pub debug_tool_bar_background: Option, - #[serde(rename = "walkThrough.embeddedEditorBackground")] + + #[serde( + default, + rename = "walkThrough.embeddedEditorBackground", + deserialize_with = "empty_string_as_none" + )] pub walk_through_embedded_editor_background: Option, - #[serde(rename = "settings.headerForeground")] + + #[serde( + default, + rename = "settings.headerForeground", + deserialize_with = "empty_string_as_none" + )] pub settings_header_foreground: Option, - #[serde(rename = "settings.modifiedItemIndicator")] + + #[serde( + default, + rename = "settings.modifiedItemIndicator", + deserialize_with = "empty_string_as_none" + )] pub settings_modified_item_indicator: Option, - #[serde(rename = "settings.dropdownBackground")] + + #[serde( + default, + rename = "settings.dropdownBackground", + deserialize_with = "empty_string_as_none" + )] pub settings_dropdown_background: Option, - #[serde(rename = "settings.dropdownForeground")] + + #[serde( + default, + rename = "settings.dropdownForeground", + deserialize_with = "empty_string_as_none" + )] pub settings_dropdown_foreground: Option, - #[serde(rename = "settings.dropdownBorder")] + + #[serde( + default, + rename = "settings.dropdownBorder", + deserialize_with = "empty_string_as_none" + )] pub settings_dropdown_border: Option, - #[serde(rename = "settings.checkboxBackground")] + + #[serde( + default, + rename = "settings.checkboxBackground", + deserialize_with = "empty_string_as_none" + )] pub settings_checkbox_background: Option, - #[serde(rename = "settings.checkboxForeground")] + + #[serde( + default, + rename = "settings.checkboxForeground", + deserialize_with = "empty_string_as_none" + )] pub settings_checkbox_foreground: Option, - #[serde(rename = "settings.checkboxBorder")] + + #[serde( + default, + rename = "settings.checkboxBorder", + deserialize_with = "empty_string_as_none" + )] pub settings_checkbox_border: Option, - #[serde(rename = "settings.textInputBackground")] + + #[serde( + default, + rename = "settings.textInputBackground", + deserialize_with = "empty_string_as_none" + )] pub settings_text_input_background: Option, - #[serde(rename = "settings.textInputForeground")] + + #[serde( + default, + rename = "settings.textInputForeground", + deserialize_with = "empty_string_as_none" + )] pub settings_text_input_foreground: Option, - #[serde(rename = "settings.textInputBorder")] + + #[serde( + default, + rename = "settings.textInputBorder", + deserialize_with = "empty_string_as_none" + )] pub settings_text_input_border: Option, - #[serde(rename = "settings.numberInputBackground")] + + #[serde( + default, + rename = "settings.numberInputBackground", + deserialize_with = "empty_string_as_none" + )] pub settings_number_input_background: Option, - #[serde(rename = "settings.numberInputForeground")] + + #[serde( + default, + rename = "settings.numberInputForeground", + deserialize_with = "empty_string_as_none" + )] pub settings_number_input_foreground: Option, - #[serde(rename = "settings.numberInputBorder")] + + #[serde( + default, + rename = "settings.numberInputBorder", + deserialize_with = "empty_string_as_none" + )] pub settings_number_input_border: Option, - #[serde(rename = "breadcrumb.foreground")] + + #[serde( + default, + rename = "breadcrumb.foreground", + deserialize_with = "empty_string_as_none" + )] pub breadcrumb_foreground: Option, - #[serde(rename = "breadcrumb.background")] + + #[serde( + default, + rename = "breadcrumb.background", + deserialize_with = "empty_string_as_none" + )] pub breadcrumb_background: Option, - #[serde(rename = "breadcrumb.focusForeground")] + + #[serde( + default, + rename = "breadcrumb.focusForeground", + deserialize_with = "empty_string_as_none" + )] pub breadcrumb_focus_foreground: Option, - #[serde(rename = "breadcrumb.activeSelectionForeground")] + + #[serde( + default, + rename = "breadcrumb.activeSelectionForeground", + deserialize_with = "empty_string_as_none" + )] pub breadcrumb_active_selection_foreground: Option, - #[serde(rename = "breadcrumbPicker.background")] + + #[serde( + default, + rename = "breadcrumbPicker.background", + deserialize_with = "empty_string_as_none" + )] pub breadcrumb_picker_background: Option, - #[serde(rename = "listFilterWidget.background")] + + #[serde( + default, + rename = "listFilterWidget.background", + deserialize_with = "empty_string_as_none" + )] pub list_filter_widget_background: Option, - #[serde(rename = "listFilterWidget.outline")] + + #[serde( + default, + rename = "listFilterWidget.outline", + deserialize_with = "empty_string_as_none" + )] pub list_filter_widget_outline: Option, - #[serde(rename = "listFilterWidget.noMatchesOutline")] + + #[serde( + default, + rename = "listFilterWidget.noMatchesOutline", + deserialize_with = "empty_string_as_none" + )] pub list_filter_widget_no_matches_outline: Option, } From 726d761646e51e378292845723e65ff1bbf8e157 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Fri, 8 Dec 2023 10:12:18 -0800 Subject: [PATCH 042/115] Bump tree-sitter-vue to remove dangling submodule --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 44b705c129113b369f82c97d441cd532a676507e..f3f301f3fe0f75afa0ccc6627bcc768922ade698 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10511,7 +10511,7 @@ dependencies = [ [[package]] name = "tree-sitter-vue" version = "0.0.1" -source = "git+https://github.com/zed-industries/tree-sitter-vue?rev=9b6cb221ccb8d0b956fcb17e9a1efac2feefeb58#9b6cb221ccb8d0b956fcb17e9a1efac2feefeb58" +source = "git+https://github.com/zed-industries/tree-sitter-vue?rev=6608d9d60c386f19d80af7d8132322fa11199c42#6608d9d60c386f19d80af7d8132322fa11199c42" dependencies = [ "cc", "tree-sitter", diff --git a/Cargo.toml b/Cargo.toml index 5a3c451fd30025538e960c1b379374bf4bf89bb8..2190066df595a7082dec1beba6a0ba2d5e6454ab 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -205,7 +205,7 @@ tree-sitter-yaml = { git = "https://github.com/zed-industries/tree-sitter-yaml", tree-sitter-lua = "0.0.14" tree-sitter-nix = { git = "https://github.com/nix-community/tree-sitter-nix", rev = "66e3e9ce9180ae08fc57372061006ef83f0abde7" } tree-sitter-nu = { git = "https://github.com/nushell/tree-sitter-nu", rev = "786689b0562b9799ce53e824cb45a1a2a04dc673"} -tree-sitter-vue = {git = "https://github.com/zed-industries/tree-sitter-vue", rev = "9b6cb221ccb8d0b956fcb17e9a1efac2feefeb58"} +tree-sitter-vue = {git = "https://github.com/zed-industries/tree-sitter-vue", rev = "6608d9d60c386f19d80af7d8132322fa11199c42"} tree-sitter-uiua = {git = "https://github.com/shnarazk/tree-sitter-uiua", rev = "9260f11be5900beda4ee6d1a24ab8ddfaf5a19b2"} [patch.crates-io] From a5a0ad8b5c06a595027ea7ab6f6bf645f0c70915 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 8 Dec 2023 13:13:19 -0500 Subject: [PATCH 043/115] Add missing serde attribute to `foreground` --- crates/theme_importer/src/vscode/theme.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/crates/theme_importer/src/vscode/theme.rs b/crates/theme_importer/src/vscode/theme.rs index 2c3fcd1752306720833eb4cbe8580f1ee61cd94b..f214f5089da90bd65127f3d1312b22eb5692b851 100644 --- a/crates/theme_importer/src/vscode/theme.rs +++ b/crates/theme_importer/src/vscode/theme.rs @@ -161,6 +161,7 @@ pub struct VsCodeColors { )] pub focus_border: Option, + #[serde(default, deserialize_with = "empty_string_as_none")] pub foreground: Option, #[serde( From be6c909587c5c3d852288f7cb03e86f7e0875b1a Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Fri, 8 Dec 2023 13:13:40 -0500 Subject: [PATCH 044/115] Remove some unused imports --- crates/feedback2/src/feedback_modal.rs | 2 +- crates/workspace2/src/status_bar.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/feedback2/src/feedback_modal.rs b/crates/feedback2/src/feedback_modal.rs index ada844ecdac11bc971b9edb894b3718ede8be69f..23d8c38626e5bd076a57ff3d32d6f238d9333e60 100644 --- a/crates/feedback2/src/feedback_modal.rs +++ b/crates/feedback2/src/feedback_modal.rs @@ -14,7 +14,7 @@ use language::Buffer; use project::Project; use regex::Regex; use serde_derive::Serialize; -use ui::{prelude::*, Button, ButtonStyle, IconPosition, Label, Tooltip}; +use ui::{prelude::*, Button, ButtonStyle, IconPosition, Tooltip}; use util::ResultExt; use workspace::Workspace; diff --git a/crates/workspace2/src/status_bar.rs b/crates/workspace2/src/status_bar.rs index 22e2fa128d24697782a92c6ccfdde3d08bba7fc4..c095fd03b06f3d329e6bbbabf1f94252853d763d 100644 --- a/crates/workspace2/src/status_bar.rs +++ b/crates/workspace2/src/status_bar.rs @@ -6,7 +6,7 @@ use gpui::{ WindowContext, }; use ui::prelude::*; -use ui::{h_stack, Icon, IconButton}; +use ui::{h_stack}; use util::ResultExt; pub trait StatusItemView: Render { From ab5b76e9438314164158eed6cbab519cafd7406d Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 8 Dec 2023 13:14:22 -0500 Subject: [PATCH 045/115] Pull Git status colors from VS Code themes --- crates/theme2/src/themes/andromeda.rs | 2 + crates/theme2/src/themes/ayu.rs | 9 ++++ crates/theme2/src/themes/dracula.rs | 4 ++ crates/theme2/src/themes/gruvbox.rs | 24 ++++++++++ crates/theme2/src/themes/night_owl.rs | 4 ++ crates/theme2/src/themes/noctis.rs | 44 +++++++++++++++++++ crates/theme2/src/themes/nord.rs | 4 ++ crates/theme2/src/themes/palenight.rs | 12 +++++ crates/theme2/src/themes/rose_pine.rs | 12 +++++ crates/theme2/src/themes/synthwave_84.rs | 3 ++ crates/theme_importer/src/vscode/converter.rs | 20 +++++++-- 11 files changed, 134 insertions(+), 4 deletions(-) diff --git a/crates/theme2/src/themes/andromeda.rs b/crates/theme2/src/themes/andromeda.rs index 577bbea54311025174d2e787a7ee05a51bae2ba3..c789f4f39573dc54ceeff7949defd74694c76a1e 100644 --- a/crates/theme2/src/themes/andromeda.rs +++ b/crates/theme2/src/themes/andromeda.rs @@ -63,6 +63,7 @@ pub fn andromeda() -> UserThemeFamily { error: Some(rgba(0xfc644dff).into()), hidden: Some(rgba(0x746f77ff).into()), hint: Some(rgba(0x969696ff).into()), + ignored: Some(rgba(0x555555ff).into()), ..Default::default() }, syntax: Some(UserSyntaxTheme { @@ -267,6 +268,7 @@ pub fn andromeda() -> UserThemeFamily { error: Some(rgba(0xfc644dff).into()), hidden: Some(rgba(0x746f77ff).into()), hint: Some(rgba(0x969696ff).into()), + ignored: Some(rgba(0x555555ff).into()), ..Default::default() }, syntax: Some(UserSyntaxTheme { diff --git a/crates/theme2/src/themes/ayu.rs b/crates/theme2/src/themes/ayu.rs index 10ef469490be526cf582c5dd0e7433c00d9f8c7d..c9bb3dd51461c42ce6ae3513781bf79dbdf1fbda 100644 --- a/crates/theme2/src/themes/ayu.rs +++ b/crates/theme2/src/themes/ayu.rs @@ -63,10 +63,13 @@ pub fn ayu() -> UserThemeFamily { ..Default::default() }, status: StatusColorsRefinement { + created: Some(rgba(0x6cbf43b3).into()), deleted: Some(rgba(0xe65050ff).into()), error: Some(rgba(0xe65050ff).into()), hidden: Some(rgba(0x8a9199ff).into()), hint: Some(rgba(0x969696ff).into()), + ignored: Some(rgba(0x8a919980).into()), + modified: Some(rgba(0x478accb3).into()), ..Default::default() }, syntax: Some(UserSyntaxTheme { @@ -359,10 +362,13 @@ pub fn ayu() -> UserThemeFamily { ..Default::default() }, status: StatusColorsRefinement { + created: Some(rgba(0x87d96cb3).into()), deleted: Some(rgba(0xff6666ff).into()), error: Some(rgba(0xff6666ff).into()), hidden: Some(rgba(0x707a8cff).into()), hint: Some(rgba(0x969696ff).into()), + ignored: Some(rgba(0x707a8c80).into()), + modified: Some(rgba(0x80bfffb3).into()), ..Default::default() }, syntax: Some(UserSyntaxTheme { @@ -655,10 +661,13 @@ pub fn ayu() -> UserThemeFamily { ..Default::default() }, status: StatusColorsRefinement { + created: Some(rgba(0x7fd962b3).into()), deleted: Some(rgba(0xd95757ff).into()), error: Some(rgba(0xd95757ff).into()), hidden: Some(rgba(0x565b66ff).into()), hint: Some(rgba(0x969696ff).into()), + ignored: Some(rgba(0x565b6680).into()), + modified: Some(rgba(0x73b8ffb3).into()), ..Default::default() }, syntax: Some(UserSyntaxTheme { diff --git a/crates/theme2/src/themes/dracula.rs b/crates/theme2/src/themes/dracula.rs index 19902dd79db01138bf8439252f07ebed812cc6a8..27bc05c64a9f637a674236274fbab21060ebd09d 100644 --- a/crates/theme2/src/themes/dracula.rs +++ b/crates/theme2/src/themes/dracula.rs @@ -63,10 +63,14 @@ pub fn dracula() -> UserThemeFamily { ..Default::default() }, status: StatusColorsRefinement { + conflict: Some(rgba(0xffb86cff).into()), + created: Some(rgba(0x50fa7bff).into()), deleted: Some(rgba(0xff5555ff).into()), error: Some(rgba(0xff5555ff).into()), hidden: Some(rgba(0x6272a4ff).into()), hint: Some(rgba(0x969696ff).into()), + ignored: Some(rgba(0x6272a4ff).into()), + modified: Some(rgba(0x8be9fdff).into()), warning: Some(rgba(0xffb86cff).into()), ..Default::default() }, diff --git a/crates/theme2/src/themes/gruvbox.rs b/crates/theme2/src/themes/gruvbox.rs index 43354b2d2241fefd40f4c9a8a85c14e790e57ac0..79efc4310919658f8ad998be71ada2bc316f25ad 100644 --- a/crates/theme2/src/themes/gruvbox.rs +++ b/crates/theme2/src/themes/gruvbox.rs @@ -60,10 +60,14 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, status: StatusColorsRefinement { + conflict: Some(rgba(0xb16286ff).into()), + created: Some(rgba(0x98971aff).into()), deleted: Some(rgba(0xfb4934ff).into()), error: Some(rgba(0xfb4934ff).into()), hidden: Some(rgba(0xa89984ff).into()), hint: Some(rgba(0x969696ff).into()), + ignored: Some(rgba(0x7c6f64ff).into()), + modified: Some(rgba(0xd79921ff).into()), ..Default::default() }, syntax: Some(UserSyntaxTheme { @@ -331,10 +335,14 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, status: StatusColorsRefinement { + conflict: Some(rgba(0xb16286ff).into()), + created: Some(rgba(0x98971aff).into()), deleted: Some(rgba(0xfb4934ff).into()), error: Some(rgba(0xfb4934ff).into()), hidden: Some(rgba(0xa89984ff).into()), hint: Some(rgba(0x969696ff).into()), + ignored: Some(rgba(0x7c6f64ff).into()), + modified: Some(rgba(0xd79921ff).into()), ..Default::default() }, syntax: Some(UserSyntaxTheme { @@ -602,10 +610,14 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, status: StatusColorsRefinement { + conflict: Some(rgba(0xb16286ff).into()), + created: Some(rgba(0x98971aff).into()), deleted: Some(rgba(0xfb4934ff).into()), error: Some(rgba(0xfb4934ff).into()), hidden: Some(rgba(0xa89984ff).into()), hint: Some(rgba(0x969696ff).into()), + ignored: Some(rgba(0x7c6f64ff).into()), + modified: Some(rgba(0xd79921ff).into()), ..Default::default() }, syntax: Some(UserSyntaxTheme { @@ -873,10 +885,14 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, status: StatusColorsRefinement { + conflict: Some(rgba(0xb16286ff).into()), + created: Some(rgba(0x98971aff).into()), deleted: Some(rgba(0x9d0006ff).into()), error: Some(rgba(0x9d0006ff).into()), hidden: Some(rgba(0x7c6f64ff).into()), hint: Some(rgba(0x969696ff).into()), + ignored: Some(rgba(0xa89984ff).into()), + modified: Some(rgba(0xd79921ff).into()), ..Default::default() }, syntax: Some(UserSyntaxTheme { @@ -1144,10 +1160,14 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, status: StatusColorsRefinement { + conflict: Some(rgba(0xb16286ff).into()), + created: Some(rgba(0x98971aff).into()), deleted: Some(rgba(0x9d0006ff).into()), error: Some(rgba(0x9d0006ff).into()), hidden: Some(rgba(0x7c6f64ff).into()), hint: Some(rgba(0x969696ff).into()), + ignored: Some(rgba(0xa89984ff).into()), + modified: Some(rgba(0xd79921ff).into()), ..Default::default() }, syntax: Some(UserSyntaxTheme { @@ -1415,10 +1435,14 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, status: StatusColorsRefinement { + conflict: Some(rgba(0xb16286ff).into()), + created: Some(rgba(0x98971aff).into()), deleted: Some(rgba(0x9d0006ff).into()), error: Some(rgba(0x9d0006ff).into()), hidden: Some(rgba(0x7c6f64ff).into()), hint: Some(rgba(0x969696ff).into()), + ignored: Some(rgba(0xa89984ff).into()), + modified: Some(rgba(0xd79921ff).into()), ..Default::default() }, syntax: Some(UserSyntaxTheme { diff --git a/crates/theme2/src/themes/night_owl.rs b/crates/theme2/src/themes/night_owl.rs index 09b73c10dbd980873a58fbfeb17cde70672030cd..cece73f00e41b1ee153647e7bad1ddea7eac36fd 100644 --- a/crates/theme2/src/themes/night_owl.rs +++ b/crates/theme2/src/themes/night_owl.rs @@ -63,10 +63,14 @@ pub fn night_owl() -> UserThemeFamily { ..Default::default() }, status: StatusColorsRefinement { + conflict: Some(rgba(0xffeb95cc).into()), + created: Some(rgba(0xc5e478ff).into()), deleted: Some(rgba(0xef5350ff).into()), error: Some(rgba(0xef5350ff).into()), hidden: Some(rgba(0x5f7e97ff).into()), hint: Some(rgba(0x969696ff).into()), + ignored: Some(rgba(0x395a75ff).into()), + modified: Some(rgba(0xa2bffcff).into()), ..Default::default() }, syntax: Some(UserSyntaxTheme { diff --git a/crates/theme2/src/themes/noctis.rs b/crates/theme2/src/themes/noctis.rs index a05422300c9c3a3afdff4838e1e4b3ceae4a2023..25a31f0290155837b4d2331de91b3f1c77f60a5a 100644 --- a/crates/theme2/src/themes/noctis.rs +++ b/crates/theme2/src/themes/noctis.rs @@ -64,10 +64,14 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, status: StatusColorsRefinement { + conflict: Some(rgba(0xffc180ff).into()), + created: Some(rgba(0x40d4e7ff).into()), deleted: Some(rgba(0xe34e1cff).into()), error: Some(rgba(0xe34e1cff).into()), hidden: Some(rgba(0x9fb6c6ff).into()), hint: Some(rgba(0x969696ff).into()), + ignored: Some(rgba(0x5b788bff).into()), + modified: Some(rgba(0x49e9a6ff).into()), warning: Some(rgba(0xffa857ff).into()), ..Default::default() }, @@ -330,10 +334,14 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, status: StatusColorsRefinement { + conflict: Some(rgba(0xffc180ff).into()), + created: Some(rgba(0x40d4e7ff).into()), deleted: Some(rgba(0xe34e1cff).into()), error: Some(rgba(0xe34e1cff).into()), hidden: Some(rgba(0xbbaab0ff).into()), hint: Some(rgba(0x969696ff).into()), + ignored: Some(rgba(0x5b788bff).into()), + modified: Some(rgba(0x49e9a6ff).into()), warning: Some(rgba(0xffa857ff).into()), ..Default::default() }, @@ -596,10 +604,14 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, status: StatusColorsRefinement { + conflict: Some(rgba(0xe9a149ff).into()), + created: Some(rgba(0x00c6e0ff).into()), deleted: Some(rgba(0xff4000ff).into()), error: Some(rgba(0xff4000ff).into()), hidden: Some(rgba(0x71838eff).into()), hint: Some(rgba(0x969696ff).into()), + ignored: Some(rgba(0xa8a28faa).into()), + modified: Some(rgba(0x14b832ff).into()), warning: Some(rgba(0xe07a52ff).into()), ..Default::default() }, @@ -862,10 +874,14 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, status: StatusColorsRefinement { + conflict: Some(rgba(0xe9a149ff).into()), + created: Some(rgba(0x00c6e0ff).into()), deleted: Some(rgba(0xff4000ff).into()), error: Some(rgba(0xff4000ff).into()), hidden: Some(rgba(0x75718eff).into()), hint: Some(rgba(0x969696ff).into()), + ignored: Some(rgba(0xa8a28faa).into()), + modified: Some(rgba(0x14b832ff).into()), warning: Some(rgba(0xe07a52ff).into()), ..Default::default() }, @@ -1128,10 +1144,14 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, status: StatusColorsRefinement { + conflict: Some(rgba(0xe9a149ff).into()), + created: Some(rgba(0x00c6e0ff).into()), deleted: Some(rgba(0xff4000ff).into()), error: Some(rgba(0xff4000ff).into()), hidden: Some(rgba(0x888477ff).into()), hint: Some(rgba(0x969696ff).into()), + ignored: Some(rgba(0xa8a28faa).into()), + modified: Some(rgba(0x14b832ff).into()), warning: Some(rgba(0xe07a52ff).into()), ..Default::default() }, @@ -1394,10 +1414,14 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, status: StatusColorsRefinement { + conflict: Some(rgba(0xdfc09fff).into()), + created: Some(rgba(0x6fb0b8ff).into()), deleted: Some(rgba(0xb96346ff).into()), error: Some(rgba(0xb96346ff).into()), hidden: Some(rgba(0x96a8b6ff).into()), hint: Some(rgba(0x969696ff).into()), + ignored: Some(rgba(0x5b788bff).into()), + modified: Some(rgba(0x72c09fff).into()), warning: Some(rgba(0xffa857ff).into()), ..Default::default() }, @@ -1660,10 +1684,14 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, status: StatusColorsRefinement { + conflict: Some(rgba(0xe4b781ff).into()), + created: Some(rgba(0x40d4e7ff).into()), deleted: Some(rgba(0xe34e1cff).into()), error: Some(rgba(0xe34e1cff).into()), hidden: Some(rgba(0x87a7abff).into()), hint: Some(rgba(0x969696ff).into()), + ignored: Some(rgba(0x5b858bff).into()), + modified: Some(rgba(0x49e9a6ff).into()), warning: Some(rgba(0xffa487ff).into()), ..Default::default() }, @@ -1926,10 +1954,14 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, status: StatusColorsRefinement { + conflict: Some(rgba(0xe4b781ff).into()), + created: Some(rgba(0x40d4e7ff).into()), deleted: Some(rgba(0xe34e1cff).into()), error: Some(rgba(0xe34e1cff).into()), hidden: Some(rgba(0x87a7abff).into()), hint: Some(rgba(0x969696ff).into()), + ignored: Some(rgba(0x647e82ff).into()), + modified: Some(rgba(0x49e9a6ff).into()), warning: Some(rgba(0xffa487ff).into()), ..Default::default() }, @@ -2192,10 +2224,14 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, status: StatusColorsRefinement { + conflict: Some(rgba(0xe4b781ff).into()), + created: Some(rgba(0x40d4e7ff).into()), deleted: Some(rgba(0xe34e1cff).into()), error: Some(rgba(0xe34e1cff).into()), hidden: Some(rgba(0x87a7abff).into()), hint: Some(rgba(0x969696ff).into()), + ignored: Some(rgba(0x647e82ff).into()), + modified: Some(rgba(0x49e9a6ff).into()), warning: Some(rgba(0xffa487ff).into()), ..Default::default() }, @@ -2458,10 +2494,14 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, status: StatusColorsRefinement { + conflict: Some(rgba(0xffc180ff).into()), + created: Some(rgba(0x40d4e7ff).into()), deleted: Some(rgba(0xe34e1cff).into()), error: Some(rgba(0xe34e1cff).into()), hidden: Some(rgba(0xa9a5c0ff).into()), hint: Some(rgba(0x969696ff).into()), + ignored: Some(rgba(0x5b788bff).into()), + modified: Some(rgba(0x49e9a6ff).into()), warning: Some(rgba(0xffa857ff).into()), ..Default::default() }, @@ -2724,10 +2764,14 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, status: StatusColorsRefinement { + conflict: Some(rgba(0xffc180ff).into()), + created: Some(rgba(0x40d4e7ff).into()), deleted: Some(rgba(0xe34e1cff).into()), error: Some(rgba(0xe34e1cff).into()), hidden: Some(rgba(0xb3a5c0ff).into()), hint: Some(rgba(0x969696ff).into()), + ignored: Some(rgba(0x5b788bff).into()), + modified: Some(rgba(0x49e9a6ff).into()), warning: Some(rgba(0xffa857ff).into()), ..Default::default() }, diff --git a/crates/theme2/src/themes/nord.rs b/crates/theme2/src/themes/nord.rs index ee32e56645aa8aad4cabd142e3a3d380f8c9cb74..b4a723d35c082c4808dbd44c85dcf3f8570b289c 100644 --- a/crates/theme2/src/themes/nord.rs +++ b/crates/theme2/src/themes/nord.rs @@ -63,10 +63,14 @@ pub fn nord() -> UserThemeFamily { ..Default::default() }, status: StatusColorsRefinement { + conflict: Some(rgba(0x5e81acff).into()), + created: Some(rgba(0xa3be8cff).into()), deleted: Some(rgba(0xbf616aff).into()), error: Some(rgba(0xbf616aff).into()), hidden: Some(rgba(0xd8dee966).into()), hint: Some(rgba(0xd8dee9ff).into()), + ignored: Some(rgba(0xd8dee966).into()), + modified: Some(rgba(0xebcb8bff).into()), warning: Some(rgba(0xebcb8bff).into()), ..Default::default() }, diff --git a/crates/theme2/src/themes/palenight.rs b/crates/theme2/src/themes/palenight.rs index 0b2cfaca9978ef660cf78cad228fb2ec5aa76e44..31de1b798b65043a6f209082c25d94c1319c32c0 100644 --- a/crates/theme2/src/themes/palenight.rs +++ b/crates/theme2/src/themes/palenight.rs @@ -63,10 +63,14 @@ pub fn palenight() -> UserThemeFamily { ..Default::default() }, status: StatusColorsRefinement { + conflict: Some(rgba(0xffeb95cc).into()), + created: Some(rgba(0xa9c77dff).into()), deleted: Some(rgba(0xef5350ff).into()), error: Some(rgba(0xef5350ff).into()), hidden: Some(rgba(0x929ac9ff).into()), hint: Some(rgba(0x969696ff).into()), + ignored: Some(rgba(0x69709890).into()), + modified: Some(rgba(0xe2c08de6).into()), ..Default::default() }, syntax: Some(UserSyntaxTheme { @@ -338,10 +342,14 @@ pub fn palenight() -> UserThemeFamily { ..Default::default() }, status: StatusColorsRefinement { + conflict: Some(rgba(0xffeb95cc).into()), + created: Some(rgba(0xa9c77dff).into()), deleted: Some(rgba(0xef5350ff).into()), error: Some(rgba(0xef5350ff).into()), hidden: Some(rgba(0x929ac9ff).into()), hint: Some(rgba(0x969696ff).into()), + ignored: Some(rgba(0x69709890).into()), + modified: Some(rgba(0xe2c08de6).into()), ..Default::default() }, syntax: Some(UserSyntaxTheme { @@ -613,10 +621,14 @@ pub fn palenight() -> UserThemeFamily { ..Default::default() }, status: StatusColorsRefinement { + conflict: Some(rgba(0xffeb95cc).into()), + created: Some(rgba(0xa9c77dff).into()), deleted: Some(rgba(0xef5350ff).into()), error: Some(rgba(0xef5350ff).into()), hidden: Some(rgba(0x929ac9ff).into()), hint: Some(rgba(0x969696ff).into()), + ignored: Some(rgba(0x69709890).into()), + modified: Some(rgba(0xe2c08de6).into()), ..Default::default() }, syntax: Some(UserSyntaxTheme { diff --git a/crates/theme2/src/themes/rose_pine.rs b/crates/theme2/src/themes/rose_pine.rs index 2e5cf835ab930b5bb4b49f8cf31005aa10d17954..e0513bbd087aac3a654d5d831bba9554f69643cb 100644 --- a/crates/theme2/src/themes/rose_pine.rs +++ b/crates/theme2/src/themes/rose_pine.rs @@ -63,10 +63,14 @@ pub fn rose_pine() -> UserThemeFamily { ..Default::default() }, status: StatusColorsRefinement { + conflict: Some(rgba(0xeb6f92ff).into()), + created: Some(rgba(0xf6c177ff).into()), deleted: Some(rgba(0xeb6f92ff).into()), error: Some(rgba(0xeb6f92ff).into()), hidden: Some(rgba(0x908caaff).into()), hint: Some(rgba(0x908caaff).into()), + ignored: Some(rgba(0x6e6a86ff).into()), + modified: Some(rgba(0xebbcbaff).into()), warning: Some(rgba(0xf6c177ff).into()), ..Default::default() }, @@ -310,10 +314,14 @@ pub fn rose_pine() -> UserThemeFamily { ..Default::default() }, status: StatusColorsRefinement { + conflict: Some(rgba(0xeb6f92ff).into()), + created: Some(rgba(0xf6c177ff).into()), deleted: Some(rgba(0xeb6f92ff).into()), error: Some(rgba(0xeb6f92ff).into()), hidden: Some(rgba(0x908caaff).into()), hint: Some(rgba(0x908caaff).into()), + ignored: Some(rgba(0x6e6a86ff).into()), + modified: Some(rgba(0xea9a97ff).into()), warning: Some(rgba(0xf6c177ff).into()), ..Default::default() }, @@ -557,10 +565,14 @@ pub fn rose_pine() -> UserThemeFamily { ..Default::default() }, status: StatusColorsRefinement { + conflict: Some(rgba(0xb4637aff).into()), + created: Some(rgba(0xea9d34ff).into()), deleted: Some(rgba(0xb4637aff).into()), error: Some(rgba(0xb4637aff).into()), hidden: Some(rgba(0x797593ff).into()), hint: Some(rgba(0x797593ff).into()), + ignored: Some(rgba(0x9893a5ff).into()), + modified: Some(rgba(0xd7827eff).into()), warning: Some(rgba(0xea9d34ff).into()), ..Default::default() }, diff --git a/crates/theme2/src/themes/synthwave_84.rs b/crates/theme2/src/themes/synthwave_84.rs index 90e8a9c667c6032827f0f4cadc453d5314ec5712..832b92c7a1cb7e1d03ab5e3784cdbb44a8bd1b5c 100644 --- a/crates/theme2/src/themes/synthwave_84.rs +++ b/crates/theme2/src/themes/synthwave_84.rs @@ -47,9 +47,12 @@ pub fn synthwave_84() -> UserThemeFamily { ..Default::default() }, status: StatusColorsRefinement { + created: Some(rgba(0x72f1b8ff).into()), deleted: Some(rgba(0xfe4450ff).into()), error: Some(rgba(0xfe4450ff).into()), hint: Some(rgba(0x969696ff).into()), + ignored: Some(rgba(0xffffff59).into()), + modified: Some(rgba(0xb893ceee).into()), warning: Some(rgba(0x72f1b8bb).into()), ..Default::default() }, diff --git a/crates/theme_importer/src/vscode/converter.rs b/crates/theme_importer/src/vscode/converter.rs index 4e9090d2cd74fcc03e8023bae3b27c3e7cd152e5..6e2f11e5fffe2d091674849ebf1bf695e184f6e2 100644 --- a/crates/theme_importer/src/vscode/converter.rs +++ b/crates/theme_importer/src/vscode/converter.rs @@ -75,8 +75,14 @@ impl VsCodeThemeConverter { }; Ok(StatusColorsRefinement { - // conflict: None, - // created: None, + conflict: vscode_colors + .git_decoration_conflicting_resource_foreground + .as_ref() + .traverse(|color| try_parse_color(&color))?, + created: vscode_colors + .git_decoration_untracked_resource_foreground + .as_ref() + .traverse(|color| try_parse_color(&color))?, deleted: vscode_colors .error_foreground .as_ref() @@ -94,9 +100,15 @@ impl VsCodeThemeConverter { .as_ref() .traverse(|color| try_parse_color(&color))? .or(vscode_base_status_colors.hint), - // ignored: None, + ignored: vscode_colors + .git_decoration_ignored_resource_foreground + .as_ref() + .traverse(|color| try_parse_color(&color))?, // info: None, - // modified: None, + modified: vscode_colors + .git_decoration_modified_resource_foreground + .as_ref() + .traverse(|color| try_parse_color(&color))?, // renamed: None, // success: None, warning: vscode_colors From fdde76c1a5465fda848d0e5107d902c81302fd31 Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Fri, 8 Dec 2023 13:15:12 -0500 Subject: [PATCH 046/115] Cargo fmt --- crates/workspace2/src/status_bar.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/workspace2/src/status_bar.rs b/crates/workspace2/src/status_bar.rs index c095fd03b06f3d329e6bbbabf1f94252853d763d..d198b0485e26aed6660b9e8e6bb320daf7d16617 100644 --- a/crates/workspace2/src/status_bar.rs +++ b/crates/workspace2/src/status_bar.rs @@ -5,8 +5,8 @@ use gpui::{ div, AnyView, Div, IntoElement, ParentElement, Render, Styled, Subscription, View, ViewContext, WindowContext, }; +use ui::h_stack; use ui::prelude::*; -use ui::{h_stack}; use util::ResultExt; pub trait StatusItemView: Render { From 62155f3a88f5d15945621514885fe1851fc7f686 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 8 Dec 2023 13:20:00 -0500 Subject: [PATCH 047/115] Add fallback to constant tokens for numbers --- crates/theme2/src/themes/dracula.rs | 7 ++++ crates/theme2/src/themes/gruvbox.rs | 42 ++++++++++++++++++++++ crates/theme_importer/src/vscode/syntax.rs | 1 + 3 files changed, 50 insertions(+) diff --git a/crates/theme2/src/themes/dracula.rs b/crates/theme2/src/themes/dracula.rs index 27bc05c64a9f637a674236274fbab21060ebd09d..855698b47111816a456c79e980461165c3860813 100644 --- a/crates/theme2/src/themes/dracula.rs +++ b/crates/theme2/src/themes/dracula.rs @@ -156,6 +156,13 @@ pub fn dracula() -> UserThemeFamily { ..Default::default() }, ), + ( + "number".into(), + UserHighlightStyle { + color: Some(rgba(0xbd93f9ff).into()), + ..Default::default() + }, + ), ( "string".into(), UserHighlightStyle { diff --git a/crates/theme2/src/themes/gruvbox.rs b/crates/theme2/src/themes/gruvbox.rs index 79efc4310919658f8ad998be71ada2bc316f25ad..d961c661a33fdbbf4bac16c6c1e9386954aff8fc 100644 --- a/crates/theme2/src/themes/gruvbox.rs +++ b/crates/theme2/src/themes/gruvbox.rs @@ -152,6 +152,13 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "number".into(), + UserHighlightStyle { + color: Some(rgba(0xd3869bff).into()), + ..Default::default() + }, + ), ( "operator".into(), UserHighlightStyle { @@ -427,6 +434,13 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "number".into(), + UserHighlightStyle { + color: Some(rgba(0xd3869bff).into()), + ..Default::default() + }, + ), ( "operator".into(), UserHighlightStyle { @@ -702,6 +716,13 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "number".into(), + UserHighlightStyle { + color: Some(rgba(0xd3869bff).into()), + ..Default::default() + }, + ), ( "operator".into(), UserHighlightStyle { @@ -977,6 +998,13 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "number".into(), + UserHighlightStyle { + color: Some(rgba(0x8f3f71ff).into()), + ..Default::default() + }, + ), ( "operator".into(), UserHighlightStyle { @@ -1252,6 +1280,13 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "number".into(), + UserHighlightStyle { + color: Some(rgba(0x8f3f71ff).into()), + ..Default::default() + }, + ), ( "operator".into(), UserHighlightStyle { @@ -1527,6 +1562,13 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "number".into(), + UserHighlightStyle { + color: Some(rgba(0x8f3f71ff).into()), + ..Default::default() + }, + ), ( "operator".into(), UserHighlightStyle { diff --git a/crates/theme_importer/src/vscode/syntax.rs b/crates/theme_importer/src/vscode/syntax.rs index 262bd81f775da1ff3ff4ff1d257feb632e64f8bb..f055fc355103fcabeff360aa96b3add00241735a 100644 --- a/crates/theme_importer/src/vscode/syntax.rs +++ b/crates/theme_importer/src/vscode/syntax.rs @@ -167,6 +167,7 @@ impl ZedSyntaxToken { pub fn fallbacks(&self) -> &[Self] { match self { ZedSyntaxToken::CommentDoc => &[ZedSyntaxToken::Comment], + ZedSyntaxToken::Number => &[ZedSyntaxToken::Constant], ZedSyntaxToken::VariableSpecial => &[ZedSyntaxToken::Variable], ZedSyntaxToken::PunctuationBracket | ZedSyntaxToken::PunctuationDelimiter From 79e6dedb7a98bcc5b7f97aed91f5953579a4d6dd Mon Sep 17 00:00:00 2001 From: Julia Date: Fri, 8 Dec 2023 13:49:42 -0500 Subject: [PATCH 048/115] Track focus shenanigans with context menu Co-Authored-By: Max Brunsfeld --- crates/terminal_view2/src/terminal_element.rs | 16 ++---------- crates/terminal_view2/src/terminal_view.rs | 25 +++++++++---------- crates/ui2/src/components/context_menu.rs | 6 +---- 3 files changed, 15 insertions(+), 32 deletions(-) diff --git a/crates/terminal_view2/src/terminal_element.rs b/crates/terminal_view2/src/terminal_element.rs index d61ba5988e23f3ccfe5adb9264b549859373adf7..907e8cd9c159907e294f0b42464c678ae183d3a9 100644 --- a/crates/terminal_view2/src/terminal_element.rs +++ b/crates/terminal_view2/src/terminal_element.rs @@ -5,7 +5,7 @@ use gpui::{ FontStyle, FontWeight, HighlightStyle, Hsla, InteractiveElement, InteractiveElementState, IntoElement, LayoutId, Model, ModelContext, ModifiersChangedEvent, MouseButton, Pixels, PlatformInputHandler, Point, Rgba, ShapedLine, Size, StatefulInteractiveElement, Styled, - TextRun, TextStyle, TextSystem, UnderlineStyle, View, WhiteSpace, WindowContext, + TextRun, TextStyle, TextSystem, UnderlineStyle, WhiteSpace, WindowContext, }; use itertools::Itertools; use language::CursorShape; @@ -27,8 +27,6 @@ use ui::Tooltip; use std::mem; use std::{fmt::Debug, ops::RangeInclusive}; -use crate::TerminalView; - ///The information generated during layout that is necessary for painting pub struct LayoutState { cells: Vec, @@ -149,7 +147,6 @@ impl LayoutRect { ///We need to keep a reference to the view for mouse events, do we need it for any other terminal stuff, or can we move that to connection? pub struct TerminalElement { terminal: Model, - terminal_view: View, focus: FocusHandle, focused: bool, cursor_visible: bool, @@ -168,7 +165,6 @@ impl StatefulInteractiveElement for TerminalElement {} impl TerminalElement { pub fn new( terminal: Model, - terminal_view: View, focus: FocusHandle, focused: bool, cursor_visible: bool, @@ -176,7 +172,6 @@ impl TerminalElement { ) -> TerminalElement { TerminalElement { terminal, - terminal_view, focused, focus: focus.clone(), cursor_visible, @@ -774,18 +769,11 @@ impl Element for TerminalElement { (layout_id, interactive_state) } - fn paint( - mut self, - bounds: Bounds, - state: &mut Self::State, - cx: &mut WindowContext<'_>, - ) { + fn paint(self, bounds: Bounds, state: &mut Self::State, cx: &mut WindowContext<'_>) { let mut layout = self.compute_layout(bounds, cx); let theme = cx.theme(); - let dispatch_context = self.terminal_view.read(cx).dispatch_context(cx); - self.interactivity().key_context = Some(dispatch_context); cx.paint_quad( bounds, Default::default(), diff --git a/crates/terminal_view2/src/terminal_view.rs b/crates/terminal_view2/src/terminal_view.rs index c4f1512e8cc22df8175eb1cf6af3d73ae2846f7c..d41e535d50eee6bc999ec7eea995fab8a84a9b59 100644 --- a/crates/terminal_view2/src/terminal_view.rs +++ b/crates/terminal_view2/src/terminal_view.rs @@ -632,7 +632,6 @@ impl Render for TerminalView { fn render(&mut self, cx: &mut ViewContext) -> Self::Element { let terminal_handle = self.terminal.clone(); - let this_view = cx.view().clone(); let self_id = cx.entity_id(); let focused = self.focus_handle.is_focused(cx); @@ -640,22 +639,25 @@ impl Render for TerminalView { div() .size_full() .relative() + .track_focus(&self.focus_handle) + .key_context(self.dispatch_context(cx)) + .on_action(cx.listener(TerminalView::send_text)) + .on_action(cx.listener(TerminalView::send_keystroke)) + .on_action(cx.listener(TerminalView::copy)) + .on_action(cx.listener(TerminalView::paste)) + .on_action(cx.listener(TerminalView::clear)) + .on_action(cx.listener(TerminalView::show_character_palette)) + .on_action(cx.listener(TerminalView::select_all)) + .on_focus_in(cx.listener(Self::focus_in)) + .on_focus_out(cx.listener(Self::focus_out)) + .on_key_down(cx.listener(Self::key_down)) .child( div() .z_index(0) .absolute() .size_full() - .on_key_down(cx.listener(Self::key_down)) - .on_action(cx.listener(TerminalView::send_text)) - .on_action(cx.listener(TerminalView::send_keystroke)) - .on_action(cx.listener(TerminalView::copy)) - .on_action(cx.listener(TerminalView::paste)) - .on_action(cx.listener(TerminalView::clear)) - .on_action(cx.listener(TerminalView::show_character_palette)) - .on_action(cx.listener(TerminalView::select_all)) .child(TerminalElement::new( terminal_handle, - this_view, self.focus_handle.clone(), focused, self.should_show_cursor(focused, cx), @@ -675,9 +677,6 @@ impl Render for TerminalView { .anchor(gpui::AnchorCorner::TopLeft) .child(menu.clone()) })) - .track_focus(&self.focus_handle) - .on_focus_in(cx.listener(Self::focus_in)) - .on_focus_out(cx.listener(Self::focus_out)) } } diff --git a/crates/ui2/src/components/context_menu.rs b/crates/ui2/src/components/context_menu.rs index 0d6a632db58f3d750bcd8e60cf6a9a92b5405468..c2dc0abe1ab3dd87557dc52abb5b50032ab3be34 100644 --- a/crates/ui2/src/components/context_menu.rs +++ b/crates/ui2/src/components/context_menu.rs @@ -239,7 +239,6 @@ impl Render for ContextMenu { action, } => { let handler = handler.clone(); - let dismiss = cx.listener(|_, _, cx| cx.emit(DismissEvent)); let label_element = if let Some(icon) = icon { h_stack() @@ -263,10 +262,7 @@ impl Render for ContextMenu { })), ) .selected(Some(ix) == self.selected_index) - .on_click(move |event, cx| { - handler(cx); - dismiss(event, cx) - }) + .on_click(move |_, cx| handler(cx)) .into_any_element() } }, From 1d35a815a68b10af12fc2c612ef4910a66b33877 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 8 Dec 2023 13:50:56 -0500 Subject: [PATCH 049/115] Use `editorGroupHeader.tabsBackground` from VS Code as tab bar background (#3558) This PR changes the color we use for the tab bar background from the VS Code theme to `editorGroupHeader.tabsBackground`. Release Notes: - N/A --- crates/theme2/src/themes/dracula.rs | 2 +- crates/theme2/src/themes/gruvbox.rs | 6 +++++ crates/theme2/src/themes/noctis.rs | 22 +++++++++---------- crates/theme2/src/themes/palenight.rs | 6 ++--- crates/theme2/src/themes/rose_pine.rs | 6 ++--- crates/theme2/src/themes/solarized.rs | 2 ++ crates/theme2/src/themes/synthwave_84.rs | 1 + crates/theme_importer/src/vscode/converter.rs | 2 +- 8 files changed, 28 insertions(+), 19 deletions(-) diff --git a/crates/theme2/src/themes/dracula.rs b/crates/theme2/src/themes/dracula.rs index 855698b47111816a456c79e980461165c3860813..391ef11803d7d2e1db3b9a37f7070d4cbf87b4e9 100644 --- a/crates/theme2/src/themes/dracula.rs +++ b/crates/theme2/src/themes/dracula.rs @@ -36,7 +36,7 @@ pub fn dracula() -> UserThemeFamily { status_bar_background: Some(rgba(0x191a21ff).into()), title_bar_background: Some(rgba(0x21222cff).into()), toolbar_background: Some(rgba(0x282a36ff).into()), - tab_bar_background: Some(rgba(0x282a36ff).into()), + tab_bar_background: Some(rgba(0x191a21ff).into()), tab_inactive_background: Some(rgba(0x21222cff).into()), tab_active_background: Some(rgba(0x282a36ff).into()), editor_background: Some(rgba(0x282a36ff).into()), diff --git a/crates/theme2/src/themes/gruvbox.rs b/crates/theme2/src/themes/gruvbox.rs index d961c661a33fdbbf4bac16c6c1e9386954aff8fc..b27dee65eb575807ce657a095f39ed1a3427daf0 100644 --- a/crates/theme2/src/themes/gruvbox.rs +++ b/crates/theme2/src/themes/gruvbox.rs @@ -34,6 +34,7 @@ pub fn gruvbox() -> UserThemeFamily { text: Some(rgba(0xebdbb2ff).into()), status_bar_background: Some(rgba(0x1d2021ff).into()), title_bar_background: Some(rgba(0x1d2021ff).into()), + tab_bar_background: Some(rgba(0x1d2021ff).into()), tab_inactive_background: Some(rgba(0x1d2021ff).into()), tab_active_background: Some(rgba(0x32302fff).into()), editor_background: Some(rgba(0x1d2021ff).into()), @@ -316,6 +317,7 @@ pub fn gruvbox() -> UserThemeFamily { text: Some(rgba(0xebdbb2ff).into()), status_bar_background: Some(rgba(0x282828ff).into()), title_bar_background: Some(rgba(0x282828ff).into()), + tab_bar_background: Some(rgba(0x282828ff).into()), tab_inactive_background: Some(rgba(0x282828ff).into()), tab_active_background: Some(rgba(0x3c3836ff).into()), editor_background: Some(rgba(0x282828ff).into()), @@ -598,6 +600,7 @@ pub fn gruvbox() -> UserThemeFamily { text: Some(rgba(0xebdbb2ff).into()), status_bar_background: Some(rgba(0x32302fff).into()), title_bar_background: Some(rgba(0x32302fff).into()), + tab_bar_background: Some(rgba(0x32302fff).into()), tab_inactive_background: Some(rgba(0x32302fff).into()), tab_active_background: Some(rgba(0x504945ff).into()), editor_background: Some(rgba(0x32302fff).into()), @@ -880,6 +883,7 @@ pub fn gruvbox() -> UserThemeFamily { text: Some(rgba(0x3c3836ff).into()), status_bar_background: Some(rgba(0xf9f5d7ff).into()), title_bar_background: Some(rgba(0xf9f5d7ff).into()), + tab_bar_background: Some(rgba(0xf9f5d7ff).into()), tab_inactive_background: Some(rgba(0xf9f5d7ff).into()), tab_active_background: Some(rgba(0xf2e5bcff).into()), editor_background: Some(rgba(0xf9f5d7ff).into()), @@ -1162,6 +1166,7 @@ pub fn gruvbox() -> UserThemeFamily { text: Some(rgba(0x3c3836ff).into()), status_bar_background: Some(rgba(0xfbf1c7ff).into()), title_bar_background: Some(rgba(0xfbf1c7ff).into()), + tab_bar_background: Some(rgba(0xfbf1c7ff).into()), tab_inactive_background: Some(rgba(0xfbf1c7ff).into()), tab_active_background: Some(rgba(0xebdbb2ff).into()), editor_background: Some(rgba(0xfbf1c7ff).into()), @@ -1444,6 +1449,7 @@ pub fn gruvbox() -> UserThemeFamily { text: Some(rgba(0x3c3836ff).into()), status_bar_background: Some(rgba(0xf2e5bcff).into()), title_bar_background: Some(rgba(0xf2e5bcff).into()), + tab_bar_background: Some(rgba(0xf2e5bcff).into()), tab_inactive_background: Some(rgba(0xf2e5bcff).into()), tab_active_background: Some(rgba(0xd5c4a1ff).into()), editor_background: Some(rgba(0xf2e5bcff).into()), diff --git a/crates/theme2/src/themes/noctis.rs b/crates/theme2/src/themes/noctis.rs index 25a31f0290155837b4d2331de91b3f1c77f60a5a..db24e921cca5a3915e6102b9c932da73ee4260ac 100644 --- a/crates/theme2/src/themes/noctis.rs +++ b/crates/theme2/src/themes/noctis.rs @@ -37,7 +37,7 @@ pub fn noctis() -> UserThemeFamily { status_bar_background: Some(rgba(0x07273bff).into()), title_bar_background: Some(rgba(0x07273bff).into()), toolbar_background: Some(rgba(0x051b29ff).into()), - tab_bar_background: Some(rgba(0x051b29ff).into()), + tab_bar_background: Some(rgba(0x09334eff).into()), tab_inactive_background: Some(rgba(0x09334eff).into()), tab_active_background: Some(rgba(0x07273bff).into()), editor_background: Some(rgba(0x07273bff).into()), @@ -307,7 +307,7 @@ pub fn noctis() -> UserThemeFamily { status_bar_background: Some(rgba(0x322a2dff).into()), title_bar_background: Some(rgba(0x322a2dff).into()), toolbar_background: Some(rgba(0x272022ff).into()), - tab_bar_background: Some(rgba(0x272022ff).into()), + tab_bar_background: Some(rgba(0x413036ff).into()), tab_inactive_background: Some(rgba(0x413036ff).into()), tab_active_background: Some(rgba(0x322a2dff).into()), editor_background: Some(rgba(0x322a2dff).into()), @@ -577,7 +577,7 @@ pub fn noctis() -> UserThemeFamily { status_bar_background: Some(rgba(0xcaedf2ff).into()), title_bar_background: Some(rgba(0xe7f2f3ff).into()), toolbar_background: Some(rgba(0xe1eeefff).into()), - tab_bar_background: Some(rgba(0xe1eeefff).into()), + tab_bar_background: Some(rgba(0xcaedf2ff).into()), tab_inactive_background: Some(rgba(0xcaedf2ff).into()), tab_active_background: Some(rgba(0xf4f6f6ff).into()), editor_background: Some(rgba(0xf4f6f6ff).into()), @@ -847,7 +847,7 @@ pub fn noctis() -> UserThemeFamily { status_bar_background: Some(rgba(0xe2dff6ff).into()), title_bar_background: Some(rgba(0xedecf8ff).into()), toolbar_background: Some(rgba(0xe9e7f3ff).into()), - tab_bar_background: Some(rgba(0xe9e7f3ff).into()), + tab_bar_background: Some(rgba(0xe2dff6ff).into()), tab_inactive_background: Some(rgba(0xe2dff6ff).into()), tab_active_background: Some(rgba(0xf2f1f8ff).into()), editor_background: Some(rgba(0xf2f1f8ff).into()), @@ -1117,7 +1117,7 @@ pub fn noctis() -> UserThemeFamily { status_bar_background: Some(rgba(0xf0e9d6ff).into()), title_bar_background: Some(rgba(0xf9f1e1ff).into()), toolbar_background: Some(rgba(0xf6eddaff).into()), - tab_bar_background: Some(rgba(0xf6eddaff).into()), + tab_bar_background: Some(rgba(0xf0e9d6ff).into()), tab_inactive_background: Some(rgba(0xf0e9d6ff).into()), tab_active_background: Some(rgba(0xfef8ecff).into()), editor_background: Some(rgba(0xfef8ecff).into()), @@ -1387,7 +1387,7 @@ pub fn noctis() -> UserThemeFamily { status_bar_background: Some(rgba(0x1b2932ff).into()), title_bar_background: Some(rgba(0x1b2932ff).into()), toolbar_background: Some(rgba(0x0e1920ff).into()), - tab_bar_background: Some(rgba(0x0e1920ff).into()), + tab_bar_background: Some(rgba(0x24333dff).into()), tab_inactive_background: Some(rgba(0x202e37ff).into()), tab_active_background: Some(rgba(0x1b2932ff).into()), editor_background: Some(rgba(0x1b2932ff).into()), @@ -1657,7 +1657,7 @@ pub fn noctis() -> UserThemeFamily { status_bar_background: Some(rgba(0x041d20ff).into()), title_bar_background: Some(rgba(0x041d20ff).into()), toolbar_background: Some(rgba(0x03191bff).into()), - tab_bar_background: Some(rgba(0x03191bff).into()), + tab_bar_background: Some(rgba(0x062e32ff).into()), tab_inactive_background: Some(rgba(0x062e32ff).into()), tab_active_background: Some(rgba(0x052529ff).into()), editor_background: Some(rgba(0x052529ff).into()), @@ -1927,7 +1927,7 @@ pub fn noctis() -> UserThemeFamily { status_bar_background: Some(rgba(0x031417ff).into()), title_bar_background: Some(rgba(0x031417ff).into()), toolbar_background: Some(rgba(0x020c0eff).into()), - tab_bar_background: Some(rgba(0x020c0eff).into()), + tab_bar_background: Some(rgba(0x062e32ff).into()), tab_inactive_background: Some(rgba(0x062e32ff).into()), tab_active_background: Some(rgba(0x031417ff).into()), editor_background: Some(rgba(0x031417ff).into()), @@ -2197,7 +2197,7 @@ pub fn noctis() -> UserThemeFamily { status_bar_background: Some(rgba(0x031417ff).into()), title_bar_background: Some(rgba(0x031417ff).into()), toolbar_background: Some(rgba(0x020c0eff).into()), - tab_bar_background: Some(rgba(0x020c0eff).into()), + tab_bar_background: Some(rgba(0x062e32ff).into()), tab_inactive_background: Some(rgba(0x062e32ff).into()), tab_active_background: Some(rgba(0x031417ff).into()), editor_background: Some(rgba(0x031417ff).into()), @@ -2467,7 +2467,7 @@ pub fn noctis() -> UserThemeFamily { status_bar_background: Some(rgba(0x292640ff).into()), title_bar_background: Some(rgba(0x292640ff).into()), toolbar_background: Some(rgba(0x1f1d30ff).into()), - tab_bar_background: Some(rgba(0x1f1d30ff).into()), + tab_bar_background: Some(rgba(0x2f2c49ff).into()), tab_inactive_background: Some(rgba(0x2f2c49ff).into()), tab_active_background: Some(rgba(0x292640ff).into()), editor_background: Some(rgba(0x292640ff).into()), @@ -2737,7 +2737,7 @@ pub fn noctis() -> UserThemeFamily { status_bar_background: Some(rgba(0x30243dff).into()), title_bar_background: Some(rgba(0x30243dff).into()), toolbar_background: Some(rgba(0x291d35ff).into()), - tab_bar_background: Some(rgba(0x291d35ff).into()), + tab_bar_background: Some(rgba(0x3d2e4dff).into()), tab_inactive_background: Some(rgba(0x3d2e4dff).into()), tab_active_background: Some(rgba(0x30243dff).into()), editor_background: Some(rgba(0x30243dff).into()), diff --git a/crates/theme2/src/themes/palenight.rs b/crates/theme2/src/themes/palenight.rs index 31de1b798b65043a6f209082c25d94c1319c32c0..710a0c7c835759619d10e3ebd97b8127925dbb30 100644 --- a/crates/theme2/src/themes/palenight.rs +++ b/crates/theme2/src/themes/palenight.rs @@ -37,7 +37,7 @@ pub fn palenight() -> UserThemeFamily { status_bar_background: Some(rgba(0x282c3dff).into()), title_bar_background: Some(rgba(0x292d3eff).into()), toolbar_background: Some(rgba(0x292d3eff).into()), - tab_bar_background: Some(rgba(0x292d3eff).into()), + tab_bar_background: Some(rgba(0x31364aff).into()), tab_inactive_background: Some(rgba(0x31364aff).into()), tab_active_background: Some(rgba(0x292d3eff).into()), editor_background: Some(rgba(0x292d3eff).into()), @@ -316,7 +316,7 @@ pub fn palenight() -> UserThemeFamily { status_bar_background: Some(rgba(0x282c3dff).into()), title_bar_background: Some(rgba(0x292d3eff).into()), toolbar_background: Some(rgba(0x292d3eff).into()), - tab_bar_background: Some(rgba(0x292d3eff).into()), + tab_bar_background: Some(rgba(0x31364aff).into()), tab_inactive_background: Some(rgba(0x31364aff).into()), tab_active_background: Some(rgba(0x292d3eff).into()), editor_background: Some(rgba(0x292d3eff).into()), @@ -595,7 +595,7 @@ pub fn palenight() -> UserThemeFamily { status_bar_background: Some(rgba(0x25293aff).into()), title_bar_background: Some(rgba(0x25293aff).into()), toolbar_background: Some(rgba(0x25293aff).into()), - tab_bar_background: Some(rgba(0x25293aff).into()), + tab_bar_background: Some(rgba(0x31364aff).into()), tab_inactive_background: Some(rgba(0x31364aff).into()), tab_active_background: Some(rgba(0x25293aff).into()), editor_background: Some(rgba(0x292d3eff).into()), diff --git a/crates/theme2/src/themes/rose_pine.rs b/crates/theme2/src/themes/rose_pine.rs index e0513bbd087aac3a654d5d831bba9554f69643cb..0f3592cb0fd8990429113cffc7b3ffb3fd3de1f4 100644 --- a/crates/theme2/src/themes/rose_pine.rs +++ b/crates/theme2/src/themes/rose_pine.rs @@ -37,7 +37,7 @@ pub fn rose_pine() -> UserThemeFamily { status_bar_background: Some(rgba(0x191724ff).into()), title_bar_background: Some(rgba(0x191724ff).into()), toolbar_background: Some(rgba(0x1f1d2eff).into()), - tab_bar_background: Some(rgba(0x1f1d2eff).into()), + tab_bar_background: Some(rgba(0x00000000).into()), tab_inactive_background: Some(rgba(0x00000000).into()), tab_active_background: Some(rgba(0x6e6a861a).into()), editor_background: Some(rgba(0x191724ff).into()), @@ -288,7 +288,7 @@ pub fn rose_pine() -> UserThemeFamily { status_bar_background: Some(rgba(0x232136ff).into()), title_bar_background: Some(rgba(0x232136ff).into()), toolbar_background: Some(rgba(0x2a273fff).into()), - tab_bar_background: Some(rgba(0x2a273fff).into()), + tab_bar_background: Some(rgba(0x00000000).into()), tab_inactive_background: Some(rgba(0x00000000).into()), tab_active_background: Some(rgba(0x817c9c14).into()), editor_background: Some(rgba(0x232136ff).into()), @@ -539,7 +539,7 @@ pub fn rose_pine() -> UserThemeFamily { status_bar_background: Some(rgba(0xfaf4edff).into()), title_bar_background: Some(rgba(0xfaf4edff).into()), toolbar_background: Some(rgba(0xfffaf3ff).into()), - tab_bar_background: Some(rgba(0xfffaf3ff).into()), + tab_bar_background: Some(rgba(0x00000000).into()), tab_inactive_background: Some(rgba(0x00000000).into()), tab_active_background: Some(rgba(0x6e6a860d).into()), editor_background: Some(rgba(0xfaf4edff).into()), diff --git a/crates/theme2/src/themes/solarized.rs b/crates/theme2/src/themes/solarized.rs index 81171e0fb02885b8c3d6f9ed33675aa882ec90b3..71a1ed0204a20163d7db34464574177c381ca218 100644 --- a/crates/theme2/src/themes/solarized.rs +++ b/crates/theme2/src/themes/solarized.rs @@ -34,6 +34,7 @@ pub fn solarized() -> UserThemeFamily { text: Some(rgba(0xbbbbbbff).into()), status_bar_background: Some(rgba(0x00212bff).into()), title_bar_background: Some(rgba(0x002c39ff).into()), + tab_bar_background: Some(rgba(0x004052ff).into()), tab_inactive_background: Some(rgba(0x004052ff).into()), tab_active_background: Some(rgba(0x002b37ff).into()), editor_background: Some(rgba(0x002b36ff).into()), @@ -294,6 +295,7 @@ pub fn solarized() -> UserThemeFamily { text: Some(rgba(0x333333ff).into()), status_bar_background: Some(rgba(0xeee8d5ff).into()), title_bar_background: Some(rgba(0xeee8d5ff).into()), + tab_bar_background: Some(rgba(0xd9d2c2ff).into()), tab_inactive_background: Some(rgba(0xd3cbb7ff).into()), tab_active_background: Some(rgba(0xfdf6e3ff).into()), editor_background: Some(rgba(0xfdf6e3ff).into()), diff --git a/crates/theme2/src/themes/synthwave_84.rs b/crates/theme2/src/themes/synthwave_84.rs index 832b92c7a1cb7e1d03ab5e3784cdbb44a8bd1b5c..4849fb9f37f780e3f7f6b8c7a9a0022e27c19587 100644 --- a/crates/theme2/src/themes/synthwave_84.rs +++ b/crates/theme2/src/themes/synthwave_84.rs @@ -28,6 +28,7 @@ pub fn synthwave_84() -> UserThemeFamily { text: Some(rgba(0xffffffff).into()), status_bar_background: Some(rgba(0x241b2fff).into()), title_bar_background: Some(rgba(0x241b2fff).into()), + tab_bar_background: Some(rgba(0x241b2fff).into()), tab_inactive_background: Some(rgba(0x262335ff).into()), editor_background: Some(rgba(0x262335ff).into()), editor_gutter_background: Some(rgba(0x262335ff).into()), diff --git a/crates/theme_importer/src/vscode/converter.rs b/crates/theme_importer/src/vscode/converter.rs index 6e2f11e5fffe2d091674849ebf1bf695e184f6e2..596aa09b936e8e44775144dcb293fba0134eac0d 100644 --- a/crates/theme_importer/src/vscode/converter.rs +++ b/crates/theme_importer/src/vscode/converter.rs @@ -202,7 +202,7 @@ impl VsCodeThemeConverter { .flatten() }), tab_bar_background: vscode_colors - .panel_background + .editor_group_header_tabs_background .as_ref() .traverse(|color| try_parse_color(&color))?, tab_active_background: vscode_colors From 1c850f495ca6a29fc427dced0d30492487bdf55f Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 8 Dec 2023 14:03:18 -0500 Subject: [PATCH 050/115] Use `breadcrumb.background` from VS Code for toolbar background (#3559) This PR changes the color we use for the toolbar background from the VS Code theme to `breadcrumb.background`. If this value isn't set then we fall back to the `editor.background`. Release Notes: - N/A --- crates/theme2/src/themes/andromeda.rs | 2 +- crates/theme2/src/themes/gruvbox.rs | 6 +++++ crates/theme2/src/themes/night_owl.rs | 2 +- crates/theme2/src/themes/noctis.rs | 22 ++++++++-------- crates/theme2/src/themes/palenight.rs | 2 +- crates/theme2/src/themes/rose_pine.rs | 6 ++--- crates/theme2/src/themes/solarized.rs | 2 ++ crates/theme2/src/themes/synthwave_84.rs | 1 + crates/theme_importer/src/vscode/converter.rs | 25 ++++++++----------- 9 files changed, 37 insertions(+), 31 deletions(-) diff --git a/crates/theme2/src/themes/andromeda.rs b/crates/theme2/src/themes/andromeda.rs index c789f4f39573dc54ceeff7949defd74694c76a1e..9e61fbe2e05023c95e5d38e7f41e53a7cd831893 100644 --- a/crates/theme2/src/themes/andromeda.rs +++ b/crates/theme2/src/themes/andromeda.rs @@ -241,7 +241,7 @@ pub fn andromeda() -> UserThemeFamily { text: Some(rgba(0xd5ced9ff).into()), status_bar_background: Some(rgba(0x23262eff).into()), title_bar_background: Some(rgba(0x23262eff).into()), - toolbar_background: Some(rgba(0x23262eff).into()), + toolbar_background: Some(rgba(0x262a33ff).into()), tab_bar_background: Some(rgba(0x23262eff).into()), tab_inactive_background: Some(rgba(0x23262eff).into()), tab_active_background: Some(rgba(0x262a33ff).into()), diff --git a/crates/theme2/src/themes/gruvbox.rs b/crates/theme2/src/themes/gruvbox.rs index b27dee65eb575807ce657a095f39ed1a3427daf0..161450dbc060e87d1a8bc1c8a575e8620e36c68a 100644 --- a/crates/theme2/src/themes/gruvbox.rs +++ b/crates/theme2/src/themes/gruvbox.rs @@ -34,6 +34,7 @@ pub fn gruvbox() -> UserThemeFamily { text: Some(rgba(0xebdbb2ff).into()), status_bar_background: Some(rgba(0x1d2021ff).into()), title_bar_background: Some(rgba(0x1d2021ff).into()), + toolbar_background: Some(rgba(0x1d2021ff).into()), tab_bar_background: Some(rgba(0x1d2021ff).into()), tab_inactive_background: Some(rgba(0x1d2021ff).into()), tab_active_background: Some(rgba(0x32302fff).into()), @@ -317,6 +318,7 @@ pub fn gruvbox() -> UserThemeFamily { text: Some(rgba(0xebdbb2ff).into()), status_bar_background: Some(rgba(0x282828ff).into()), title_bar_background: Some(rgba(0x282828ff).into()), + toolbar_background: Some(rgba(0x282828ff).into()), tab_bar_background: Some(rgba(0x282828ff).into()), tab_inactive_background: Some(rgba(0x282828ff).into()), tab_active_background: Some(rgba(0x3c3836ff).into()), @@ -600,6 +602,7 @@ pub fn gruvbox() -> UserThemeFamily { text: Some(rgba(0xebdbb2ff).into()), status_bar_background: Some(rgba(0x32302fff).into()), title_bar_background: Some(rgba(0x32302fff).into()), + toolbar_background: Some(rgba(0x32302fff).into()), tab_bar_background: Some(rgba(0x32302fff).into()), tab_inactive_background: Some(rgba(0x32302fff).into()), tab_active_background: Some(rgba(0x504945ff).into()), @@ -883,6 +886,7 @@ pub fn gruvbox() -> UserThemeFamily { text: Some(rgba(0x3c3836ff).into()), status_bar_background: Some(rgba(0xf9f5d7ff).into()), title_bar_background: Some(rgba(0xf9f5d7ff).into()), + toolbar_background: Some(rgba(0xf9f5d7ff).into()), tab_bar_background: Some(rgba(0xf9f5d7ff).into()), tab_inactive_background: Some(rgba(0xf9f5d7ff).into()), tab_active_background: Some(rgba(0xf2e5bcff).into()), @@ -1166,6 +1170,7 @@ pub fn gruvbox() -> UserThemeFamily { text: Some(rgba(0x3c3836ff).into()), status_bar_background: Some(rgba(0xfbf1c7ff).into()), title_bar_background: Some(rgba(0xfbf1c7ff).into()), + toolbar_background: Some(rgba(0xfbf1c7ff).into()), tab_bar_background: Some(rgba(0xfbf1c7ff).into()), tab_inactive_background: Some(rgba(0xfbf1c7ff).into()), tab_active_background: Some(rgba(0xebdbb2ff).into()), @@ -1449,6 +1454,7 @@ pub fn gruvbox() -> UserThemeFamily { text: Some(rgba(0x3c3836ff).into()), status_bar_background: Some(rgba(0xf2e5bcff).into()), title_bar_background: Some(rgba(0xf2e5bcff).into()), + toolbar_background: Some(rgba(0xf2e5bcff).into()), tab_bar_background: Some(rgba(0xf2e5bcff).into()), tab_inactive_background: Some(rgba(0xf2e5bcff).into()), tab_active_background: Some(rgba(0xd5c4a1ff).into()), diff --git a/crates/theme2/src/themes/night_owl.rs b/crates/theme2/src/themes/night_owl.rs index cece73f00e41b1ee153647e7bad1ddea7eac36fd..8e4743e3718a909a192b9adcdf9cc7a07dc9be51 100644 --- a/crates/theme2/src/themes/night_owl.rs +++ b/crates/theme2/src/themes/night_owl.rs @@ -286,7 +286,7 @@ pub fn night_owl() -> UserThemeFamily { text: Some(rgba(0x403f53ff).into()), status_bar_background: Some(rgba(0xf0f0f0ff).into()), title_bar_background: Some(rgba(0xf0f0f0ff).into()), - toolbar_background: Some(rgba(0xf0f0f0ff).into()), + toolbar_background: Some(rgba(0xfbfbfbff).into()), tab_bar_background: Some(rgba(0xf0f0f0ff).into()), tab_inactive_background: Some(rgba(0xf0f0f0ff).into()), tab_active_background: Some(rgba(0xf6f6f6ff).into()), diff --git a/crates/theme2/src/themes/noctis.rs b/crates/theme2/src/themes/noctis.rs index db24e921cca5a3915e6102b9c932da73ee4260ac..3a0e96755e335eb6a17c7660c9c87aab1e11579e 100644 --- a/crates/theme2/src/themes/noctis.rs +++ b/crates/theme2/src/themes/noctis.rs @@ -36,7 +36,7 @@ pub fn noctis() -> UserThemeFamily { text: Some(rgba(0xbecfdaff).into()), status_bar_background: Some(rgba(0x07273bff).into()), title_bar_background: Some(rgba(0x07273bff).into()), - toolbar_background: Some(rgba(0x051b29ff).into()), + toolbar_background: Some(rgba(0x07273bff).into()), tab_bar_background: Some(rgba(0x09334eff).into()), tab_inactive_background: Some(rgba(0x09334eff).into()), tab_active_background: Some(rgba(0x07273bff).into()), @@ -306,7 +306,7 @@ pub fn noctis() -> UserThemeFamily { text: Some(rgba(0xcbbec2ff).into()), status_bar_background: Some(rgba(0x322a2dff).into()), title_bar_background: Some(rgba(0x322a2dff).into()), - toolbar_background: Some(rgba(0x272022ff).into()), + toolbar_background: Some(rgba(0x322a2dff).into()), tab_bar_background: Some(rgba(0x413036ff).into()), tab_inactive_background: Some(rgba(0x413036ff).into()), tab_active_background: Some(rgba(0x322a2dff).into()), @@ -576,7 +576,7 @@ pub fn noctis() -> UserThemeFamily { text: Some(rgba(0x005661ff).into()), status_bar_background: Some(rgba(0xcaedf2ff).into()), title_bar_background: Some(rgba(0xe7f2f3ff).into()), - toolbar_background: Some(rgba(0xe1eeefff).into()), + toolbar_background: Some(rgba(0xf4f6f6ff).into()), tab_bar_background: Some(rgba(0xcaedf2ff).into()), tab_inactive_background: Some(rgba(0xcaedf2ff).into()), tab_active_background: Some(rgba(0xf4f6f6ff).into()), @@ -846,7 +846,7 @@ pub fn noctis() -> UserThemeFamily { text: Some(rgba(0x0c006bff).into()), status_bar_background: Some(rgba(0xe2dff6ff).into()), title_bar_background: Some(rgba(0xedecf8ff).into()), - toolbar_background: Some(rgba(0xe9e7f3ff).into()), + toolbar_background: Some(rgba(0xf2f1f8ff).into()), tab_bar_background: Some(rgba(0xe2dff6ff).into()), tab_inactive_background: Some(rgba(0xe2dff6ff).into()), tab_active_background: Some(rgba(0xf2f1f8ff).into()), @@ -1116,7 +1116,7 @@ pub fn noctis() -> UserThemeFamily { text: Some(rgba(0x005661ff).into()), status_bar_background: Some(rgba(0xf0e9d6ff).into()), title_bar_background: Some(rgba(0xf9f1e1ff).into()), - toolbar_background: Some(rgba(0xf6eddaff).into()), + toolbar_background: Some(rgba(0xfef8ecff).into()), tab_bar_background: Some(rgba(0xf0e9d6ff).into()), tab_inactive_background: Some(rgba(0xf0e9d6ff).into()), tab_active_background: Some(rgba(0xfef8ecff).into()), @@ -1386,7 +1386,7 @@ pub fn noctis() -> UserThemeFamily { text: Some(rgba(0xc5cdd3ff).into()), status_bar_background: Some(rgba(0x1b2932ff).into()), title_bar_background: Some(rgba(0x1b2932ff).into()), - toolbar_background: Some(rgba(0x0e1920ff).into()), + toolbar_background: Some(rgba(0x1b2932ff).into()), tab_bar_background: Some(rgba(0x24333dff).into()), tab_inactive_background: Some(rgba(0x202e37ff).into()), tab_active_background: Some(rgba(0x1b2932ff).into()), @@ -1656,7 +1656,7 @@ pub fn noctis() -> UserThemeFamily { text: Some(rgba(0xb2cacdff).into()), status_bar_background: Some(rgba(0x041d20ff).into()), title_bar_background: Some(rgba(0x041d20ff).into()), - toolbar_background: Some(rgba(0x03191bff).into()), + toolbar_background: Some(rgba(0x052529ff).into()), tab_bar_background: Some(rgba(0x062e32ff).into()), tab_inactive_background: Some(rgba(0x062e32ff).into()), tab_active_background: Some(rgba(0x052529ff).into()), @@ -1926,7 +1926,7 @@ pub fn noctis() -> UserThemeFamily { text: Some(rgba(0xb2cacdff).into()), status_bar_background: Some(rgba(0x031417ff).into()), title_bar_background: Some(rgba(0x031417ff).into()), - toolbar_background: Some(rgba(0x020c0eff).into()), + toolbar_background: Some(rgba(0x031417ff).into()), tab_bar_background: Some(rgba(0x062e32ff).into()), tab_inactive_background: Some(rgba(0x062e32ff).into()), tab_active_background: Some(rgba(0x031417ff).into()), @@ -2196,7 +2196,7 @@ pub fn noctis() -> UserThemeFamily { text: Some(rgba(0xb2cacdff).into()), status_bar_background: Some(rgba(0x031417ff).into()), title_bar_background: Some(rgba(0x031417ff).into()), - toolbar_background: Some(rgba(0x020c0eff).into()), + toolbar_background: Some(rgba(0x031417ff).into()), tab_bar_background: Some(rgba(0x062e32ff).into()), tab_inactive_background: Some(rgba(0x062e32ff).into()), tab_active_background: Some(rgba(0x031417ff).into()), @@ -2466,7 +2466,7 @@ pub fn noctis() -> UserThemeFamily { text: Some(rgba(0xc5c2d6ff).into()), status_bar_background: Some(rgba(0x292640ff).into()), title_bar_background: Some(rgba(0x292640ff).into()), - toolbar_background: Some(rgba(0x1f1d30ff).into()), + toolbar_background: Some(rgba(0x292640ff).into()), tab_bar_background: Some(rgba(0x2f2c49ff).into()), tab_inactive_background: Some(rgba(0x2f2c49ff).into()), tab_active_background: Some(rgba(0x292640ff).into()), @@ -2736,7 +2736,7 @@ pub fn noctis() -> UserThemeFamily { text: Some(rgba(0xccbfd9ff).into()), status_bar_background: Some(rgba(0x30243dff).into()), title_bar_background: Some(rgba(0x30243dff).into()), - toolbar_background: Some(rgba(0x291d35ff).into()), + toolbar_background: Some(rgba(0x30243dff).into()), tab_bar_background: Some(rgba(0x3d2e4dff).into()), tab_inactive_background: Some(rgba(0x3d2e4dff).into()), tab_active_background: Some(rgba(0x30243dff).into()), diff --git a/crates/theme2/src/themes/palenight.rs b/crates/theme2/src/themes/palenight.rs index 710a0c7c835759619d10e3ebd97b8127925dbb30..3036a0ffdb90109298c8abf2514767976c048822 100644 --- a/crates/theme2/src/themes/palenight.rs +++ b/crates/theme2/src/themes/palenight.rs @@ -594,7 +594,7 @@ pub fn palenight() -> UserThemeFamily { text: Some(rgba(0xffffffff).into()), status_bar_background: Some(rgba(0x25293aff).into()), title_bar_background: Some(rgba(0x25293aff).into()), - toolbar_background: Some(rgba(0x25293aff).into()), + toolbar_background: Some(rgba(0x292d3eff).into()), tab_bar_background: Some(rgba(0x31364aff).into()), tab_inactive_background: Some(rgba(0x31364aff).into()), tab_active_background: Some(rgba(0x25293aff).into()), diff --git a/crates/theme2/src/themes/rose_pine.rs b/crates/theme2/src/themes/rose_pine.rs index 0f3592cb0fd8990429113cffc7b3ffb3fd3de1f4..d115eca6d3123d7f027053cad0bf56323e6af0ef 100644 --- a/crates/theme2/src/themes/rose_pine.rs +++ b/crates/theme2/src/themes/rose_pine.rs @@ -36,7 +36,7 @@ pub fn rose_pine() -> UserThemeFamily { text: Some(rgba(0xe0def4ff).into()), status_bar_background: Some(rgba(0x191724ff).into()), title_bar_background: Some(rgba(0x191724ff).into()), - toolbar_background: Some(rgba(0x1f1d2eff).into()), + toolbar_background: Some(rgba(0x191724ff).into()), tab_bar_background: Some(rgba(0x00000000).into()), tab_inactive_background: Some(rgba(0x00000000).into()), tab_active_background: Some(rgba(0x6e6a861a).into()), @@ -287,7 +287,7 @@ pub fn rose_pine() -> UserThemeFamily { text: Some(rgba(0xe0def4ff).into()), status_bar_background: Some(rgba(0x232136ff).into()), title_bar_background: Some(rgba(0x232136ff).into()), - toolbar_background: Some(rgba(0x2a273fff).into()), + toolbar_background: Some(rgba(0x232136ff).into()), tab_bar_background: Some(rgba(0x00000000).into()), tab_inactive_background: Some(rgba(0x00000000).into()), tab_active_background: Some(rgba(0x817c9c14).into()), @@ -538,7 +538,7 @@ pub fn rose_pine() -> UserThemeFamily { text: Some(rgba(0x575279ff).into()), status_bar_background: Some(rgba(0xfaf4edff).into()), title_bar_background: Some(rgba(0xfaf4edff).into()), - toolbar_background: Some(rgba(0xfffaf3ff).into()), + toolbar_background: Some(rgba(0xfaf4edff).into()), tab_bar_background: Some(rgba(0x00000000).into()), tab_inactive_background: Some(rgba(0x00000000).into()), tab_active_background: Some(rgba(0x6e6a860d).into()), diff --git a/crates/theme2/src/themes/solarized.rs b/crates/theme2/src/themes/solarized.rs index 71a1ed0204a20163d7db34464574177c381ca218..9a7e6c145f6b2c72ef6ab4ba7c9a59f8749649b8 100644 --- a/crates/theme2/src/themes/solarized.rs +++ b/crates/theme2/src/themes/solarized.rs @@ -34,6 +34,7 @@ pub fn solarized() -> UserThemeFamily { text: Some(rgba(0xbbbbbbff).into()), status_bar_background: Some(rgba(0x00212bff).into()), title_bar_background: Some(rgba(0x002c39ff).into()), + toolbar_background: Some(rgba(0x002b36ff).into()), tab_bar_background: Some(rgba(0x004052ff).into()), tab_inactive_background: Some(rgba(0x004052ff).into()), tab_active_background: Some(rgba(0x002b37ff).into()), @@ -295,6 +296,7 @@ pub fn solarized() -> UserThemeFamily { text: Some(rgba(0x333333ff).into()), status_bar_background: Some(rgba(0xeee8d5ff).into()), title_bar_background: Some(rgba(0xeee8d5ff).into()), + toolbar_background: Some(rgba(0xfdf6e3ff).into()), tab_bar_background: Some(rgba(0xd9d2c2ff).into()), tab_inactive_background: Some(rgba(0xd3cbb7ff).into()), tab_active_background: Some(rgba(0xfdf6e3ff).into()), diff --git a/crates/theme2/src/themes/synthwave_84.rs b/crates/theme2/src/themes/synthwave_84.rs index 4849fb9f37f780e3f7f6b8c7a9a0022e27c19587..5d6214e2318bcbbd77ac7fced5358e456354aeb0 100644 --- a/crates/theme2/src/themes/synthwave_84.rs +++ b/crates/theme2/src/themes/synthwave_84.rs @@ -28,6 +28,7 @@ pub fn synthwave_84() -> UserThemeFamily { text: Some(rgba(0xffffffff).into()), status_bar_background: Some(rgba(0x241b2fff).into()), title_bar_background: Some(rgba(0x241b2fff).into()), + toolbar_background: Some(rgba(0x262335ff).into()), tab_bar_background: Some(rgba(0x241b2fff).into()), tab_inactive_background: Some(rgba(0x262335ff).into()), editor_background: Some(rgba(0x262335ff).into()), diff --git a/crates/theme_importer/src/vscode/converter.rs b/crates/theme_importer/src/vscode/converter.rs index 596aa09b936e8e44775144dcb293fba0134eac0d..6c5ef51fe6720869a84584dcdecbe8e65f0e52e9 100644 --- a/crates/theme_importer/src/vscode/converter.rs +++ b/crates/theme_importer/src/vscode/converter.rs @@ -122,6 +122,11 @@ impl VsCodeThemeConverter { fn convert_theme_colors(&self) -> Result { let vscode_colors = &self.theme.colors; + let vscode_editor_background = vscode_colors + .editor_background + .as_ref() + .traverse(|color| try_parse_color(&color))?; + Ok(ThemeColorsRefinement { border: vscode_colors .panel_border @@ -155,10 +160,7 @@ impl VsCodeThemeConverter { .panel_background .as_ref() .traverse(|color| try_parse_color(&color))?, - background: vscode_colors - .editor_background - .as_ref() - .traverse(|color| try_parse_color(&color))?, + background: vscode_editor_background, title_bar_background: vscode_colors .title_bar_active_background .as_ref() @@ -214,17 +216,12 @@ impl VsCodeThemeConverter { .as_ref() .traverse(|color| try_parse_color(&color))?, toolbar_background: vscode_colors - .panel_background - .as_ref() - .traverse(|color| try_parse_color(&color))?, - editor_background: vscode_colors - .editor_background - .as_ref() - .traverse(|color| try_parse_color(&color))?, - editor_gutter_background: vscode_colors - .editor_background + .breadcrumb_background .as_ref() - .traverse(|color| try_parse_color(&color))?, + .traverse(|color| try_parse_color(&color))? + .or(vscode_editor_background), + editor_background: vscode_editor_background, + editor_gutter_background: vscode_editor_background, editor_line_number: vscode_colors .editor_line_number_foreground .as_ref() From 77c8108f9beaa3be7a2e6b048688f65e06e1c0e9 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 8 Dec 2023 14:13:50 -0500 Subject: [PATCH 051/115] Use `dropdown.background` from VS Code for elevated surface background --- crates/theme2/src/themes/andromeda.rs | 4 ++-- crates/theme2/src/themes/ayu.rs | 6 ++--- crates/theme2/src/themes/dracula.rs | 2 +- crates/theme2/src/themes/gruvbox.rs | 6 +++++ crates/theme2/src/themes/noctis.rs | 22 +++++++++---------- crates/theme2/src/themes/nord.rs | 2 +- crates/theme2/src/themes/palenight.rs | 2 +- crates/theme2/src/themes/solarized.rs | 2 ++ crates/theme2/src/themes/synthwave_84.rs | 1 + crates/theme_importer/src/vscode/converter.rs | 2 +- 10 files changed, 29 insertions(+), 20 deletions(-) diff --git a/crates/theme2/src/themes/andromeda.rs b/crates/theme2/src/themes/andromeda.rs index 9e61fbe2e05023c95e5d38e7f41e53a7cd831893..8ff4b6887fd553aaa264a599679abbb7adacb0fa 100644 --- a/crates/theme2/src/themes/andromeda.rs +++ b/crates/theme2/src/themes/andromeda.rs @@ -25,7 +25,7 @@ pub fn andromeda() -> UserThemeFamily { border_selected: Some(rgba(0x1b1d23ff).into()), border_transparent: Some(rgba(0x1b1d23ff).into()), border_disabled: Some(rgba(0x1b1d23ff).into()), - elevated_surface_background: Some(rgba(0x23262eff).into()), + elevated_surface_background: Some(rgba(0x2b303bff).into()), surface_background: Some(rgba(0x23262eff).into()), background: Some(rgba(0x23262eff).into()), element_background: Some(rgba(0x00e8c5cc).into()), @@ -230,7 +230,7 @@ pub fn andromeda() -> UserThemeFamily { border_selected: Some(rgba(0x1b1d23ff).into()), border_transparent: Some(rgba(0x1b1d23ff).into()), border_disabled: Some(rgba(0x1b1d23ff).into()), - elevated_surface_background: Some(rgba(0x23262eff).into()), + elevated_surface_background: Some(rgba(0x2b303bff).into()), surface_background: Some(rgba(0x23262eff).into()), background: Some(rgba(0x262a33ff).into()), element_background: Some(rgba(0x00e8c5cc).into()), diff --git a/crates/theme2/src/themes/ayu.rs b/crates/theme2/src/themes/ayu.rs index c9bb3dd51461c42ce6ae3513781bf79dbdf1fbda..92bdb32f6f1eb066da2498dfdcc91675b9186c46 100644 --- a/crates/theme2/src/themes/ayu.rs +++ b/crates/theme2/src/themes/ayu.rs @@ -25,7 +25,7 @@ pub fn ayu() -> UserThemeFamily { border_selected: Some(rgba(0x6b7d8f1f).into()), border_transparent: Some(rgba(0x6b7d8f1f).into()), border_disabled: Some(rgba(0x6b7d8f1f).into()), - elevated_surface_background: Some(rgba(0xf8f9faff).into()), + elevated_surface_background: Some(rgba(0xfcfcfcff).into()), surface_background: Some(rgba(0xf8f9faff).into()), background: Some(rgba(0xf8f9faff).into()), element_background: Some(rgba(0xffaa33ff).into()), @@ -324,7 +324,7 @@ pub fn ayu() -> UserThemeFamily { border_selected: Some(rgba(0x171b24ff).into()), border_transparent: Some(rgba(0x171b24ff).into()), border_disabled: Some(rgba(0x171b24ff).into()), - elevated_surface_background: Some(rgba(0x1f2430ff).into()), + elevated_surface_background: Some(rgba(0x242936ff).into()), surface_background: Some(rgba(0x1f2430ff).into()), background: Some(rgba(0x1f2430ff).into()), element_background: Some(rgba(0xffcc66ff).into()), @@ -623,7 +623,7 @@ pub fn ayu() -> UserThemeFamily { border_selected: Some(rgba(0x1e232bff).into()), border_transparent: Some(rgba(0x1e232bff).into()), border_disabled: Some(rgba(0x1e232bff).into()), - elevated_surface_background: Some(rgba(0x0b0e14ff).into()), + elevated_surface_background: Some(rgba(0x0d1017ff).into()), surface_background: Some(rgba(0x0b0e14ff).into()), background: Some(rgba(0x0b0e14ff).into()), element_background: Some(rgba(0xe6b450ff).into()), diff --git a/crates/theme2/src/themes/dracula.rs b/crates/theme2/src/themes/dracula.rs index 391ef11803d7d2e1db3b9a37f7070d4cbf87b4e9..d4c395831c9cf0f9ecdba6c76af1445ac08da9c2 100644 --- a/crates/theme2/src/themes/dracula.rs +++ b/crates/theme2/src/themes/dracula.rs @@ -24,7 +24,7 @@ pub fn dracula() -> UserThemeFamily { border_selected: Some(rgba(0xbd93f9ff).into()), border_transparent: Some(rgba(0xbd93f9ff).into()), border_disabled: Some(rgba(0xbd93f9ff).into()), - elevated_surface_background: Some(rgba(0x282a36ff).into()), + elevated_surface_background: Some(rgba(0x343746ff).into()), surface_background: Some(rgba(0x282a36ff).into()), background: Some(rgba(0x282a36ff).into()), element_background: Some(rgba(0x44475aff).into()), diff --git a/crates/theme2/src/themes/gruvbox.rs b/crates/theme2/src/themes/gruvbox.rs index 161450dbc060e87d1a8bc1c8a575e8620e36c68a..106c18868bb94613a11d00c1f87dd80429ea6d22 100644 --- a/crates/theme2/src/themes/gruvbox.rs +++ b/crates/theme2/src/themes/gruvbox.rs @@ -25,6 +25,7 @@ pub fn gruvbox() -> UserThemeFamily { border_selected: Some(rgba(0x3c3836ff).into()), border_transparent: Some(rgba(0x3c3836ff).into()), border_disabled: Some(rgba(0x3c3836ff).into()), + elevated_surface_background: Some(rgba(0x1d2021ff).into()), background: Some(rgba(0x1d2021ff).into()), element_background: Some(rgba(0x45858880).into()), element_hover: Some(rgba(0x3c383680).into()), @@ -309,6 +310,7 @@ pub fn gruvbox() -> UserThemeFamily { border_selected: Some(rgba(0x3c3836ff).into()), border_transparent: Some(rgba(0x3c3836ff).into()), border_disabled: Some(rgba(0x3c3836ff).into()), + elevated_surface_background: Some(rgba(0x282828ff).into()), background: Some(rgba(0x282828ff).into()), element_background: Some(rgba(0x45858880).into()), element_hover: Some(rgba(0x3c383680).into()), @@ -593,6 +595,7 @@ pub fn gruvbox() -> UserThemeFamily { border_selected: Some(rgba(0x3c3836ff).into()), border_transparent: Some(rgba(0x3c3836ff).into()), border_disabled: Some(rgba(0x3c3836ff).into()), + elevated_surface_background: Some(rgba(0x32302fff).into()), background: Some(rgba(0x32302fff).into()), element_background: Some(rgba(0x45858880).into()), element_hover: Some(rgba(0x3c383680).into()), @@ -877,6 +880,7 @@ pub fn gruvbox() -> UserThemeFamily { border_selected: Some(rgba(0xebdbb2ff).into()), border_transparent: Some(rgba(0xebdbb2ff).into()), border_disabled: Some(rgba(0xebdbb2ff).into()), + elevated_surface_background: Some(rgba(0xf9f5d7ff).into()), background: Some(rgba(0xf9f5d7ff).into()), element_background: Some(rgba(0x45858880).into()), element_hover: Some(rgba(0xebdbb280).into()), @@ -1161,6 +1165,7 @@ pub fn gruvbox() -> UserThemeFamily { border_selected: Some(rgba(0xebdbb2ff).into()), border_transparent: Some(rgba(0xebdbb2ff).into()), border_disabled: Some(rgba(0xebdbb2ff).into()), + elevated_surface_background: Some(rgba(0xfbf1c7ff).into()), background: Some(rgba(0xfbf1c7ff).into()), element_background: Some(rgba(0x45858880).into()), element_hover: Some(rgba(0xebdbb280).into()), @@ -1445,6 +1450,7 @@ pub fn gruvbox() -> UserThemeFamily { border_selected: Some(rgba(0xebdbb2ff).into()), border_transparent: Some(rgba(0xebdbb2ff).into()), border_disabled: Some(rgba(0xebdbb2ff).into()), + elevated_surface_background: Some(rgba(0xf2e5bcff).into()), background: Some(rgba(0xf2e5bcff).into()), element_background: Some(rgba(0x45858880).into()), element_hover: Some(rgba(0xebdbb280).into()), diff --git a/crates/theme2/src/themes/noctis.rs b/crates/theme2/src/themes/noctis.rs index 3a0e96755e335eb6a17c7660c9c87aab1e11579e..3a9203c8045401ad114ed7ff3baf9f03cf7840b0 100644 --- a/crates/theme2/src/themes/noctis.rs +++ b/crates/theme2/src/themes/noctis.rs @@ -25,7 +25,7 @@ pub fn noctis() -> UserThemeFamily { border_selected: Some(rgba(0x1679b6ff).into()), border_transparent: Some(rgba(0x1679b6ff).into()), border_disabled: Some(rgba(0x1679b6ff).into()), - elevated_surface_background: Some(rgba(0x051b29ff).into()), + elevated_surface_background: Some(rgba(0x09334eff).into()), surface_background: Some(rgba(0x051b29ff).into()), background: Some(rgba(0x07273bff).into()), element_background: Some(rgba(0x007f99ff).into()), @@ -295,7 +295,7 @@ pub fn noctis() -> UserThemeFamily { border_selected: Some(rgba(0x997582ff).into()), border_transparent: Some(rgba(0x997582ff).into()), border_disabled: Some(rgba(0x997582ff).into()), - elevated_surface_background: Some(rgba(0x272022ff).into()), + elevated_surface_background: Some(rgba(0x413036ff).into()), surface_background: Some(rgba(0x272022ff).into()), background: Some(rgba(0x322a2dff).into()), element_background: Some(rgba(0x007f99ff).into()), @@ -565,7 +565,7 @@ pub fn noctis() -> UserThemeFamily { border_selected: Some(rgba(0x00c6e0ff).into()), border_transparent: Some(rgba(0x00c6e0ff).into()), border_disabled: Some(rgba(0x00c6e0ff).into()), - elevated_surface_background: Some(rgba(0xe1eeefff).into()), + elevated_surface_background: Some(rgba(0xf4f6f6ff).into()), surface_background: Some(rgba(0xe1eeefff).into()), background: Some(rgba(0xf4f6f6ff).into()), element_background: Some(rgba(0x099099ff).into()), @@ -835,7 +835,7 @@ pub fn noctis() -> UserThemeFamily { border_selected: Some(rgba(0xaea4f4ff).into()), border_transparent: Some(rgba(0xaea4f4ff).into()), border_disabled: Some(rgba(0xaea4f4ff).into()), - elevated_surface_background: Some(rgba(0xe9e7f3ff).into()), + elevated_surface_background: Some(rgba(0xf2f1f8ff).into()), surface_background: Some(rgba(0xe9e7f3ff).into()), background: Some(rgba(0xf2f1f8ff).into()), element_background: Some(rgba(0x8e80ffff).into()), @@ -1105,7 +1105,7 @@ pub fn noctis() -> UserThemeFamily { border_selected: Some(rgba(0x00c6e0ff).into()), border_transparent: Some(rgba(0x00c6e0ff).into()), border_disabled: Some(rgba(0x00c6e0ff).into()), - elevated_surface_background: Some(rgba(0xf6eddaff).into()), + elevated_surface_background: Some(rgba(0xfef8ecff).into()), surface_background: Some(rgba(0xf6eddaff).into()), background: Some(rgba(0xfef8ecff).into()), element_background: Some(rgba(0x099099ff).into()), @@ -1375,7 +1375,7 @@ pub fn noctis() -> UserThemeFamily { border_selected: Some(rgba(0x496d83ff).into()), border_transparent: Some(rgba(0x496d83ff).into()), border_disabled: Some(rgba(0x496d83ff).into()), - elevated_surface_background: Some(rgba(0x0e1920ff).into()), + elevated_surface_background: Some(rgba(0x202e37ff).into()), surface_background: Some(rgba(0x0e1920ff).into()), background: Some(rgba(0x1b2932ff).into()), element_background: Some(rgba(0x2e616bff).into()), @@ -1645,7 +1645,7 @@ pub fn noctis() -> UserThemeFamily { border_selected: Some(rgba(0x0e6671ff).into()), border_transparent: Some(rgba(0x0e6671ff).into()), border_disabled: Some(rgba(0x0e6671ff).into()), - elevated_surface_background: Some(rgba(0x03191bff).into()), + elevated_surface_background: Some(rgba(0x073940ff).into()), surface_background: Some(rgba(0x03191bff).into()), background: Some(rgba(0x052529ff).into()), element_background: Some(rgba(0x099099ff).into()), @@ -1915,7 +1915,7 @@ pub fn noctis() -> UserThemeFamily { border_selected: Some(rgba(0x0e6671ff).into()), border_transparent: Some(rgba(0x0e6671ff).into()), border_disabled: Some(rgba(0x0e6671ff).into()), - elevated_surface_background: Some(rgba(0x020c0eff).into()), + elevated_surface_background: Some(rgba(0x031417ff).into()), surface_background: Some(rgba(0x020c0eff).into()), background: Some(rgba(0x031417ff).into()), element_background: Some(rgba(0x099099ff).into()), @@ -2185,7 +2185,7 @@ pub fn noctis() -> UserThemeFamily { border_selected: Some(rgba(0x0e6671ff).into()), border_transparent: Some(rgba(0x0e6671ff).into()), border_disabled: Some(rgba(0x0e6671ff).into()), - elevated_surface_background: Some(rgba(0x020c0eff).into()), + elevated_surface_background: Some(rgba(0x031417ff).into()), surface_background: Some(rgba(0x020c0eff).into()), background: Some(rgba(0x031417ff).into()), element_background: Some(rgba(0x099099ff).into()), @@ -2455,7 +2455,7 @@ pub fn noctis() -> UserThemeFamily { border_selected: Some(rgba(0x6e67a8ff).into()), border_transparent: Some(rgba(0x6e67a8ff).into()), border_disabled: Some(rgba(0x6e67a8ff).into()), - elevated_surface_background: Some(rgba(0x1f1d30ff).into()), + elevated_surface_background: Some(rgba(0x2f2c49ff).into()), surface_background: Some(rgba(0x1f1d30ff).into()), background: Some(rgba(0x292640ff).into()), element_background: Some(rgba(0x007f99ff).into()), @@ -2725,7 +2725,7 @@ pub fn noctis() -> UserThemeFamily { border_selected: Some(rgba(0x8767a8ff).into()), border_transparent: Some(rgba(0x8767a8ff).into()), border_disabled: Some(rgba(0x8767a8ff).into()), - elevated_surface_background: Some(rgba(0x291d35ff).into()), + elevated_surface_background: Some(rgba(0x3d2e4dff).into()), surface_background: Some(rgba(0x291d35ff).into()), background: Some(rgba(0x30243dff).into()), element_background: Some(rgba(0x007f99ff).into()), diff --git a/crates/theme2/src/themes/nord.rs b/crates/theme2/src/themes/nord.rs index b4a723d35c082c4808dbd44c85dcf3f8570b289c..e8d2bdc8b75264a1684fb28320e5d7536f06c0ea 100644 --- a/crates/theme2/src/themes/nord.rs +++ b/crates/theme2/src/themes/nord.rs @@ -24,7 +24,7 @@ pub fn nord() -> UserThemeFamily { border_selected: Some(rgba(0x3b4252ff).into()), border_transparent: Some(rgba(0x3b4252ff).into()), border_disabled: Some(rgba(0x3b4252ff).into()), - elevated_surface_background: Some(rgba(0x2e3440ff).into()), + elevated_surface_background: Some(rgba(0x3b4252ff).into()), surface_background: Some(rgba(0x2e3440ff).into()), background: Some(rgba(0x2e3440ff).into()), element_background: Some(rgba(0x88c0d0ee).into()), diff --git a/crates/theme2/src/themes/palenight.rs b/crates/theme2/src/themes/palenight.rs index 3036a0ffdb90109298c8abf2514767976c048822..82f8418e0d3b780b1b2d856c7d2922096d3acb0f 100644 --- a/crates/theme2/src/themes/palenight.rs +++ b/crates/theme2/src/themes/palenight.rs @@ -583,7 +583,7 @@ pub fn palenight() -> UserThemeFamily { border_selected: Some(rgba(0x2c2f40ff).into()), border_transparent: Some(rgba(0x2c2f40ff).into()), border_disabled: Some(rgba(0x2c2f40ff).into()), - elevated_surface_background: Some(rgba(0x25293aff).into()), + elevated_surface_background: Some(rgba(0x292d3eff).into()), surface_background: Some(rgba(0x25293aff).into()), background: Some(rgba(0x292d3eff).into()), element_background: Some(rgba(0x7e57c2cc).into()), diff --git a/crates/theme2/src/themes/solarized.rs b/crates/theme2/src/themes/solarized.rs index 9a7e6c145f6b2c72ef6ab4ba7c9a59f8749649b8..bc4752f7a68830f40b41b20c27c27ae76ad2cbdc 100644 --- a/crates/theme2/src/themes/solarized.rs +++ b/crates/theme2/src/themes/solarized.rs @@ -25,6 +25,7 @@ pub fn solarized() -> UserThemeFamily { border_selected: Some(rgba(0x003847ff).into()), border_transparent: Some(rgba(0x003847ff).into()), border_disabled: Some(rgba(0x003847ff).into()), + elevated_surface_background: Some(rgba(0x00212bff).into()), background: Some(rgba(0x002b36ff).into()), element_background: Some(rgba(0x2aa19899).into()), element_hover: Some(rgba(0x004454aa).into()), @@ -288,6 +289,7 @@ pub fn solarized() -> UserThemeFamily { border_selected: Some(rgba(0xddd6c1ff).into()), border_transparent: Some(rgba(0xddd6c1ff).into()), border_disabled: Some(rgba(0xddd6c1ff).into()), + elevated_surface_background: Some(rgba(0xeee8d5ff).into()), background: Some(rgba(0xfdf6e3ff).into()), element_background: Some(rgba(0xac9d57ff).into()), element_hover: Some(rgba(0xdfca8844).into()), diff --git a/crates/theme2/src/themes/synthwave_84.rs b/crates/theme2/src/themes/synthwave_84.rs index 5d6214e2318bcbbd77ac7fced5358e456354aeb0..51855bdbefafcc21fbdad32f5a060dad3fde8a09 100644 --- a/crates/theme2/src/themes/synthwave_84.rs +++ b/crates/theme2/src/themes/synthwave_84.rs @@ -19,6 +19,7 @@ pub fn synthwave_84() -> UserThemeFamily { styles: UserThemeStylesRefinement { colors: ThemeColorsRefinement { border_focused: Some(rgba(0x1f212bff).into()), + elevated_surface_background: Some(rgba(0x232530ff).into()), background: Some(rgba(0x262335ff).into()), element_background: Some(rgba(0x614d85ff).into()), element_hover: Some(rgba(0x37294d99).into()), diff --git a/crates/theme_importer/src/vscode/converter.rs b/crates/theme_importer/src/vscode/converter.rs index 6c5ef51fe6720869a84584dcdecbe8e65f0e52e9..1980327e0150d1f42b334e384357a0c944b62367 100644 --- a/crates/theme_importer/src/vscode/converter.rs +++ b/crates/theme_importer/src/vscode/converter.rs @@ -153,7 +153,7 @@ impl VsCodeThemeConverter { .as_ref() .traverse(|color| try_parse_color(&color))?, elevated_surface_background: vscode_colors - .panel_background + .dropdown_background .as_ref() .traverse(|color| try_parse_color(&color))?, surface_background: vscode_colors From 27501d2929777db5b33e752c4e14ab2465a2ac78 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 8 Dec 2023 14:19:56 -0500 Subject: [PATCH 052/115] Pull in colors for selected ghost elements --- crates/theme2/src/themes/andromeda.rs | 2 ++ crates/theme2/src/themes/ayu.rs | 3 +++ crates/theme2/src/themes/dracula.rs | 1 + crates/theme2/src/themes/gruvbox.rs | 6 ++++++ crates/theme2/src/themes/night_owl.rs | 2 ++ crates/theme2/src/themes/noctis.rs | 11 +++++++++++ crates/theme2/src/themes/nord.rs | 1 + crates/theme2/src/themes/palenight.rs | 3 +++ crates/theme2/src/themes/rose_pine.rs | 3 +++ crates/theme2/src/themes/solarized.rs | 2 ++ crates/theme2/src/themes/synthwave_84.rs | 1 + crates/theme_importer/src/vscode/converter.rs | 4 ++++ 12 files changed, 39 insertions(+) diff --git a/crates/theme2/src/themes/andromeda.rs b/crates/theme2/src/themes/andromeda.rs index 8ff4b6887fd553aaa264a599679abbb7adacb0fa..031dd510252903763d6c3f064479fb94e23f4b38 100644 --- a/crates/theme2/src/themes/andromeda.rs +++ b/crates/theme2/src/themes/andromeda.rs @@ -33,6 +33,7 @@ pub fn andromeda() -> UserThemeFamily { element_selected: Some(rgba(0x23262eff).into()), drop_target_background: Some(rgba(0x3a404eff).into()), ghost_element_hover: Some(rgba(0x23262eff).into()), + ghost_element_selected: Some(rgba(0x23262eff).into()), text: Some(rgba(0xd5ced9ff).into()), status_bar_background: Some(rgba(0x23262eff).into()), title_bar_background: Some(rgba(0x23262eff).into()), @@ -238,6 +239,7 @@ pub fn andromeda() -> UserThemeFamily { element_selected: Some(rgba(0x23262eff).into()), drop_target_background: Some(rgba(0x3a404eff).into()), ghost_element_hover: Some(rgba(0x23262eff).into()), + ghost_element_selected: Some(rgba(0x23262eff).into()), text: Some(rgba(0xd5ced9ff).into()), status_bar_background: Some(rgba(0x23262eff).into()), title_bar_background: Some(rgba(0x23262eff).into()), diff --git a/crates/theme2/src/themes/ayu.rs b/crates/theme2/src/themes/ayu.rs index 92bdb32f6f1eb066da2498dfdcc91675b9186c46..1d6bb1634cf31e3ba744e53b5cb20647bdc4b179 100644 --- a/crates/theme2/src/themes/ayu.rs +++ b/crates/theme2/src/themes/ayu.rs @@ -32,6 +32,7 @@ pub fn ayu() -> UserThemeFamily { element_hover: Some(rgba(0x56728f1f).into()), element_selected: Some(rgba(0x56728f1f).into()), ghost_element_hover: Some(rgba(0x56728f1f).into()), + ghost_element_selected: Some(rgba(0x56728f1f).into()), text: Some(rgba(0x8a9199ff).into()), status_bar_background: Some(rgba(0xf8f9faff).into()), title_bar_background: Some(rgba(0xf8f9faff).into()), @@ -331,6 +332,7 @@ pub fn ayu() -> UserThemeFamily { element_hover: Some(rgba(0x63759926).into()), element_selected: Some(rgba(0x63759926).into()), ghost_element_hover: Some(rgba(0x63759926).into()), + ghost_element_selected: Some(rgba(0x63759926).into()), text: Some(rgba(0x707a8cff).into()), status_bar_background: Some(rgba(0x1f2430ff).into()), title_bar_background: Some(rgba(0x1f2430ff).into()), @@ -630,6 +632,7 @@ pub fn ayu() -> UserThemeFamily { element_hover: Some(rgba(0x47526640).into()), element_selected: Some(rgba(0x47526640).into()), ghost_element_hover: Some(rgba(0x47526640).into()), + ghost_element_selected: Some(rgba(0x47526640).into()), text: Some(rgba(0x565b66ff).into()), status_bar_background: Some(rgba(0x0b0e14ff).into()), title_bar_background: Some(rgba(0x0b0e14ff).into()), diff --git a/crates/theme2/src/themes/dracula.rs b/crates/theme2/src/themes/dracula.rs index d4c395831c9cf0f9ecdba6c76af1445ac08da9c2..795d7d5083e626ec4c18c2ec342147f28fd9a8e6 100644 --- a/crates/theme2/src/themes/dracula.rs +++ b/crates/theme2/src/themes/dracula.rs @@ -32,6 +32,7 @@ pub fn dracula() -> UserThemeFamily { element_selected: Some(rgba(0x44475aff).into()), drop_target_background: Some(rgba(0x44475aff).into()), ghost_element_hover: Some(rgba(0x44475a75).into()), + ghost_element_selected: Some(rgba(0x44475aff).into()), text: Some(rgba(0xf8f8f2ff).into()), status_bar_background: Some(rgba(0x191a21ff).into()), title_bar_background: Some(rgba(0x21222cff).into()), diff --git a/crates/theme2/src/themes/gruvbox.rs b/crates/theme2/src/themes/gruvbox.rs index 106c18868bb94613a11d00c1f87dd80429ea6d22..6d0851bbee7d76710d0b07baa69b7b7c149aab80 100644 --- a/crates/theme2/src/themes/gruvbox.rs +++ b/crates/theme2/src/themes/gruvbox.rs @@ -32,6 +32,7 @@ pub fn gruvbox() -> UserThemeFamily { element_selected: Some(rgba(0x3c383680).into()), drop_target_background: Some(rgba(0x3c3836ff).into()), ghost_element_hover: Some(rgba(0x3c383680).into()), + ghost_element_selected: Some(rgba(0x3c383680).into()), text: Some(rgba(0xebdbb2ff).into()), status_bar_background: Some(rgba(0x1d2021ff).into()), title_bar_background: Some(rgba(0x1d2021ff).into()), @@ -317,6 +318,7 @@ pub fn gruvbox() -> UserThemeFamily { element_selected: Some(rgba(0x3c383680).into()), drop_target_background: Some(rgba(0x3c3836ff).into()), ghost_element_hover: Some(rgba(0x3c383680).into()), + ghost_element_selected: Some(rgba(0x3c383680).into()), text: Some(rgba(0xebdbb2ff).into()), status_bar_background: Some(rgba(0x282828ff).into()), title_bar_background: Some(rgba(0x282828ff).into()), @@ -602,6 +604,7 @@ pub fn gruvbox() -> UserThemeFamily { element_selected: Some(rgba(0x3c383680).into()), drop_target_background: Some(rgba(0x3c3836ff).into()), ghost_element_hover: Some(rgba(0x3c383680).into()), + ghost_element_selected: Some(rgba(0x3c383680).into()), text: Some(rgba(0xebdbb2ff).into()), status_bar_background: Some(rgba(0x32302fff).into()), title_bar_background: Some(rgba(0x32302fff).into()), @@ -887,6 +890,7 @@ pub fn gruvbox() -> UserThemeFamily { element_selected: Some(rgba(0xebdbb280).into()), drop_target_background: Some(rgba(0xebdbb2ff).into()), ghost_element_hover: Some(rgba(0xebdbb280).into()), + ghost_element_selected: Some(rgba(0xebdbb280).into()), text: Some(rgba(0x3c3836ff).into()), status_bar_background: Some(rgba(0xf9f5d7ff).into()), title_bar_background: Some(rgba(0xf9f5d7ff).into()), @@ -1172,6 +1176,7 @@ pub fn gruvbox() -> UserThemeFamily { element_selected: Some(rgba(0xebdbb280).into()), drop_target_background: Some(rgba(0xebdbb2ff).into()), ghost_element_hover: Some(rgba(0xebdbb280).into()), + ghost_element_selected: Some(rgba(0xebdbb280).into()), text: Some(rgba(0x3c3836ff).into()), status_bar_background: Some(rgba(0xfbf1c7ff).into()), title_bar_background: Some(rgba(0xfbf1c7ff).into()), @@ -1457,6 +1462,7 @@ pub fn gruvbox() -> UserThemeFamily { element_selected: Some(rgba(0xebdbb280).into()), drop_target_background: Some(rgba(0xebdbb2ff).into()), ghost_element_hover: Some(rgba(0xebdbb280).into()), + ghost_element_selected: Some(rgba(0xebdbb280).into()), text: Some(rgba(0x3c3836ff).into()), status_bar_background: Some(rgba(0xf2e5bcff).into()), title_bar_background: Some(rgba(0xf2e5bcff).into()), diff --git a/crates/theme2/src/themes/night_owl.rs b/crates/theme2/src/themes/night_owl.rs index 8e4743e3718a909a192b9adcdf9cc7a07dc9be51..cb4278526dd2a084e85dcd627518b75ef7c928dd 100644 --- a/crates/theme2/src/themes/night_owl.rs +++ b/crates/theme2/src/themes/night_owl.rs @@ -33,6 +33,7 @@ pub fn night_owl() -> UserThemeFamily { element_selected: Some(rgba(0x234d708c).into()), drop_target_background: Some(rgba(0x011627ff).into()), ghost_element_hover: Some(rgba(0x011627ff).into()), + ghost_element_selected: Some(rgba(0x234d708c).into()), text: Some(rgba(0xd6deebff).into()), status_bar_background: Some(rgba(0x011627ff).into()), title_bar_background: Some(rgba(0x011627ff).into()), @@ -283,6 +284,7 @@ pub fn night_owl() -> UserThemeFamily { element_hover: Some(rgba(0xd3e8f8ff).into()), element_selected: Some(rgba(0xd3e8f8ff).into()), ghost_element_hover: Some(rgba(0xd3e8f8ff).into()), + ghost_element_selected: Some(rgba(0xd3e8f8ff).into()), text: Some(rgba(0x403f53ff).into()), status_bar_background: Some(rgba(0xf0f0f0ff).into()), title_bar_background: Some(rgba(0xf0f0f0ff).into()), diff --git a/crates/theme2/src/themes/noctis.rs b/crates/theme2/src/themes/noctis.rs index 3a9203c8045401ad114ed7ff3baf9f03cf7840b0..e1497f57aba88b8700c1570c599052f3c25d37cc 100644 --- a/crates/theme2/src/themes/noctis.rs +++ b/crates/theme2/src/themes/noctis.rs @@ -33,6 +33,7 @@ pub fn noctis() -> UserThemeFamily { element_selected: Some(rgba(0x0c3f5fff).into()), drop_target_background: Some(rgba(0x002a4dff).into()), ghost_element_hover: Some(rgba(0x00558a65).into()), + ghost_element_selected: Some(rgba(0x0c3f5fff).into()), text: Some(rgba(0xbecfdaff).into()), status_bar_background: Some(rgba(0x07273bff).into()), title_bar_background: Some(rgba(0x07273bff).into()), @@ -303,6 +304,7 @@ pub fn noctis() -> UserThemeFamily { element_selected: Some(rgba(0x5c2e3e99).into()), drop_target_background: Some(rgba(0x38292eff).into()), ghost_element_hover: Some(rgba(0x533641ff).into()), + ghost_element_selected: Some(rgba(0x5c2e3e99).into()), text: Some(rgba(0xcbbec2ff).into()), status_bar_background: Some(rgba(0x322a2dff).into()), title_bar_background: Some(rgba(0x322a2dff).into()), @@ -573,6 +575,7 @@ pub fn noctis() -> UserThemeFamily { element_selected: Some(rgba(0xb6e1e7ff).into()), drop_target_background: Some(rgba(0xb2cacdff).into()), ghost_element_hover: Some(rgba(0xd1eafaff).into()), + ghost_element_selected: Some(rgba(0xb6e1e7ff).into()), text: Some(rgba(0x005661ff).into()), status_bar_background: Some(rgba(0xcaedf2ff).into()), title_bar_background: Some(rgba(0xe7f2f3ff).into()), @@ -843,6 +846,7 @@ pub fn noctis() -> UserThemeFamily { element_selected: Some(rgba(0xbcb6e7ff).into()), drop_target_background: Some(rgba(0xafaad4aa).into()), ghost_element_hover: Some(rgba(0xd2ccffff).into()), + ghost_element_selected: Some(rgba(0xbcb6e7ff).into()), text: Some(rgba(0x0c006bff).into()), status_bar_background: Some(rgba(0xe2dff6ff).into()), title_bar_background: Some(rgba(0xedecf8ff).into()), @@ -1113,6 +1117,7 @@ pub fn noctis() -> UserThemeFamily { element_selected: Some(rgba(0xb6e1e7ff).into()), drop_target_background: Some(rgba(0xcdcbb2ff).into()), ghost_element_hover: Some(rgba(0xd2f3f9ff).into()), + ghost_element_selected: Some(rgba(0xb6e1e7ff).into()), text: Some(rgba(0x005661ff).into()), status_bar_background: Some(rgba(0xf0e9d6ff).into()), title_bar_background: Some(rgba(0xf9f1e1ff).into()), @@ -1383,6 +1388,7 @@ pub fn noctis() -> UserThemeFamily { element_selected: Some(rgba(0x2c414eff).into()), drop_target_background: Some(rgba(0x152837ff).into()), ghost_element_hover: Some(rgba(0x00558aff).into()), + ghost_element_selected: Some(rgba(0x2c414eff).into()), text: Some(rgba(0xc5cdd3ff).into()), status_bar_background: Some(rgba(0x1b2932ff).into()), title_bar_background: Some(rgba(0x1b2932ff).into()), @@ -1653,6 +1659,7 @@ pub fn noctis() -> UserThemeFamily { element_selected: Some(rgba(0x0e6671ff).into()), drop_target_background: Some(rgba(0x00404dff).into()), ghost_element_hover: Some(rgba(0x0b515bff).into()), + ghost_element_selected: Some(rgba(0x0e6671ff).into()), text: Some(rgba(0xb2cacdff).into()), status_bar_background: Some(rgba(0x041d20ff).into()), title_bar_background: Some(rgba(0x041d20ff).into()), @@ -1923,6 +1930,7 @@ pub fn noctis() -> UserThemeFamily { element_selected: Some(rgba(0x0e6671ff).into()), drop_target_background: Some(rgba(0x00404dff).into()), ghost_element_hover: Some(rgba(0x0b515bff).into()), + ghost_element_selected: Some(rgba(0x0e6671ff).into()), text: Some(rgba(0xb2cacdff).into()), status_bar_background: Some(rgba(0x031417ff).into()), title_bar_background: Some(rgba(0x031417ff).into()), @@ -2193,6 +2201,7 @@ pub fn noctis() -> UserThemeFamily { element_selected: Some(rgba(0x0e6671ff).into()), drop_target_background: Some(rgba(0x00404dff).into()), ghost_element_hover: Some(rgba(0x0b515bff).into()), + ghost_element_selected: Some(rgba(0x0e6671ff).into()), text: Some(rgba(0xb2cacdff).into()), status_bar_background: Some(rgba(0x031417ff).into()), title_bar_background: Some(rgba(0x031417ff).into()), @@ -2463,6 +2472,7 @@ pub fn noctis() -> UserThemeFamily { element_selected: Some(rgba(0x332e5cff).into()), drop_target_background: Some(rgba(0x202040ff).into()), ghost_element_hover: Some(rgba(0x383866ff).into()), + ghost_element_selected: Some(rgba(0x332e5cff).into()), text: Some(rgba(0xc5c2d6ff).into()), status_bar_background: Some(rgba(0x292640ff).into()), title_bar_background: Some(rgba(0x292640ff).into()), @@ -2733,6 +2743,7 @@ pub fn noctis() -> UserThemeFamily { element_selected: Some(rgba(0x472e60ff).into()), drop_target_background: Some(rgba(0x302040ff).into()), ghost_element_hover: Some(rgba(0x6a448dff).into()), + ghost_element_selected: Some(rgba(0x472e60ff).into()), text: Some(rgba(0xccbfd9ff).into()), status_bar_background: Some(rgba(0x30243dff).into()), title_bar_background: Some(rgba(0x30243dff).into()), diff --git a/crates/theme2/src/themes/nord.rs b/crates/theme2/src/themes/nord.rs index e8d2bdc8b75264a1684fb28320e5d7536f06c0ea..c5634bebcfdaee896c2415f392a8f74a742f2e7b 100644 --- a/crates/theme2/src/themes/nord.rs +++ b/crates/theme2/src/themes/nord.rs @@ -32,6 +32,7 @@ pub fn nord() -> UserThemeFamily { element_selected: Some(rgba(0x88c0d0ff).into()), drop_target_background: Some(rgba(0x88c0d099).into()), ghost_element_hover: Some(rgba(0x3b4252ff).into()), + ghost_element_selected: Some(rgba(0x88c0d0ff).into()), text: Some(rgba(0xd8dee9ff).into()), status_bar_background: Some(rgba(0x3b4252ff).into()), title_bar_background: Some(rgba(0x2e3440ff).into()), diff --git a/crates/theme2/src/themes/palenight.rs b/crates/theme2/src/themes/palenight.rs index 82f8418e0d3b780b1b2d856c7d2922096d3acb0f..1cebdc83e222e975c0c3b07fe1c837b6b67f7d0d 100644 --- a/crates/theme2/src/themes/palenight.rs +++ b/crates/theme2/src/themes/palenight.rs @@ -33,6 +33,7 @@ pub fn palenight() -> UserThemeFamily { element_selected: Some(rgba(0x7e57c2ff).into()), drop_target_background: Some(rgba(0x2e3245ff).into()), ghost_element_hover: Some(rgba(0x0000001a).into()), + ghost_element_selected: Some(rgba(0x7e57c2ff).into()), text: Some(rgba(0xffffffff).into()), status_bar_background: Some(rgba(0x282c3dff).into()), title_bar_background: Some(rgba(0x292d3eff).into()), @@ -312,6 +313,7 @@ pub fn palenight() -> UserThemeFamily { element_selected: Some(rgba(0x7e57c2ff).into()), drop_target_background: Some(rgba(0x2e3245ff).into()), ghost_element_hover: Some(rgba(0x0000001a).into()), + ghost_element_selected: Some(rgba(0x7e57c2ff).into()), text: Some(rgba(0xffffffff).into()), status_bar_background: Some(rgba(0x282c3dff).into()), title_bar_background: Some(rgba(0x292d3eff).into()), @@ -591,6 +593,7 @@ pub fn palenight() -> UserThemeFamily { element_selected: Some(rgba(0x7e57c2ff).into()), drop_target_background: Some(rgba(0x2e3245ff).into()), ghost_element_hover: Some(rgba(0x0000001a).into()), + ghost_element_selected: Some(rgba(0x7e57c2ff).into()), text: Some(rgba(0xffffffff).into()), status_bar_background: Some(rgba(0x25293aff).into()), title_bar_background: Some(rgba(0x25293aff).into()), diff --git a/crates/theme2/src/themes/rose_pine.rs b/crates/theme2/src/themes/rose_pine.rs index d115eca6d3123d7f027053cad0bf56323e6af0ef..91b79821c86d228cd375c0ca306564cbe977c77d 100644 --- a/crates/theme2/src/themes/rose_pine.rs +++ b/crates/theme2/src/themes/rose_pine.rs @@ -33,6 +33,7 @@ pub fn rose_pine() -> UserThemeFamily { element_selected: Some(rgba(0x6e6a8633).into()), drop_target_background: Some(rgba(0x1f1d2eff).into()), ghost_element_hover: Some(rgba(0x6e6a861a).into()), + ghost_element_selected: Some(rgba(0x6e6a8633).into()), text: Some(rgba(0xe0def4ff).into()), status_bar_background: Some(rgba(0x191724ff).into()), title_bar_background: Some(rgba(0x191724ff).into()), @@ -284,6 +285,7 @@ pub fn rose_pine() -> UserThemeFamily { element_selected: Some(rgba(0x817c9c26).into()), drop_target_background: Some(rgba(0x2a273fff).into()), ghost_element_hover: Some(rgba(0x817c9c14).into()), + ghost_element_selected: Some(rgba(0x817c9c26).into()), text: Some(rgba(0xe0def4ff).into()), status_bar_background: Some(rgba(0x232136ff).into()), title_bar_background: Some(rgba(0x232136ff).into()), @@ -535,6 +537,7 @@ pub fn rose_pine() -> UserThemeFamily { element_selected: Some(rgba(0x6e6a8614).into()), drop_target_background: Some(rgba(0xfffaf3ff).into()), ghost_element_hover: Some(rgba(0x6e6a860d).into()), + ghost_element_selected: Some(rgba(0x6e6a8614).into()), text: Some(rgba(0x575279ff).into()), status_bar_background: Some(rgba(0xfaf4edff).into()), title_bar_background: Some(rgba(0xfaf4edff).into()), diff --git a/crates/theme2/src/themes/solarized.rs b/crates/theme2/src/themes/solarized.rs index bc4752f7a68830f40b41b20c27c27ae76ad2cbdc..ae2ad900510bb467020575278615c0e6ebea0da3 100644 --- a/crates/theme2/src/themes/solarized.rs +++ b/crates/theme2/src/themes/solarized.rs @@ -32,6 +32,7 @@ pub fn solarized() -> UserThemeFamily { element_selected: Some(rgba(0x005a6fff).into()), drop_target_background: Some(rgba(0x00445488).into()), ghost_element_hover: Some(rgba(0x004454aa).into()), + ghost_element_selected: Some(rgba(0x005a6fff).into()), text: Some(rgba(0xbbbbbbff).into()), status_bar_background: Some(rgba(0x00212bff).into()), title_bar_background: Some(rgba(0x002c39ff).into()), @@ -295,6 +296,7 @@ pub fn solarized() -> UserThemeFamily { element_hover: Some(rgba(0xdfca8844).into()), element_selected: Some(rgba(0xdfca88ff).into()), ghost_element_hover: Some(rgba(0xdfca8844).into()), + ghost_element_selected: Some(rgba(0xdfca88ff).into()), text: Some(rgba(0x333333ff).into()), status_bar_background: Some(rgba(0xeee8d5ff).into()), title_bar_background: Some(rgba(0xeee8d5ff).into()), diff --git a/crates/theme2/src/themes/synthwave_84.rs b/crates/theme2/src/themes/synthwave_84.rs index 51855bdbefafcc21fbdad32f5a060dad3fde8a09..48d1870147eca75a64b9236d99fa43210c751f33 100644 --- a/crates/theme2/src/themes/synthwave_84.rs +++ b/crates/theme2/src/themes/synthwave_84.rs @@ -26,6 +26,7 @@ pub fn synthwave_84() -> UserThemeFamily { element_selected: Some(rgba(0xffffff20).into()), drop_target_background: Some(rgba(0x34294f66).into()), ghost_element_hover: Some(rgba(0x37294d99).into()), + ghost_element_selected: Some(rgba(0xffffff20).into()), text: Some(rgba(0xffffffff).into()), status_bar_background: Some(rgba(0x241b2fff).into()), title_bar_background: Some(rgba(0x241b2fff).into()), diff --git a/crates/theme_importer/src/vscode/converter.rs b/crates/theme_importer/src/vscode/converter.rs index 1980327e0150d1f42b334e384357a0c944b62367..8a7d27becbe5b51a71612649f8146493e08f4bf1 100644 --- a/crates/theme_importer/src/vscode/converter.rs +++ b/crates/theme_importer/src/vscode/converter.rs @@ -185,6 +185,10 @@ impl VsCodeThemeConverter { .list_hover_background .as_ref() .traverse(|color| try_parse_color(&color))?, + ghost_element_selected: vscode_colors + .list_active_selection_background + .as_ref() + .traverse(|color| try_parse_color(&color))?, drop_target_background: vscode_colors .list_drop_background .as_ref() From f0cc54a0b528766d3f24e5e6a39d517ea3ec324d Mon Sep 17 00:00:00 2001 From: Julia Date: Fri, 8 Dec 2023 14:26:02 -0500 Subject: [PATCH 053/115] Comment the weirdness Co-Authored-By: Max Brunsfeld --- crates/terminal_view2/src/terminal_view.rs | 37 ++++++++++------------ 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/crates/terminal_view2/src/terminal_view.rs b/crates/terminal_view2/src/terminal_view.rs index d41e535d50eee6bc999ec7eea995fab8a84a9b59..83c7779d2e05f9a83a0de1d246131df95684bf59 100644 --- a/crates/terminal_view2/src/terminal_view.rs +++ b/crates/terminal_view2/src/terminal_view.rs @@ -11,8 +11,8 @@ use editor::{scroll::autoscroll::Autoscroll, Editor}; use gpui::{ div, overlay, Action, AnyElement, AppContext, DismissEvent, Div, EventEmitter, FocusEvent, FocusHandle, Focusable, FocusableElement, FocusableView, KeyContext, KeyDownEvent, Keystroke, - Model, MouseButton, MouseDownEvent, Pixels, Render, Subscription, Task, View, VisualContext, - WeakView, + Model, MouseButton, MouseDownEvent, Pixels, Render, Styled, Subscription, Task, View, + VisualContext, WeakView, }; use language::Bias; use persistence::TERMINAL_DB; @@ -651,25 +651,22 @@ impl Render for TerminalView { .on_focus_in(cx.listener(Self::focus_in)) .on_focus_out(cx.listener(Self::focus_out)) .on_key_down(cx.listener(Self::key_down)) + .on_mouse_down( + MouseButton::Right, + cx.listener(|this, event: &MouseDownEvent, cx| { + this.deploy_context_menu(event.position, cx); + cx.notify(); + }), + ) .child( - div() - .z_index(0) - .absolute() - .size_full() - .child(TerminalElement::new( - terminal_handle, - self.focus_handle.clone(), - focused, - self.should_show_cursor(focused, cx), - self.can_navigate_to_selected_word, - )) - .on_mouse_down( - MouseButton::Right, - cx.listener(|this, event: &MouseDownEvent, cx| { - this.deploy_context_menu(event.position, cx); - cx.notify(); - }), - ), + // TODO: Oddly this wrapper div is needed for TerminalElement to not steal events from the context menu + div().size_full().child(TerminalElement::new( + terminal_handle, + self.focus_handle.clone(), + focused, + self.should_show_cursor(focused, cx), + self.can_navigate_to_selected_word, + )), ) .children(self.context_menu.as_ref().map(|(menu, positon, _)| { overlay() From 0dc02b8354c5a28531f92628efbe2f60d2372943 Mon Sep 17 00:00:00 2001 From: Kirill Bulatov Date: Fri, 8 Dec 2023 21:38:28 +0200 Subject: [PATCH 054/115] Log Zed build sha in release builds. Also ensure that curl commands for nightly uploads return 200 (fail otherwise). --- crates/zed2/build.rs | 18 ++++++++++++++---- script/upload-nightly | 2 +- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/crates/zed2/build.rs b/crates/zed2/build.rs index 619f2480298b5a4ee7c9a9798b6f12aac6458fb5..101838b8af0a2c40dcabff2878300b716dc9bd56 100644 --- a/crates/zed2/build.rs +++ b/crates/zed2/build.rs @@ -27,10 +27,20 @@ fn main() { // Populate git sha environment variable if git is available if let Ok(output) = Command::new("git").args(["rev-parse", "HEAD"]).output() { if output.status.success() { - println!( - "cargo:rustc-env=ZED_COMMIT_SHA={}", - String::from_utf8_lossy(&output.stdout).trim() - ); + let git_sha = String::from_utf8_lossy(&output.stdout); + let git_sha = git_sha.trim(); + + println!("cargo:rustc-env=ZED_COMMIT_SHA={git_sha}"); + + if let Ok(build_profile) = std::env::var("PROFILE") { + if build_profile == "release" { + // This is currently the best way to make `cargo build ...`'s build script + // to print something to stdout without extra verbosity. + println!( + "cargo:warning=Info: using '{git_sha}' hash for ZED_COMMIT_SHA env var" + ); + } + } } } } diff --git a/script/upload-nightly b/script/upload-nightly index 073976a335ddf6473821bc39b336e8ef37491716..f03b2f7fd86466f230438c273e658fe67ab6d0db 100755 --- a/script/upload-nightly +++ b/script/upload-nightly @@ -20,7 +20,7 @@ function uploadToSpaces string="PUT\n\n${content_type}\n${date}\n${acl}\n${storage_type}\n/${SPACE}/${space_path}/${file_name}" signature=$(echo -en "${string}" | openssl sha1 -hmac "${DIGITALOCEAN_SPACES_SECRET_KEY}" -binary | base64) - curl -vv -s -X PUT -T "$file_to_upload" \ + curl --fail -vv -s -X PUT -T "$file_to_upload" \ -H "Host: ${SPACE}.${REGION}.digitaloceanspaces.com" \ -H "Date: $date" \ -H "Content-Type: $content_type" \ From 4353bdb9d5849bc28454a54e4169502dfe9dbe10 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 8 Dec 2023 15:08:35 -0500 Subject: [PATCH 055/115] Restore theme sorting in Zed2 (#3563) This PR restores the sorting of themes in the theme selector in Zed2. Release Notes: - N/A --- crates/theme2/src/registry.rs | 13 +++++++-- crates/theme2/src/theme2.rs | 9 ++++++ crates/theme_selector2/src/theme_selector.rs | 30 +++++++++++--------- 3 files changed, 37 insertions(+), 15 deletions(-) diff --git a/crates/theme2/src/registry.rs b/crates/theme2/src/registry.rs index cb7814cb6fb88886cb95490544c00f0dc7f5612e..e212d5f9a72d37500bc132f54bef91defb4e08db 100644 --- a/crates/theme2/src/registry.rs +++ b/crates/theme2/src/registry.rs @@ -10,6 +10,12 @@ use crate::{ SystemColors, Theme, ThemeColors, ThemeFamily, ThemeStyles, UserTheme, UserThemeFamily, }; +#[derive(Debug, Clone)] +pub struct ThemeMeta { + pub name: SharedString, + pub appearance: Appearance, +} + pub struct ThemeRegistry { themes: HashMap>, } @@ -94,8 +100,11 @@ impl ThemeRegistry { self.themes.keys().cloned() } - pub fn list(&self, _staff: bool) -> impl Iterator + '_ { - self.themes.values().map(|theme| theme.name.clone()) + pub fn list(&self, _staff: bool) -> impl Iterator + '_ { + self.themes.values().map(|theme| ThemeMeta { + name: theme.name.clone(), + appearance: theme.appearance(), + }) } pub fn get(&self, name: &str) -> Result> { diff --git a/crates/theme2/src/theme2.rs b/crates/theme2/src/theme2.rs index ff80b9f5f9a2820ece15a49aa9b7257d0be9b89d..cb3808d4f1bc1610485d9320e681e0b5a46248e8 100644 --- a/crates/theme2/src/theme2.rs +++ b/crates/theme2/src/theme2.rs @@ -31,6 +31,15 @@ pub enum Appearance { Dark, } +impl Appearance { + pub fn is_light(&self) -> bool { + match self { + Self::Light => true, + Self::Dark => false, + } + } +} + #[derive(Debug, PartialEq, Eq, Clone, Copy)] pub enum LoadThemes { /// Only load the base theme. diff --git a/crates/theme_selector2/src/theme_selector.rs b/crates/theme_selector2/src/theme_selector.rs index 8430f0698baa1db1b1e18c3747b6ed5f473436e8..2aa893b69cc8d479f5f5fd3c5493da61b22d0e1c 100644 --- a/crates/theme_selector2/src/theme_selector.rs +++ b/crates/theme_selector2/src/theme_selector.rs @@ -2,13 +2,13 @@ use feature_flags::FeatureFlagAppExt; use fs::Fs; use fuzzy::{match_strings, StringMatch, StringMatchCandidate}; use gpui::{ - actions, AppContext, DismissEvent, Div, EventEmitter, FocusableView, Render, SharedString, - View, ViewContext, VisualContext, WeakView, + actions, AppContext, DismissEvent, Div, EventEmitter, FocusableView, Render, View, ViewContext, + VisualContext, WeakView, }; use picker::{Picker, PickerDelegate}; use settings::{update_settings_file, SettingsStore}; use std::sync::Arc; -use theme::{Theme, ThemeRegistry, ThemeSettings}; +use theme::{Theme, ThemeMeta, ThemeRegistry, ThemeSettings}; use ui::{prelude::*, v_stack, ListItem}; use util::ResultExt; use workspace::{ui::HighlightedLabel, Workspace}; @@ -81,7 +81,7 @@ impl ThemeSelector { pub struct ThemeSelectorDelegate { fs: Arc, - theme_names: Vec, + themes: Vec, matches: Vec, original_theme: Arc, selection_completed: bool, @@ -99,21 +99,25 @@ impl ThemeSelectorDelegate { let staff_mode = cx.is_staff(); let registry = cx.global::(); - let theme_names = registry.list(staff_mode).collect::>(); - //todo!(theme sorting) - // theme_names.sort_unstable_by(|a, b| a.is_light.cmp(&b.is_light).then(a.name.cmp(&b.name))); - let matches = theme_names + let mut themes = registry.list(staff_mode).collect::>(); + themes.sort_unstable_by(|a, b| { + a.appearance + .is_light() + .cmp(&b.appearance.is_light()) + .then(a.name.cmp(&b.name)) + }); + let matches = themes .iter() .map(|meta| StringMatch { candidate_id: 0, score: 0.0, positions: Default::default(), - string: meta.to_string(), + string: meta.name.to_string(), }) .collect(); let mut this = Self { fs, - theme_names, + themes, matches, original_theme: original_theme.clone(), selected_index: 0, @@ -213,13 +217,13 @@ impl PickerDelegate for ThemeSelectorDelegate { ) -> gpui::Task<()> { let background = cx.background_executor().clone(); let candidates = self - .theme_names + .themes .iter() .enumerate() .map(|(id, meta)| StringMatchCandidate { id, - char_bag: meta.as_ref().into(), - string: meta.to_string(), + char_bag: meta.name.as_ref().into(), + string: meta.name.to_string(), }) .collect::>(); From 113c7287df2ddab3fbba159447b23a8a4624852b Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Fri, 8 Dec 2023 15:26:06 -0500 Subject: [PATCH 056/115] Allow modals to override their dismissal Co-Authored-By: Mikayla Maki --- .../src/collab_panel/channel_modal.rs | 2 + .../src/collab_panel/contact_finder.rs | 2 + .../command_palette2/src/command_palette.rs | 4 +- crates/feedback2/src/feedback_modal.rs | 58 +++++++++------ crates/file_finder2/src/file_finder.rs | 4 +- crates/go_to_line2/src/go_to_line.rs | 3 + .../src/language_selector.rs | 3 +- crates/outline2/src/outline.rs | 3 +- .../recent_projects2/src/recent_projects.rs | 6 +- crates/theme_selector2/src/theme_selector.rs | 4 +- crates/welcome2/src/base_keymap_picker.rs | 3 +- crates/workspace2/src/modal_layer.rs | 70 ++++++++++++++----- crates/workspace2/src/workspace2.rs | 2 +- 13 files changed, 118 insertions(+), 46 deletions(-) diff --git a/crates/collab_ui2/src/collab_panel/channel_modal.rs b/crates/collab_ui2/src/collab_panel/channel_modal.rs index af6343b98af37920f388eb042f27cbc281e6f4aa..3a630a1959146b58b2f3a2bdcbc57e35b0ef655c 100644 --- a/crates/collab_ui2/src/collab_panel/channel_modal.rs +++ b/crates/collab_ui2/src/collab_panel/channel_modal.rs @@ -13,6 +13,7 @@ use picker::{Picker, PickerDelegate}; use std::sync::Arc; use ui::prelude::*; use util::TryFutureExt; +use workspace::ModalView; actions!( SelectNextControl, @@ -140,6 +141,7 @@ impl ChannelModal { } impl EventEmitter for ChannelModal {} +impl ModalView for ChannelModal {} impl FocusableView for ChannelModal { fn focus_handle(&self, cx: &AppContext) -> gpui::FocusHandle { diff --git a/crates/collab_ui2/src/collab_panel/contact_finder.rs b/crates/collab_ui2/src/collab_panel/contact_finder.rs index 1623d10eab23a4473e1e89ea79c2f4fbcf86f1e4..742c25d148604dbbd195c1b17124f0e64b7ffc72 100644 --- a/crates/collab_ui2/src/collab_panel/contact_finder.rs +++ b/crates/collab_ui2/src/collab_panel/contact_finder.rs @@ -9,6 +9,7 @@ use std::sync::Arc; use theme::ActiveTheme as _; use ui::prelude::*; use util::{ResultExt as _, TryFutureExt}; +use workspace::ModalView; pub fn init(cx: &mut AppContext) { //Picker::::init(cx); @@ -95,6 +96,7 @@ pub struct ContactFinderDelegate { } impl EventEmitter for ContactFinder {} +impl ModalView for ContactFinder {} impl FocusableView for ContactFinder { fn focus_handle(&self, cx: &AppContext) -> FocusHandle { diff --git a/crates/command_palette2/src/command_palette.rs b/crates/command_palette2/src/command_palette.rs index 57c1fa5614016ba99331c1f0fe6f1945f4d243a2..306ccc2b5aa0f5aeb66fd55a7b05f6769d86bf3a 100644 --- a/crates/command_palette2/src/command_palette.rs +++ b/crates/command_palette2/src/command_palette.rs @@ -16,7 +16,7 @@ use util::{ channel::{parse_zed_link, ReleaseChannel, RELEASE_CHANNEL}, ResultExt, }; -use workspace::Workspace; +use workspace::{ModalView, Workspace}; use zed_actions::OpenZedURL; actions!(Toggle); @@ -26,6 +26,8 @@ pub fn init(cx: &mut AppContext) { cx.observe_new_views(CommandPalette::register).detach(); } +impl ModalView for CommandPalette {} + pub struct CommandPalette { picker: View>, } diff --git a/crates/feedback2/src/feedback_modal.rs b/crates/feedback2/src/feedback_modal.rs index 23d8c38626e5bd076a57ff3d32d6f238d9333e60..ed8944be060d31667ab2f41d4c8d6bafcdf06dac 100644 --- a/crates/feedback2/src/feedback_modal.rs +++ b/crates/feedback2/src/feedback_modal.rs @@ -4,7 +4,7 @@ use anyhow::bail; use client::{Client, ZED_SECRET_CLIENT_TOKEN, ZED_SERVER_URL}; use db::kvp::KEY_VALUE_STORE; use editor::{Editor, EditorEvent}; -use futures::AsyncReadExt; +use futures::{AsyncReadExt, Future}; use gpui::{ div, rems, serde_json, AppContext, DismissEvent, Div, EventEmitter, FocusHandle, FocusableView, Model, PromptLevel, Render, Task, View, ViewContext, @@ -16,7 +16,7 @@ use regex::Regex; use serde_derive::Serialize; use ui::{prelude::*, Button, ButtonStyle, IconPosition, Tooltip}; use util::ResultExt; -use workspace::Workspace; +use workspace::{ModalView, Workspace}; use crate::{system_specs::SystemSpecs, GiveFeedback, OpenZedCommunityRepo}; @@ -52,6 +52,13 @@ impl FocusableView for FeedbackModal { } impl EventEmitter for FeedbackModal {} +impl ModalView for FeedbackModal { + fn dismiss(&mut self, cx: &mut ViewContext) -> Task { + let prompt = Self::prompt_dismiss(cx); + cx.spawn(|_, _| prompt) + } +} + impl FeedbackModal { pub fn register(workspace: &mut Workspace, cx: &mut ViewContext) { let _handle = cx.view().downgrade(); @@ -105,7 +112,7 @@ impl FeedbackModal { let feedback_editor = cx.build_view(|cx| { let mut editor = Editor::for_buffer(buffer, Some(project.clone()), cx); editor.set_placeholder_text( - "You can use markdown to add links or organize feedback.", + "You can use markdown to organize your feedback wiht add code and links, or organize feedback.", cx, ); // editor.set_show_gutter(false, cx); @@ -242,7 +249,27 @@ impl FeedbackModal { // Close immediately if no text in field // Ask to close if text in the field fn cancel(&mut self, _: &menu::Cancel, cx: &mut ViewContext) { - cx.emit(DismissEvent); + Self::dismiss_event(cx) + } + + fn dismiss_event(cx: &mut ViewContext) { + let dismiss = Self::prompt_dismiss(cx); + + cx.spawn(|this, mut cx| async move { + if dismiss.await { + this.update(&mut cx, |_, cx| cx.emit(DismissEvent)).ok(); + } + }) + .detach() + } + + fn prompt_dismiss(cx: &mut ViewContext) -> impl Future { + let answer = cx.prompt(PromptLevel::Info, "Discard feedback?", &["Yes", "No"]); + + async { + let answer = answer.await.ok(); + answer == Some(0) + } } } @@ -267,20 +294,7 @@ impl Render for FeedbackModal { } else { "Submit" }; - let dismiss = cx.listener(|_, _, cx| { - cx.emit(DismissEvent); - }); - // TODO: get the "are you sure you want to dismiss?" prompt here working - let dismiss_prompt = cx.listener(|_, _, _| { - // let answer = cx.prompt(PromptLevel::Info, "Exit feedback?", &["Yes", "No"]); - // cx.spawn(|_, _| async move { - // let answer = answer.await.ok(); - // if answer == Some(0) { - // cx.emit(DismissEvent); - // } - // }) - // .detach(); - }); + let open_community_repo = cx.listener(|_, _, cx| cx.dispatch_action(Box::new(OpenZedCommunityRepo))); @@ -368,9 +382,13 @@ impl Render for FeedbackModal { // TODO: Will require somehow overriding the modal dismal default behavior .map(|this| { if has_feedback { - this.on_click(dismiss_prompt) + this.on_click(cx.listener(|_, _, cx| { + Self::dismiss_event(cx) + })) } else { - this.on_click(dismiss) + this.on_click(cx.listener(|_, _, cx| { + cx.emit(DismissEvent); + })) } }), ) diff --git a/crates/file_finder2/src/file_finder.rs b/crates/file_finder2/src/file_finder.rs index 63bf465a73d42d47063250a43908ec299b8db378..7324b3667a1dc0d1109510ea130da0d2591fba32 100644 --- a/crates/file_finder2/src/file_finder.rs +++ b/crates/file_finder2/src/file_finder.rs @@ -17,10 +17,12 @@ use std::{ use text::Point; use ui::{prelude::*, HighlightedLabel, ListItem}; use util::{paths::PathLikeWithPosition, post_inc, ResultExt}; -use workspace::Workspace; +use workspace::{ModalView, Workspace}; actions!(Toggle); +impl ModalView for FileFinder {} + pub struct FileFinder { picker: View>, } diff --git a/crates/go_to_line2/src/go_to_line.rs b/crates/go_to_line2/src/go_to_line.rs index aff9942c265da765431460d9f381abf131e3573a..1a64b29c4c0fdea85f1f7e4b06b65776d86002af 100644 --- a/crates/go_to_line2/src/go_to_line.rs +++ b/crates/go_to_line2/src/go_to_line.rs @@ -8,6 +8,7 @@ use text::{Bias, Point}; use theme::ActiveTheme; use ui::{h_stack, prelude::*, v_stack, Label}; use util::paths::FILE_ROW_COLUMN_DELIMITER; +use workspace::ModalView; actions!(Toggle); @@ -23,6 +24,8 @@ pub struct GoToLine { _subscriptions: Vec, } +impl ModalView for GoToLine {} + impl FocusableView for GoToLine { fn focus_handle(&self, cx: &AppContext) -> FocusHandle { self.line_editor.focus_handle(cx) diff --git a/crates/language_selector2/src/language_selector.rs b/crates/language_selector2/src/language_selector.rs index 5d6914d1e2822f235377be05ce9e36e45c674b85..1ba989ba5dd734a5c55fe2a2325fed4fb8211f25 100644 --- a/crates/language_selector2/src/language_selector.rs +++ b/crates/language_selector2/src/language_selector.rs @@ -14,7 +14,7 @@ use project::Project; use std::sync::Arc; use ui::{prelude::*, HighlightedLabel, ListItem}; use util::ResultExt; -use workspace::Workspace; +use workspace::{ModalView, Workspace}; actions!(Toggle); @@ -81,6 +81,7 @@ impl FocusableView for LanguageSelector { } impl EventEmitter for LanguageSelector {} +impl ModalView for LanguageSelector {} pub struct LanguageSelectorDelegate { language_selector: WeakView, diff --git a/crates/outline2/src/outline.rs b/crates/outline2/src/outline.rs index 45e167411e49065908dd7107f8d6260e622e46ba..bfa93d2099798f7b066d20be0a721cafd41fab63 100644 --- a/crates/outline2/src/outline.rs +++ b/crates/outline2/src/outline.rs @@ -20,7 +20,7 @@ use std::{ use theme::{color_alpha, ActiveTheme, ThemeSettings}; use ui::{prelude::*, ListItem}; use util::ResultExt; -use workspace::Workspace; +use workspace::{ModalView, Workspace}; actions!(Toggle); @@ -57,6 +57,7 @@ impl FocusableView for OutlineView { } impl EventEmitter for OutlineView {} +impl ModalView for OutlineView {} impl Render for OutlineView { type Element = Div; diff --git a/crates/recent_projects2/src/recent_projects.rs b/crates/recent_projects2/src/recent_projects.rs index d2c13b40a33645f14060cc421a8c43c2b19b7c8f..e0147836876bf47a431fae5344911abd65d96292 100644 --- a/crates/recent_projects2/src/recent_projects.rs +++ b/crates/recent_projects2/src/recent_projects.rs @@ -13,8 +13,8 @@ use std::sync::Arc; use ui::{prelude::*, ListItem}; use util::paths::PathExt; use workspace::{ - notifications::simple_message_notification::MessageNotification, Workspace, WorkspaceLocation, - WORKSPACE_DB, + notifications::simple_message_notification::MessageNotification, ModalView, Workspace, + WorkspaceLocation, WORKSPACE_DB, }; pub use projects::OpenRecent; @@ -27,6 +27,8 @@ pub struct RecentProjects { picker: View>, } +impl ModalView for RecentProjects {} + impl RecentProjects { fn new(delegate: RecentProjectsDelegate, cx: &mut ViewContext) -> Self { Self { diff --git a/crates/theme_selector2/src/theme_selector.rs b/crates/theme_selector2/src/theme_selector.rs index 8430f0698baa1db1b1e18c3747b6ed5f473436e8..61f1cdf8fe0e91e67244198b86d86490cf5d88cb 100644 --- a/crates/theme_selector2/src/theme_selector.rs +++ b/crates/theme_selector2/src/theme_selector.rs @@ -11,7 +11,7 @@ use std::sync::Arc; use theme::{Theme, ThemeRegistry, ThemeSettings}; use ui::{prelude::*, v_stack, ListItem}; use util::ResultExt; -use workspace::{ui::HighlightedLabel, Workspace}; +use workspace::{ui::HighlightedLabel, ModalView, Workspace}; actions!(Toggle, Reload); @@ -52,6 +52,8 @@ pub fn reload(cx: &mut AppContext) { } } +impl ModalView for ThemeSelector {} + pub struct ThemeSelector { picker: View>, } diff --git a/crates/welcome2/src/base_keymap_picker.rs b/crates/welcome2/src/base_keymap_picker.rs index 4e829972f0cb5f004358680402efac3a3af37bad..9e672de69d0987139576a61d59a05502adb64d83 100644 --- a/crates/welcome2/src/base_keymap_picker.rs +++ b/crates/welcome2/src/base_keymap_picker.rs @@ -10,7 +10,7 @@ use settings::{update_settings_file, Settings}; use std::sync::Arc; use ui::{prelude::*, ListItem}; use util::ResultExt; -use workspace::{ui::HighlightedLabel, Workspace}; +use workspace::{ui::HighlightedLabel, ModalView, Workspace}; actions!(ToggleBaseKeymapSelector); @@ -47,6 +47,7 @@ impl FocusableView for BaseKeymapSelector { } impl EventEmitter for BaseKeymapSelector {} +impl ModalView for BaseKeymapSelector {} impl BaseKeymapSelector { pub fn new( diff --git a/crates/workspace2/src/modal_layer.rs b/crates/workspace2/src/modal_layer.rs index a9b6189fdc313394061f21abb1449d6664f3daed..a109352995a06c631c024a4bf36d7b95542d1ff5 100644 --- a/crates/workspace2/src/modal_layer.rs +++ b/crates/workspace2/src/modal_layer.rs @@ -1,11 +1,33 @@ +use futures::FutureExt; use gpui::{ - div, prelude::*, px, AnyView, Div, FocusHandle, ManagedView, Render, Subscription, View, - ViewContext, + div, prelude::*, px, AnyView, Div, FocusHandle, ManagedView, Render, Subscription, Task, View, + ViewContext, WindowContext, }; use ui::{h_stack, v_stack}; +pub trait ModalView: ManagedView { + fn dismiss(&mut self, cx: &mut ViewContext) -> Task { + Task::ready(true) + } +} + +trait ModalViewHandle { + fn should_dismiss(&mut self, cx: &mut WindowContext) -> Task; + fn view(&self) -> AnyView; +} + +impl ModalViewHandle for View { + fn should_dismiss(&mut self, cx: &mut WindowContext) -> Task { + self.update(cx, |this, cx| this.dismiss(cx)) + } + + fn view(&self) -> AnyView { + self.clone().into() + } +} + pub struct ActiveModal { - modal: AnyView, + modal: Box, subscription: Subscription, previous_focus_handle: Option, focus_handle: FocusHandle, @@ -22,11 +44,11 @@ impl ModalLayer { pub fn toggle_modal(&mut self, cx: &mut ViewContext, build_view: B) where - V: ManagedView, + V: ModalView, B: FnOnce(&mut ViewContext) -> V, { if let Some(active_modal) = &self.active_modal { - let is_close = active_modal.modal.clone().downcast::().is_ok(); + let is_close = active_modal.modal.view().downcast::().is_ok(); self.hide_modal(cx); if is_close { return; @@ -38,10 +60,10 @@ impl ModalLayer { pub fn show_modal(&mut self, new_modal: View, cx: &mut ViewContext) where - V: ManagedView, + V: ModalView, { self.active_modal = Some(ActiveModal { - modal: new_modal.clone().into(), + modal: Box::new(new_modal.clone()), subscription: cx.subscribe(&new_modal, |this, modal, e, cx| this.hide_modal(cx)), previous_focus_handle: cx.focused(), focus_handle: cx.focus_handle(), @@ -51,15 +73,29 @@ impl ModalLayer { } pub fn hide_modal(&mut self, cx: &mut ViewContext) { - if let Some(active_modal) = self.active_modal.take() { - if let Some(previous_focus) = active_modal.previous_focus_handle { - if active_modal.focus_handle.contains_focused(cx) { - previous_focus.focus(cx); - } - } - } + let Some(active_modal) = self.active_modal.as_mut() else { + return; + }; - cx.notify(); + let dismiss = active_modal.modal.should_dismiss(cx); + + cx.spawn(|this, mut cx| async move { + if dismiss.await { + this.update(&mut cx, |this, cx| { + if let Some(active_modal) = this.active_modal.take() { + if let Some(previous_focus) = active_modal.previous_focus_handle { + if active_modal.focus_handle.contains_focused(cx) { + previous_focus.focus(cx); + } + } + cx.notify(); + } + }) + .ok(); + } + }) + .shared() + .detach(); } pub fn active_modal(&self) -> Option> @@ -67,7 +103,7 @@ impl ModalLayer { V: 'static, { let active_modal = self.active_modal.as_ref()?; - active_modal.modal.clone().downcast::().ok() + active_modal.modal.view().downcast::().ok() } } @@ -98,7 +134,7 @@ impl Render for ModalLayer { .on_mouse_down_out(cx.listener(|this, _, cx| { this.hide_modal(cx); })) - .child(active_modal.modal.clone()), + .child(active_modal.modal.view()), ), ) } diff --git a/crates/workspace2/src/workspace2.rs b/crates/workspace2/src/workspace2.rs index 251f0685b0c93f7529984f2afabe582f1b481392..012c881e5b1514c9e806d77558d0284cb957a948 100644 --- a/crates/workspace2/src/workspace2.rs +++ b/crates/workspace2/src/workspace2.rs @@ -3414,7 +3414,7 @@ impl Workspace { self.modal_layer.read(cx).active_modal() } - pub fn toggle_modal(&mut self, cx: &mut ViewContext, build: B) + pub fn toggle_modal(&mut self, cx: &mut ViewContext, build: B) where B: FnOnce(&mut ViewContext) -> V, { From 6955579f1978dcf50fa1498f7e9c21b942d509d1 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Thu, 7 Dec 2023 18:14:10 -0800 Subject: [PATCH 057/115] Start work on chat panel and non-uniform list Co-authored-by: Nathan --- crates/assistant2/src/assistant.rs | 4 +- crates/assistant2/src/assistant_panel.rs | 7 +- crates/collab_ui2/src/chat_panel.rs | 585 +++++++----------- .../src/chat_panel/message_editor.rs | 42 +- crates/gpui2/src/elements/list.rs | 493 +++++++++++++++ crates/gpui2/src/elements/mod.rs | 2 + crates/gpui2/src/elements/uniform_list.rs | 2 +- crates/gpui2/src/gpui2.rs | 20 + crates/rich_text2/src/rich_text.rs | 9 +- 9 files changed, 761 insertions(+), 403 deletions(-) create mode 100644 crates/gpui2/src/elements/list.rs diff --git a/crates/assistant2/src/assistant.rs b/crates/assistant2/src/assistant.rs index 910eeda9e115d853cfe2a7ccaea041245050484e..871ab131e5f68600db81dbc3bee643d558b5e361 100644 --- a/crates/assistant2/src/assistant.rs +++ b/crates/assistant2/src/assistant.rs @@ -12,7 +12,7 @@ use chrono::{DateTime, Local}; use collections::HashMap; use fs::Fs; use futures::StreamExt; -use gpui::{actions, AppContext}; +use gpui::{actions, AppContext, SharedString}; use regex::Regex; use serde::{Deserialize, Serialize}; use std::{cmp::Reverse, ffi::OsStr, path::PathBuf, sync::Arc}; @@ -47,7 +47,7 @@ struct MessageMetadata { enum MessageStatus { Pending, Done, - Error(Arc), + Error(SharedString), } #[derive(Serialize, Deserialize)] diff --git a/crates/assistant2/src/assistant_panel.rs b/crates/assistant2/src/assistant_panel.rs index 359056d9d3d4826cbd9014261e0325c67069acd4..79ebb6602d77776ee30f905cacba3ce6434e9512 100644 --- a/crates/assistant2/src/assistant_panel.rs +++ b/crates/assistant2/src/assistant_panel.rs @@ -1628,8 +1628,9 @@ impl Conversation { metadata.status = MessageStatus::Done; } Err(error) => { - metadata.status = - MessageStatus::Error(error.to_string().trim().into()); + metadata.status = MessageStatus::Error(SharedString::from( + error.to_string().trim().to_string(), + )); } } cx.notify(); @@ -2273,7 +2274,7 @@ impl ConversationEditor { Some( div() .id("error") - .tooltip(move |cx| Tooltip::text(&error, cx)) + .tooltip(move |cx| Tooltip::text(error.clone(), cx)) .child(IconElement::new(Icon::XCircle)), ) } else { diff --git a/crates/collab_ui2/src/chat_panel.rs b/crates/collab_ui2/src/chat_panel.rs index e9e2610a8604355d1ea480de81eb01ad64d8471f..0f6d6c3cd1a9085d3e848b821bdf93dda6d5ba5e 100644 --- a/crates/collab_ui2/src/chat_panel.rs +++ b/crates/collab_ui2/src/chat_panel.rs @@ -1,6 +1,4 @@ -// use crate::{ -// channel_view::ChannelView, is_channels_feature_enabled, render_avatar, ChatPanelSettings, -// }; +// use crate::{channel_view::ChannelView, is_channels_feature_enabled, ChatPanelSettings}; // use anyhow::Result; // use call::ActiveCall; // use channel::{ChannelChat, ChannelChatEvent, ChannelMessageId, ChannelStore}; @@ -9,13 +7,9 @@ // use db::kvp::KEY_VALUE_STORE; // use editor::Editor; // use gpui::{ -// actions, -// elements::*, -// platform::{CursorStyle, MouseButton}, -// serde_json, -// views::{ItemType, Select, SelectStyle}, -// AnyViewHandle, AppContext, AsyncAppContext, Entity, ModelHandle, Subscription, Task, View, -// ViewContext, ViewHandle, WeakViewHandle, +// actions, div, list, px, serde_json, AnyElement, AnyView, AppContext, AsyncAppContext, Div, +// Entity, EventEmitter, FocusableView, ListOffset, ListScrollHandle, Model, Orientation, Render, +// Subscription, Task, View, ViewContext, WeakView, // }; // use language::LanguageRegistry; // use menu::Confirm; @@ -23,10 +17,10 @@ // use project::Fs; // use rich_text::RichText; // use serde::{Deserialize, Serialize}; -// use settings::SettingsStore; +// use settings::{Settings, SettingsStore}; // use std::sync::Arc; -// use theme::{IconButton, Theme}; // use time::{OffsetDateTime, UtcOffset}; +// use ui::{h_stack, v_stack, Avatar, Button, Label}; // use util::{ResultExt, TryFutureExt}; // use workspace::{ // dock::{DockPosition, Panel}, @@ -40,19 +34,18 @@ // pub struct ChatPanel { // client: Arc, -// channel_store: ModelHandle, +// channel_store: Model, // languages: Arc, -// active_chat: Option<(ModelHandle, Subscription)>, -// message_list: ListState, -// input_editor: ViewHandle, -// channel_select: ViewHandle, -// ) -> AnyElement, +// // ) -> AnyElement, -// // ) -> AnyElement, + // ) -> AnyElement, - // ) -> AnyElement