From 7a1eb541061ec99de9804cd3d5dc0502d21dc6b4 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Thu, 7 Dec 2023 00:33:24 -0500 Subject: [PATCH 01/99] 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 02/99] 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 03/99] 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 04/99] 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 05/99] 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 06/99] 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 07/99] 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 08/99] 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 09/99] 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 10/99] 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 11/99] 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 12/99] 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 13/99] 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 1f51f74670c78134ae22c14476e10532cc58bafe Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Thu, 7 Dec 2023 22:24:32 -0500 Subject: [PATCH 14/99] 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 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 15/99] 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 16/99] 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 17/99] :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 18/99] 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 19/99] 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 20/99] 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 21/99] 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 22/99] 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 23/99] 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 24/99] 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 25/99] 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 26/99] 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 27/99] 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 28/99] =?UTF-8?q?Re-import=20Ros=C3=A9=20Pine=20source=20t?= =?UTF-8?q?hemes?= 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 29/99] 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 30/99] 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 31/99] 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 32/99] 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 33/99] 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 34/99] 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 35/99] 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 36/99] 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 37/99] 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 38/99] 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 39/99] 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 40/99] 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 41/99] 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 42/99] 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 43/99] 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 44/99] 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 45/99] 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 46/99] 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 47/99] 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 48/99] 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 49/99] 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 50/99] 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 51/99] 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