From 7a1eb541061ec99de9804cd3d5dc0502d21dc6b4 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Thu, 7 Dec 2023 00:33:24 -0500 Subject: [PATCH 001/115] checkpoint --- crates/feedback2/src/feedback_modal.rs | 152 +++++++++++++----------- crates/ui2/src/components/keybinding.rs | 12 +- 2 files changed, 87 insertions(+), 77 deletions(-) diff --git a/crates/feedback2/src/feedback_modal.rs b/crates/feedback2/src/feedback_modal.rs index 68fbcfb3a3..b4d4b08d54 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 29586fd194..25a77f59e1 100644 --- a/crates/ui2/src/components/keybinding.rs +++ b/crates/ui2/src/components/keybinding.rs @@ -98,11 +98,13 @@ impl RenderOnce for Key { div() .py_0() - .when_else( - single_char, - |el| el.w(rems(14. / 16.)).flex().flex_none().justify_center(), - |el| el.px_0p5(), - ) + .map(|el| { + if single_char { + el.w(rems(14. / 16.)).flex().flex_none().justify_center() + } else { + el.px_0p5() + } + }) .h(rems(14. / 16.)) .text_ui() .line_height(relative(1.)) From 197f355729e804ed2b9ced4bcf40d86f775924d2 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Thu, 7 Dec 2023 01:17:18 -0500 Subject: [PATCH 002/115] Add `row-reverse` and `col-reverse` to styled --- crates/gpui2/src/styled.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/crates/gpui2/src/styled.rs b/crates/gpui2/src/styled.rs index 346c1a760d..209169a9a6 100644 --- a/crates/gpui2/src/styled.rs +++ b/crates/gpui2/src/styled.rs @@ -245,6 +245,13 @@ pub trait Styled: Sized { self } + /// Sets the flex direction of the element to `column-reverse`. + /// [Docs](https://tailwindcss.com/docs/flex-direction#column-reverse) + fn flex_col_reverse(mut self) -> Self { + self.style().flex_direction = Some(FlexDirection::ColumnReverse); + self + } + /// Sets the flex direction of the element to `row`. /// [Docs](https://tailwindcss.com/docs/flex-direction#row) fn flex_row(mut self) -> Self { @@ -252,6 +259,13 @@ pub trait Styled: Sized { self } + /// Sets the flex direction of the element to `row-reverse`. + /// [Docs](https://tailwindcss.com/docs/flex-direction#row-reverse) + fn flex_row_reverse(mut self) -> Self { + self.style().flex_direction = Some(FlexDirection::RowReverse); + self + } + /// Sets the element to allow a flex item to grow and shrink as needed, ignoring its initial size. /// [Docs](https://tailwindcss.com/docs/flex#flex-1) fn flex_1(mut self) -> Self { From f798b193d0d40c91abcc67a57e571ae744a33e15 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Thu, 7 Dec 2023 01:46:28 -0500 Subject: [PATCH 003/115] WIP --- crates/feedback2/src/feedback_modal.rs | 65 ++++++++++--------- crates/ui2/src/components/button/button.rs | 48 +++++++++----- .../ui2/src/components/button/button_like.rs | 8 +++ crates/ui2/src/components/icon.rs | 3 +- crates/ui2/src/prelude.rs | 2 +- 5 files changed, 79 insertions(+), 47 deletions(-) diff --git a/crates/feedback2/src/feedback_modal.rs b/crates/feedback2/src/feedback_modal.rs index b4d4b08d54..aa6f3910a1 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 c1262321ce..607b6c8a61 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 1a33eb2845..9f42c95e7e 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 a5b09782f5..88af3847f5 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 42fb44ed4d..076d34644c 100644 --- a/crates/ui2/src/prelude.rs +++ b/crates/ui2/src/prelude.rs @@ -12,6 +12,6 @@ pub use crate::selectable::*; pub use crate::{h_stack, v_stack}; pub use crate::{Button, ButtonSize, ButtonStyle, IconButton}; pub use crate::{ButtonCommon, Color, StyledExt}; -pub use crate::{Icon, IconElement, IconSize}; +pub use crate::{Icon, IconElement, IconPosition, IconSize}; pub use crate::{Label, LabelCommon, LabelSize, LineHeightStyle}; pub use theme::ActiveTheme; From 0c23e6738b85cbb557223812286294791dbccef8 Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Thu, 7 Dec 2023 14:36:45 +0100 Subject: [PATCH 004/115] Barebones project search (no UI, but the crate compiles) --- Cargo.lock | 1 + crates/editor2/src/editor.rs | 12 +- crates/search2/Cargo.toml | 2 +- crates/search2/src/project_search.rs | 1489 +++++++++++++------------- crates/search2/src/search.rs | 5 +- 5 files changed, 759 insertions(+), 750 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1f15c9c8e6..203dfe991a 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 46d64fcf9d..9fffdbccf3 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 97cfdd6494..34158e7416 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 41dd87d4d3..e75b4f26b1 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); + cx.observe_new_views(|workspace: &mut Workspace, cx| { + workspace.register_action(ProjectSearchView::deploy); + }) + .detach(); - // 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.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); - 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); + // // 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 Render for ProjectSearchView { + type Element = Div; + fn render(&mut self, cx: &mut ViewContext) -> Self::Element { + div() + } } +// impl Entity for ProjectSearchView { +// type Event = ViewEvent; +// } -impl View for ProjectSearchView { - fn ui_name() -> &'static str { - "ProjectSearchView" - } +// 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 {} +// 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(); +// 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: {...} +// // 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 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 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 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); - }); +// 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") - } - } +// 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) - }); +// 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(), - ); - }); +// 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); - } - } +// 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( - &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 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, cx: &AppContext, f: &mut dyn FnMut(usize, &dyn project::Item)) { + fn for_each_project_item( + &self, + cx: &AppContext, + 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), - ViewEvent::Dismiss => smallvec::smallvec![ItemEvent::CloseItem], - _ => SmallVec::new(), + ViewEvent::EditorEvent(editor_event) => { + Editor::to_item_events(editor_event, f); + } + 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 Render for ProjectSearchBar { + type Element = Div; -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() - } + 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 13def6b4a7..eb540b5013 100644 --- a/crates/search2/src/search.rs +++ b/crates/search2/src/search.rs @@ -13,12 +13,12 @@ use ui::{ButtonStyle, Icon, IconButton}; pub mod buffer_search; mod history; mod mode; -//pub mod project_search; +pub mod project_search; pub(crate) mod search_bar; pub fn init(cx: &mut AppContext) { buffer_search::init(cx); - //project_search::init(cx); + project_search::init(cx); } actions!( @@ -44,6 +44,7 @@ bitflags! { const NONE = 0b000; const WHOLE_WORD = 0b001; const CASE_SENSITIVE = 0b010; + const INCLUDE_IGNORED = 0b100; } } From b04838c23a7964eea393797d977fecfc2089ad53 Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Thu, 7 Dec 2023 16:26:40 +0100 Subject: [PATCH 005/115] WIP, search bar looks kinda okay --- crates/search2/src/buffer_search.rs | 2 +- crates/search2/src/project_search.rs | 183 ++++++++++++++++++++++----- crates/ui2/src/components/icon.rs | 4 + crates/zed2/src/zed2.rs | 5 +- 4 files changed, 156 insertions(+), 38 deletions(-) diff --git a/crates/search2/src/buffer_search.rs b/crates/search2/src/buffer_search.rs index cbbeeb0f12..7982778936 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 e75b4f26b1..c0147bad1e 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 a5b09782f5..78df956969 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 d36d16a654..3fab03aa93 100644 --- a/crates/zed2/src/zed2.rs +++ b/crates/zed2/src/zed2.rs @@ -24,6 +24,7 @@ use anyhow::{anyhow, Context as _}; use futures::{channel::mpsc, StreamExt}; use project_panel::ProjectPanel; use quick_action_bar::QuickActionBar; +use search::project_search::ProjectSearchBar; use settings::{initial_local_settings_content, load_default_keymap, KeymapFile, Settings}; use std::{borrow::Cow, ops::Deref, sync::Arc}; use terminal_view::terminal_panel::TerminalPanel; @@ -426,8 +427,8 @@ fn initialize_pane(workspace: &mut Workspace, pane: &View, cx: &mut ViewCo toolbar.add_item(quick_action_bar, cx); let diagnostic_editor_controls = cx.build_view(|_| diagnostics::ToolbarControls::new()); // toolbar.add_item(diagnostic_editor_controls, cx); - // let project_search_bar = cx.add_view(|_| ProjectSearchBar::new()); - // toolbar.add_item(project_search_bar, cx); + let project_search_bar = cx.build_view(|_| ProjectSearchBar::new()); + toolbar.add_item(project_search_bar, cx); // let lsp_log_item = // cx.add_view(|_| language_tools::LspLogToolbarItemView::new()); // toolbar.add_item(lsp_log_item, cx); From ed5c05b272aec8e240ebeb178717d2a00e5cd008 Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Thu, 7 Dec 2023 16:43:34 +0100 Subject: [PATCH 006/115] Searches work, but the results are not displayed --- crates/search2/src/project_search.rs | 32 +++++++++++++++++++--------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/crates/search2/src/project_search.rs b/crates/search2/src/project_search.rs index c0147bad1e..56fb66d7e1 100644 --- a/crates/search2/src/project_search.rs +++ b/crates/search2/src/project_search.rs @@ -324,7 +324,7 @@ impl EventEmitter for ProjectSearchView {} impl Render for ProjectSearchView { type Element = Div; fn render(&mut self, cx: &mut ViewContext) -> Self::Element { - div().child(Label::new("xd")) + div().child(self.results_editor.clone()) } } // impl Entity for ProjectSearchView { @@ -1688,6 +1688,7 @@ impl Render for ProjectSearchBar { .child( h_stack() .min_w_80() + .on_action(cx.listener(|this, action, cx| this.confirm(action, cx))) .on_action(cx.listener(|this, _: &ToggleFilters, cx| { this.toggle_filters(cx); })) @@ -1697,7 +1698,7 @@ impl Render for ProjectSearchBar { .on_action(cx.listener(|this, _: &ToggleCaseSensitive, cx| { this.toggle_search_option(SearchOptions::CASE_SENSITIVE, cx); })) - .on_action(cx.listener(|this, action: &ToggleReplace, cx| { + .on_action(cx.listener(|this, action, cx| { this.toggle_replace(action, cx); })) .on_action(cx.listener(|this, action: &ActivateTextMode, cx| { @@ -1760,6 +1761,7 @@ impl Render for ProjectSearchBar { let replace_column = if search.replace_enabled { h_stack() .bg(white()) + .p_1() .flex_1() .border_2() .rounded_lg() @@ -1772,24 +1774,34 @@ impl Render for ProjectSearchBar { let actions_column = h_stack() .when(search.replace_enabled, |this| { this.children([ - IconButton::new("project-search-replace-next", Icon::ReplaceNext), - IconButton::new("project-search-replace-all", Icon::ReplaceAll), + IconButton::new("project-search-replace-next", Icon::ReplaceNext).on_click( + |_, cx| { + cx.dispatch_action(ReplaceNext.boxed_clone()); + }, + ), + IconButton::new("project-search-replace-all", Icon::ReplaceAll).on_click( + |_, cx| { + cx.dispatch_action(ReplaceAll.boxed_clone()); + }, + ), ]) }) .when_some(search.active_match_index, |this, index| { let match_quantity = search.model.read(cx).match_ranges.len(); debug_assert!(match_quantity > index); - this.child(IconButton::new( - "project-search-select-all", - Icon::SelectAll, - )) + this.child( + IconButton::new("project-search-select-all", Icon::SelectAll) + .on_click(|_, cx| cx.dispatch_action(SelectAll.boxed_clone())), + ) .child(Label::new(format!("{index}/{match_quantity}"))) }) .children([ IconButton::new("project-search-prev-match", Icon::ChevronLeft) - .disabled(search.active_match_index.is_none()), + .disabled(search.active_match_index.is_none()) + .on_click(|_, cx| cx.dispatch_action(SelectPrevMatch.boxed_clone())), IconButton::new("project-search-next-match", Icon::ChevronRight) - .disabled(search.active_match_index.is_none()), + .disabled(search.active_match_index.is_none()) + .on_click(|_, cx| cx.dispatch_action(SelectNextMatch.boxed_clone())), ]); h_stack() .size_full() From 5e5eb25aab7e4cf3aa157af47e726d11ca11a364 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Thu, 7 Dec 2023 10:50:07 -0500 Subject: [PATCH 007/115] WIP [no-ci] --- crates/feedback2/src/feedback_modal.rs | 26 +++++++++++++--------- crates/ui2/src/components/button/button.rs | 1 - 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/crates/feedback2/src/feedback_modal.rs b/crates/feedback2/src/feedback_modal.rs index aa6f3910a1..32619578ed 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 607b6c8a61..fc7ca2c128 100644 --- a/crates/ui2/src/components/button/button.rs +++ b/crates/ui2/src/components/button/button.rs @@ -158,7 +158,6 @@ impl RenderOnce for Button { this } }) - .flex_row_reverse() .child( Label::new(label) .color(label_color) From e9c40963ab03a4cdeec356273417fd726fa9f111 Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Thu, 7 Dec 2023 17:48:53 +0100 Subject: [PATCH 008/115] Render multibuffer --- crates/search2/src/project_search.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/crates/search2/src/project_search.rs b/crates/search2/src/project_search.rs index 56fb66d7e1..b2144587be 100644 --- a/crates/search2/src/project_search.rs +++ b/crates/search2/src/project_search.rs @@ -324,7 +324,10 @@ impl EventEmitter for ProjectSearchView {} impl Render for ProjectSearchView { type Element = Div; fn render(&mut self, cx: &mut ViewContext) -> Self::Element { - div().child(self.results_editor.clone()) + div() + .flex_1() + .size_full() + .child(self.results_editor.clone()) } } // impl Entity for ProjectSearchView { From 1bf94f025169d75902d4624423fc770482de2620 Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Thu, 7 Dec 2023 17:55:03 +0100 Subject: [PATCH 009/115] Do not render multibuffer without matches --- crates/search2/src/project_search.rs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/crates/search2/src/project_search.rs b/crates/search2/src/project_search.rs index b2144587be..18c101088b 100644 --- a/crates/search2/src/project_search.rs +++ b/crates/search2/src/project_search.rs @@ -324,10 +324,14 @@ impl EventEmitter for ProjectSearchView {} impl Render for ProjectSearchView { type Element = Div; fn render(&mut self, cx: &mut ViewContext) -> Self::Element { - div() - .flex_1() - .size_full() - .child(self.results_editor.clone()) + if self.has_matches() { + div() + .flex_1() + .size_full() + .child(self.results_editor.clone()) + } else { + div() + } } } // impl Entity for ProjectSearchView { From 794b79580010e115aa23e16331bfb7d863837506 Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Thu, 7 Dec 2023 12:04:04 -0500 Subject: [PATCH 010/115] Add TODO --- crates/feedback2/src/feedback_modal.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/crates/feedback2/src/feedback_modal.rs b/crates/feedback2/src/feedback_modal.rs index 32619578ed..148772c296 100644 --- a/crates/feedback2/src/feedback_modal.rs +++ b/crates/feedback2/src/feedback_modal.rs @@ -399,3 +399,5 @@ impl Render for FeedbackModal { ) } } + +// TODO: Add compilation flags to enable debug mode, where we can simulate sending feedback that both succeeds and fails, so we can test the UI From ef4bc5e20b6839dbad93e52c9aec5a6036d7ba08 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Thu, 7 Dec 2023 12:59:51 -0500 Subject: [PATCH 011/115] Remove static status bar icons --- crates/workspace2/src/status_bar.rs | 25 +------------------------ 1 file changed, 1 insertion(+), 24 deletions(-) diff --git a/crates/workspace2/src/status_bar.rs b/crates/workspace2/src/status_bar.rs index 07c48293b5..22e2fa128d 100644 --- a/crates/workspace2/src/status_bar.rs +++ b/crates/workspace2/src/status_bar.rs @@ -48,30 +48,7 @@ impl Render for StatusBar { .h_8() .bg(cx.theme().colors().status_bar_background) .child(h_stack().gap_1().child(self.render_left_tools(cx))) - .child( - h_stack() - .gap_4() - .child( - h_stack().gap_1().child( - // Feedback Tool - div() - .border() - .border_color(gpui::red()) - .child(IconButton::new("status-feedback", Icon::Envelope)), - ), - ) - .child( - // Right Dock - h_stack().gap_1().child( - // Terminal - div() - .border() - .border_color(gpui::red()) - .child(IconButton::new("status-chat", Icon::MessageBubbles)), - ), - ) - .child(self.render_right_tools(cx)), - ) + .child(h_stack().gap_4().child(self.render_right_tools(cx))) } } From 0ee4ad6ba0c4dcaf48a5a568f0e1c3593b7e6aa6 Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Thu, 7 Dec 2023 13:00:49 -0500 Subject: [PATCH 012/115] Skip using map --- crates/feedback2/src/feedback_modal.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/crates/feedback2/src/feedback_modal.rs b/crates/feedback2/src/feedback_modal.rs index 148772c296..c61d17d63c 100644 --- a/crates/feedback2/src/feedback_modal.rs +++ b/crates/feedback2/src/feedback_modal.rs @@ -329,11 +329,11 @@ impl Render for FeedbackModal { ) } ) - .map(|this| + .color( if valid_character_count { - this.color(Color::Success) + Color::Success } else { - this.color(Color::Error) + Color::Error } ) ) From 8b9b19195d02f104b9fc51805d07ea6ca2c83503 Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Thu, 7 Dec 2023 13:19:03 -0500 Subject: [PATCH 013/115] Fix bug with how characters limits are being displayed --- crates/feedback2/src/feedback_modal.rs | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/crates/feedback2/src/feedback_modal.rs b/crates/feedback2/src/feedback_modal.rs index c61d17d63c..1b746e1f1f 100644 --- a/crates/feedback2/src/feedback_modal.rs +++ b/crates/feedback2/src/feedback_modal.rs @@ -256,12 +256,6 @@ impl Render for FeedbackModal { }; let valid_character_count = FEEDBACK_CHAR_LIMIT.contains(&self.character_count); - let characters_remaining = - if valid_character_count || self.character_count > *FEEDBACK_CHAR_LIMIT.end() { - *FEEDBACK_CHAR_LIMIT.end() as i32 - self.character_count as i32 - } else { - self.character_count as i32 - *FEEDBACK_CHAR_LIMIT.start() as i32 - }; let allow_submission = valid_character_count && valid_email_address && !self.pending_submission; @@ -318,14 +312,14 @@ impl Render for FeedbackModal { .child( div().child( Label::new( - if !valid_character_count && characters_remaining < 0 { - "Feedback must be at least 10 characters.".to_string() - } else if !valid_character_count && characters_remaining > 5000 { - "Feedback must be less than 5000 characters.".to_string() + if self.character_count < *FEEDBACK_CHAR_LIMIT.start() { + format!("Feedback must be at least {} characters.", FEEDBACK_CHAR_LIMIT.start()) + } else if self.character_count > *FEEDBACK_CHAR_LIMIT.end() { + format!("Feedback must be less than {} characters.", FEEDBACK_CHAR_LIMIT.end()) } else { format!( "Characters: {}", - characters_remaining + *FEEDBACK_CHAR_LIMIT.end() - self.character_count ) } ) From 808a0626c0d45db67f069df8e173299dac8a48ea Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Thu, 7 Dec 2023 16:49:27 -0800 Subject: [PATCH 014/115] Show a notification on auto-update check action if updates are disabled --- crates/auto_update2/src/auto_update.rs | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/crates/auto_update2/src/auto_update.rs b/crates/auto_update2/src/auto_update.rs index 72dbe32b5a..dbccd269b7 100644 --- a/crates/auto_update2/src/auto_update.rs +++ b/crates/auto_update2/src/auto_update.rs @@ -85,15 +85,7 @@ pub fn init(http_client: Arc, server_url: String, cx: &mut AppCo AutoUpdateSetting::register(cx); cx.observe_new_views(|workspace: &mut Workspace, _cx| { - workspace - .register_action(|_, action: &Check, cx| check(action, cx)) - .register_action(|_, _action: &CheckThatAutoUpdaterWorks, cx| { - let prompt = cx.prompt(gpui::PromptLevel::Info, "It does!", &["Ok"]); - cx.spawn(|_, _cx| async move { - prompt.await.ok(); - }) - .detach(); - }); + workspace.register_action(|_, action: &Check, cx| check(action, cx)); // @nate - code to trigger update notification on launch // workspace.show_notification(0, _cx, |cx| { @@ -130,9 +122,15 @@ pub fn init(http_client: Arc, server_url: String, cx: &mut AppCo } } -pub fn check(_: &Check, cx: &mut AppContext) { +pub fn check(_: &Check, cx: &mut ViewContext) { if let Some(updater) = AutoUpdater::get(cx) { updater.update(cx, |updater, cx| updater.poll(cx)); + } else { + drop(cx.prompt( + gpui::PromptLevel::Info, + "Auto-updates disabled for non-bundled app.", + &["Ok"], + )); } } From f9d569f1b83529f1bd0801c7e57de2c57b127241 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Thu, 7 Dec 2023 16:51:53 -0800 Subject: [PATCH 015/115] Remove '-nightly' suffix from nightly build version number It breaks our semver parsing, and the release channel is already 'nightly'. --- .github/workflows/release_nightly.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/release_nightly.yml b/.github/workflows/release_nightly.yml index 0e0fd18e25..38552646c3 100644 --- a/.github/workflows/release_nightly.yml +++ b/.github/workflows/release_nightly.yml @@ -81,12 +81,11 @@ jobs: - name: Limit target directory size run: script/clear-target-dir-if-larger-than 100 - - name: Set release channel to nightly, add nightly prefix to the final version + - name: Set release channel to nightly run: | set -eu version=$(git rev-parse --short HEAD) echo "Publishing version: ${version} on release channel nightly" - sed -i '' "s/version = \"\(.*\)\"/version = \"\1-nightly\"/" crates/zed2/Cargo.toml echo "nightly" > crates/zed/RELEASE_CHANNEL - name: Generate license file From f272881a6b69efa7295aa85990c91af1f92c4cf3 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Thu, 7 Dec 2023 22:11:31 -0500 Subject: [PATCH 016/115] theme_importer: Improve syntax token matching (#3549) This PR improves the approach we use to match syntax tokens between Zed and VS Code in the `theme_importer`. We now use the list of scopes assigned to each Zed syntax token to rank the possible candidates in the VS Code and then pick the candidate with the highest rank. So far this has proved to provide better colors across the board, but we'll continue to refine the matching over time. Release Notes: - N/A --- crates/theme2/src/themes/andromeda.rs | 36 +- crates/theme2/src/themes/ayu.rs | 48 +- crates/theme2/src/themes/dracula.rs | 10 +- crates/theme2/src/themes/gruvbox.rs | 72 ++- crates/theme2/src/themes/night_owl.rs | 30 +- crates/theme2/src/themes/noctis.rs | 440 ++++++------------ crates/theme2/src/themes/nord.rs | 12 +- crates/theme2/src/themes/palenight.rs | 36 +- crates/theme2/src/themes/rose_pine.rs | 48 +- crates/theme2/src/themes/solarized.rs | 30 +- crates/theme2/src/themes/synthwave_84.rs | 11 +- crates/theme_importer/src/main.rs | 30 +- crates/theme_importer/src/vscode/converter.rs | 31 +- crates/theme_importer/src/vscode/syntax.rs | 91 +++- 14 files changed, 520 insertions(+), 405 deletions(-) diff --git a/crates/theme2/src/themes/andromeda.rs b/crates/theme2/src/themes/andromeda.rs index fb606c1650..8dfc32d8b5 100644 --- a/crates/theme2/src/themes/andromeda.rs +++ b/crates/theme2/src/themes/andromeda.rs @@ -66,7 +66,7 @@ pub fn andromeda() -> UserThemeFamily { ( "attribute".into(), UserHighlightStyle { - color: Some(rgba(0xf39c12ff).into()), + color: Some(rgba(0xffe66dff).into()), ..Default::default() }, ), @@ -77,6 +77,13 @@ pub fn andromeda() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0xa0a1a7cc).into()), + ..Default::default() + }, + ), ( "emphasis".into(), UserHighlightStyle { @@ -143,7 +150,7 @@ pub fn andromeda() -> UserThemeFamily { ( "type".into(), UserHighlightStyle { - color: Some(rgba(0xffe66dff).into()), + color: Some(rgba(0xee5d43ff).into()), ..Default::default() }, ), @@ -154,6 +161,13 @@ pub fn andromeda() -> UserThemeFamily { ..Default::default() }, ), + ( + "variable.special".into(), + UserHighlightStyle { + color: Some(rgba(0x00e8c6ff).into()), + ..Default::default() + }, + ), ], }), }, @@ -210,7 +224,7 @@ pub fn andromeda() -> UserThemeFamily { ( "attribute".into(), UserHighlightStyle { - color: Some(rgba(0xf39c12ff).into()), + color: Some(rgba(0xffe66dff).into()), ..Default::default() }, ), @@ -221,6 +235,13 @@ pub fn andromeda() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0xa0a1a7cc).into()), + ..Default::default() + }, + ), ( "emphasis".into(), UserHighlightStyle { @@ -287,7 +308,7 @@ pub fn andromeda() -> UserThemeFamily { ( "type".into(), UserHighlightStyle { - color: Some(rgba(0xffe66dff).into()), + color: Some(rgba(0xee5d43ff).into()), ..Default::default() }, ), @@ -298,6 +319,13 @@ pub fn andromeda() -> UserThemeFamily { ..Default::default() }, ), + ( + "variable.special".into(), + UserHighlightStyle { + color: Some(rgba(0x00e8c6ff).into()), + ..Default::default() + }, + ), ], }), }, diff --git a/crates/theme2/src/themes/ayu.rs b/crates/theme2/src/themes/ayu.rs index 39ac2660e6..fe9d750461 100644 --- a/crates/theme2/src/themes/ayu.rs +++ b/crates/theme2/src/themes/ayu.rs @@ -89,6 +89,14 @@ pub fn ayu() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0x787b8099).into()), + font_style: Some(UserFontStyle::Italic), + ..Default::default() + }, + ), ( "constant".into(), UserHighlightStyle { @@ -122,14 +130,14 @@ pub fn ayu() -> UserThemeFamily { ( "function".into(), UserHighlightStyle { - color: Some(rgba(0xf2ae49ff).into()), + color: Some(rgba(0xf07171ff).into()), ..Default::default() }, ), ( "keyword".into(), UserHighlightStyle { - color: Some(rgba(0xfa8d3eff).into()), + color: Some(rgba(0x55b4d4ff).into()), ..Default::default() }, ), @@ -171,7 +179,7 @@ pub fn ayu() -> UserThemeFamily { ( "property".into(), UserHighlightStyle { - color: Some(rgba(0xf07171ff).into()), + color: Some(rgba(0x55b4d4ff).into()), ..Default::default() }, ), @@ -269,7 +277,7 @@ pub fn ayu() -> UserThemeFamily { ( "variable.special".into(), UserHighlightStyle { - color: Some(rgba(0xf07171ff).into()), + color: Some(rgba(0xf2ae49ff).into()), ..Default::default() }, ), @@ -352,6 +360,14 @@ pub fn ayu() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0xb8cfe680).into()), + font_style: Some(UserFontStyle::Italic), + ..Default::default() + }, + ), ( "constant".into(), UserHighlightStyle { @@ -385,14 +401,14 @@ pub fn ayu() -> UserThemeFamily { ( "function".into(), UserHighlightStyle { - color: Some(rgba(0xffd173ff).into()), + color: Some(rgba(0xf28779ff).into()), ..Default::default() }, ), ( "keyword".into(), UserHighlightStyle { - color: Some(rgba(0xffad66ff).into()), + color: Some(rgba(0x5ccfe6ff).into()), ..Default::default() }, ), @@ -434,7 +450,7 @@ pub fn ayu() -> UserThemeFamily { ( "property".into(), UserHighlightStyle { - color: Some(rgba(0xf28779ff).into()), + color: Some(rgba(0x5ccfe6ff).into()), ..Default::default() }, ), @@ -532,7 +548,7 @@ pub fn ayu() -> UserThemeFamily { ( "variable.special".into(), UserHighlightStyle { - color: Some(rgba(0xf28779ff).into()), + color: Some(rgba(0xffd173ff).into()), ..Default::default() }, ), @@ -615,6 +631,14 @@ pub fn ayu() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0xacb6bf8c).into()), + font_style: Some(UserFontStyle::Italic), + ..Default::default() + }, + ), ( "constant".into(), UserHighlightStyle { @@ -648,14 +672,14 @@ pub fn ayu() -> UserThemeFamily { ( "function".into(), UserHighlightStyle { - color: Some(rgba(0xffb454ff).into()), + color: Some(rgba(0xf07178ff).into()), ..Default::default() }, ), ( "keyword".into(), UserHighlightStyle { - color: Some(rgba(0xff8f40ff).into()), + color: Some(rgba(0x39bae6ff).into()), ..Default::default() }, ), @@ -697,7 +721,7 @@ pub fn ayu() -> UserThemeFamily { ( "property".into(), UserHighlightStyle { - color: Some(rgba(0xf07178ff).into()), + color: Some(rgba(0x39bae6ff).into()), ..Default::default() }, ), @@ -795,7 +819,7 @@ pub fn ayu() -> UserThemeFamily { ( "variable.special".into(), UserHighlightStyle { - color: Some(rgba(0xf07178ff).into()), + color: Some(rgba(0xffb454ff).into()), ..Default::default() }, ), diff --git a/crates/theme2/src/themes/dracula.rs b/crates/theme2/src/themes/dracula.rs index 49caf3cff9..bf8fc12b8a 100644 --- a/crates/theme2/src/themes/dracula.rs +++ b/crates/theme2/src/themes/dracula.rs @@ -83,6 +83,13 @@ pub fn dracula() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0x6272a4ff).into()), + ..Default::default() + }, + ), ( "emphasis".into(), UserHighlightStyle { @@ -159,8 +166,7 @@ pub fn dracula() -> UserThemeFamily { ( "variable".into(), UserHighlightStyle { - color: Some(rgba(0xbd93f9ff).into()), - font_style: Some(UserFontStyle::Italic), + color: Some(rgba(0xf8f8f2ff).into()), ..Default::default() }, ), diff --git a/crates/theme2/src/themes/gruvbox.rs b/crates/theme2/src/themes/gruvbox.rs index 7de52df753..44d779071a 100644 --- a/crates/theme2/src/themes/gruvbox.rs +++ b/crates/theme2/src/themes/gruvbox.rs @@ -82,8 +82,9 @@ pub fn gruvbox() -> UserThemeFamily { }, ), ( - "emphasis".into(), + "comment.doc".into(), UserHighlightStyle { + color: Some(rgba(0x928374ff).into()), font_style: Some(UserFontStyle::Italic), ..Default::default() }, @@ -148,7 +149,7 @@ pub fn gruvbox() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0xa89984ff).into()), + color: Some(rgba(0x83a598ff).into()), ..Default::default() }, ), @@ -201,6 +202,13 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "variable.special".into(), + UserHighlightStyle { + color: Some(rgba(0x83a598ff).into()), + ..Default::default() + }, + ), ], }), }, @@ -273,8 +281,9 @@ pub fn gruvbox() -> UserThemeFamily { }, ), ( - "emphasis".into(), + "comment.doc".into(), UserHighlightStyle { + color: Some(rgba(0x928374ff).into()), font_style: Some(UserFontStyle::Italic), ..Default::default() }, @@ -339,7 +348,7 @@ pub fn gruvbox() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0xa89984ff).into()), + color: Some(rgba(0x83a598ff).into()), ..Default::default() }, ), @@ -392,6 +401,13 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "variable.special".into(), + UserHighlightStyle { + color: Some(rgba(0x83a598ff).into()), + ..Default::default() + }, + ), ], }), }, @@ -464,8 +480,9 @@ pub fn gruvbox() -> UserThemeFamily { }, ), ( - "emphasis".into(), + "comment.doc".into(), UserHighlightStyle { + color: Some(rgba(0x928374ff).into()), font_style: Some(UserFontStyle::Italic), ..Default::default() }, @@ -530,7 +547,7 @@ pub fn gruvbox() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0xa89984ff).into()), + color: Some(rgba(0x83a598ff).into()), ..Default::default() }, ), @@ -583,6 +600,13 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "variable.special".into(), + UserHighlightStyle { + color: Some(rgba(0x83a598ff).into()), + ..Default::default() + }, + ), ], }), }, @@ -655,8 +679,9 @@ pub fn gruvbox() -> UserThemeFamily { }, ), ( - "emphasis".into(), + "comment.doc".into(), UserHighlightStyle { + color: Some(rgba(0x928374ff).into()), font_style: Some(UserFontStyle::Italic), ..Default::default() }, @@ -721,7 +746,7 @@ pub fn gruvbox() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0x7c6f64ff).into()), + color: Some(rgba(0x076678ff).into()), ..Default::default() }, ), @@ -774,6 +799,13 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "variable.special".into(), + UserHighlightStyle { + color: Some(rgba(0x076678ff).into()), + ..Default::default() + }, + ), ], }), }, @@ -846,8 +878,9 @@ pub fn gruvbox() -> UserThemeFamily { }, ), ( - "emphasis".into(), + "comment.doc".into(), UserHighlightStyle { + color: Some(rgba(0x928374ff).into()), font_style: Some(UserFontStyle::Italic), ..Default::default() }, @@ -912,7 +945,7 @@ pub fn gruvbox() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0x7c6f64ff).into()), + color: Some(rgba(0x076678ff).into()), ..Default::default() }, ), @@ -965,6 +998,13 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "variable.special".into(), + UserHighlightStyle { + color: Some(rgba(0x076678ff).into()), + ..Default::default() + }, + ), ], }), }, @@ -1037,8 +1077,9 @@ pub fn gruvbox() -> UserThemeFamily { }, ), ( - "emphasis".into(), + "comment.doc".into(), UserHighlightStyle { + color: Some(rgba(0x928374ff).into()), font_style: Some(UserFontStyle::Italic), ..Default::default() }, @@ -1103,7 +1144,7 @@ pub fn gruvbox() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0x7c6f64ff).into()), + color: Some(rgba(0x076678ff).into()), ..Default::default() }, ), @@ -1156,6 +1197,13 @@ pub fn gruvbox() -> UserThemeFamily { ..Default::default() }, ), + ( + "variable.special".into(), + UserHighlightStyle { + color: Some(rgba(0x076678ff).into()), + ..Default::default() + }, + ), ], }), }, diff --git a/crates/theme2/src/themes/night_owl.rs b/crates/theme2/src/themes/night_owl.rs index ef9b8c59a0..13a931453b 100644 --- a/crates/theme2/src/themes/night_owl.rs +++ b/crates/theme2/src/themes/night_owl.rs @@ -90,6 +90,14 @@ pub fn night_owl() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0x637777ff).into()), + font_style: Some(UserFontStyle::Italic), + ..Default::default() + }, + ), ( "constant".into(), UserHighlightStyle { @@ -100,8 +108,7 @@ pub fn night_owl() -> UserThemeFamily { ( "function".into(), UserHighlightStyle { - color: Some(rgba(0xc792eaff).into()), - font_style: Some(UserFontStyle::Italic), + color: Some(rgba(0x82aaffff).into()), ..Default::default() }, ), @@ -137,8 +144,7 @@ pub fn night_owl() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0xc792eaff).into()), - font_style: Some(UserFontStyle::Italic), + color: Some(rgba(0x7fdbcaff).into()), ..Default::default() }, ), @@ -180,7 +186,7 @@ pub fn night_owl() -> UserThemeFamily { ( "variable".into(), UserHighlightStyle { - color: Some(rgba(0xc5e478ff).into()), + color: Some(rgba(0xd7dbe0ff).into()), ..Default::default() }, ), @@ -272,6 +278,14 @@ pub fn night_owl() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0x989fb1ff).into()), + font_style: Some(UserFontStyle::Italic), + ..Default::default() + }, + ), ( "constant".into(), UserHighlightStyle { @@ -282,8 +296,7 @@ pub fn night_owl() -> UserThemeFamily { ( "function".into(), UserHighlightStyle { - color: Some(rgba(0x994cc3ff).into()), - font_style: Some(UserFontStyle::Italic), + color: Some(rgba(0x4876d6ff).into()), ..Default::default() }, ), @@ -320,7 +333,6 @@ pub fn night_owl() -> UserThemeFamily { "punctuation".into(), UserHighlightStyle { color: Some(rgba(0x994cc3ff).into()), - font_style: Some(UserFontStyle::Italic), ..Default::default() }, ), @@ -362,7 +374,7 @@ pub fn night_owl() -> UserThemeFamily { ( "variable".into(), UserHighlightStyle { - color: Some(rgba(0x4876d6ff).into()), + color: Some(rgba(0x403f53ff).into()), ..Default::default() }, ), diff --git a/crates/theme2/src/themes/noctis.rs b/crates/theme2/src/themes/noctis.rs index 5598635ff2..d19aeb61d3 100644 --- a/crates/theme2/src/themes/noctis.rs +++ b/crates/theme2/src/themes/noctis.rs @@ -83,6 +83,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0x5988a6ff).into()), + ..Default::default() + }, + ), ( "constant".into(), UserHighlightStyle { @@ -90,20 +97,6 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), - ( - "constructor".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), - ..Default::default() - }, - ), - ( - "emphasis".into(), - UserHighlightStyle { - font_style: Some(UserFontStyle::Italic), - ..Default::default() - }, - ), ( "function".into(), UserHighlightStyle { @@ -114,7 +107,7 @@ pub fn noctis() -> UserThemeFamily { ( "keyword".into(), UserHighlightStyle { - color: Some(rgba(0xdf769bff).into()), + color: Some(rgba(0xe66533ff).into()), ..Default::default() }, ), @@ -128,14 +121,14 @@ pub fn noctis() -> UserThemeFamily { ( "link_text".into(), UserHighlightStyle { - color: Some(rgba(0x16a3b6ff).into()), + color: Some(rgba(0x49d6e9ff).into()), ..Default::default() }, ), ( "link_uri".into(), UserHighlightStyle { - color: Some(rgba(0x16a3b6ff).into()), + color: Some(rgba(0x49d6e9ff).into()), ..Default::default() }, ), @@ -146,13 +139,6 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), - ( - "operator".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), - ..Default::default() - }, - ), ( "property".into(), UserHighlightStyle { @@ -163,7 +149,7 @@ pub fn noctis() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0x5988a6ff).into()), + color: Some(rgba(0xbecfdaff).into()), ..Default::default() }, ), @@ -191,7 +177,7 @@ pub fn noctis() -> UserThemeFamily { ( "tag".into(), UserHighlightStyle { - color: Some(rgba(0xdf769bff).into()), + color: Some(rgba(0xe66533ff).into()), ..Default::default() }, ), @@ -212,7 +198,7 @@ pub fn noctis() -> UserThemeFamily { ( "type".into(), UserHighlightStyle { - color: Some(rgba(0x49d6e9ff).into()), + color: Some(rgba(0xd67e5cff).into()), ..Default::default() }, ), @@ -303,6 +289,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0x8b747cff).into()), + ..Default::default() + }, + ), ( "constant".into(), UserHighlightStyle { @@ -310,20 +303,6 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), - ( - "constructor".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), - ..Default::default() - }, - ), - ( - "emphasis".into(), - UserHighlightStyle { - font_style: Some(UserFontStyle::Italic), - ..Default::default() - }, - ), ( "function".into(), UserHighlightStyle { @@ -334,7 +313,7 @@ pub fn noctis() -> UserThemeFamily { ( "keyword".into(), UserHighlightStyle { - color: Some(rgba(0xdf769bff).into()), + color: Some(rgba(0xe66533ff).into()), ..Default::default() }, ), @@ -348,14 +327,14 @@ pub fn noctis() -> UserThemeFamily { ( "link_text".into(), UserHighlightStyle { - color: Some(rgba(0x16a3b6ff).into()), + color: Some(rgba(0x49d6e9ff).into()), ..Default::default() }, ), ( "link_uri".into(), UserHighlightStyle { - color: Some(rgba(0x16a3b6ff).into()), + color: Some(rgba(0x49d6e9ff).into()), ..Default::default() }, ), @@ -366,13 +345,6 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), - ( - "operator".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), - ..Default::default() - }, - ), ( "property".into(), UserHighlightStyle { @@ -383,7 +355,7 @@ pub fn noctis() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0x8b747cff).into()), + color: Some(rgba(0xcbbec2ff).into()), ..Default::default() }, ), @@ -411,7 +383,7 @@ pub fn noctis() -> UserThemeFamily { ( "tag".into(), UserHighlightStyle { - color: Some(rgba(0xdf769bff).into()), + color: Some(rgba(0xe66533ff).into()), ..Default::default() }, ), @@ -432,7 +404,7 @@ pub fn noctis() -> UserThemeFamily { ( "type".into(), UserHighlightStyle { - color: Some(rgba(0x49d6e9ff).into()), + color: Some(rgba(0xd67e5cff).into()), ..Default::default() }, ), @@ -523,6 +495,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0x8ca6a6ff).into()), + ..Default::default() + }, + ), ( "constant".into(), UserHighlightStyle { @@ -530,20 +509,6 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), - ( - "constructor".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), - ..Default::default() - }, - ), - ( - "emphasis".into(), - UserHighlightStyle { - font_style: Some(UserFontStyle::Italic), - ..Default::default() - }, - ), ( "function".into(), UserHighlightStyle { @@ -554,7 +519,7 @@ pub fn noctis() -> UserThemeFamily { ( "keyword".into(), UserHighlightStyle { - color: Some(rgba(0xff5792ff).into()), + color: Some(rgba(0xe64100ff).into()), ..Default::default() }, ), @@ -568,14 +533,14 @@ pub fn noctis() -> UserThemeFamily { ( "link_text".into(), UserHighlightStyle { - color: Some(rgba(0x0095a8ff).into()), + color: Some(rgba(0x00bdd6ff).into()), ..Default::default() }, ), ( "link_uri".into(), UserHighlightStyle { - color: Some(rgba(0x0095a8ff).into()), + color: Some(rgba(0x00bdd6ff).into()), ..Default::default() }, ), @@ -586,13 +551,6 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), - ( - "operator".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), - ..Default::default() - }, - ), ( "property".into(), UserHighlightStyle { @@ -603,7 +561,7 @@ pub fn noctis() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0x8ca6a6ff).into()), + color: Some(rgba(0x004d57ff).into()), ..Default::default() }, ), @@ -631,7 +589,7 @@ pub fn noctis() -> UserThemeFamily { ( "tag".into(), UserHighlightStyle { - color: Some(rgba(0xff5792ff).into()), + color: Some(rgba(0xe64100ff).into()), ..Default::default() }, ), @@ -652,7 +610,7 @@ pub fn noctis() -> UserThemeFamily { ( "type".into(), UserHighlightStyle { - color: Some(rgba(0x00bdd6ff).into()), + color: Some(rgba(0xb3694dff).into()), ..Default::default() }, ), @@ -743,6 +701,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0x9995b7ff).into()), + ..Default::default() + }, + ), ( "constant".into(), UserHighlightStyle { @@ -750,20 +715,6 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), - ( - "constructor".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), - ..Default::default() - }, - ), - ( - "emphasis".into(), - UserHighlightStyle { - font_style: Some(UserFontStyle::Italic), - ..Default::default() - }, - ), ( "function".into(), UserHighlightStyle { @@ -774,7 +725,7 @@ pub fn noctis() -> UserThemeFamily { ( "keyword".into(), UserHighlightStyle { - color: Some(rgba(0xff5792ff).into()), + color: Some(rgba(0xe64100ff).into()), ..Default::default() }, ), @@ -788,14 +739,14 @@ pub fn noctis() -> UserThemeFamily { ( "link_text".into(), UserHighlightStyle { - color: Some(rgba(0x0095a8ff).into()), + color: Some(rgba(0x00bdd6ff).into()), ..Default::default() }, ), ( "link_uri".into(), UserHighlightStyle { - color: Some(rgba(0x0095a8ff).into()), + color: Some(rgba(0x00bdd6ff).into()), ..Default::default() }, ), @@ -806,13 +757,6 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), - ( - "operator".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), - ..Default::default() - }, - ), ( "property".into(), UserHighlightStyle { @@ -823,7 +767,7 @@ pub fn noctis() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0x9995b7ff).into()), + color: Some(rgba(0x0c006bff).into()), ..Default::default() }, ), @@ -851,7 +795,7 @@ pub fn noctis() -> UserThemeFamily { ( "tag".into(), UserHighlightStyle { - color: Some(rgba(0xff5792ff).into()), + color: Some(rgba(0xe64100ff).into()), ..Default::default() }, ), @@ -872,7 +816,7 @@ pub fn noctis() -> UserThemeFamily { ( "type".into(), UserHighlightStyle { - color: Some(rgba(0x00bdd6ff).into()), + color: Some(rgba(0xb3694dff).into()), ..Default::default() }, ), @@ -963,6 +907,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0x8ca6a6ff).into()), + ..Default::default() + }, + ), ( "constant".into(), UserHighlightStyle { @@ -970,20 +921,6 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), - ( - "constructor".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), - ..Default::default() - }, - ), - ( - "emphasis".into(), - UserHighlightStyle { - font_style: Some(UserFontStyle::Italic), - ..Default::default() - }, - ), ( "function".into(), UserHighlightStyle { @@ -994,7 +931,7 @@ pub fn noctis() -> UserThemeFamily { ( "keyword".into(), UserHighlightStyle { - color: Some(rgba(0xff5792ff).into()), + color: Some(rgba(0xe64100ff).into()), ..Default::default() }, ), @@ -1008,14 +945,14 @@ pub fn noctis() -> UserThemeFamily { ( "link_text".into(), UserHighlightStyle { - color: Some(rgba(0x0095a8ff).into()), + color: Some(rgba(0x00bdd6ff).into()), ..Default::default() }, ), ( "link_uri".into(), UserHighlightStyle { - color: Some(rgba(0x0095a8ff).into()), + color: Some(rgba(0x00bdd6ff).into()), ..Default::default() }, ), @@ -1026,13 +963,6 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), - ( - "operator".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), - ..Default::default() - }, - ), ( "property".into(), UserHighlightStyle { @@ -1043,7 +973,7 @@ pub fn noctis() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0x8ca6a6ff).into()), + color: Some(rgba(0x004d57ff).into()), ..Default::default() }, ), @@ -1071,7 +1001,7 @@ pub fn noctis() -> UserThemeFamily { ( "tag".into(), UserHighlightStyle { - color: Some(rgba(0xff5792ff).into()), + color: Some(rgba(0xe64100ff).into()), ..Default::default() }, ), @@ -1092,7 +1022,7 @@ pub fn noctis() -> UserThemeFamily { ( "type".into(), UserHighlightStyle { - color: Some(rgba(0x00bdd6ff).into()), + color: Some(rgba(0xb3694dff).into()), ..Default::default() }, ), @@ -1183,6 +1113,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0x5e7887ff).into()), + ..Default::default() + }, + ), ( "constant".into(), UserHighlightStyle { @@ -1190,20 +1127,6 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), - ( - "constructor".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), - ..Default::default() - }, - ), - ( - "emphasis".into(), - UserHighlightStyle { - font_style: Some(UserFontStyle::Italic), - ..Default::default() - }, - ), ( "function".into(), UserHighlightStyle { @@ -1214,7 +1137,7 @@ pub fn noctis() -> UserThemeFamily { ( "keyword".into(), UserHighlightStyle { - color: Some(rgba(0xc88da2ff).into()), + color: Some(rgba(0xc37455ff).into()), ..Default::default() }, ), @@ -1228,14 +1151,14 @@ pub fn noctis() -> UserThemeFamily { ( "link_text".into(), UserHighlightStyle { - color: Some(rgba(0x3f848dff).into()), + color: Some(rgba(0x72b7c0ff).into()), ..Default::default() }, ), ( "link_uri".into(), UserHighlightStyle { - color: Some(rgba(0x3f848dff).into()), + color: Some(rgba(0x72b7c0ff).into()), ..Default::default() }, ), @@ -1246,13 +1169,6 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), - ( - "operator".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), - ..Default::default() - }, - ), ( "property".into(), UserHighlightStyle { @@ -1263,7 +1179,7 @@ pub fn noctis() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0x5e7887ff).into()), + color: Some(rgba(0xc5cdd3ff).into()), ..Default::default() }, ), @@ -1291,7 +1207,7 @@ pub fn noctis() -> UserThemeFamily { ( "tag".into(), UserHighlightStyle { - color: Some(rgba(0xc88da2ff).into()), + color: Some(rgba(0xc37455ff).into()), ..Default::default() }, ), @@ -1312,7 +1228,7 @@ pub fn noctis() -> UserThemeFamily { ( "type".into(), UserHighlightStyle { - color: Some(rgba(0x72b7c0ff).into()), + color: Some(rgba(0xbe856fff).into()), ..Default::default() }, ), @@ -1403,6 +1319,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0x5b858bff).into()), + ..Default::default() + }, + ), ( "constant".into(), UserHighlightStyle { @@ -1410,20 +1333,6 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), - ( - "constructor".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), - ..Default::default() - }, - ), - ( - "emphasis".into(), - UserHighlightStyle { - font_style: Some(UserFontStyle::Italic), - ..Default::default() - }, - ), ( "function".into(), UserHighlightStyle { @@ -1434,7 +1343,7 @@ pub fn noctis() -> UserThemeFamily { ( "keyword".into(), UserHighlightStyle { - color: Some(rgba(0xdf769bff).into()), + color: Some(rgba(0xe66533ff).into()), ..Default::default() }, ), @@ -1448,14 +1357,14 @@ pub fn noctis() -> UserThemeFamily { ( "link_text".into(), UserHighlightStyle { - color: Some(rgba(0x16a3b6ff).into()), + color: Some(rgba(0x49d6e9ff).into()), ..Default::default() }, ), ( "link_uri".into(), UserHighlightStyle { - color: Some(rgba(0x16a3b6ff).into()), + color: Some(rgba(0x49d6e9ff).into()), ..Default::default() }, ), @@ -1466,13 +1375,6 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), - ( - "operator".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), - ..Default::default() - }, - ), ( "property".into(), UserHighlightStyle { @@ -1483,7 +1385,7 @@ pub fn noctis() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0x5b858bff).into()), + color: Some(rgba(0xb2cacdff).into()), ..Default::default() }, ), @@ -1511,7 +1413,7 @@ pub fn noctis() -> UserThemeFamily { ( "tag".into(), UserHighlightStyle { - color: Some(rgba(0xdf769bff).into()), + color: Some(rgba(0xe66533ff).into()), ..Default::default() }, ), @@ -1532,7 +1434,7 @@ pub fn noctis() -> UserThemeFamily { ( "type".into(), UserHighlightStyle { - color: Some(rgba(0x49d6e9ff).into()), + color: Some(rgba(0xd67e5cff).into()), ..Default::default() }, ), @@ -1623,6 +1525,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0x5b858bff).into()), + ..Default::default() + }, + ), ( "constant".into(), UserHighlightStyle { @@ -1630,20 +1539,6 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), - ( - "constructor".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), - ..Default::default() - }, - ), - ( - "emphasis".into(), - UserHighlightStyle { - font_style: Some(UserFontStyle::Italic), - ..Default::default() - }, - ), ( "function".into(), UserHighlightStyle { @@ -1654,7 +1549,7 @@ pub fn noctis() -> UserThemeFamily { ( "keyword".into(), UserHighlightStyle { - color: Some(rgba(0xdf769bff).into()), + color: Some(rgba(0xe66533ff).into()), ..Default::default() }, ), @@ -1668,14 +1563,14 @@ pub fn noctis() -> UserThemeFamily { ( "link_text".into(), UserHighlightStyle { - color: Some(rgba(0x16a3b6ff).into()), + color: Some(rgba(0x49d6e9ff).into()), ..Default::default() }, ), ( "link_uri".into(), UserHighlightStyle { - color: Some(rgba(0x16a3b6ff).into()), + color: Some(rgba(0x49d6e9ff).into()), ..Default::default() }, ), @@ -1686,13 +1581,6 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), - ( - "operator".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), - ..Default::default() - }, - ), ( "property".into(), UserHighlightStyle { @@ -1703,7 +1591,7 @@ pub fn noctis() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0x5b858bff).into()), + color: Some(rgba(0xb2cacdff).into()), ..Default::default() }, ), @@ -1731,7 +1619,7 @@ pub fn noctis() -> UserThemeFamily { ( "tag".into(), UserHighlightStyle { - color: Some(rgba(0xdf769bff).into()), + color: Some(rgba(0xe66533ff).into()), ..Default::default() }, ), @@ -1752,7 +1640,7 @@ pub fn noctis() -> UserThemeFamily { ( "type".into(), UserHighlightStyle { - color: Some(rgba(0x49d6e9ff).into()), + color: Some(rgba(0xd67e5cff).into()), ..Default::default() }, ), @@ -1843,6 +1731,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0x5b858bff).into()), + ..Default::default() + }, + ), ( "constant".into(), UserHighlightStyle { @@ -1850,20 +1745,6 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), - ( - "constructor".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), - ..Default::default() - }, - ), - ( - "emphasis".into(), - UserHighlightStyle { - font_style: Some(UserFontStyle::Italic), - ..Default::default() - }, - ), ( "function".into(), UserHighlightStyle { @@ -1874,7 +1755,7 @@ pub fn noctis() -> UserThemeFamily { ( "keyword".into(), UserHighlightStyle { - color: Some(rgba(0xdf769bff).into()), + color: Some(rgba(0xe66533ff).into()), ..Default::default() }, ), @@ -1888,14 +1769,14 @@ pub fn noctis() -> UserThemeFamily { ( "link_text".into(), UserHighlightStyle { - color: Some(rgba(0x16a3b6ff).into()), + color: Some(rgba(0x49d6e9ff).into()), ..Default::default() }, ), ( "link_uri".into(), UserHighlightStyle { - color: Some(rgba(0x16a3b6ff).into()), + color: Some(rgba(0x49d6e9ff).into()), ..Default::default() }, ), @@ -1906,13 +1787,6 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), - ( - "operator".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), - ..Default::default() - }, - ), ( "property".into(), UserHighlightStyle { @@ -1923,7 +1797,7 @@ pub fn noctis() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0x5b858bff).into()), + color: Some(rgba(0xb2cacdff).into()), ..Default::default() }, ), @@ -1951,7 +1825,7 @@ pub fn noctis() -> UserThemeFamily { ( "tag".into(), UserHighlightStyle { - color: Some(rgba(0xdf769bff).into()), + color: Some(rgba(0xe66533ff).into()), ..Default::default() }, ), @@ -1972,7 +1846,7 @@ pub fn noctis() -> UserThemeFamily { ( "type".into(), UserHighlightStyle { - color: Some(rgba(0x49d6e9ff).into()), + color: Some(rgba(0xd67e5cff).into()), ..Default::default() }, ), @@ -2063,6 +1937,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0x716c93ff).into()), + ..Default::default() + }, + ), ( "constant".into(), UserHighlightStyle { @@ -2070,20 +1951,6 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), - ( - "constructor".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), - ..Default::default() - }, - ), - ( - "emphasis".into(), - UserHighlightStyle { - font_style: Some(UserFontStyle::Italic), - ..Default::default() - }, - ), ( "function".into(), UserHighlightStyle { @@ -2094,7 +1961,7 @@ pub fn noctis() -> UserThemeFamily { ( "keyword".into(), UserHighlightStyle { - color: Some(rgba(0xdf769bff).into()), + color: Some(rgba(0xe66533ff).into()), ..Default::default() }, ), @@ -2108,14 +1975,14 @@ pub fn noctis() -> UserThemeFamily { ( "link_text".into(), UserHighlightStyle { - color: Some(rgba(0x16a3b6ff).into()), + color: Some(rgba(0x49d6e9ff).into()), ..Default::default() }, ), ( "link_uri".into(), UserHighlightStyle { - color: Some(rgba(0x16a3b6ff).into()), + color: Some(rgba(0x49d6e9ff).into()), ..Default::default() }, ), @@ -2126,13 +1993,6 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), - ( - "operator".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), - ..Default::default() - }, - ), ( "property".into(), UserHighlightStyle { @@ -2143,7 +2003,7 @@ pub fn noctis() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0x716c93ff).into()), + color: Some(rgba(0xc5c2d6ff).into()), ..Default::default() }, ), @@ -2171,7 +2031,7 @@ pub fn noctis() -> UserThemeFamily { ( "tag".into(), UserHighlightStyle { - color: Some(rgba(0xdf769bff).into()), + color: Some(rgba(0xe66533ff).into()), ..Default::default() }, ), @@ -2192,7 +2052,7 @@ pub fn noctis() -> UserThemeFamily { ( "type".into(), UserHighlightStyle { - color: Some(rgba(0x49d6e9ff).into()), + color: Some(rgba(0xd67e5cff).into()), ..Default::default() }, ), @@ -2283,6 +2143,13 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0x7f659aff).into()), + ..Default::default() + }, + ), ( "constant".into(), UserHighlightStyle { @@ -2290,20 +2157,6 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), - ( - "constructor".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), - ..Default::default() - }, - ), - ( - "emphasis".into(), - UserHighlightStyle { - font_style: Some(UserFontStyle::Italic), - ..Default::default() - }, - ), ( "function".into(), UserHighlightStyle { @@ -2314,7 +2167,7 @@ pub fn noctis() -> UserThemeFamily { ( "keyword".into(), UserHighlightStyle { - color: Some(rgba(0xdf769bff).into()), + color: Some(rgba(0xe66533ff).into()), ..Default::default() }, ), @@ -2328,14 +2181,14 @@ pub fn noctis() -> UserThemeFamily { ( "link_text".into(), UserHighlightStyle { - color: Some(rgba(0x16a3b6ff).into()), + color: Some(rgba(0x49d6e9ff).into()), ..Default::default() }, ), ( "link_uri".into(), UserHighlightStyle { - color: Some(rgba(0x16a3b6ff).into()), + color: Some(rgba(0x49d6e9ff).into()), ..Default::default() }, ), @@ -2346,13 +2199,6 @@ pub fn noctis() -> UserThemeFamily { ..Default::default() }, ), - ( - "operator".into(), - UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), - ..Default::default() - }, - ), ( "property".into(), UserHighlightStyle { @@ -2363,7 +2209,7 @@ pub fn noctis() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0x7f659aff).into()), + color: Some(rgba(0xccbfd9ff).into()), ..Default::default() }, ), @@ -2391,7 +2237,7 @@ pub fn noctis() -> UserThemeFamily { ( "tag".into(), UserHighlightStyle { - color: Some(rgba(0xdf769bff).into()), + color: Some(rgba(0xe66533ff).into()), ..Default::default() }, ), @@ -2412,7 +2258,7 @@ pub fn noctis() -> UserThemeFamily { ( "type".into(), UserHighlightStyle { - color: Some(rgba(0x49d6e9ff).into()), + color: Some(rgba(0xd67e5cff).into()), ..Default::default() }, ), diff --git a/crates/theme2/src/themes/nord.rs b/crates/theme2/src/themes/nord.rs index e1c4e35f58..cc863f3716 100644 --- a/crates/theme2/src/themes/nord.rs +++ b/crates/theme2/src/themes/nord.rs @@ -90,16 +90,16 @@ pub fn nord() -> UserThemeFamily { }, ), ( - "constant".into(), + "comment.doc".into(), UserHighlightStyle { - color: Some(rgba(0xebcb8bff).into()), + color: Some(rgba(0x616e88ff).into()), ..Default::default() }, ), ( - "emphasis.strong".into(), + "constant".into(), UserHighlightStyle { - font_weight: Some(UserFontWeight(700.0)), + color: Some(rgba(0xebcb8bff).into()), ..Default::default() }, ), @@ -134,7 +134,7 @@ pub fn nord() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0xeceff4ff).into()), + color: Some(rgba(0x81a1c1ff).into()), ..Default::default() }, ), @@ -183,7 +183,7 @@ pub fn nord() -> UserThemeFamily { ( "variable".into(), UserHighlightStyle { - color: Some(rgba(0x81a1c1ff).into()), + color: Some(rgba(0xd8dee9ff).into()), ..Default::default() }, ), diff --git a/crates/theme2/src/themes/palenight.rs b/crates/theme2/src/themes/palenight.rs index 21e77dbacf..daee43f572 100644 --- a/crates/theme2/src/themes/palenight.rs +++ b/crates/theme2/src/themes/palenight.rs @@ -89,6 +89,14 @@ pub fn palenight() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0x697098ff).into()), + font_style: Some(UserFontStyle::Italic), + ..Default::default() + }, + ), ( "constant".into(), UserHighlightStyle { @@ -164,7 +172,7 @@ pub fn palenight() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0xc792eaff).into()), + color: Some(rgba(0x89ddffff).into()), ..Default::default() }, ), @@ -206,7 +214,7 @@ pub fn palenight() -> UserThemeFamily { ( "variable".into(), UserHighlightStyle { - color: Some(rgba(0xffcb6bff).into()), + color: Some(rgba(0xff5572ff).into()), ..Default::default() }, ), @@ -296,6 +304,14 @@ pub fn palenight() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0x697098ff).into()), + font_style: Some(UserFontStyle::Italic), + ..Default::default() + }, + ), ( "constant".into(), UserHighlightStyle { @@ -371,7 +387,7 @@ pub fn palenight() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0xc792eaff).into()), + color: Some(rgba(0x89ddffff).into()), ..Default::default() }, ), @@ -413,7 +429,7 @@ pub fn palenight() -> UserThemeFamily { ( "variable".into(), UserHighlightStyle { - color: Some(rgba(0xffcb6bff).into()), + color: Some(rgba(0xff5572ff).into()), ..Default::default() }, ), @@ -503,6 +519,14 @@ pub fn palenight() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0x697098ff).into()), + font_style: Some(UserFontStyle::Italic), + ..Default::default() + }, + ), ( "constant".into(), UserHighlightStyle { @@ -578,7 +602,7 @@ pub fn palenight() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0xc792eaff).into()), + color: Some(rgba(0x89ddffff).into()), ..Default::default() }, ), @@ -620,7 +644,7 @@ pub fn palenight() -> UserThemeFamily { ( "variable".into(), UserHighlightStyle { - color: Some(rgba(0xffcb6bff).into()), + color: Some(rgba(0xff5572ff).into()), ..Default::default() }, ), diff --git a/crates/theme2/src/themes/rose_pine.rs b/crates/theme2/src/themes/rose_pine.rs index 7107bb79a3..f4de7fb0d3 100644 --- a/crates/theme2/src/themes/rose_pine.rs +++ b/crates/theme2/src/themes/rose_pine.rs @@ -91,11 +91,18 @@ pub fn rose_pine() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0x6e6a86ff).into()), + font_style: Some(UserFontStyle::Italic), + ..Default::default() + }, + ), ( "function".into(), UserHighlightStyle { - color: Some(rgba(0xeb6f92ff).into()), - font_style: Some(UserFontStyle::Italic), + color: Some(rgba(0xe0def4ff).into()), ..Default::default() }, ), @@ -123,7 +130,7 @@ pub fn rose_pine() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0x908caaff).into()), + color: Some(rgba(0x6e6a86ff).into()), ..Default::default() }, ), @@ -165,8 +172,7 @@ pub fn rose_pine() -> UserThemeFamily { ( "variable".into(), UserHighlightStyle { - color: Some(rgba(0xebbcbaff).into()), - font_style: Some(UserFontStyle::Italic), + color: Some(rgba(0xc4a7e7ff).into()), ..Default::default() }, ), @@ -258,11 +264,18 @@ pub fn rose_pine() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0x6e6a86ff).into()), + font_style: Some(UserFontStyle::Italic), + ..Default::default() + }, + ), ( "function".into(), UserHighlightStyle { - color: Some(rgba(0xeb6f92ff).into()), - font_style: Some(UserFontStyle::Italic), + color: Some(rgba(0xe0def4ff).into()), ..Default::default() }, ), @@ -290,7 +303,7 @@ pub fn rose_pine() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0x908caaff).into()), + color: Some(rgba(0x6e6a86ff).into()), ..Default::default() }, ), @@ -332,8 +345,7 @@ pub fn rose_pine() -> UserThemeFamily { ( "variable".into(), UserHighlightStyle { - color: Some(rgba(0xea9a97ff).into()), - font_style: Some(UserFontStyle::Italic), + color: Some(rgba(0xc4a7e7ff).into()), ..Default::default() }, ), @@ -425,11 +437,18 @@ pub fn rose_pine() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0x9893a5ff).into()), + font_style: Some(UserFontStyle::Italic), + ..Default::default() + }, + ), ( "function".into(), UserHighlightStyle { - color: Some(rgba(0xb4637aff).into()), - font_style: Some(UserFontStyle::Italic), + color: Some(rgba(0x575279ff).into()), ..Default::default() }, ), @@ -457,7 +476,7 @@ pub fn rose_pine() -> UserThemeFamily { ( "punctuation".into(), UserHighlightStyle { - color: Some(rgba(0x797593ff).into()), + color: Some(rgba(0x9893a5ff).into()), ..Default::default() }, ), @@ -499,8 +518,7 @@ pub fn rose_pine() -> UserThemeFamily { ( "variable".into(), UserHighlightStyle { - color: Some(rgba(0xd7827eff).into()), - font_style: Some(UserFontStyle::Italic), + color: Some(rgba(0x907aa9ff).into()), ..Default::default() }, ), diff --git a/crates/theme2/src/themes/solarized.rs b/crates/theme2/src/themes/solarized.rs index 12e3d1f399..e77d2e79f9 100644 --- a/crates/theme2/src/themes/solarized.rs +++ b/crates/theme2/src/themes/solarized.rs @@ -86,6 +86,14 @@ pub fn solarized() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0x657b83ff).into()), + font_style: Some(UserFontStyle::Italic), + ..Default::default() + }, + ), ( "constant".into(), UserHighlightStyle { @@ -117,14 +125,14 @@ pub fn solarized() -> UserThemeFamily { ( "function".into(), UserHighlightStyle { - color: Some(rgba(0x268bd2ff).into()), + color: Some(rgba(0x839496ff).into()), ..Default::default() }, ), ( "keyword".into(), UserHighlightStyle { - color: Some(rgba(0x859900ff).into()), + color: Some(rgba(0x268bd2ff).into()), ..Default::default() }, ), @@ -180,14 +188,14 @@ pub fn solarized() -> UserThemeFamily { ( "type".into(), UserHighlightStyle { - color: Some(rgba(0xcb4b16ff).into()), + color: Some(rgba(0x859900ff).into()), ..Default::default() }, ), ( "variable".into(), UserHighlightStyle { - color: Some(rgba(0x268bd2ff).into()), + color: Some(rgba(0x839496ff).into()), ..Default::default() }, ), @@ -271,6 +279,14 @@ pub fn solarized() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0x93a1a1ff).into()), + font_style: Some(UserFontStyle::Italic), + ..Default::default() + }, + ), ( "constant".into(), UserHighlightStyle { @@ -302,14 +318,14 @@ pub fn solarized() -> UserThemeFamily { ( "function".into(), UserHighlightStyle { - color: Some(rgba(0x268bd2ff).into()), + color: Some(rgba(0x657b83ff).into()), ..Default::default() }, ), ( "keyword".into(), UserHighlightStyle { - color: Some(rgba(0x859900ff).into()), + color: Some(rgba(0x268bd2ff).into()), ..Default::default() }, ), @@ -358,7 +374,7 @@ pub fn solarized() -> UserThemeFamily { ( "type".into(), UserHighlightStyle { - color: Some(rgba(0x268bd2ff).into()), + color: Some(rgba(0x859900ff).into()), ..Default::default() }, ), diff --git a/crates/theme2/src/themes/synthwave_84.rs b/crates/theme2/src/themes/synthwave_84.rs index 731c2527f5..585d584c68 100644 --- a/crates/theme2/src/themes/synthwave_84.rs +++ b/crates/theme2/src/themes/synthwave_84.rs @@ -75,6 +75,14 @@ pub fn synthwave_84() -> UserThemeFamily { ..Default::default() }, ), + ( + "comment.doc".into(), + UserHighlightStyle { + color: Some(rgba(0x848bbdff).into()), + font_style: Some(UserFontStyle::Italic), + ..Default::default() + }, + ), ( "function".into(), UserHighlightStyle { @@ -162,7 +170,8 @@ pub fn synthwave_84() -> UserThemeFamily { ( "variable".into(), UserHighlightStyle { - color: Some(rgba(0xff7edbff).into()), + color: Some(rgba(0xfe4450ff).into()), + font_weight: Some(UserFontWeight(700.0)), ..Default::default() }, ), diff --git a/crates/theme_importer/src/main.rs b/crates/theme_importer/src/main.rs index 24e95ca918..80e979df98 100644 --- a/crates/theme_importer/src/main.rs +++ b/crates/theme_importer/src/main.rs @@ -15,7 +15,7 @@ use gpui::serde_json; use json_comments::StripComments; use log::LevelFilter; use serde::Deserialize; -use simplelog::SimpleLogger; +use simplelog::{TermLogger, TerminalMode}; use theme::{Appearance, UserThemeFamily}; use crate::theme_printer::UserThemeFamilyPrinter; @@ -56,9 +56,17 @@ fn main() -> Result<()> { const SOURCE_PATH: &str = "assets/themes/src/vscode"; const OUT_PATH: &str = "crates/theme2/src/themes"; - SimpleLogger::init(LevelFilter::Info, Default::default()).expect("could not initialize logger"); + let log_config = simplelog::ConfigBuilder::new() + .set_level_color(log::Level::Trace, simplelog::Color::Cyan) + .set_level_color(log::Level::Info, simplelog::Color::Blue) + .set_level_color(log::Level::Warn, simplelog::Color::Yellow) + .set_level_color(log::Level::Error, simplelog::Color::Red) + .build(); - println!("Loading themes source..."); + TermLogger::init(LevelFilter::Trace, log_config, TerminalMode::Mixed) + .expect("could not initialize logger"); + + log::info!("Loading themes source..."); let vscode_themes_path = PathBuf::from_str(SOURCE_PATH)?; if !vscode_themes_path.exists() { return Err(anyhow!(format!( @@ -91,7 +99,7 @@ fn main() -> Result<()> { let license_file_path = theme_family_dir.path().join("LICENSE"); if !license_file_path.exists() { - println!("Skipping theme family '{}' because it does not have a LICENSE file. This theme will only be imported once a LICENSE file is provided.", theme_family_slug); + log::info!("Skipping theme family '{}' because it does not have a LICENSE file. This theme will only be imported once a LICENSE file is provided.", theme_family_slug); continue; } @@ -103,12 +111,14 @@ fn main() -> Result<()> { let mut themes = Vec::new(); for theme_metadata in family_metadata.themes { + log::info!("Converting '{}' theme", &theme_metadata.name); + let theme_file_path = theme_family_dir.path().join(&theme_metadata.file_name); let theme_file = match File::open(&theme_file_path) { Ok(file) => file, Err(_) => { - println!("Failed to open file at path: {:?}", theme_file_path); + log::info!("Failed to open file at path: {:?}", theme_file_path); continue; } }; @@ -136,7 +146,7 @@ fn main() -> Result<()> { let themes_output_path = PathBuf::from_str(OUT_PATH)?; if !themes_output_path.exists() { - println!("Creating directory: {:?}", themes_output_path); + log::info!("Creating directory: {:?}", themes_output_path); fs::create_dir_all(&themes_output_path)?; } @@ -149,7 +159,7 @@ fn main() -> Result<()> { let mut output_file = File::create(themes_output_path.join(format!("{theme_family_slug}.rs")))?; - println!( + log::info!( "Creating file: {:?}", themes_output_path.join(format!("{theme_family_slug}.rs")) ); @@ -220,17 +230,17 @@ fn main() -> Result<()> { mod_rs_file.write_all(mod_rs_contents.as_bytes())?; - println!("Formatting themes..."); + log::info!("Formatting themes..."); let format_result = format_themes_crate() // We need to format a second time to catch all of the formatting issues. .and_then(|_| format_themes_crate()); if let Err(err) = format_result { - eprintln!("Failed to format themes: {}", err); + log::error!("Failed to format themes: {}", err); } - println!("Done!"); + log::info!("Done!"); Ok(()) } diff --git a/crates/theme_importer/src/vscode/converter.rs b/crates/theme_importer/src/vscode/converter.rs index bc8253e700..4e4b82a2c5 100644 --- a/crates/theme_importer/src/vscode/converter.rs +++ b/crates/theme_importer/src/vscode/converter.rs @@ -275,20 +275,31 @@ impl VsCodeThemeConverter { let mut highlight_styles = IndexMap::new(); for syntax_token in ZedSyntaxToken::iter() { - let multimatch_scopes = syntax_token.to_vscode(); + let best_match = syntax_token + .find_best_token_color_match(&self.theme.token_colors) + .or_else(|| { + syntax_token.fallbacks().iter().find_map(|fallback| { + fallback.find_best_token_color_match(&self.theme.token_colors) + }) + }); - let token_color = self.theme.token_colors.iter().find(|token_color| { - token_color - .scope - .as_ref() - .map(|scope| scope.multimatch(&multimatch_scopes)) - .unwrap_or(false) - }); - - let Some(token_color) = token_color else { + let Some(token_color) = best_match else { + log::warn!("No matching token color found for '{syntax_token}'"); continue; }; + log::info!( + "Matched '{syntax_token}' to '{}'", + token_color + .name + .clone() + .or_else(|| token_color + .scope + .as_ref() + .map(|scope| format!("{:?}", scope))) + .unwrap_or_else(|| "no identifier".to_string()) + ); + let highlight_style = UserHighlightStyle { color: token_color .settings diff --git a/crates/theme_importer/src/vscode/syntax.rs b/crates/theme_importer/src/vscode/syntax.rs index 7f93925ee8..318eb484c8 100644 --- a/crates/theme_importer/src/vscode/syntax.rs +++ b/crates/theme_importer/src/vscode/syntax.rs @@ -1,3 +1,4 @@ +use indexmap::IndexMap; use serde::Deserialize; use strum::EnumIter; @@ -8,19 +9,9 @@ pub enum VsCodeTokenScope { Many(Vec), } -impl VsCodeTokenScope { - pub fn multimatch(&self, matches: &[&'static str]) -> bool { - match self { - VsCodeTokenScope::One(scope) => matches.iter().any(|&s| s == scope), - VsCodeTokenScope::Many(scopes) => { - matches.iter().any(|s| scopes.contains(&s.to_string())) - } - } - } -} - #[derive(Debug, Deserialize)] pub struct VsCodeTokenColor { + pub name: Option, pub scope: Option, pub settings: VsCodeTokenColorSettings, } @@ -127,6 +118,60 @@ impl std::fmt::Display for ZedSyntaxToken { } impl ZedSyntaxToken { + pub fn find_best_token_color_match<'a>( + &self, + token_colors: &'a [VsCodeTokenColor], + ) -> Option<&'a VsCodeTokenColor> { + let mut ranked_matches = IndexMap::new(); + + for (ix, token_color) in token_colors.iter().enumerate() { + if token_color.settings.foreground.is_none() { + continue; + } + + let Some(rank) = self.rank_match(token_color) else { + continue; + }; + + if rank > 0 { + ranked_matches.insert(ix, rank); + } + } + + ranked_matches + .into_iter() + .max_by_key(|(_, rank)| *rank) + .map(|(ix, _)| &token_colors[ix]) + } + + fn rank_match(&self, token_color: &VsCodeTokenColor) -> Option { + let candidate_scopes = match token_color.scope.as_ref()? { + VsCodeTokenScope::One(scope) => vec![scope], + VsCodeTokenScope::Many(scopes) => scopes.iter().collect(), + } + .iter() + .map(|scope| scope.as_str()) + .collect::>(); + + let mut matches = 0; + + for scope in self.to_vscode() { + if candidate_scopes.contains(&scope) { + matches += 1; + } + } + + Some(matches) + } + + pub fn fallbacks(&self) -> &[Self] { + match self { + ZedSyntaxToken::CommentDoc => &[ZedSyntaxToken::Comment], + ZedSyntaxToken::VariableSpecial => &[ZedSyntaxToken::Variable], + _ => &[], + } + } + pub fn to_vscode(&self) -> Vec<&'static str> { match self { ZedSyntaxToken::Attribute => vec!["entity.other.attribute-name"], @@ -150,7 +195,15 @@ impl ZedSyntaxToken { "variable.function", "support.function", ], - ZedSyntaxToken::Keyword => vec!["keyword"], + ZedSyntaxToken::Hint => vec![], + ZedSyntaxToken::Keyword => vec![ + "keyword", + "keyword.control", + "keyword.control.fun", + "keyword.other.fn.rust", + "punctuation.accessor", + "entity.name.tag", + ], ZedSyntaxToken::Label => vec![ "label", "entity.name", @@ -161,7 +214,9 @@ impl ZedSyntaxToken { ZedSyntaxToken::LinkUri => vec!["markup.underline.link", "string.other.link"], ZedSyntaxToken::Number => vec!["constant.numeric", "number"], ZedSyntaxToken::Operator => vec!["operator", "keyword.operator"], + ZedSyntaxToken::Predictive => vec![], ZedSyntaxToken::Preproc => vec!["preproc"], + ZedSyntaxToken::Primary => vec![], ZedSyntaxToken::Property => vec![ "variable.member", "support.type.property-name", @@ -202,11 +257,20 @@ impl ZedSyntaxToken { ZedSyntaxToken::Tag => vec!["tag", "entity.name.tag", "meta.tag.sgml"], ZedSyntaxToken::TextLiteral => vec!["text.literal", "string"], ZedSyntaxToken::Title => vec!["title", "entity.name"], - ZedSyntaxToken::Type => vec!["entity.name.type", "support.type", "support.class"], + ZedSyntaxToken::Type => vec![ + "entity.name.type", + "entity.name.type.primitive", + "entity.name.type.numeric", + "keyword.type", + "support.type", + "support.type.primitive", + "support.class", + ], ZedSyntaxToken::Variable => vec![ "variable", "variable.language", "variable.member", + "variable.parameter", "variable.parameter.function-call", ], ZedSyntaxToken::VariableSpecial => vec![ @@ -216,7 +280,6 @@ impl ZedSyntaxToken { "variable.language", ], ZedSyntaxToken::Variant => vec!["variant"], - _ => vec![], } } } From a88372dc99ebb6bacb5ce724c26d9f5f5b26b2b7 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Thu, 7 Dec 2023 22:24:10 -0500 Subject: [PATCH 017/115] Set background colors for title and status bars --- crates/theme2/src/themes/andromeda.rs | 4 ++++ crates/theme2/src/themes/ayu.rs | 6 +++++ crates/theme2/src/themes/dracula.rs | 2 ++ crates/theme2/src/themes/gruvbox.rs | 12 ++++++++++ crates/theme2/src/themes/night_owl.rs | 4 ++++ crates/theme2/src/themes/noctis.rs | 22 +++++++++++++++++++ crates/theme2/src/themes/nord.rs | 2 ++ crates/theme2/src/themes/palenight.rs | 6 +++++ crates/theme2/src/themes/rose_pine.rs | 6 +++++ crates/theme2/src/themes/solarized.rs | 4 ++++ crates/theme2/src/themes/synthwave_84.rs | 2 ++ crates/theme_importer/src/vscode/converter.rs | 8 +++++++ 12 files changed, 78 insertions(+) diff --git a/crates/theme2/src/themes/andromeda.rs b/crates/theme2/src/themes/andromeda.rs index 8dfc32d8b5..e09f0b222f 100644 --- a/crates/theme2/src/themes/andromeda.rs +++ b/crates/theme2/src/themes/andromeda.rs @@ -34,6 +34,8 @@ pub fn andromeda() -> UserThemeFamily { drop_target_background: Some(rgba(0x3a404eff).into()), ghost_element_hover: Some(rgba(0x23262eff).into()), text: Some(rgba(0xd5ced9ff).into()), + status_bar_background: Some(rgba(0x23262eff).into()), + title_bar_background: Some(rgba(0x23262eff).into()), tab_inactive_background: Some(rgba(0x23262eff).into()), tab_active_background: Some(rgba(0x23262eff).into()), editor_background: Some(rgba(0x23262eff).into()), @@ -192,6 +194,8 @@ pub fn andromeda() -> UserThemeFamily { drop_target_background: Some(rgba(0x3a404eff).into()), ghost_element_hover: Some(rgba(0x23262eff).into()), text: Some(rgba(0xd5ced9ff).into()), + status_bar_background: Some(rgba(0x23262eff).into()), + title_bar_background: Some(rgba(0x23262eff).into()), tab_inactive_background: Some(rgba(0x23262eff).into()), tab_active_background: Some(rgba(0x262a33ff).into()), editor_background: Some(rgba(0x262a33ff).into()), diff --git a/crates/theme2/src/themes/ayu.rs b/crates/theme2/src/themes/ayu.rs index fe9d750461..762c1a5279 100644 --- a/crates/theme2/src/themes/ayu.rs +++ b/crates/theme2/src/themes/ayu.rs @@ -33,6 +33,8 @@ pub fn ayu() -> UserThemeFamily { element_selected: Some(rgba(0x56728f1f).into()), ghost_element_hover: Some(rgba(0x56728f1f).into()), text: Some(rgba(0x8a9199ff).into()), + status_bar_background: Some(rgba(0xf8f9faff).into()), + title_bar_background: Some(rgba(0xf8f9faff).into()), tab_inactive_background: Some(rgba(0xf8f9faff).into()), tab_active_background: Some(rgba(0xf8f9faff).into()), editor_background: Some(rgba(0xf8f9faff).into()), @@ -304,6 +306,8 @@ pub fn ayu() -> UserThemeFamily { element_selected: Some(rgba(0x63759926).into()), ghost_element_hover: Some(rgba(0x63759926).into()), text: Some(rgba(0x707a8cff).into()), + status_bar_background: Some(rgba(0x1f2430ff).into()), + title_bar_background: Some(rgba(0x1f2430ff).into()), tab_inactive_background: Some(rgba(0x1f2430ff).into()), tab_active_background: Some(rgba(0x1f2430ff).into()), editor_background: Some(rgba(0x1f2430ff).into()), @@ -575,6 +579,8 @@ pub fn ayu() -> UserThemeFamily { element_selected: Some(rgba(0x47526640).into()), ghost_element_hover: Some(rgba(0x47526640).into()), text: Some(rgba(0x565b66ff).into()), + status_bar_background: Some(rgba(0x0b0e14ff).into()), + title_bar_background: Some(rgba(0x0b0e14ff).into()), tab_inactive_background: Some(rgba(0x0b0e14ff).into()), tab_active_background: Some(rgba(0x0b0e14ff).into()), editor_background: Some(rgba(0x0b0e14ff).into()), diff --git a/crates/theme2/src/themes/dracula.rs b/crates/theme2/src/themes/dracula.rs index bf8fc12b8a..c52bdb49b1 100644 --- a/crates/theme2/src/themes/dracula.rs +++ b/crates/theme2/src/themes/dracula.rs @@ -33,6 +33,8 @@ pub fn dracula() -> UserThemeFamily { drop_target_background: Some(rgba(0x44475aff).into()), ghost_element_hover: Some(rgba(0x44475a75).into()), text: Some(rgba(0xf8f8f2ff).into()), + status_bar_background: Some(rgba(0x191a21ff).into()), + title_bar_background: Some(rgba(0x21222cff).into()), tab_inactive_background: Some(rgba(0x21222cff).into()), tab_active_background: Some(rgba(0x282a36ff).into()), editor_background: Some(rgba(0x282a36ff).into()), diff --git a/crates/theme2/src/themes/gruvbox.rs b/crates/theme2/src/themes/gruvbox.rs index 44d779071a..f801d44032 100644 --- a/crates/theme2/src/themes/gruvbox.rs +++ b/crates/theme2/src/themes/gruvbox.rs @@ -32,6 +32,8 @@ pub fn gruvbox() -> UserThemeFamily { drop_target_background: Some(rgba(0x3c3836ff).into()), ghost_element_hover: Some(rgba(0x3c383680).into()), text: Some(rgba(0xebdbb2ff).into()), + status_bar_background: Some(rgba(0x1d2021ff).into()), + title_bar_background: Some(rgba(0x1d2021ff).into()), tab_inactive_background: Some(rgba(0x1d2021ff).into()), tab_active_background: Some(rgba(0x32302fff).into()), editor_background: Some(rgba(0x1d2021ff).into()), @@ -231,6 +233,8 @@ pub fn gruvbox() -> UserThemeFamily { drop_target_background: Some(rgba(0x3c3836ff).into()), ghost_element_hover: Some(rgba(0x3c383680).into()), text: Some(rgba(0xebdbb2ff).into()), + status_bar_background: Some(rgba(0x282828ff).into()), + title_bar_background: Some(rgba(0x282828ff).into()), tab_inactive_background: Some(rgba(0x282828ff).into()), tab_active_background: Some(rgba(0x3c3836ff).into()), editor_background: Some(rgba(0x282828ff).into()), @@ -430,6 +434,8 @@ pub fn gruvbox() -> UserThemeFamily { drop_target_background: Some(rgba(0x3c3836ff).into()), ghost_element_hover: Some(rgba(0x3c383680).into()), text: Some(rgba(0xebdbb2ff).into()), + status_bar_background: Some(rgba(0x32302fff).into()), + title_bar_background: Some(rgba(0x32302fff).into()), tab_inactive_background: Some(rgba(0x32302fff).into()), tab_active_background: Some(rgba(0x504945ff).into()), editor_background: Some(rgba(0x32302fff).into()), @@ -629,6 +635,8 @@ pub fn gruvbox() -> UserThemeFamily { drop_target_background: Some(rgba(0xebdbb2ff).into()), ghost_element_hover: Some(rgba(0xebdbb280).into()), text: Some(rgba(0x3c3836ff).into()), + status_bar_background: Some(rgba(0xf9f5d7ff).into()), + title_bar_background: Some(rgba(0xf9f5d7ff).into()), tab_inactive_background: Some(rgba(0xf9f5d7ff).into()), tab_active_background: Some(rgba(0xf2e5bcff).into()), editor_background: Some(rgba(0xf9f5d7ff).into()), @@ -828,6 +836,8 @@ pub fn gruvbox() -> UserThemeFamily { drop_target_background: Some(rgba(0xebdbb2ff).into()), ghost_element_hover: Some(rgba(0xebdbb280).into()), text: Some(rgba(0x3c3836ff).into()), + status_bar_background: Some(rgba(0xfbf1c7ff).into()), + title_bar_background: Some(rgba(0xfbf1c7ff).into()), tab_inactive_background: Some(rgba(0xfbf1c7ff).into()), tab_active_background: Some(rgba(0xebdbb2ff).into()), editor_background: Some(rgba(0xfbf1c7ff).into()), @@ -1027,6 +1037,8 @@ pub fn gruvbox() -> UserThemeFamily { drop_target_background: Some(rgba(0xebdbb2ff).into()), ghost_element_hover: Some(rgba(0xebdbb280).into()), text: Some(rgba(0x3c3836ff).into()), + status_bar_background: Some(rgba(0xf2e5bcff).into()), + title_bar_background: Some(rgba(0xf2e5bcff).into()), tab_inactive_background: Some(rgba(0xf2e5bcff).into()), tab_active_background: Some(rgba(0xd5c4a1ff).into()), editor_background: Some(rgba(0xf2e5bcff).into()), diff --git a/crates/theme2/src/themes/night_owl.rs b/crates/theme2/src/themes/night_owl.rs index 13a931453b..94689f2e14 100644 --- a/crates/theme2/src/themes/night_owl.rs +++ b/crates/theme2/src/themes/night_owl.rs @@ -34,6 +34,8 @@ pub fn night_owl() -> UserThemeFamily { drop_target_background: Some(rgba(0x011627ff).into()), ghost_element_hover: Some(rgba(0x011627ff).into()), text: Some(rgba(0xd6deebff).into()), + status_bar_background: Some(rgba(0x011627ff).into()), + title_bar_background: Some(rgba(0x011627ff).into()), tab_inactive_background: Some(rgba(0x01111dff).into()), tab_active_background: Some(rgba(0x0b2942ff).into()), editor_background: Some(rgba(0x011627ff).into()), @@ -220,6 +222,8 @@ pub fn night_owl() -> UserThemeFamily { element_selected: Some(rgba(0xd3e8f8ff).into()), ghost_element_hover: Some(rgba(0xd3e8f8ff).into()), text: Some(rgba(0x403f53ff).into()), + status_bar_background: Some(rgba(0xf0f0f0ff).into()), + title_bar_background: Some(rgba(0xf0f0f0ff).into()), tab_inactive_background: Some(rgba(0xf0f0f0ff).into()), tab_active_background: Some(rgba(0xf6f6f6ff).into()), editor_background: Some(rgba(0xfbfbfbff).into()), diff --git a/crates/theme2/src/themes/noctis.rs b/crates/theme2/src/themes/noctis.rs index d19aeb61d3..23202260c6 100644 --- a/crates/theme2/src/themes/noctis.rs +++ b/crates/theme2/src/themes/noctis.rs @@ -34,6 +34,8 @@ pub fn noctis() -> UserThemeFamily { drop_target_background: Some(rgba(0x002a4dff).into()), ghost_element_hover: Some(rgba(0x00558a65).into()), text: Some(rgba(0xbecfdaff).into()), + status_bar_background: Some(rgba(0x07273bff).into()), + title_bar_background: Some(rgba(0x07273bff).into()), tab_inactive_background: Some(rgba(0x09334eff).into()), tab_active_background: Some(rgba(0x07273bff).into()), editor_background: Some(rgba(0x07273bff).into()), @@ -240,6 +242,8 @@ pub fn noctis() -> UserThemeFamily { drop_target_background: Some(rgba(0x38292eff).into()), ghost_element_hover: Some(rgba(0x533641ff).into()), text: Some(rgba(0xcbbec2ff).into()), + status_bar_background: Some(rgba(0x322a2dff).into()), + title_bar_background: Some(rgba(0x322a2dff).into()), tab_inactive_background: Some(rgba(0x413036ff).into()), tab_active_background: Some(rgba(0x322a2dff).into()), editor_background: Some(rgba(0x322a2dff).into()), @@ -446,6 +450,8 @@ pub fn noctis() -> UserThemeFamily { drop_target_background: Some(rgba(0xb2cacdff).into()), ghost_element_hover: Some(rgba(0xd1eafaff).into()), text: Some(rgba(0x005661ff).into()), + status_bar_background: Some(rgba(0xcaedf2ff).into()), + title_bar_background: Some(rgba(0xe7f2f3ff).into()), tab_inactive_background: Some(rgba(0xcaedf2ff).into()), tab_active_background: Some(rgba(0xf4f6f6ff).into()), editor_background: Some(rgba(0xf4f6f6ff).into()), @@ -652,6 +658,8 @@ pub fn noctis() -> UserThemeFamily { drop_target_background: Some(rgba(0xafaad4aa).into()), ghost_element_hover: Some(rgba(0xd2ccffff).into()), text: Some(rgba(0x0c006bff).into()), + status_bar_background: Some(rgba(0xe2dff6ff).into()), + title_bar_background: Some(rgba(0xedecf8ff).into()), tab_inactive_background: Some(rgba(0xe2dff6ff).into()), tab_active_background: Some(rgba(0xf2f1f8ff).into()), editor_background: Some(rgba(0xf2f1f8ff).into()), @@ -858,6 +866,8 @@ pub fn noctis() -> UserThemeFamily { drop_target_background: Some(rgba(0xcdcbb2ff).into()), ghost_element_hover: Some(rgba(0xd2f3f9ff).into()), text: Some(rgba(0x005661ff).into()), + status_bar_background: Some(rgba(0xf0e9d6ff).into()), + title_bar_background: Some(rgba(0xf9f1e1ff).into()), tab_inactive_background: Some(rgba(0xf0e9d6ff).into()), tab_active_background: Some(rgba(0xfef8ecff).into()), editor_background: Some(rgba(0xfef8ecff).into()), @@ -1064,6 +1074,8 @@ pub fn noctis() -> UserThemeFamily { drop_target_background: Some(rgba(0x152837ff).into()), ghost_element_hover: Some(rgba(0x00558aff).into()), text: Some(rgba(0xc5cdd3ff).into()), + status_bar_background: Some(rgba(0x1b2932ff).into()), + title_bar_background: Some(rgba(0x1b2932ff).into()), tab_inactive_background: Some(rgba(0x202e37ff).into()), tab_active_background: Some(rgba(0x1b2932ff).into()), editor_background: Some(rgba(0x1b2932ff).into()), @@ -1270,6 +1282,8 @@ pub fn noctis() -> UserThemeFamily { drop_target_background: Some(rgba(0x00404dff).into()), ghost_element_hover: Some(rgba(0x0b515bff).into()), text: Some(rgba(0xb2cacdff).into()), + status_bar_background: Some(rgba(0x041d20ff).into()), + title_bar_background: Some(rgba(0x041d20ff).into()), tab_inactive_background: Some(rgba(0x062e32ff).into()), tab_active_background: Some(rgba(0x052529ff).into()), editor_background: Some(rgba(0x052529ff).into()), @@ -1476,6 +1490,8 @@ pub fn noctis() -> UserThemeFamily { drop_target_background: Some(rgba(0x00404dff).into()), ghost_element_hover: Some(rgba(0x0b515bff).into()), text: Some(rgba(0xb2cacdff).into()), + status_bar_background: Some(rgba(0x031417ff).into()), + title_bar_background: Some(rgba(0x031417ff).into()), tab_inactive_background: Some(rgba(0x062e32ff).into()), tab_active_background: Some(rgba(0x031417ff).into()), editor_background: Some(rgba(0x031417ff).into()), @@ -1682,6 +1698,8 @@ pub fn noctis() -> UserThemeFamily { drop_target_background: Some(rgba(0x00404dff).into()), ghost_element_hover: Some(rgba(0x0b515bff).into()), text: Some(rgba(0xb2cacdff).into()), + status_bar_background: Some(rgba(0x031417ff).into()), + title_bar_background: Some(rgba(0x031417ff).into()), tab_inactive_background: Some(rgba(0x062e32ff).into()), tab_active_background: Some(rgba(0x031417ff).into()), editor_background: Some(rgba(0x031417ff).into()), @@ -1888,6 +1906,8 @@ pub fn noctis() -> UserThemeFamily { drop_target_background: Some(rgba(0x202040ff).into()), ghost_element_hover: Some(rgba(0x383866ff).into()), text: Some(rgba(0xc5c2d6ff).into()), + status_bar_background: Some(rgba(0x292640ff).into()), + title_bar_background: Some(rgba(0x292640ff).into()), tab_inactive_background: Some(rgba(0x2f2c49ff).into()), tab_active_background: Some(rgba(0x292640ff).into()), editor_background: Some(rgba(0x292640ff).into()), @@ -2094,6 +2114,8 @@ pub fn noctis() -> UserThemeFamily { drop_target_background: Some(rgba(0x302040ff).into()), ghost_element_hover: Some(rgba(0x6a448dff).into()), text: Some(rgba(0xccbfd9ff).into()), + status_bar_background: Some(rgba(0x30243dff).into()), + title_bar_background: Some(rgba(0x30243dff).into()), tab_inactive_background: Some(rgba(0x3d2e4dff).into()), tab_active_background: Some(rgba(0x30243dff).into()), editor_background: Some(rgba(0x30243dff).into()), diff --git a/crates/theme2/src/themes/nord.rs b/crates/theme2/src/themes/nord.rs index cc863f3716..f1111d8695 100644 --- a/crates/theme2/src/themes/nord.rs +++ b/crates/theme2/src/themes/nord.rs @@ -33,6 +33,8 @@ pub fn nord() -> UserThemeFamily { drop_target_background: Some(rgba(0x88c0d099).into()), ghost_element_hover: Some(rgba(0x3b4252ff).into()), text: Some(rgba(0xd8dee9ff).into()), + status_bar_background: Some(rgba(0x3b4252ff).into()), + title_bar_background: Some(rgba(0x2e3440ff).into()), tab_inactive_background: Some(rgba(0x2e3440ff).into()), tab_active_background: Some(rgba(0x3b4252ff).into()), editor_background: Some(rgba(0x2e3440ff).into()), diff --git a/crates/theme2/src/themes/palenight.rs b/crates/theme2/src/themes/palenight.rs index daee43f572..0595f2fb44 100644 --- a/crates/theme2/src/themes/palenight.rs +++ b/crates/theme2/src/themes/palenight.rs @@ -34,6 +34,8 @@ pub fn palenight() -> UserThemeFamily { drop_target_background: Some(rgba(0x2e3245ff).into()), ghost_element_hover: Some(rgba(0x0000001a).into()), text: Some(rgba(0xffffffff).into()), + status_bar_background: Some(rgba(0x282c3dff).into()), + title_bar_background: Some(rgba(0x292d3eff).into()), tab_inactive_background: Some(rgba(0x31364aff).into()), tab_active_background: Some(rgba(0x292d3eff).into()), editor_background: Some(rgba(0x292d3eff).into()), @@ -249,6 +251,8 @@ pub fn palenight() -> UserThemeFamily { drop_target_background: Some(rgba(0x2e3245ff).into()), ghost_element_hover: Some(rgba(0x0000001a).into()), text: Some(rgba(0xffffffff).into()), + status_bar_background: Some(rgba(0x282c3dff).into()), + title_bar_background: Some(rgba(0x292d3eff).into()), tab_inactive_background: Some(rgba(0x31364aff).into()), tab_active_background: Some(rgba(0x292d3eff).into()), editor_background: Some(rgba(0x292d3eff).into()), @@ -464,6 +468,8 @@ pub fn palenight() -> UserThemeFamily { drop_target_background: Some(rgba(0x2e3245ff).into()), ghost_element_hover: Some(rgba(0x0000001a).into()), text: Some(rgba(0xffffffff).into()), + status_bar_background: Some(rgba(0x25293aff).into()), + title_bar_background: Some(rgba(0x25293aff).into()), tab_inactive_background: Some(rgba(0x31364aff).into()), tab_active_background: Some(rgba(0x25293aff).into()), editor_background: Some(rgba(0x292d3eff).into()), diff --git a/crates/theme2/src/themes/rose_pine.rs b/crates/theme2/src/themes/rose_pine.rs index f4de7fb0d3..b7bff4d559 100644 --- a/crates/theme2/src/themes/rose_pine.rs +++ b/crates/theme2/src/themes/rose_pine.rs @@ -34,6 +34,8 @@ pub fn rose_pine() -> UserThemeFamily { drop_target_background: Some(rgba(0x1f1d2eff).into()), ghost_element_hover: Some(rgba(0x6e6a861a).into()), text: Some(rgba(0xe0def4ff).into()), + status_bar_background: Some(rgba(0x191724ff).into()), + title_bar_background: Some(rgba(0x191724ff).into()), tab_inactive_background: Some(rgba(0x000000ff).into()), tab_active_background: Some(rgba(0x6e6a861a).into()), editor_background: Some(rgba(0x191724ff).into()), @@ -207,6 +209,8 @@ pub fn rose_pine() -> UserThemeFamily { drop_target_background: Some(rgba(0x2a273fff).into()), ghost_element_hover: Some(rgba(0x817c9c14).into()), text: Some(rgba(0xe0def4ff).into()), + status_bar_background: Some(rgba(0x232136ff).into()), + title_bar_background: Some(rgba(0x232136ff).into()), tab_inactive_background: Some(rgba(0x000000ff).into()), tab_active_background: Some(rgba(0x817c9c14).into()), editor_background: Some(rgba(0x232136ff).into()), @@ -380,6 +384,8 @@ pub fn rose_pine() -> UserThemeFamily { drop_target_background: Some(rgba(0xfffaf3ff).into()), ghost_element_hover: Some(rgba(0x6e6a860d).into()), text: Some(rgba(0x575279ff).into()), + status_bar_background: Some(rgba(0xfaf4edff).into()), + title_bar_background: Some(rgba(0xfaf4edff).into()), tab_inactive_background: Some(rgba(0x000000ff).into()), tab_active_background: Some(rgba(0x6e6a860d).into()), editor_background: Some(rgba(0xfaf4edff).into()), diff --git a/crates/theme2/src/themes/solarized.rs b/crates/theme2/src/themes/solarized.rs index e77d2e79f9..65aaa1e27e 100644 --- a/crates/theme2/src/themes/solarized.rs +++ b/crates/theme2/src/themes/solarized.rs @@ -32,6 +32,8 @@ pub fn solarized() -> UserThemeFamily { drop_target_background: Some(rgba(0x00445488).into()), ghost_element_hover: Some(rgba(0x004454aa).into()), text: Some(rgba(0xbbbbbbff).into()), + status_bar_background: Some(rgba(0x00212bff).into()), + title_bar_background: Some(rgba(0x002c39ff).into()), tab_inactive_background: Some(rgba(0x004052ff).into()), tab_active_background: Some(rgba(0x002b37ff).into()), editor_background: Some(rgba(0x002b36ff).into()), @@ -227,6 +229,8 @@ pub fn solarized() -> UserThemeFamily { element_selected: Some(rgba(0xdfca88ff).into()), ghost_element_hover: Some(rgba(0xdfca8844).into()), text: Some(rgba(0x333333ff).into()), + status_bar_background: Some(rgba(0xeee8d5ff).into()), + title_bar_background: Some(rgba(0xeee8d5ff).into()), tab_inactive_background: Some(rgba(0xd3cbb7ff).into()), tab_active_background: Some(rgba(0xfdf6e3ff).into()), editor_background: Some(rgba(0xfdf6e3ff).into()), diff --git a/crates/theme2/src/themes/synthwave_84.rs b/crates/theme2/src/themes/synthwave_84.rs index 585d584c68..c0ffca1828 100644 --- a/crates/theme2/src/themes/synthwave_84.rs +++ b/crates/theme2/src/themes/synthwave_84.rs @@ -26,6 +26,8 @@ pub fn synthwave_84() -> UserThemeFamily { drop_target_background: Some(rgba(0x34294f66).into()), ghost_element_hover: Some(rgba(0x37294d99).into()), text: Some(rgba(0xffffffff).into()), + status_bar_background: Some(rgba(0x241b2fff).into()), + title_bar_background: Some(rgba(0x241b2fff).into()), tab_inactive_background: Some(rgba(0x262335ff).into()), editor_background: Some(rgba(0x262335ff).into()), editor_gutter_background: Some(rgba(0x262335ff).into()), diff --git a/crates/theme_importer/src/vscode/converter.rs b/crates/theme_importer/src/vscode/converter.rs index 4e4b82a2c5..45b54327cd 100644 --- a/crates/theme_importer/src/vscode/converter.rs +++ b/crates/theme_importer/src/vscode/converter.rs @@ -141,6 +141,14 @@ impl VsCodeThemeConverter { .editor_background .as_ref() .traverse(|color| try_parse_color(&color))?, + title_bar_background: vscode_colors + .title_bar_active_background + .as_ref() + .traverse(|color| try_parse_color(&color))?, + status_bar_background: vscode_colors + .status_bar_background + .as_ref() + .traverse(|color| try_parse_color(&color))?, element_background: vscode_colors .button_background .as_ref() From 1f51f74670c78134ae22c14476e10532cc58bafe Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Thu, 7 Dec 2023 22:24:32 -0500 Subject: [PATCH 018/115] Add TODO --- crates/feedback2/src/feedback_modal.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/crates/feedback2/src/feedback_modal.rs b/crates/feedback2/src/feedback_modal.rs index 1b746e1f1f..6de05b6496 100644 --- a/crates/feedback2/src/feedback_modal.rs +++ b/crates/feedback2/src/feedback_modal.rs @@ -395,3 +395,4 @@ impl Render for FeedbackModal { } // TODO: Add compilation flags to enable debug mode, where we can simulate sending feedback that both succeeds and fails, so we can test the UI +// TODO: Maybe store email address whenever the modal is closed, versus just on submit, so users can remove it if they want without submitting From efb4ff816ad3817a2360f1017897183d36ec0345 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Thu, 7 Dec 2023 22:32:41 -0500 Subject: [PATCH 019/115] Set tab bar and toolbar backgrounds --- crates/theme2/src/themes/andromeda.rs | 4 ++++ crates/theme2/src/themes/ayu.rs | 6 +++++ crates/theme2/src/themes/dracula.rs | 2 ++ crates/theme2/src/themes/night_owl.rs | 4 ++++ crates/theme2/src/themes/noctis.rs | 22 +++++++++++++++++++ crates/theme2/src/themes/nord.rs | 2 ++ crates/theme2/src/themes/palenight.rs | 6 +++++ crates/theme2/src/themes/rose_pine.rs | 6 +++++ crates/theme_importer/src/vscode/converter.rs | 8 +++++++ 9 files changed, 60 insertions(+) diff --git a/crates/theme2/src/themes/andromeda.rs b/crates/theme2/src/themes/andromeda.rs index e09f0b222f..8c841226eb 100644 --- a/crates/theme2/src/themes/andromeda.rs +++ b/crates/theme2/src/themes/andromeda.rs @@ -36,6 +36,8 @@ pub fn andromeda() -> UserThemeFamily { text: Some(rgba(0xd5ced9ff).into()), status_bar_background: Some(rgba(0x23262eff).into()), title_bar_background: Some(rgba(0x23262eff).into()), + toolbar_background: Some(rgba(0x23262eff).into()), + tab_bar_background: Some(rgba(0x23262eff).into()), tab_inactive_background: Some(rgba(0x23262eff).into()), tab_active_background: Some(rgba(0x23262eff).into()), editor_background: Some(rgba(0x23262eff).into()), @@ -196,6 +198,8 @@ pub fn andromeda() -> UserThemeFamily { text: Some(rgba(0xd5ced9ff).into()), status_bar_background: Some(rgba(0x23262eff).into()), title_bar_background: Some(rgba(0x23262eff).into()), + toolbar_background: Some(rgba(0x23262eff).into()), + tab_bar_background: Some(rgba(0x23262eff).into()), tab_inactive_background: Some(rgba(0x23262eff).into()), tab_active_background: Some(rgba(0x262a33ff).into()), editor_background: Some(rgba(0x262a33ff).into()), diff --git a/crates/theme2/src/themes/ayu.rs b/crates/theme2/src/themes/ayu.rs index 762c1a5279..8affab4695 100644 --- a/crates/theme2/src/themes/ayu.rs +++ b/crates/theme2/src/themes/ayu.rs @@ -35,6 +35,8 @@ pub fn ayu() -> UserThemeFamily { text: Some(rgba(0x8a9199ff).into()), status_bar_background: Some(rgba(0xf8f9faff).into()), title_bar_background: Some(rgba(0xf8f9faff).into()), + toolbar_background: Some(rgba(0xf8f9faff).into()), + tab_bar_background: Some(rgba(0xf8f9faff).into()), tab_inactive_background: Some(rgba(0xf8f9faff).into()), tab_active_background: Some(rgba(0xf8f9faff).into()), editor_background: Some(rgba(0xf8f9faff).into()), @@ -308,6 +310,8 @@ pub fn ayu() -> UserThemeFamily { text: Some(rgba(0x707a8cff).into()), status_bar_background: Some(rgba(0x1f2430ff).into()), title_bar_background: Some(rgba(0x1f2430ff).into()), + toolbar_background: Some(rgba(0x1f2430ff).into()), + tab_bar_background: Some(rgba(0x1f2430ff).into()), tab_inactive_background: Some(rgba(0x1f2430ff).into()), tab_active_background: Some(rgba(0x1f2430ff).into()), editor_background: Some(rgba(0x1f2430ff).into()), @@ -581,6 +585,8 @@ pub fn ayu() -> UserThemeFamily { text: Some(rgba(0x565b66ff).into()), status_bar_background: Some(rgba(0x0b0e14ff).into()), title_bar_background: Some(rgba(0x0b0e14ff).into()), + toolbar_background: Some(rgba(0x0b0e14ff).into()), + tab_bar_background: Some(rgba(0x0b0e14ff).into()), tab_inactive_background: Some(rgba(0x0b0e14ff).into()), tab_active_background: Some(rgba(0x0b0e14ff).into()), editor_background: Some(rgba(0x0b0e14ff).into()), diff --git a/crates/theme2/src/themes/dracula.rs b/crates/theme2/src/themes/dracula.rs index c52bdb49b1..f6d793b526 100644 --- a/crates/theme2/src/themes/dracula.rs +++ b/crates/theme2/src/themes/dracula.rs @@ -35,6 +35,8 @@ pub fn dracula() -> UserThemeFamily { text: Some(rgba(0xf8f8f2ff).into()), status_bar_background: Some(rgba(0x191a21ff).into()), title_bar_background: Some(rgba(0x21222cff).into()), + toolbar_background: Some(rgba(0x282a36ff).into()), + tab_bar_background: Some(rgba(0x282a36ff).into()), tab_inactive_background: Some(rgba(0x21222cff).into()), tab_active_background: Some(rgba(0x282a36ff).into()), editor_background: Some(rgba(0x282a36ff).into()), diff --git a/crates/theme2/src/themes/night_owl.rs b/crates/theme2/src/themes/night_owl.rs index 94689f2e14..2877d2c8a0 100644 --- a/crates/theme2/src/themes/night_owl.rs +++ b/crates/theme2/src/themes/night_owl.rs @@ -36,6 +36,8 @@ pub fn night_owl() -> UserThemeFamily { text: Some(rgba(0xd6deebff).into()), status_bar_background: Some(rgba(0x011627ff).into()), title_bar_background: Some(rgba(0x011627ff).into()), + toolbar_background: Some(rgba(0x011627ff).into()), + tab_bar_background: Some(rgba(0x011627ff).into()), tab_inactive_background: Some(rgba(0x01111dff).into()), tab_active_background: Some(rgba(0x0b2942ff).into()), editor_background: Some(rgba(0x011627ff).into()), @@ -224,6 +226,8 @@ pub fn night_owl() -> UserThemeFamily { text: Some(rgba(0x403f53ff).into()), status_bar_background: Some(rgba(0xf0f0f0ff).into()), title_bar_background: Some(rgba(0xf0f0f0ff).into()), + toolbar_background: Some(rgba(0xf0f0f0ff).into()), + tab_bar_background: Some(rgba(0xf0f0f0ff).into()), tab_inactive_background: Some(rgba(0xf0f0f0ff).into()), tab_active_background: Some(rgba(0xf6f6f6ff).into()), editor_background: Some(rgba(0xfbfbfbff).into()), diff --git a/crates/theme2/src/themes/noctis.rs b/crates/theme2/src/themes/noctis.rs index 23202260c6..c37186816f 100644 --- a/crates/theme2/src/themes/noctis.rs +++ b/crates/theme2/src/themes/noctis.rs @@ -36,6 +36,8 @@ pub fn noctis() -> UserThemeFamily { text: Some(rgba(0xbecfdaff).into()), status_bar_background: Some(rgba(0x07273bff).into()), title_bar_background: Some(rgba(0x07273bff).into()), + toolbar_background: Some(rgba(0x051b29ff).into()), + tab_bar_background: Some(rgba(0x051b29ff).into()), tab_inactive_background: Some(rgba(0x09334eff).into()), tab_active_background: Some(rgba(0x07273bff).into()), editor_background: Some(rgba(0x07273bff).into()), @@ -244,6 +246,8 @@ pub fn noctis() -> UserThemeFamily { text: Some(rgba(0xcbbec2ff).into()), status_bar_background: Some(rgba(0x322a2dff).into()), title_bar_background: Some(rgba(0x322a2dff).into()), + toolbar_background: Some(rgba(0x272022ff).into()), + tab_bar_background: Some(rgba(0x272022ff).into()), tab_inactive_background: Some(rgba(0x413036ff).into()), tab_active_background: Some(rgba(0x322a2dff).into()), editor_background: Some(rgba(0x322a2dff).into()), @@ -452,6 +456,8 @@ pub fn noctis() -> UserThemeFamily { text: Some(rgba(0x005661ff).into()), status_bar_background: Some(rgba(0xcaedf2ff).into()), title_bar_background: Some(rgba(0xe7f2f3ff).into()), + toolbar_background: Some(rgba(0xe1eeefff).into()), + tab_bar_background: Some(rgba(0xe1eeefff).into()), tab_inactive_background: Some(rgba(0xcaedf2ff).into()), tab_active_background: Some(rgba(0xf4f6f6ff).into()), editor_background: Some(rgba(0xf4f6f6ff).into()), @@ -660,6 +666,8 @@ pub fn noctis() -> UserThemeFamily { text: Some(rgba(0x0c006bff).into()), status_bar_background: Some(rgba(0xe2dff6ff).into()), title_bar_background: Some(rgba(0xedecf8ff).into()), + toolbar_background: Some(rgba(0xe9e7f3ff).into()), + tab_bar_background: Some(rgba(0xe9e7f3ff).into()), tab_inactive_background: Some(rgba(0xe2dff6ff).into()), tab_active_background: Some(rgba(0xf2f1f8ff).into()), editor_background: Some(rgba(0xf2f1f8ff).into()), @@ -868,6 +876,8 @@ pub fn noctis() -> UserThemeFamily { text: Some(rgba(0x005661ff).into()), status_bar_background: Some(rgba(0xf0e9d6ff).into()), title_bar_background: Some(rgba(0xf9f1e1ff).into()), + toolbar_background: Some(rgba(0xf6eddaff).into()), + tab_bar_background: Some(rgba(0xf6eddaff).into()), tab_inactive_background: Some(rgba(0xf0e9d6ff).into()), tab_active_background: Some(rgba(0xfef8ecff).into()), editor_background: Some(rgba(0xfef8ecff).into()), @@ -1076,6 +1086,8 @@ pub fn noctis() -> UserThemeFamily { text: Some(rgba(0xc5cdd3ff).into()), status_bar_background: Some(rgba(0x1b2932ff).into()), title_bar_background: Some(rgba(0x1b2932ff).into()), + toolbar_background: Some(rgba(0x0e1920ff).into()), + tab_bar_background: Some(rgba(0x0e1920ff).into()), tab_inactive_background: Some(rgba(0x202e37ff).into()), tab_active_background: Some(rgba(0x1b2932ff).into()), editor_background: Some(rgba(0x1b2932ff).into()), @@ -1284,6 +1296,8 @@ pub fn noctis() -> UserThemeFamily { text: Some(rgba(0xb2cacdff).into()), status_bar_background: Some(rgba(0x041d20ff).into()), title_bar_background: Some(rgba(0x041d20ff).into()), + toolbar_background: Some(rgba(0x03191bff).into()), + tab_bar_background: Some(rgba(0x03191bff).into()), tab_inactive_background: Some(rgba(0x062e32ff).into()), tab_active_background: Some(rgba(0x052529ff).into()), editor_background: Some(rgba(0x052529ff).into()), @@ -1492,6 +1506,8 @@ pub fn noctis() -> UserThemeFamily { text: Some(rgba(0xb2cacdff).into()), status_bar_background: Some(rgba(0x031417ff).into()), title_bar_background: Some(rgba(0x031417ff).into()), + toolbar_background: Some(rgba(0x020c0eff).into()), + tab_bar_background: Some(rgba(0x020c0eff).into()), tab_inactive_background: Some(rgba(0x062e32ff).into()), tab_active_background: Some(rgba(0x031417ff).into()), editor_background: Some(rgba(0x031417ff).into()), @@ -1700,6 +1716,8 @@ pub fn noctis() -> UserThemeFamily { text: Some(rgba(0xb2cacdff).into()), status_bar_background: Some(rgba(0x031417ff).into()), title_bar_background: Some(rgba(0x031417ff).into()), + toolbar_background: Some(rgba(0x020c0eff).into()), + tab_bar_background: Some(rgba(0x020c0eff).into()), tab_inactive_background: Some(rgba(0x062e32ff).into()), tab_active_background: Some(rgba(0x031417ff).into()), editor_background: Some(rgba(0x031417ff).into()), @@ -1908,6 +1926,8 @@ pub fn noctis() -> UserThemeFamily { text: Some(rgba(0xc5c2d6ff).into()), status_bar_background: Some(rgba(0x292640ff).into()), title_bar_background: Some(rgba(0x292640ff).into()), + toolbar_background: Some(rgba(0x1f1d30ff).into()), + tab_bar_background: Some(rgba(0x1f1d30ff).into()), tab_inactive_background: Some(rgba(0x2f2c49ff).into()), tab_active_background: Some(rgba(0x292640ff).into()), editor_background: Some(rgba(0x292640ff).into()), @@ -2116,6 +2136,8 @@ pub fn noctis() -> UserThemeFamily { text: Some(rgba(0xccbfd9ff).into()), status_bar_background: Some(rgba(0x30243dff).into()), title_bar_background: Some(rgba(0x30243dff).into()), + toolbar_background: Some(rgba(0x291d35ff).into()), + tab_bar_background: Some(rgba(0x291d35ff).into()), tab_inactive_background: Some(rgba(0x3d2e4dff).into()), tab_active_background: Some(rgba(0x30243dff).into()), editor_background: Some(rgba(0x30243dff).into()), diff --git a/crates/theme2/src/themes/nord.rs b/crates/theme2/src/themes/nord.rs index f1111d8695..a0f0c1fbf7 100644 --- a/crates/theme2/src/themes/nord.rs +++ b/crates/theme2/src/themes/nord.rs @@ -35,6 +35,8 @@ pub fn nord() -> UserThemeFamily { text: Some(rgba(0xd8dee9ff).into()), status_bar_background: Some(rgba(0x3b4252ff).into()), title_bar_background: Some(rgba(0x2e3440ff).into()), + toolbar_background: Some(rgba(0x2e3440ff).into()), + tab_bar_background: Some(rgba(0x2e3440ff).into()), tab_inactive_background: Some(rgba(0x2e3440ff).into()), tab_active_background: Some(rgba(0x3b4252ff).into()), editor_background: Some(rgba(0x2e3440ff).into()), diff --git a/crates/theme2/src/themes/palenight.rs b/crates/theme2/src/themes/palenight.rs index 0595f2fb44..c825d229cb 100644 --- a/crates/theme2/src/themes/palenight.rs +++ b/crates/theme2/src/themes/palenight.rs @@ -36,6 +36,8 @@ pub fn palenight() -> UserThemeFamily { text: Some(rgba(0xffffffff).into()), status_bar_background: Some(rgba(0x282c3dff).into()), title_bar_background: Some(rgba(0x292d3eff).into()), + toolbar_background: Some(rgba(0x292d3eff).into()), + tab_bar_background: Some(rgba(0x292d3eff).into()), tab_inactive_background: Some(rgba(0x31364aff).into()), tab_active_background: Some(rgba(0x292d3eff).into()), editor_background: Some(rgba(0x292d3eff).into()), @@ -253,6 +255,8 @@ pub fn palenight() -> UserThemeFamily { text: Some(rgba(0xffffffff).into()), status_bar_background: Some(rgba(0x282c3dff).into()), title_bar_background: Some(rgba(0x292d3eff).into()), + toolbar_background: Some(rgba(0x292d3eff).into()), + tab_bar_background: Some(rgba(0x292d3eff).into()), tab_inactive_background: Some(rgba(0x31364aff).into()), tab_active_background: Some(rgba(0x292d3eff).into()), editor_background: Some(rgba(0x292d3eff).into()), @@ -470,6 +474,8 @@ pub fn palenight() -> UserThemeFamily { text: Some(rgba(0xffffffff).into()), status_bar_background: Some(rgba(0x25293aff).into()), title_bar_background: Some(rgba(0x25293aff).into()), + toolbar_background: Some(rgba(0x25293aff).into()), + tab_bar_background: Some(rgba(0x25293aff).into()), tab_inactive_background: Some(rgba(0x31364aff).into()), tab_active_background: Some(rgba(0x25293aff).into()), editor_background: Some(rgba(0x292d3eff).into()), diff --git a/crates/theme2/src/themes/rose_pine.rs b/crates/theme2/src/themes/rose_pine.rs index b7bff4d559..1584877adb 100644 --- a/crates/theme2/src/themes/rose_pine.rs +++ b/crates/theme2/src/themes/rose_pine.rs @@ -36,6 +36,8 @@ pub fn rose_pine() -> UserThemeFamily { text: Some(rgba(0xe0def4ff).into()), status_bar_background: Some(rgba(0x191724ff).into()), title_bar_background: Some(rgba(0x191724ff).into()), + toolbar_background: Some(rgba(0x1f1d2eff).into()), + tab_bar_background: Some(rgba(0x1f1d2eff).into()), tab_inactive_background: Some(rgba(0x000000ff).into()), tab_active_background: Some(rgba(0x6e6a861a).into()), editor_background: Some(rgba(0x191724ff).into()), @@ -211,6 +213,8 @@ pub fn rose_pine() -> UserThemeFamily { text: Some(rgba(0xe0def4ff).into()), status_bar_background: Some(rgba(0x232136ff).into()), title_bar_background: Some(rgba(0x232136ff).into()), + toolbar_background: Some(rgba(0x2a273fff).into()), + tab_bar_background: Some(rgba(0x2a273fff).into()), tab_inactive_background: Some(rgba(0x000000ff).into()), tab_active_background: Some(rgba(0x817c9c14).into()), editor_background: Some(rgba(0x232136ff).into()), @@ -386,6 +390,8 @@ pub fn rose_pine() -> UserThemeFamily { text: Some(rgba(0x575279ff).into()), status_bar_background: Some(rgba(0xfaf4edff).into()), title_bar_background: Some(rgba(0xfaf4edff).into()), + toolbar_background: Some(rgba(0xfffaf3ff).into()), + tab_bar_background: Some(rgba(0xfffaf3ff).into()), tab_inactive_background: Some(rgba(0x000000ff).into()), tab_active_background: Some(rgba(0x6e6a860d).into()), editor_background: Some(rgba(0xfaf4edff).into()), diff --git a/crates/theme_importer/src/vscode/converter.rs b/crates/theme_importer/src/vscode/converter.rs index 45b54327cd..48356da34c 100644 --- a/crates/theme_importer/src/vscode/converter.rs +++ b/crates/theme_importer/src/vscode/converter.rs @@ -183,6 +183,10 @@ impl VsCodeThemeConverter { .ok() .flatten() }), + tab_bar_background: vscode_colors + .panel_background + .as_ref() + .traverse(|color| try_parse_color(&color))?, tab_active_background: vscode_colors .tab_active_background .as_ref() @@ -191,6 +195,10 @@ impl VsCodeThemeConverter { .tab_inactive_background .as_ref() .traverse(|color| try_parse_color(&color))?, + toolbar_background: vscode_colors + .panel_background + .as_ref() + .traverse(|color| try_parse_color(&color))?, editor_background: vscode_colors .editor_background .as_ref() From 7a9f764aa0ab880aa6a3a0eb7a16196c33fd2f80 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Thu, 7 Dec 2023 23:37:49 -0500 Subject: [PATCH 020/115] Add support for theme family-specific syntax mapping overrides (#3551) This PR adds support for adding a specific set of mappings from Zed syntax tokens to VS Code scopes for a particular theme family. We can use this as a fallback when we aren't otherwise able to rely on the mappings in the theme importer, as sometimes it isn't possible to make a specific enough matcher that works across all of the themes. Release Notes: - N/A --- .../themes/src/vscode/rose-pine/family.json | 5 +++- crates/theme2/src/themes/rose_pine.rs | 6 ++--- crates/theme_importer/Cargo.toml | 2 +- crates/theme_importer/src/main.rs | 15 +++++++++++- crates/theme_importer/src/vscode/converter.rs | 23 +++++++++++++++---- crates/theme_importer/src/vscode/syntax.rs | 2 +- 6 files changed, 42 insertions(+), 11 deletions(-) diff --git a/assets/themes/src/vscode/rose-pine/family.json b/assets/themes/src/vscode/rose-pine/family.json index 1cdcab7842..3f7b149db8 100644 --- a/assets/themes/src/vscode/rose-pine/family.json +++ b/assets/themes/src/vscode/rose-pine/family.json @@ -17,5 +17,8 @@ "file_name": "rose-pine-dawn.json", "appearance": "light" } - ] + ], + "syntax": { + "function": ["entity.name"] + } } diff --git a/crates/theme2/src/themes/rose_pine.rs b/crates/theme2/src/themes/rose_pine.rs index 1584877adb..5296047562 100644 --- a/crates/theme2/src/themes/rose_pine.rs +++ b/crates/theme2/src/themes/rose_pine.rs @@ -106,7 +106,7 @@ pub fn rose_pine() -> UserThemeFamily { ( "function".into(), UserHighlightStyle { - color: Some(rgba(0xe0def4ff).into()), + color: Some(rgba(0xebbcbaff).into()), ..Default::default() }, ), @@ -283,7 +283,7 @@ pub fn rose_pine() -> UserThemeFamily { ( "function".into(), UserHighlightStyle { - color: Some(rgba(0xe0def4ff).into()), + color: Some(rgba(0xea9a97ff).into()), ..Default::default() }, ), @@ -460,7 +460,7 @@ pub fn rose_pine() -> UserThemeFamily { ( "function".into(), UserHighlightStyle { - color: Some(rgba(0x575279ff).into()), + color: Some(rgba(0xd7827eff).into()), ..Default::default() }, ), diff --git a/crates/theme_importer/Cargo.toml b/crates/theme_importer/Cargo.toml index bf071912a7..82ab18d48d 100644 --- a/crates/theme_importer/Cargo.toml +++ b/crates/theme_importer/Cargo.toml @@ -10,7 +10,7 @@ publish = false anyhow.workspace = true convert_case = "0.6.0" gpui = { package = "gpui2", path = "../gpui2" } -indexmap = "1.6.2" +indexmap = { version = "1.6.2", features = ["serde"] } json_comments = "0.2.2" log.workspace = true palette = { version = "0.7.3", default-features = false, features = ["std"] } diff --git a/crates/theme_importer/src/main.rs b/crates/theme_importer/src/main.rs index 80e979df98..0005d932d4 100644 --- a/crates/theme_importer/src/main.rs +++ b/crates/theme_importer/src/main.rs @@ -12,6 +12,7 @@ use std::str::FromStr; use anyhow::{anyhow, Context, Result}; use convert_case::{Case, Casing}; use gpui::serde_json; +use indexmap::IndexMap; use json_comments::StripComments; use log::LevelFilter; use serde::Deserialize; @@ -27,6 +28,14 @@ struct FamilyMetadata { pub name: String, pub author: String, pub themes: Vec, + + /// Overrides for specific syntax tokens. + /// + /// Use this to ensure certain Zed syntax tokens are matched + /// to an exact set of scopes when it is not otherwise possible + /// to rely on the default mappings in the theme importer. + #[serde(default)] + pub syntax: IndexMap>, } #[derive(Debug, Clone, Copy, Deserialize)] @@ -127,7 +136,11 @@ fn main() -> Result<()> { let vscode_theme: VsCodeTheme = serde_json::from_reader(theme_without_comments) .context(format!("failed to parse theme {theme_file_path:?}"))?; - let converter = VsCodeThemeConverter::new(vscode_theme, theme_metadata); + let converter = VsCodeThemeConverter::new( + vscode_theme, + theme_metadata, + family_metadata.syntax.clone(), + ); let theme = converter.convert()?; diff --git a/crates/theme_importer/src/vscode/converter.rs b/crates/theme_importer/src/vscode/converter.rs index 48356da34c..4e9090d2cd 100644 --- a/crates/theme_importer/src/vscode/converter.rs +++ b/crates/theme_importer/src/vscode/converter.rs @@ -9,7 +9,7 @@ use theme::{ use crate::color::try_parse_color; use crate::util::Traverse; -use crate::vscode::VsCodeTheme; +use crate::vscode::{VsCodeTheme, VsCodeTokenScope}; use crate::ThemeMetadata; use super::ZedSyntaxToken; @@ -32,13 +32,19 @@ pub(crate) fn try_parse_font_style(font_style: &str) -> Option { pub struct VsCodeThemeConverter { theme: VsCodeTheme, theme_metadata: ThemeMetadata, + syntax_overrides: IndexMap>, } impl VsCodeThemeConverter { - pub fn new(theme: VsCodeTheme, theme_metadata: ThemeMetadata) -> Self { + pub fn new( + theme: VsCodeTheme, + theme_metadata: ThemeMetadata, + syntax_overrides: IndexMap>, + ) -> Self { Self { theme, theme_metadata, + syntax_overrides, } } @@ -291,8 +297,17 @@ impl VsCodeThemeConverter { let mut highlight_styles = IndexMap::new(); for syntax_token in ZedSyntaxToken::iter() { - let best_match = syntax_token - .find_best_token_color_match(&self.theme.token_colors) + let override_match = self + .syntax_overrides + .get(&syntax_token.to_string()) + .and_then(|scope| { + self.theme.token_colors.iter().find(|token_color| { + token_color.scope == Some(VsCodeTokenScope::Many(scope.clone())) + }) + }); + + let best_match = override_match + .or_else(|| syntax_token.find_best_token_color_match(&self.theme.token_colors)) .or_else(|| { syntax_token.fallbacks().iter().find_map(|fallback| { fallback.find_best_token_color_match(&self.theme.token_colors) diff --git a/crates/theme_importer/src/vscode/syntax.rs b/crates/theme_importer/src/vscode/syntax.rs index 318eb484c8..19a38fdd72 100644 --- a/crates/theme_importer/src/vscode/syntax.rs +++ b/crates/theme_importer/src/vscode/syntax.rs @@ -2,7 +2,7 @@ use indexmap::IndexMap; use serde::Deserialize; use strum::EnumIter; -#[derive(Debug, Deserialize)] +#[derive(Debug, PartialEq, Eq, Deserialize)] #[serde(untagged)] pub enum VsCodeTokenScope { One(String), From d0a673ec624c802d6528e2d2fd0406a30d3825a5 Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Fri, 8 Dec 2023 12:37:20 +0100 Subject: [PATCH 021/115] buffer_search: Add tooltips, polish keybinds --- crates/search2/src/buffer_search.rs | 62 ++++++++++++++--------------- crates/search2/src/mode.rs | 14 +++++++ crates/search2/src/search.rs | 26 ++++++++---- crates/search2/src/search_bar.rs | 42 ++++++++++--------- crates/ui2/src/components/icon.rs | 2 + 5 files changed, 90 insertions(+), 56 deletions(-) diff --git a/crates/search2/src/buffer_search.rs b/crates/search2/src/buffer_search.rs index cbbeeb0f12..ccbec98c5d 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 817fb454d2..3fd53cee49 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 13def6b4a7..c98a033c72 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 44ba287d78..dcc46ac228 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 a5b09782f5..f534e04b68 100644 --- a/crates/ui2/src/components/icon.rs +++ b/crates/ui2/src/components/icon.rs @@ -80,6 +80,7 @@ pub enum Icon { Quote, Replace, ReplaceAll, + ReplaceNext, Screen, SelectAll, Split, @@ -157,6 +158,7 @@ impl Icon { Icon::Quote => "icons/quote.svg", Icon::Replace => "icons/replace.svg", Icon::ReplaceAll => "icons/replace_all.svg", + Icon::ReplaceNext => "icons/replace_next.svg", Icon::Screen => "icons/desktop.svg", Icon::SelectAll => "icons/select-all.svg", Icon::Split => "icons/split.svg", From 28dfd3ab43a5381cace8848ab1030e320ba7849e Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Fri, 8 Dec 2023 14:04:41 +0100 Subject: [PATCH 022/115] Paint scrollbars We still need to wire up mouse listeners. --- crates/editor2/src/element.rs | 360 ++++++++++++++++------------------ 1 file changed, 174 insertions(+), 186 deletions(-) diff --git a/crates/editor2/src/element.rs b/crates/editor2/src/element.rs index ad66ed8090..5f0297b361 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; - // } + fn paint_scrollbar( + &mut self, + bounds: Bounds, + layout: &mut LayoutState, + cx: &mut WindowContext, + ) { + if layout.mode != EditorMode::Full { + return; + } - // let style = &self.style.theme.scrollbar; + 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 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.size.height; + let mut first_row_y_offset = px(0.0); - // 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 = 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; + } - // // 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| -> Pixels { top + first_row_y_offset + row * row_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_corners(point(left, top), point(right, bottom)); + let thumb_bounds = Bounds::from_corners(point(left, thumb_top), point(right, thumb_bottom)); - // 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( + 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.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)); + 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) + }; - // 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 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)); - // 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) - // }; + 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") + ); + } + } - // 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( + 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") + ); + } - // let color = match hunk.status() { - // DiffHunkStatus::Added => diff_style.inserted, - // DiffHunkStatus::Modified => diff_style.modified, - // DiffHunkStatus::Removed => diff_style.deleted, - // }; + // 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 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); - // } - // } - // }), - // ); - // } + // let y = event.prev_mouse_position.y; + // let new_y = event.position.y; + // if thumb_top < y && y < thumb_bottom { + // let mut position = editor.scroll_position(cx); + // position.set_y(position.y + (new_y - y) * (max_row as f32) / height); + // if position.y < 0.0 { + // position.set_y(0.); + // } + // editor.set_scroll_position(position, cx); + // } + // } + // }), + // ); + } #[allow(clippy::too_many_arguments)] fn paint_highlighted_range( @@ -2840,9 +2826,11 @@ impl Element for EditorElement { cx.with_z_index(1, |cx| { cx.with_element_id(Some("editor_blocks"), |cx| { self.paint_blocks(bounds, &mut layout, cx); - }) + }); }) } + + self.paint_scrollbar(bounds, &mut layout, cx); }); }); }) From 9b0bea32edd98588a90655a11372842b62a95f8e Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Fri, 8 Dec 2023 14:24:58 +0100 Subject: [PATCH 023/115] :art: --- crates/editor2/src/element.rs | 62 ++++++++++++++--------------------- 1 file changed, 24 insertions(+), 38 deletions(-) diff --git a/crates/editor2/src/element.rs b/crates/editor2/src/element.rs index 5f0297b361..c9e70ec2ef 100644 --- a/crates/editor2/src/element.rs +++ b/crates/editor2/src/element.rs @@ -385,17 +385,17 @@ impl EditorElement { gutter_bounds: Bounds, stacking_order: &StackingOrder, cx: &mut ViewContext, - ) -> bool { + ) { let mut click_count = event.click_count; let modifiers = event.modifiers; if gutter_bounds.contains_point(&event.position) { click_count = 3; // Simulate triple-click when clicking the gutter to select lines } else if !text_bounds.contains_point(&event.position) { - return false; + return; } if !cx.was_top_layer(&event.position, stacking_order) { - return false; + return; } let point_for_position = position_map.point_for_position(text_bounds, event.position); @@ -427,7 +427,7 @@ impl EditorElement { ); } - true + cx.stop_propagation(); } fn mouse_right_down( @@ -436,9 +436,9 @@ impl EditorElement { position_map: &PositionMap, text_bounds: Bounds, cx: &mut ViewContext, - ) -> bool { + ) { if !text_bounds.contains_point(&event.position) { - return false; + return; } let point_for_position = position_map.point_for_position(text_bounds, event.position); mouse_context_menu::deploy_context_menu( @@ -447,7 +447,7 @@ impl EditorElement { point_for_position.previous_valid, cx, ); - true + cx.stop_propagation(); } fn mouse_up( @@ -457,7 +457,7 @@ impl EditorElement { text_bounds: Bounds, stacking_order: &StackingOrder, cx: &mut ViewContext, - ) -> bool { + ) { let end_selection = editor.has_pending_selection(); let pending_nonempty_selections = editor.has_pending_nonempty_selection(); @@ -479,10 +479,10 @@ impl EditorElement { go_to_fetched_definition(editor, point, split, cx); } - return true; + cx.stop_propagation(); + } else if end_selection { + cx.stop_propagation(); } - - end_selection } fn mouse_moved( @@ -493,7 +493,7 @@ impl EditorElement { gutter_bounds: Bounds, stacking_order: &StackingOrder, cx: &mut ViewContext, - ) -> bool { + ) { let modifiers = event.modifiers; if editor.has_pending_selection() && event.pressed_button == Some(MouseButton::Left) { let point_for_position = position_map.point_for_position(text_bounds, event.position); @@ -562,11 +562,13 @@ impl EditorElement { } } - true + cx.stop_propagation(); } else { update_go_to_definition_link(editor, None, modifiers.command, modifiers.shift, cx); hover_at(editor, None, cx); - gutter_hovered && was_top + if gutter_hovered && was_top { + cx.stop_propagation(); + } } } @@ -576,9 +578,9 @@ impl EditorElement { position_map: &PositionMap, bounds: &InteractiveBounds, cx: &mut ViewContext, - ) -> bool { + ) { if !bounds.visibly_contains(&event.position, cx) { - return false; + return; } let line_height = position_map.line_height; @@ -602,8 +604,7 @@ impl EditorElement { let y = f32::from((scroll_position.y * line_height - delta.y) / line_height); let scroll_position = point(x, y).clamp(&point(0., 0.), &position_map.scroll_max); editor.scroll(scroll_position, axis, cx); - - true + cx.stop_propagation(); } fn paint_background( @@ -2438,12 +2439,9 @@ impl EditorElement { return; } - let handled = editor.update(cx, |editor, cx| { + editor.update(cx, |editor, cx| { Self::scroll(editor, event, &position_map, &interactive_bounds, cx) }); - if handled { - cx.stop_propagation(); - } } }); @@ -2457,7 +2455,7 @@ impl EditorElement { return; } - let handled = match event.button { + match event.button { MouseButton::Left => editor.update(cx, |editor, cx| { Self::mouse_left_down( editor, @@ -2472,12 +2470,8 @@ impl EditorElement { MouseButton::Right => editor.update(cx, |editor, cx| { Self::mouse_right_down(editor, event, &position_map, text_bounds, cx) }), - _ => false, + _ => {} }; - - if handled { - cx.stop_propagation() - } } }); @@ -2487,7 +2481,7 @@ impl EditorElement { let stacking_order = cx.stacking_order().clone(); move |event: &MouseUpEvent, phase, cx| { - let handled = editor.update(cx, |editor, cx| { + editor.update(cx, |editor, cx| { Self::mouse_up( editor, event, @@ -2497,10 +2491,6 @@ impl EditorElement { cx, ) }); - - if handled { - cx.stop_propagation() - } } }); cx.on_mouse_event({ @@ -2513,7 +2503,7 @@ impl EditorElement { return; } - let stop_propogating = editor.update(cx, |editor, cx| { + editor.update(cx, |editor, cx| { Self::mouse_moved( editor, event, @@ -2524,10 +2514,6 @@ impl EditorElement { cx, ) }); - - if stop_propogating { - cx.stop_propagation() - } } }); } From 53d77b192ae3d204e20bf3e5ac6842d7e2a1ed13 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 8 Dec 2023 10:48:27 -0500 Subject: [PATCH 024/115] Don't match `support.function` for `function` --- crates/theme2/src/themes/ayu.rs | 6 +++--- crates/theme_importer/src/vscode/syntax.rs | 6 +----- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/crates/theme2/src/themes/ayu.rs b/crates/theme2/src/themes/ayu.rs index 8affab4695..da8c084297 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 19a38fdd72..1194548081 100644 --- a/crates/theme_importer/src/vscode/syntax.rs +++ b/crates/theme_importer/src/vscode/syntax.rs @@ -190,11 +190,7 @@ impl ZedSyntaxToken { "markup.bold markup.italic", ], ZedSyntaxToken::Enum => vec!["support.type.enum"], - ZedSyntaxToken::Function => vec![ - "entity.name.function", - "variable.function", - "support.function", - ], + ZedSyntaxToken::Function => vec!["entity.name.function", "variable.function"], ZedSyntaxToken::Hint => vec![], ZedSyntaxToken::Keyword => vec![ "keyword", From a8a5b9524ddc9c52e519fea93b0ec6575ad43516 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 8 Dec 2023 11:07:52 -0500 Subject: [PATCH 025/115] Improve matching for punctuation tokens --- crates/theme2/src/themes/ayu.rs | 27 ++- crates/theme2/src/themes/gruvbox.rs | 168 +++++++++++++++ crates/theme2/src/themes/night_owl.rs | 56 +++++ crates/theme2/src/themes/noctis.rs | 231 +++++++++++++++++++++ crates/theme2/src/themes/nord.rs | 23 +- crates/theme2/src/themes/palenight.rs | 84 ++++++++ crates/theme2/src/themes/rose_pine.rs | 84 ++++++++ crates/theme2/src/themes/solarized.rs | 28 +++ crates/theme2/src/themes/synthwave_84.rs | 28 +++ crates/theme_importer/src/vscode/syntax.rs | 5 +- 10 files changed, 729 insertions(+), 5 deletions(-) diff --git a/crates/theme2/src/themes/ayu.rs b/crates/theme2/src/themes/ayu.rs index da8c084297..84b8463758 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 f801d44032..9309f40503 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 2877d2c8a0..be33b928fe 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 c37186816f..1e5688ddea 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 a0f0c1fbf7..e15515295c 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 c825d229cb..c97dea0317 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 5296047562..65b4a21302 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 65aaa1e27e..532a5f8460 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 c0ffca1828..90e4ae2131 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 1194548081..e716d7c0e2 100644 --- a/crates/theme_importer/src/vscode/syntax.rs +++ b/crates/theme_importer/src/vscode/syntax.rs @@ -168,6 +168,10 @@ impl ZedSyntaxToken { match self { ZedSyntaxToken::CommentDoc => &[ZedSyntaxToken::Comment], ZedSyntaxToken::VariableSpecial => &[ZedSyntaxToken::Variable], + ZedSyntaxToken::PunctuationBracket + | ZedSyntaxToken::PunctuationDelimiter + | ZedSyntaxToken::PunctuationListMarker + | ZedSyntaxToken::PunctuationSpecial => &[ZedSyntaxToken::Punctuation], _ => &[], } } @@ -224,7 +228,6 @@ impl ZedSyntaxToken { "punctuation.section", "punctuation.accessor", "punctuation.separator", - "punctuation.terminator", "punctuation.definition.tag", ], ZedSyntaxToken::PunctuationBracket => vec![ From 40a95221eafb9dab021f37ae97079af40bbe56e5 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 8 Dec 2023 11:13:28 -0500 Subject: [PATCH 026/115] Improve matching for string tokens --- crates/theme2/src/themes/andromeda.rs | 56 +++++ crates/theme2/src/themes/ayu.rs | 21 ++ crates/theme2/src/themes/dracula.rs | 28 +++ crates/theme2/src/themes/gruvbox.rs | 126 +++++++++++ crates/theme2/src/themes/night_owl.rs | 42 ++++ crates/theme2/src/themes/noctis.rs | 231 +++++++++++++++++++++ crates/theme2/src/themes/nord.rs | 21 ++ crates/theme2/src/themes/palenight.rs | 63 ++++++ crates/theme2/src/themes/rose_pine.rs | 84 ++++++++ crates/theme2/src/themes/solarized.rs | 42 ++++ crates/theme_importer/src/vscode/syntax.rs | 4 + 11 files changed, 718 insertions(+) diff --git a/crates/theme2/src/themes/andromeda.rs b/crates/theme2/src/themes/andromeda.rs index 8c841226eb..766329b353 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 84b8463758..8e5d588f52 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 f6d793b526..3953a24526 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 9309f40503..1ada65400f 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 be33b928fe..33246850f4 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 1e5688ddea..caba6947fe 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 e15515295c..da03c82878 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 c97dea0317..1200802fbc 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 65b4a21302..ecd669c34a 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 532a5f8460..7cec48b1f4 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 e716d7c0e2..d5097639cb 100644 --- a/crates/theme_importer/src/vscode/syntax.rs +++ b/crates/theme_importer/src/vscode/syntax.rs @@ -172,6 +172,10 @@ impl ZedSyntaxToken { | ZedSyntaxToken::PunctuationDelimiter | ZedSyntaxToken::PunctuationListMarker | ZedSyntaxToken::PunctuationSpecial => &[ZedSyntaxToken::Punctuation], + ZedSyntaxToken::StringEscape + | ZedSyntaxToken::StringRegex + | ZedSyntaxToken::StringSpecial + | ZedSyntaxToken::StringSpecialSymbol => &[ZedSyntaxToken::String], _ => &[], } } From 63ce7cd407ca97685fb47ebbdce403dceecf0dfb Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 8 Dec 2023 11:17:05 -0500 Subject: [PATCH 027/115] Improve matching for preprocessor tokens --- crates/theme2/src/themes/gruvbox.rs | 42 ++++++++++++ crates/theme2/src/themes/noctis.rs | 77 ++++++++++++++++++++++ crates/theme2/src/themes/nord.rs | 7 ++ crates/theme2/src/themes/solarized.rs | 14 ++++ crates/theme_importer/src/vscode/syntax.rs | 6 +- 5 files changed, 145 insertions(+), 1 deletion(-) diff --git a/crates/theme2/src/themes/gruvbox.rs b/crates/theme2/src/themes/gruvbox.rs index 1ada65400f..5674593c2d 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 caba6947fe..e09efd98c6 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 da03c82878..4206598086 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 7cec48b1f4..5d43b5704a 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 d5097639cb..990355065f 100644 --- a/crates/theme_importer/src/vscode/syntax.rs +++ b/crates/theme_importer/src/vscode/syntax.rs @@ -219,7 +219,11 @@ impl ZedSyntaxToken { ZedSyntaxToken::Number => vec!["constant.numeric", "number"], ZedSyntaxToken::Operator => vec!["operator", "keyword.operator"], ZedSyntaxToken::Predictive => vec![], - ZedSyntaxToken::Preproc => vec!["preproc"], + ZedSyntaxToken::Preproc => vec![ + "preproc", + "meta.preprocessor", + "punctuation.definition.preprocessor", + ], ZedSyntaxToken::Primary => vec![], ZedSyntaxToken::Property => vec![ "variable.member", From 1b6721170afd637523e069266ebc96a21e91fad6 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 8 Dec 2023 11:21:40 -0500 Subject: [PATCH 028/115] Improve matching for constant tokens --- crates/theme2/src/themes/ayu.rs | 6 +++--- crates/theme2/src/themes/noctis.rs | 22 +++++++++++----------- crates/theme2/src/themes/nord.rs | 2 +- crates/theme2/src/themes/rose_pine.rs | 21 +++++++++++++++++++++ crates/theme2/src/themes/synthwave_84.rs | 7 +++++++ crates/theme_importer/src/vscode/syntax.rs | 2 +- 6 files changed, 44 insertions(+), 16 deletions(-) diff --git a/crates/theme2/src/themes/ayu.rs b/crates/theme2/src/themes/ayu.rs index 8e5d588f52..f4ed232ea2 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 e09efd98c6..980ea7398d 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 4206598086..ce281f0f69 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 ecd669c34a..8bc7fe8bc0 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 90e4ae2131..aeca085fd5 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 990355065f..35f0f96a16 100644 --- a/crates/theme_importer/src/vscode/syntax.rs +++ b/crates/theme_importer/src/vscode/syntax.rs @@ -186,7 +186,7 @@ impl ZedSyntaxToken { ZedSyntaxToken::Boolean => vec!["constant.language"], ZedSyntaxToken::Comment => vec!["comment"], ZedSyntaxToken::CommentDoc => vec!["comment.block.documentation"], - ZedSyntaxToken::Constant => vec!["constant.character"], + ZedSyntaxToken::Constant => vec!["constant.language", "constant.character"], ZedSyntaxToken::Constructor => { vec!["entity.name.function.definition.special.constructor"] } From 6634a5e9f63522304bbb9378b5c9f2133a5e847b Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 8 Dec 2023 11:23:42 -0500 Subject: [PATCH 029/115] Improve matching for constant tokens further --- crates/theme2/src/themes/andromeda.rs | 14 ++++++++ crates/theme2/src/themes/dracula.rs | 7 ++++ crates/theme2/src/themes/gruvbox.rs | 42 ++++++++++++++++++++++ crates/theme_importer/src/vscode/syntax.rs | 2 +- 4 files changed, 64 insertions(+), 1 deletion(-) diff --git a/crates/theme2/src/themes/andromeda.rs b/crates/theme2/src/themes/andromeda.rs index 766329b353..38c859333f 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 3953a24526..ae6c9ad788 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 5674593c2d..32b580442a 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 35f0f96a16..e97839c9fe 100644 --- a/crates/theme_importer/src/vscode/syntax.rs +++ b/crates/theme_importer/src/vscode/syntax.rs @@ -186,7 +186,7 @@ impl ZedSyntaxToken { ZedSyntaxToken::Boolean => vec!["constant.language"], ZedSyntaxToken::Comment => vec!["comment"], ZedSyntaxToken::CommentDoc => vec!["comment.block.documentation"], - ZedSyntaxToken::Constant => vec!["constant.language", "constant.character"], + ZedSyntaxToken::Constant => vec!["constant", "constant.language", "constant.character"], ZedSyntaxToken::Constructor => { vec!["entity.name.function.definition.special.constructor"] } From 260a75300525e796cec0f9fe9f3782819af1bd9f Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Fri, 8 Dec 2023 11:33:18 -0500 Subject: [PATCH 030/115] Fix rustfmt --- crates/feedback2/src/feedback_modal.rs | 180 +++++++++++++------------ 1 file changed, 93 insertions(+), 87 deletions(-) diff --git a/crates/feedback2/src/feedback_modal.rs b/crates/feedback2/src/feedback_modal.rs index 6de05b6496..865cbcc4de 100644 --- a/crates/feedback2/src/feedback_modal.rs +++ b/crates/feedback2/src/feedback_modal.rs @@ -284,6 +284,10 @@ impl Render for FeedbackModal { let open_community_repo = cx.listener(|_, _, cx| cx.dispatch_action(Box::new(OpenZedCommunityRepo))); + // Moved this here because providing it inline breaks rustfmt + let provide_an_email_address = + "Provide an email address if you want us to be able to reply."; + v_stack() .elevation_3(cx) .key_context("GiveFeedback") @@ -293,103 +297,105 @@ impl Render for FeedbackModal { .h(rems(32.)) .p_4() .gap_4() + .child(v_stack().child( + // TODO: Add Headline component to `ui2` + div().text_xl().child("Share Feedback"), + )) .child( - v_stack() - .child( - // TODO: Add Headline component to `ui2` - div().text_xl().child("Share Feedback")) - ) - .child( - div() - .flex_1() - .bg(cx.theme().colors().editor_background) - .p_2() - .border() - .rounded_md() - .border_color(cx.theme().colors().border) - .child(self.feedback_editor.clone()), - ) - .child( - div().child( - Label::new( - if self.character_count < *FEEDBACK_CHAR_LIMIT.start() { - format!("Feedback must be at least {} characters.", FEEDBACK_CHAR_LIMIT.start()) - } else if self.character_count > *FEEDBACK_CHAR_LIMIT.end() { - format!("Feedback must be less than {} characters.", FEEDBACK_CHAR_LIMIT.end()) - } else { - format!( - "Characters: {}", - *FEEDBACK_CHAR_LIMIT.end() - self.character_count - ) - } - ) - .color( - if valid_character_count { - Color::Success - } else { - Color::Error - } - ) - ) - - .child( - h_stack() + div() + .flex_1() .bg(cx.theme().colors().editor_background) .p_2() .border() .rounded_md() .border_color(cx.theme().colors().border) - .child(self.email_address_editor.clone())) - - .child( - h_stack() - .justify_between() - .gap_1() - .child(Button::new("community_repo", "Community Repo") - .style(ButtonStyle::Transparent) - .icon(Icon::ExternalLink) - .icon_position(IconPosition::End) - .icon_size(IconSize::Small) - .on_click(open_community_repo) - ) - .child(h_stack().gap_1() + .child(self.feedback_editor.clone()), + ) + .child( + div() + .child( + Label::new(if self.character_count < *FEEDBACK_CHAR_LIMIT.start() { + format!( + "Feedback must be at least {} characters.", + FEEDBACK_CHAR_LIMIT.start() + ) + } else if self.character_count > *FEEDBACK_CHAR_LIMIT.end() { + format!( + "Feedback must be less than {} characters.", + FEEDBACK_CHAR_LIMIT.end() + ) + } else { + format!( + "Characters: {}", + *FEEDBACK_CHAR_LIMIT.end() - self.character_count + ) + }) + .color(if valid_character_count { + Color::Success + } else { + Color::Error + }), + ) + .child( + h_stack() + .bg(cx.theme().colors().editor_background) + .p_2() + .border() + .rounded_md() + .border_color(cx.theme().colors().border) + .child(self.email_address_editor.clone()), + ) + .child( + h_stack() + .justify_between() + .gap_1() .child( - Button::new("cancel_feedback", "Cancel") - .style(ButtonStyle::Subtle) - .color(Color::Muted) - // TODO: replicate this logic when clicking outside the modal - // TODO: Will require somehow overriding the modal dismal default behavior - .map(|this| { - if has_feedback { - this.on_click(dismiss_prompt) - } else { - this.on_click(dismiss) - } - }) + Button::new("community_repo", "Community Repo") + .style(ButtonStyle::Transparent) + .icon(Icon::ExternalLink) + .icon_position(IconPosition::End) + .icon_size(IconSize::Small) + .on_click(open_community_repo), ) .child( - Button::new("send_feedback", submit_button_text) - .color(Color::Accent) - .style(ButtonStyle::Filled) - // TODO: Ensure that while submitting, "Sending..." is shown and disable the button - // TODO: If submit errors: show popup with error, don't close modal, set text back to "Send Feedback", and re-enable button - // TODO: If submit is successful, close the modal - .on_click(cx.listener(|this, _, cx| { - let _ = this.submit(cx); - })) - .tooltip(|cx| { - Tooltip::with_meta( - "Submit feedback to the Zed team.", - None, - "Provide an email address if you want us to be able to reply.", - cx, - ) - }) - .when(!allow_submission, |this| this.disabled(true)) + h_stack() + .gap_1() + .child( + Button::new("cancel_feedback", "Cancel") + .style(ButtonStyle::Subtle) + .color(Color::Muted) + // TODO: replicate this logic when clicking outside the modal + // TODO: Will require somehow overriding the modal dismal default behavior + .map(|this| { + if has_feedback { + this.on_click(dismiss_prompt) + } else { + this.on_click(dismiss) + } + }), + ) + .child( + Button::new("send_feedback", submit_button_text) + .color(Color::Accent) + .style(ButtonStyle::Filled) + // TODO: Ensure that while submitting, "Sending..." is shown and disable the button + // TODO: If submit errors: show popup with error, don't close modal, set text back to "Send Feedback", and re-enable button + // TODO: If submit is successful, close the modal + .on_click(cx.listener(|this, _, cx| { + let _ = this.submit(cx); + })) + .tooltip(|cx| { + Tooltip::with_meta( + "Submit feedback to the Zed team.", + None, + provide_an_email_address, + cx, + ) + }) + .when(!allow_submission, |this| this.disabled(true)), + ), ), - ) - - ) + ), ) } } From 6f064cfc36e3efcc30e9664cfb5a21807e3f9338 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 8 Dec 2023 11:34:39 -0500 Subject: [PATCH 031/115] Improve matching for constructor tokens --- crates/theme2/src/themes/andromeda.rs | 14 ++++ crates/theme2/src/themes/ayu.rs | 21 ++++++ crates/theme2/src/themes/dracula.rs | 7 ++ crates/theme2/src/themes/gruvbox.rs | 42 ++++++++++++ crates/theme2/src/themes/night_owl.rs | 14 ++++ crates/theme2/src/themes/noctis.rs | 77 ++++++++++++++++++++++ crates/theme2/src/themes/nord.rs | 7 ++ crates/theme2/src/themes/palenight.rs | 21 ++++++ crates/theme2/src/themes/rose_pine.rs | 21 ++++++ crates/theme2/src/themes/solarized.rs | 14 ++++ crates/theme2/src/themes/synthwave_84.rs | 7 ++ crates/theme_importer/src/vscode/syntax.rs | 5 +- 12 files changed, 249 insertions(+), 1 deletion(-) diff --git a/crates/theme2/src/themes/andromeda.rs b/crates/theme2/src/themes/andromeda.rs index 38c859333f..577bbea543 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 f4ed232ea2..10ef469490 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 ae6c9ad788..19902dd79d 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 32b580442a..43354b2d22 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 33246850f4..09b73c10db 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 980ea7398d..a05422300c 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 ce281f0f69..ee32e56645 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 1200802fbc..0b2cfaca99 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 8bc7fe8bc0..460903e2e5 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 5d43b5704a..81171e0fb0 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 aeca085fd5..90e8a9c667 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 e97839c9fe..262bd81f77 100644 --- a/crates/theme_importer/src/vscode/syntax.rs +++ b/crates/theme_importer/src/vscode/syntax.rs @@ -188,7 +188,10 @@ impl ZedSyntaxToken { ZedSyntaxToken::CommentDoc => vec!["comment.block.documentation"], ZedSyntaxToken::Constant => vec!["constant", "constant.language", "constant.character"], ZedSyntaxToken::Constructor => { - vec!["entity.name.function.definition.special.constructor"] + vec![ + "entity.name.tag", + "entity.name.function.definition.special.constructor", + ] } ZedSyntaxToken::Embedded => vec!["meta.embedded"], ZedSyntaxToken::Emphasis => vec!["markup.italic"], From b66e1d2d58b562bb30a6ee5c2ef7c0d48bb87e38 Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Fri, 8 Dec 2023 11:35:49 -0500 Subject: [PATCH 032/115] Fix compiler error --- crates/feedback2/src/feedback_modal.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/feedback2/src/feedback_modal.rs b/crates/feedback2/src/feedback_modal.rs index 865cbcc4de..0cee05c8f8 100644 --- a/crates/feedback2/src/feedback_modal.rs +++ b/crates/feedback2/src/feedback_modal.rs @@ -384,7 +384,7 @@ impl Render for FeedbackModal { .on_click(cx.listener(|this, _, cx| { let _ = this.submit(cx); })) - .tooltip(|cx| { + .tooltip(move |cx| { Tooltip::with_meta( "Submit feedback to the Zed team.", None, From 4596e7a68a6bc5729787f91ba2d9404397f0ede0 Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Fri, 8 Dec 2023 11:39:10 -0500 Subject: [PATCH 033/115] Use consistent text --- crates/feedback2/src/deploy_feedback_button.rs | 2 +- crates/feedback2/src/feedback_modal.rs | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/feedback2/src/deploy_feedback_button.rs b/crates/feedback2/src/deploy_feedback_button.rs index e5884cf9b1..3b28c64dc3 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 0cee05c8f8..5ac2197609 100644 --- a/crates/feedback2/src/feedback_modal.rs +++ b/crates/feedback2/src/feedback_modal.rs @@ -263,9 +263,9 @@ impl Render for FeedbackModal { let has_feedback = self.feedback_editor.read(cx).text_option(cx).is_some(); let submit_button_text = if self.pending_submission { - "Sending..." + "Submitting..." } else { - "Send Feedback" + "Submit" }; let dismiss = cx.listener(|_, _, cx| { cx.emit(DismissEvent); @@ -379,7 +379,7 @@ impl Render for FeedbackModal { .color(Color::Accent) .style(ButtonStyle::Filled) // TODO: Ensure that while submitting, "Sending..." is shown and disable the button - // TODO: If submit errors: show popup with error, don't close modal, set text back to "Send Feedback", and re-enable button + // TODO: If submit errors: show popup with error, don't close modal, set text back to "Submit", and re-enable button // TODO: If submit is successful, close the modal .on_click(cx.listener(|this, _, cx| { let _ = this.submit(cx); From 52e4c577d241a8a80a89f6bb1fc2260f6f61b45b Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 8 Dec 2023 11:45:08 -0500 Subject: [PATCH 034/115] =?UTF-8?q?Re-import=20Ros=C3=A9=20Pine=20source?= =?UTF-8?q?=20themes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/vscode/rose-pine/rose-pine-dawn.json | 1354 ++++++++-------- .../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, 2051 insertions(+), 2051 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 39cc251fe9..abf752d3f6 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" + "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" + } }, - "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" - } - } - ] + { + "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 dbbb757335..19c0cdd661 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 c2a0d23efc..167362ced4 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 460903e2e5..2e5cf835ab 100644 --- a/crates/theme2/src/themes/rose_pine.rs +++ b/crates/theme2/src/themes/rose_pine.rs @@ -19,12 +19,12 @@ pub fn rose_pine() -> UserThemeFamily { appearance: Appearance::Dark, styles: UserThemeStylesRefinement { colors: ThemeColorsRefinement { - border: Some(rgba(0x000000ff).into()), - border_variant: Some(rgba(0x000000ff).into()), + border: Some(rgba(0x00000000).into()), + border_variant: Some(rgba(0x00000000).into()), border_focused: Some(rgba(0x6e6a8633).into()), - border_selected: Some(rgba(0x000000ff).into()), - border_transparent: Some(rgba(0x000000ff).into()), - border_disabled: Some(rgba(0x000000ff).into()), + border_selected: Some(rgba(0x00000000).into()), + border_transparent: Some(rgba(0x00000000).into()), + border_disabled: Some(rgba(0x00000000).into()), elevated_surface_background: Some(rgba(0x1f1d2eff).into()), surface_background: Some(rgba(0x1f1d2eff).into()), background: Some(rgba(0x191724ff).into()), @@ -38,7 +38,7 @@ pub fn rose_pine() -> UserThemeFamily { title_bar_background: Some(rgba(0x191724ff).into()), toolbar_background: Some(rgba(0x1f1d2eff).into()), tab_bar_background: Some(rgba(0x1f1d2eff).into()), - tab_inactive_background: Some(rgba(0x000000ff).into()), + tab_inactive_background: Some(rgba(0x00000000).into()), tab_active_background: Some(rgba(0x6e6a861a).into()), editor_background: Some(rgba(0x191724ff).into()), editor_gutter_background: Some(rgba(0x191724ff).into()), @@ -266,12 +266,12 @@ pub fn rose_pine() -> UserThemeFamily { appearance: Appearance::Dark, styles: UserThemeStylesRefinement { colors: ThemeColorsRefinement { - border: Some(rgba(0x000000ff).into()), - border_variant: Some(rgba(0x000000ff).into()), + border: Some(rgba(0x00000000).into()), + border_variant: Some(rgba(0x00000000).into()), border_focused: Some(rgba(0x817c9c26).into()), - border_selected: Some(rgba(0x000000ff).into()), - border_transparent: Some(rgba(0x000000ff).into()), - border_disabled: Some(rgba(0x000000ff).into()), + border_selected: Some(rgba(0x00000000).into()), + border_transparent: Some(rgba(0x00000000).into()), + border_disabled: Some(rgba(0x00000000).into()), elevated_surface_background: Some(rgba(0x2a273fff).into()), surface_background: Some(rgba(0x2a273fff).into()), background: Some(rgba(0x232136ff).into()), @@ -285,7 +285,7 @@ pub fn rose_pine() -> UserThemeFamily { title_bar_background: Some(rgba(0x232136ff).into()), toolbar_background: Some(rgba(0x2a273fff).into()), tab_bar_background: Some(rgba(0x2a273fff).into()), - tab_inactive_background: Some(rgba(0x000000ff).into()), + tab_inactive_background: Some(rgba(0x00000000).into()), tab_active_background: Some(rgba(0x817c9c14).into()), editor_background: Some(rgba(0x232136ff).into()), editor_gutter_background: Some(rgba(0x232136ff).into()), @@ -513,12 +513,12 @@ pub fn rose_pine() -> UserThemeFamily { appearance: Appearance::Light, styles: UserThemeStylesRefinement { colors: ThemeColorsRefinement { - border: Some(rgba(0x000000ff).into()), - border_variant: Some(rgba(0x000000ff).into()), + border: Some(rgba(0x00000000).into()), + border_variant: Some(rgba(0x00000000).into()), border_focused: Some(rgba(0x6e6a8614).into()), - border_selected: Some(rgba(0x000000ff).into()), - border_transparent: Some(rgba(0x000000ff).into()), - border_disabled: Some(rgba(0x000000ff).into()), + border_selected: Some(rgba(0x00000000).into()), + border_transparent: Some(rgba(0x00000000).into()), + border_disabled: Some(rgba(0x00000000).into()), elevated_surface_background: Some(rgba(0xfffaf3ff).into()), surface_background: Some(rgba(0xfffaf3ff).into()), background: Some(rgba(0xfaf4edff).into()), @@ -532,7 +532,7 @@ pub fn rose_pine() -> UserThemeFamily { title_bar_background: Some(rgba(0xfaf4edff).into()), toolbar_background: Some(rgba(0xfffaf3ff).into()), tab_bar_background: Some(rgba(0xfffaf3ff).into()), - tab_inactive_background: Some(rgba(0x000000ff).into()), + tab_inactive_background: Some(rgba(0x00000000).into()), tab_active_background: Some(rgba(0x6e6a860d).into()), editor_background: Some(rgba(0xfaf4edff).into()), editor_gutter_background: Some(rgba(0xfaf4edff).into()), From a283cbaf8f5a3a1d1d2ac881c259d82bbc6e9bc1 Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Fri, 8 Dec 2023 17:59:52 +0100 Subject: [PATCH 035/115] Re-enable navigation with mouse navigation buttons --- crates/workspace2/src/pane.rs | 349 +++++++++++++++++----------------- 1 file changed, 170 insertions(+), 179 deletions(-) diff --git a/crates/workspace2/src/pane.rs b/crates/workspace2/src/pane.rs index 3b1c00994f..713fa711ad 100644 --- a/crates/workspace2/src/pane.rs +++ b/crates/workspace2/src/pane.rs @@ -9,8 +9,8 @@ use collections::{HashMap, HashSet, VecDeque}; use gpui::{ actions, overlay, prelude::*, rems, Action, AnchorCorner, AnyWeakView, AppContext, AsyncWindowContext, DismissEvent, Div, EntityId, EventEmitter, FocusHandle, Focusable, - FocusableView, Model, Pixels, Point, PromptLevel, Render, Task, View, ViewContext, - VisualContext, WeakView, WindowContext, + FocusableView, Model, MouseButton, NavigationDirection, Pixels, Point, PromptLevel, Render, + Task, View, ViewContext, VisualContext, WeakView, WindowContext, }; use parking_lot::Mutex; use project::{Project, ProjectEntryId, ProjectPath}; @@ -2139,183 +2139,174 @@ impl Render for Pane { .justify_center() .child(Label::new("Open a file or project to get started.").color(Color::Muted)) }) - - // enum MouseNavigationHandler {} - - // MouseEventHandler::new::(0, cx, |_, cx| { - // let active_item_index = self.active_item_index; - - // if let Some(active_item) = self.active_item() { - // Flex::column() - // .with_child({ - // let theme = theme::current(cx).clone(); - - // let mut stack = Stack::new(); - - // enum TabBarEventHandler {} - // stack.add_child( - // MouseEventHandler::new::(0, cx, |_, _| { - // Empty::new() - // .contained() - // .with_style(theme.workspace.tab_bar.container) - // }) - // .on_down( - // MouseButton::Left, - // move |_, this, cx| { - // this.activate_item(active_item_index, true, true, cx); - // }, - // ), - // ); - // let tooltip_style = theme.tooltip.clone(); - // let tab_bar_theme = theme.workspace.tab_bar.clone(); - - // let nav_button_height = tab_bar_theme.height; - // let button_style = tab_bar_theme.nav_button; - // let border_for_nav_buttons = tab_bar_theme - // .tab_style(false, false) - // .container - // .border - // .clone(); - - // let mut tab_row = Flex::row() - // .with_child(nav_button( - // "icons/arrow_left.svg", - // button_style.clone(), - // nav_button_height, - // tooltip_style.clone(), - // self.can_navigate_backward(), - // { - // move |pane, cx| { - // if let Some(workspace) = pane.workspace.upgrade(cx) { - // let pane = cx.weak_handle(); - // cx.window_context().defer(move |cx| { - // workspace.update(cx, |workspace, cx| { - // workspace - // .go_back(pane, cx) - // .detach_and_log_err(cx) - // }) - // }) - // } - // } - // }, - // super::GoBack, - // "Go Back", - // cx, - // )) - // .with_child( - // nav_button( - // "icons/arrow_right.svg", - // button_style.clone(), - // nav_button_height, - // tooltip_style, - // self.can_navigate_forward(), - // { - // move |pane, cx| { - // if let Some(workspace) = pane.workspace.upgrade(cx) { - // let pane = cx.weak_handle(); - // cx.window_context().defer(move |cx| { - // workspace.update(cx, |workspace, cx| { - // workspace - // .go_forward(pane, cx) - // .detach_and_log_err(cx) - // }) - // }) - // } - // } - // }, - // super::GoForward, - // "Go Forward", - // cx, - // ) - // .contained() - // .with_border(border_for_nav_buttons), - // ) - // .with_child(self.render_tabs(cx).flex(1., true).into_any_named("tabs")); - - // if self.has_focus { - // let render_tab_bar_buttons = self.render_tab_bar_buttons.clone(); - // tab_row.add_child( - // (render_tab_bar_buttons)(self, cx) - // .contained() - // .with_style(theme.workspace.tab_bar.pane_button_container) - // .flex(1., false) - // .into_any(), - // ) - // } - - // stack.add_child(tab_row); - // stack - // .constrained() - // .with_height(theme.workspace.tab_bar.height) - // .flex(1., false) - // .into_any_named("tab bar") - // }) - // .with_child({ - // enum PaneContentTabDropTarget {} - // dragged_item_receiver::( - // self, - // 0, - // self.active_item_index + 1, - // !self.can_split, - // if self.can_split { Some(100.) } else { None }, - // cx, - // { - // let toolbar = self.toolbar.clone(); - // let toolbar_hidden = toolbar.read(cx).hidden(); - // move |_, cx| { - // Flex::column() - // .with_children( - // (!toolbar_hidden) - // .then(|| ChildView::new(&toolbar, cx).expanded()), - // ) - // .with_child( - // ChildView::new(active_item.as_any(), cx).flex(1., true), - // ) - // } - // }, - // ) - // .flex(1., true) - // }) - // .with_child(ChildView::new(&self.tab_context_menu, cx)) - // .into_any() - // } else { - // enum EmptyPane {} - // let theme = theme::current(cx).clone(); - - // dragged_item_receiver::(self, 0, 0, false, None, cx, |_, cx| { - // self.render_blank_pane(&theme, cx) - // }) - // .on_down(MouseButton::Left, |_, _, cx| { - // cx.focus_parent(); - // }) - // .into_any() - // } - // }) - // .on_down( - // MouseButton::Navigate(NavigationDirection::Back), - // move |_, pane, cx| { - // if let Some(workspace) = pane.workspace.upgrade(cx) { - // let pane = cx.weak_handle(); - // cx.window_context().defer(move |cx| { - // workspace.update(cx, |workspace, cx| { - // workspace.go_back(pane, cx).detach_and_log_err(cx) - // }) - // }) - // } - // }, - // ) - // .on_down(MouseButton::Navigate(NavigationDirection::Forward), { - // move |_, pane, cx| { - // if let Some(workspace) = pane.workspace.upgrade(cx) { - // let pane = cx.weak_handle(); - // cx.window_context().defer(move |cx| { - // workspace.update(cx, |workspace, cx| { - // workspace.go_forward(pane, cx).detach_and_log_err(cx) - // }) - // }) - // } - // } - // }) + // enum MouseNavigationHandler {} + // MouseEventHandler::new::(0, cx, |_, cx| { + // let active_item_index = self.active_item_index; + // if let Some(active_item) = self.active_item() { + // Flex::column() + // .with_child({ + // let theme = theme::current(cx).clone(); + // let mut stack = Stack::new(); + // enum TabBarEventHandler {} + // stack.add_child( + // MouseEventHandler::new::(0, cx, |_, _| { + // Empty::new() + // .contained() + // .with_style(theme.workspace.tab_bar.container) + // }) + // .on_down( + // MouseButton::Left, + // move |_, this, cx| { + // this.activate_item(active_item_index, true, true, cx); + // }, + // ), + // ); + // let tooltip_style = theme.tooltip.clone(); + // let tab_bar_theme = theme.workspace.tab_bar.clone(); + // let nav_button_height = tab_bar_theme.height; + // let button_style = tab_bar_theme.nav_button; + // let border_for_nav_buttons = tab_bar_theme + // .tab_style(false, false) + // .container + // .border + // .clone(); + // let mut tab_row = Flex::row() + // .with_child(nav_button( + // "icons/arrow_left.svg", + // button_style.clone(), + // nav_button_height, + // tooltip_style.clone(), + // self.can_navigate_backward(), + // { + // move |pane, cx| { + // if let Some(workspace) = pane.workspace.upgrade(cx) { + // let pane = cx.weak_handle(); + // cx.window_context().defer(move |cx| { + // workspace.update(cx, |workspace, cx| { + // workspace + // .go_back(pane, cx) + // .detach_and_log_err(cx) + // }) + // }) + // } + // } + // }, + // super::GoBack, + // "Go Back", + // cx, + // )) + // .with_child( + // nav_button( + // "icons/arrow_right.svg", + // button_style.clone(), + // nav_button_height, + // tooltip_style, + // self.can_navigate_forward(), + // { + // move |pane, cx| { + // if let Some(workspace) = pane.workspace.upgrade(cx) { + // let pane = cx.weak_handle(); + // cx.window_context().defer(move |cx| { + // workspace.update(cx, |workspace, cx| { + // workspace + // .go_forward(pane, cx) + // .detach_and_log_err(cx) + // }) + // }) + // } + // } + // }, + // super::GoForward, + // "Go Forward", + // cx, + // ) + // .contained() + // .with_border(border_for_nav_buttons), + // ) + // .with_child(self.render_tabs(cx).flex(1., true).into_any_named("tabs")); + // if self.has_focus { + // let render_tab_bar_buttons = self.render_tab_bar_buttons.clone(); + // tab_row.add_child( + // (render_tab_bar_buttons)(self, cx) + // .contained() + // .with_style(theme.workspace.tab_bar.pane_button_container) + // .flex(1., false) + // .into_any(), + // ) + // } + // stack.add_child(tab_row); + // stack + // .constrained() + // .with_height(theme.workspace.tab_bar.height) + // .flex(1., false) + // .into_any_named("tab bar") + // }) + // .with_child({ + // enum PaneContentTabDropTarget {} + // dragged_item_receiver::( + // self, + // 0, + // self.active_item_index + 1, + // !self.can_split, + // if self.can_split { Some(100.) } else { None }, + // cx, + // { + // let toolbar = self.toolbar.clone(); + // let toolbar_hidden = toolbar.read(cx).hidden(); + // move |_, cx| { + // Flex::column() + // .with_children( + // (!toolbar_hidden) + // .then(|| ChildView::new(&toolbar, cx).expanded()), + // ) + // .with_child( + // ChildView::new(active_item.as_any(), cx).flex(1., true), + // ) + // } + // }, + // ) + // .flex(1., true) + // }) + // .with_child(ChildView::new(&self.tab_context_menu, cx)) + // .into_any() + // } else { + // enum EmptyPane {} + // let theme = theme::current(cx).clone(); + // dragged_item_receiver::(self, 0, 0, false, None, cx, |_, cx| { + // self.render_blank_pane(&theme, cx) + // }) + // .on_down(MouseButton::Left, |_, _, cx| { + // cx.focus_parent(); + // }) + // .into_any() + // } + // }) + .on_mouse_down( + MouseButton::Navigate(NavigationDirection::Back), + cx.listener(|pane, _, cx| { + if let Some(workspace) = pane.workspace.upgrade() { + let pane = cx.view().downgrade(); + cx.window_context().defer(move |cx| { + workspace.update(cx, |workspace, cx| { + workspace.go_back(pane, cx).detach_and_log_err(cx) + }) + }) + } + }), + ) + .on_mouse_down( + MouseButton::Navigate(NavigationDirection::Forward), + cx.listener(|pane, _, cx| { + if let Some(workspace) = pane.workspace.upgrade() { + let pane = cx.view().downgrade(); + cx.window_context().defer(move |cx| { + workspace.update(cx, |workspace, cx| { + workspace.go_forward(pane, cx).detach_and_log_err(cx) + }) + }) + } + }), + ) // .into_any_named("pane") } From 970c7b89877fb12ca571fa1514e75bf7f29f417a Mon Sep 17 00:00:00 2001 From: Julia Date: Fri, 8 Dec 2023 12:02:31 -0500 Subject: [PATCH 036/115] zed2: Properly position terminal context menu & hide on dismiss --- crates/terminal_view2/src/terminal_view.rs | 42 ++++++++++++++-------- 1 file changed, 27 insertions(+), 15 deletions(-) diff --git a/crates/terminal_view2/src/terminal_view.rs b/crates/terminal_view2/src/terminal_view.rs index 5a81b494b3..c4f1512e8c 100644 --- a/crates/terminal_view2/src/terminal_view.rs +++ b/crates/terminal_view2/src/terminal_view.rs @@ -9,9 +9,10 @@ pub mod terminal_panel; // use crate::terminal_element::TerminalElement; use editor::{scroll::autoscroll::Autoscroll, Editor}; use gpui::{ - div, Action, AnyElement, AppContext, Div, EventEmitter, FocusEvent, FocusHandle, Focusable, - FocusableElement, FocusableView, KeyContext, KeyDownEvent, Keystroke, Model, MouseButton, - MouseDownEvent, Pixels, Render, Subscription, Task, View, VisualContext, WeakView, + div, overlay, Action, AnyElement, AppContext, DismissEvent, Div, EventEmitter, FocusEvent, + FocusHandle, Focusable, FocusableElement, FocusableView, KeyContext, KeyDownEvent, Keystroke, + Model, MouseButton, MouseDownEvent, Pixels, Render, Subscription, Task, View, VisualContext, + WeakView, }; use language::Bias; use persistence::TERMINAL_DB; @@ -81,7 +82,7 @@ pub struct TerminalView { has_new_content: bool, //Currently using iTerm bell, show bell emoji in tab until input is received has_bell: bool, - context_menu: Option>, + context_menu: Option<(View, gpui::Point, Subscription)>, blink_state: bool, blinking_on: bool, blinking_paused: bool, @@ -312,14 +313,24 @@ impl TerminalView { position: gpui::Point, cx: &mut ViewContext, ) { - self.context_menu = Some(ContextMenu::build(cx, |menu, cx| { + let context_menu = ContextMenu::build(cx, |menu, cx| { menu.action("Clear", Box::new(Clear)) .action("Close", Box::new(CloseActiveItem { save_intent: None })) - })); - // todo!(context menus) - // self.context_menu - // .show(position, AnchorCorner::TopLeft, menu_entries, cx); - // cx.notify(); + }); + + cx.focus_view(&context_menu); + let subscription = + cx.subscribe(&context_menu, |this, _, _: &DismissEvent, cx| { + if this.context_menu.as_ref().is_some_and(|context_menu| { + context_menu.0.focus_handle(cx).contains_focused(cx) + }) { + cx.focus_self(); + } + this.context_menu.take(); + cx.notify(); + }); + + self.context_menu = Some((context_menu, position, subscription)); } fn show_character_palette(&mut self, _: &ShowCharacterPalette, cx: &mut ViewContext) { @@ -658,11 +669,12 @@ impl Render for TerminalView { }), ), ) - .children( - self.context_menu - .clone() - .map(|context_menu| div().z_index(1).absolute().child(context_menu)), - ) + .children(self.context_menu.as_ref().map(|(menu, positon, _)| { + overlay() + .position(*positon) + .anchor(gpui::AnchorCorner::TopLeft) + .child(menu.clone()) + })) .track_focus(&self.focus_handle) .on_focus_in(cx.listener(Self::focus_in)) .on_focus_out(cx.listener(Self::focus_out)) From 8987b2205c5693a08b94cdc0e2865da4727d31a8 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 8 Dec 2023 12:04:24 -0500 Subject: [PATCH 037/115] Fix line endings in Palenight source themes (#3554) This PR fixes the line endings in the Palenight source themes. Release Notes: - N/A --- .../palenight/palenight-mild-contrast.json | 3138 ++++++++-------- .../vscode/palenight/palenight-operator.json | 3280 ++++++++--------- .../src/vscode/palenight/palenight.json | 3138 ++++++++-------- 3 files changed, 4778 insertions(+), 4778 deletions(-) diff --git a/assets/themes/src/vscode/palenight/palenight-mild-contrast.json b/assets/themes/src/vscode/palenight/palenight-mild-contrast.json index 60164e29c7..7533d90ffd 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 92104cd9ed..450d36cb9a 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 5351dc4f23..cfbf2f8788 100644 --- a/assets/themes/src/vscode/palenight/palenight.json +++ b/assets/themes/src/vscode/palenight/palenight.json @@ -1,1569 +1,1569 @@ -{ - "name": "Palenight Theme", - "author": "Olaolu Olawuyi", - "maintainers": ["Olaolu Olawuyi "], - "type": "dark", - "semanticClass": "palenight", - "colors": { - "contrastActiveBorder": null, - "contrastBorder": "#282B3C", - "focusBorder": "#282B3C", - "foreground": "#ffffff", - "widget.shadow": "#232635", - "selection.background": "#7580B850", - "descriptionForeground": null, - "errorForeground": "#EF5350", - "button.background": "#7e57c2cc", - "button.foreground": "#ffffffcc", - "button.hoverBackground": "#7e57c2", - "dropdown.background": "#292D3E", - "dropdown.border": "#7e57c2", - "dropdown.foreground": "#ffffffcc", - "input.background": "#313850", - "input.border": "#7e57c2", - "input.foreground": "#ffffffcc", - "input.placeholderForeground": "#ffffffcc", - "inputOption.activeBorder": "#ffffffcc", - "inputValidation.errorBackground": "#ef5350f2", - "inputValidation.errorBorder": "#EF5350", - "inputValidation.infoBackground": "#64b5f6f2", - "inputValidation.infoBorder": "#64B5F6", - "inputValidation.warningBackground": "#ffca28f2", - "inputValidation.warningBorder": "#FFCA28", - "scrollbar.shadow": "#292D3E00", - "scrollbarSlider.activeBackground": "#694CA4cc", - "scrollbarSlider.background": "#694CA466", - "scrollbarSlider.hoverBackground": "#694CA4cc", - "badge.background": "#7e57c2", - "badge.foreground": "#ffffff", - "progress.background": "#7e57c2", - "list.activeSelectionBackground": "#7e57c2", - "list.activeSelectionForeground": "#ffffff", - "list.dropBackground": "#2E3245", - "list.focusBackground": "#0000002e", - "list.focusForeground": "#ffffff", - "list.highlightForeground": "#ffffff", - "list.hoverBackground": "#0000001a", - "list.hoverForeground": "#ffffff", - "list.inactiveSelectionBackground": "#929ac90d", - "list.inactiveSelectionForeground": "#929ac9", - "activityBar.background": "#282C3D", - "activityBar.dropBackground": "#7e57c2e3", - "activityBar.foreground": "#eeffff", - "activityBar.border": "#282C3D", - "activityBarBadge.background": "#7e57c2", - "activityBarBadge.foreground": "#ffffff", - "sideBar.background": "#292D3E", - "sideBar.foreground": "#6C739A", - "sideBar.border": "#282B3C", - "sideBarTitle.foreground": "#eeffff", - "sideBarSectionHeader.background": "#292D3E", - "sideBarSectionHeader.foreground": "#eeffff", - "editorGroup.background": "#32374C", - "editorGroup.border": "#2E3245", - "editorGroup.dropBackground": "#7e57c273", - "editorGroupHeader.noTabsBackground": "#32374C", - "editorGroupHeader.tabsBackground": "#31364a", - "editorGroupHeader.tabsBorder": "#262A39", - "tab.activeBackground": "#292D3E", - "tab.activeForeground": "#eeffff", - "tab.border": "#272B3B", - "tab.activeBorder": "#262A39", - "tab.unfocusedActiveBorder": "#262A39", - "tab.inactiveBackground": "#31364A", - "tab.inactiveForeground": "#929ac9", - "tab.unfocusedActiveForeground": null, - "tab.unfocusedInactiveForeground": null, - "editor.background": "#292D3E", - "editor.foreground": "#BFC7D5", - "editorLineNumber.foreground": "#4c5374", - "editorLineNumber.activeForeground": "#eeffff", - "editorCursor.foreground": "#7e57c2", - "editorCursor.background": null, - "editor.selectionBackground": "#7580B850", - "editor.selectionHighlightBackground": "#383D51", - "editor.inactiveSelectionBackground": "#7e57c25a", - "editor.wordHighlightBackground": "#32374D", - "editor.wordHighlightStrongBackground": "#2E3250", - "editor.findMatchBackground": "#2e3248fc", - "editor.findMatchHighlightBackground": "#7e57c233", - "editor.findRangeHighlightBackground": null, - "editor.hoverHighlightBackground": "#7e57c25a", - "editor.lineHighlightBackground": "#0003", - "editor.lineHighlightBorder": null, - "editorLink.activeForeground": null, - "editor.rangeHighlightBackground": "#7e57c25a", - "editorWhitespace.foreground": null, - "editorIndentGuide.background": "#4E557980", - "editorRuler.foreground": "#4E557980", - "editorCodeLens.foreground": "#FFCA28", - "editorBracketMatch.background": null, - "editorBracketMatch.border": null, - "editorOverviewRuler.currentContentForeground": "#7e57c2", - "editorOverviewRuler.incomingContentForeground": "#7e57c2", - "editorOverviewRuler.commonContentForeground": "#7e57c2", - "editorError.foreground": "#EF5350", - "editorError.border": null, - "editorWarning.foreground": "#FFCA28", - "editorWarning.border": null, - "editorGutter.background": null, - "editorGutter.modifiedBackground": "#e2b93d", - "editorGutter.addedBackground": "#9CCC65", - "editorGutter.deletedBackground": "#EF5350", - "diffEditor.insertedTextBackground": "#99b76d23", - "diffEditor.removedTextBackground": "#ef535033", - "editorWidget.background": "#31364a", - "editorWidget.border": null, - "editorSuggestWidget.background": "#2C3043", - "editorSuggestWidget.border": "#2B2F40", - "editorSuggestWidget.foreground": "#bfc7d5", - "editorSuggestWidget.highlightForeground": "#ffffff", - "editorSuggestWidget.selectedBackground": "#7e57c2", - "editorHoverWidget.background": "#292D3E", - "editorHoverWidget.border": "#7e57c2", - "debugExceptionWidget.background": "#292D3E", - "debugExceptionWidget.border": "#7e57c2", - "editorMarkerNavigation.background": "#31364a", - "editorMarkerNavigationError.background": "#EF5350", - "editorMarkerNavigationWarning.background": "#FFCA28", - "peekView.border": "#7e57c2", - "peekViewEditor.background": "#232635", - "peekViewEditor.matchHighlightBackground": "#7e57c25a", - "peekViewResult.background": "#2E3245", - "peekViewResult.fileForeground": "#eeffff", - "peekViewResult.lineForeground": "#eeffff", - "peekViewResult.matchHighlightBackground": "#7e57c25a", - "peekViewResult.selectionBackground": "#2E3250", - "peekViewResult.selectionForeground": "#eeffff", - "peekViewTitle.background": "#292D3E", - "peekViewTitleDescription.foreground": "#697098", - "peekViewTitleLabel.foreground": "#eeffff", - "merge.currentHeaderBackground": "#7e57c25a", - "merge.currentContentBackground": null, - "merge.incomingHeaderBackground": "#7e57c25a", - "merge.incomingContentBackground": null, - "merge.border": null, - "panel.background": "#292D3E", - "panel.border": "#282B3C", - "panelTitle.activeBorder": "#7e57c2", - "panelTitle.activeForeground": "#eeffff", - "panelTitle.inactiveForeground": "#bfc7d580", - "statusBar.background": "#282C3D", - "statusBar.foreground": "#676E95", - "statusBar.border": "#262A39", - "statusBar.debuggingBackground": "#202431", - "statusBar.debuggingForeground": null, - "statusBar.debuggingBorder": "#1F2330", - "statusBar.noFolderForeground": null, - "statusBar.noFolderBackground": "#292D3E", - "statusBar.noFolderBorder": "#25293A", - "statusBarItem.activeBackground": "#202431", - "statusBarItem.hoverBackground": "#202431", - "statusBarItem.prominentBackground": "#202431", - "statusBarItem.prominentHoverBackground": "#202431", - "titleBar.activeBackground": "#292d3e", - "titleBar.activeForeground": "#eeefff", - "titleBar.border": "#30364c", - "titleBar.inactiveBackground": "#30364c", - "titleBar.inactiveForeground": null, - "notifications.background": "#292D3E", - "notifications.foreground": "#ffffffcc", - "notificationLink.foreground": "#80CBC4", - "extensionButton.prominentForeground": "#ffffffcc", - "extensionButton.prominentBackground": "#7e57c2cc", - "extensionButton.prominentHoverBackground": "#7e57c2", - "pickerGroup.foreground": "#d1aaff", - "pickerGroup.border": "#2E3245", - "terminal.ansiWhite": "#ffffff", - "terminal.ansiBlack": "#676E95", - "terminal.ansiBlue": "#82AAFF", - "terminal.ansiCyan": "#89DDFF", - "terminal.ansiGreen": "#a9c77d", - "terminal.ansiMagenta": "#C792EA", - "terminal.ansiRed": "#ff5572", - "terminal.ansiYellow": "#FFCB6B", - "terminal.ansiBrightWhite": "#ffffff", - "terminal.ansiBrightBlack": "#676E95", - "terminal.ansiBrightBlue": "#82AAFF", - "terminal.ansiBrightCyan": "#89DDFF", - "terminal.ansiBrightGreen": "#C3E88D", - "terminal.ansiBrightMagenta": "#C792EA", - "terminal.ansiBrightRed": "#ff5572", - "terminal.ansiBrightYellow": "#FFCB6B", - "debugToolBar.background": "#292D3E", - "welcomePage.buttonBackground": null, - "welcomePage.buttonHoverBackground": null, - "walkThrough.embeddedEditorBackground": "#232635", - "gitDecoration.modifiedResourceForeground": "#e2c08de6", - "gitDecoration.deletedResourceForeground": "#EF535090", - "gitDecoration.untrackedResourceForeground": "#a9c77dff", - "gitDecoration.ignoredResourceForeground": "#69709890", - "gitDecoration.conflictingResourceForeground": "#FFEB95CC", - "editorActiveLineNumber.foreground": "#eeffff", - "breadcrumb.foreground": "#6c739a", - "breadcrumb.focusForeground": "#bfc7d5", - "breadcrumb.activeSelectionForeground": "#eeffff", - "breadcrumbPicker.background": "#292D3E" - }, - "tokenColors": [ - { - "name": "Global settings", - "settings": { - "background": "#292D3E", - "foreground": "#bfc7d5" - } - }, - { - "name": "Comment", - "scope": "comment", - "settings": { - "foreground": "#697098", - "fontStyle": "italic" - } - }, - { - "name": "String", - "scope": "string", - "settings": { - "foreground": "#C3E88D" - } - }, - { - "name": "String Quoted", - "scope": "string.quoted", - "settings": { - "foreground": "#C3E88D" - } - }, - { - "name": "String Unquoted", - "scope": "string.unquoted", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "Support Constant Math", - "scope": "support.constant.math", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Number", - "scope": ["constant.numeric", "constant.character.numeric"], - "settings": { - "foreground": "#F78C6C" - } - }, - { - "name": "Built-in constant", - "scope": [ - "constant.language", - "punctuation.definition.constant", - "variable.other.constant" - ], - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "User-defined constant", - "scope": ["constant.character", "constant.other"], - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "Constant Character Escape", - "scope": "constant.character.escape", - "settings": { - "foreground": "#F78C6C" - } - }, - { - "name": "RegExp String", - "scope": ["string.regexp", "string.regexp keyword.other"], - "settings": { - "foreground": "#80CBC4" - } - }, - { - "name": "Comma in functions", - "scope": "meta.function punctuation.separator.comma", - "settings": { - "foreground": "#eeffff" - } - }, - { - "name": "Variable", - "scope": "variable", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Keyword", - "scope": ["punctuation.accessor", "keyword"], - "settings": { - "foreground": "#c792ea" - } - }, - { - "name": "Storage", - "scope": [ - "storage", - "storage.type", - "meta.var.expr storage.type", - "storage.type.property.js", - "storage.type.property.ts", - "storage.type.property.tsx", - "meta.class meta.method.declaration meta.var.expr storage.type.js" - ], - "settings": { - "foreground": "#c792ea" - } - }, - { - "name": "Class name", - "scope": ["entity.name.class", "meta.class entity.name.type.class"], - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Inherited class", - "scope": "entity.other.inherited-class", - "settings": { - "foreground": "#a9c77d" - } - }, - { - "name": "Function name", - "scope": "entity.name.function", - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "Function Parameters", - "scope": "variable.parameter", - "settings": { - "foreground": "#7986E7" - } - }, - { - "name": "Meta Tag", - "scope": ["punctuation.definition.tag", "meta.tag"], - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "HTML Tag names", - "scope": [ - "entity.name.tag support.class.component", - "meta.tag.other.html", - "meta.tag.other.js", - "meta.tag.other.tsx", - "entity.name.tag.tsx", - "entity.name.tag.js", - "entity.name.tag", - "meta.tag.js", - "meta.tag.tsx", - "meta.tag.html" - ], - "settings": { - "foreground": "#ff5572" - } - }, - { - "name": "Tag attribute", - "scope": "entity.other.attribute-name", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Entity Name Tag Custom", - "scope": "entity.name.tag.custom", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Library (function & constant)", - "scope": ["support.function", "support.constant"], - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "Support Constant Property Value meta", - "scope": "support.constant.meta.property-value", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "Library class/type", - "scope": ["support.type", "support.class"], - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Support Variable DOM", - "scope": "support.variable.dom", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Invalid", - "scope": "invalid", - "settings": { - "background": "#ff2c83", - "foreground": "#ffffff" - } - }, - { - "name": "Invalid deprecated", - "scope": "invalid.deprecated", - "settings": { - "foreground": "#ffffff", - "background": "#d3423e" - } - }, - { - "name": "Keyword Operator", - "scope": "keyword.operator", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "Keyword Operator Relational", - "scope": "keyword.operator.relational", - "settings": { - "foreground": "#c792ea" - } - }, - { - "name": "Keyword Operator Assignment", - "scope": "keyword.operator.assignment", - "settings": { - "foreground": "#c792ea" - } - }, - { - "name": "Double-Slashed Comment", - "scope": "comment.line.double-slash", - "settings": { - "foreground": "#697098" - } - }, - { - "name": "Object", - "scope": "object", - "settings": { - "foreground": "#cdebf7" - } - }, - { - "name": "Null", - "scope": "constant.language.null", - "settings": { - "foreground": "#ff5874" - } - }, - { - "name": "Meta Brace", - "scope": "meta.brace", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "Meta Delimiter Period", - "scope": "meta.delimiter.period", - "settings": { - "foreground": "#c792ea" - } - }, - { - "name": "Punctuation Definition String", - "scope": "punctuation.definition.string", - "settings": { - "foreground": "#d9f5dd" - } - }, - { - "name": "Boolean", - "scope": "constant.language.boolean", - "settings": { - "foreground": "#ff5874" - } - }, - { - "name": "Object Comma", - "scope": "object.comma", - "settings": { - "foreground": "#ffffff" - } - }, - { - "name": "Variable Parameter Function", - "scope": "variable.parameter.function", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "Support Type Property Name & entity name tags", - "scope": [ - "support.type.vendored.property-name", - "support.constant.vendored.property-value", - "support.type.property-name", - "meta.property-list entity.name.tag" - ], - "settings": { - "foreground": "#80CBC4" - } - }, - { - "name": "Entity Name tag reference in stylesheets", - "scope": "meta.property-list entity.name.tag.reference", - "settings": { - "foreground": "#ff5572" - } - }, - { - "name": "Constant Other Color RGB Value Punctuation Definition Constant", - "scope": "constant.other.color.rgb-value punctuation.definition.constant", - "settings": { - "foreground": "#F78C6C" - } - }, - { - "name": "Constant Other Color", - "scope": "constant.other.color", - "settings": { - "foreground": "#FFEB95" - } - }, - { - "name": "Keyword Other Unit", - "scope": "keyword.other.unit", - "settings": { - "foreground": "#FFEB95" - } - }, - { - "name": "Meta Selector", - "scope": "meta.selector", - "settings": { - "foreground": "#c792ea" - } - }, - { - "name": "Entity Other Attribute Name Id", - "scope": "entity.other.attribute-name.id", - "settings": { - "foreground": "#FAD430" - } - }, - { - "name": "Meta Property Name", - "scope": "meta.property-name", - "settings": { - "foreground": "#80CBC4" - } - }, - { - "name": "Doctypes", - "scope": ["entity.name.tag.doctype", "meta.tag.sgml.doctype"], - "settings": { - "foreground": "#c792ea", - "fontStyle": "italic" - } - }, - { - "name": "Punctuation Definition Parameters", - "scope": "punctuation.definition.parameters", - "settings": { - "foreground": "#d9f5dd" - } - }, - { - "name": "Keyword Control Operator", - "scope": "keyword.control.operator", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "Keyword Operator Logical", - "scope": "keyword.operator.logical", - "settings": { - "foreground": "#c792ea" - } - }, - { - "name": "Variable Instances", - "scope": [ - "variable.instance", - "variable.other.instance", - "variable.reaedwrite.instance", - "variable.other.readwrite.instance" - ], - "settings": { - "foreground": "#ff5572" - } - }, - { - "name": "Variable Property Other", - "scope": ["variable.other.property", "variable.other.object.property"], - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "Entity Name Function", - "scope": "entity.name.function", - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "Keyword Operator Comparison", - "scope": "keyword.operator.comparison", - "settings": { - "foreground": "#c792ea" - } - }, - { - "name": "Support Constant, `new` keyword, Special Method Keyword", - "scope": [ - "support.constant", - "keyword.other.special-method", - "keyword.other.new" - ], - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "Support Function", - "scope": "support.function", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "Invalid Broken", - "scope": "invalid.broken", - "settings": { - "foreground": "#020e14", - "background": "#F78C6C" - } - }, - { - "name": "Invalid Unimplemented", - "scope": "invalid.unimplemented", - "settings": { - "background": "#8BD649", - "foreground": "#ffffff" - } - }, - { - "name": "Invalid Illegal", - "scope": "invalid.illegal", - "settings": { - "foreground": "#ffffff", - "background": "#ec5f67" - } - }, - { - "name": "Language Variable", - "scope": "variable.language", - "settings": { - "foreground": "#ff5572" - } - }, - { - "name": "Support Variable Property", - "scope": "support.variable.property", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "Variable Function", - "scope": "variable.function", - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "Variable Interpolation", - "scope": "variable.interpolation", - "settings": { - "foreground": "#ec5f67" - } - }, - { - "name": "Meta Function Call", - "scope": "meta.function-call", - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "Punctuation Section Embedded", - "scope": "punctuation.section.embedded", - "settings": { - "foreground": "#d3423e" - } - }, - { - "name": "Punctuation Tweaks", - "scope": [ - "punctuation.terminator.expression", - "punctuation.definition.arguments", - "punctuation.definition.array", - "punctuation.section.array", - "meta.array" - ], - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "More Punctuation Tweaks", - "scope": [ - "punctuation.definition.list.begin", - "punctuation.definition.list.end", - "punctuation.separator.arguments", - "punctuation.definition.list" - ], - "settings": { - "foreground": "#d9f5dd" - } - }, - { - "name": "Template Strings", - "scope": "string.template meta.template.expression", - "settings": { - "foreground": "#d3423e" - } - }, - { - "name": "Backtics(``) in Template Strings", - "scope": "string.template punctuation.definition.string", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "Italics", - "scope": "italic", - "settings": { - "foreground": "#c792ea", - "fontStyle": "italic" - } - }, - { - "name": "Bold", - "scope": "bold", - "settings": { - "foreground": "#ffcb6b", - "fontStyle": "bold" - } - }, - { - "name": "Quote", - "scope": "quote", - "settings": { - "foreground": "#697098", - "fontStyle": "italic" - } - }, - { - "name": "Raw Code", - "scope": "raw", - "settings": { - "foreground": "#80CBC4" - } - }, - { - "name": "CoffeScript Variable Assignment", - "scope": "variable.assignment.coffee", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "CoffeScript Parameter Function", - "scope": "variable.parameter.function.coffee", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "CoffeeScript Assignments", - "scope": "variable.assignment.coffee", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "C# Readwrite Variables", - "scope": "variable.other.readwrite.cs", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "C# Classes & Storage types", - "scope": ["entity.name.type.class.cs", "storage.type.cs"], - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "C# Namespaces", - "scope": "entity.name.type.namespace.cs", - "settings": { - "foreground": "#B2CCD6" - } - }, - { - "name": "Tag names in Stylesheets", - "scope": [ - "entity.name.tag.css", - "entity.name.tag.less", - "entity.name.tag.custom.css" - ], - "settings": { - "foreground": "#ff5572" - } - }, - { - "name": "Wildcard(*) selector in Stylesheets", - "scope": [ - "entity.name.tag.wildcard.css", - "entity.name.tag.wildcard.less", - "entity.name.tag.wildcard.scss", - "entity.name.tag.wildcard.sass" - ], - "settings": { - "foreground": "#ff5572" - } - }, - { - "name": "(C|SC|SA|LE)SS property value unit", - "scope": [ - "keyword.other.unit.css", - "constant.length.units.css", - "keyword.other.unit.less", - "constant.length.units.less", - "keyword.other.unit.scss", - "constant.length.units.scss", - "keyword.other.unit.sass", - "constant.length.units.sass" - ], - "settings": { - "foreground": "#FFEB95" - } - }, - { - "name": "Attribute Name for CSS", - "scope": "meta.attribute-selector.css entity.other.attribute-name.attribute", - "settings": { - "foreground": "#F78C6C" - } - }, - { - "name": "punctuations in styled components", - "scope": [ - "source.js source.css meta.property-list", - "source.js source.css punctuation.section", - "source.js source.css punctuation.terminator.rule", - "source.js source.css punctuation.definition.entity.end.bracket", - "source.js source.css punctuation.definition.entity.begin.bracket", - "source.js source.css punctuation.separator.key-value", - "source.js source.css punctuation.definition.attribute-selector", - "source.js source.css meta.property-list", - "source.js source.css meta.property-list punctuation.separator.comma", - "source.ts source.css punctuation.section", - "source.ts source.css punctuation.terminator.rule", - "source.ts source.css punctuation.definition.entity.end.bracket", - "source.ts source.css punctuation.definition.entity.begin.bracket", - "source.ts source.css punctuation.separator.key-value", - "source.ts source.css punctuation.definition.attribute-selector", - "source.ts source.css meta.property-list", - "source.ts source.css meta.property-list punctuation.separator.comma" - ], - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "Elixir Classes", - "scope": [ - "source.elixir support.type.elixir", - "source.elixir meta.module.elixir entity.name.class.elixir" - ], - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "Elixir Functions", - "scope": "source.elixir entity.name.function", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Elixir Constants", - "scope": [ - "source.elixir constant.other.symbol.elixir", - "source.elixir constant.other.keywords.elixir" - ], - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "Elixir String Punctuations", - "scope": "source.elixir punctuation.definition.string", - "settings": { - "foreground": "#a9c77d" - } - }, - { - "name": "Elixir", - "scope": [ - "source.elixir variable.other.readwrite.module.elixir", - "source.elixir variable.other.readwrite.module.elixir punctuation.definition.variable.elixir" - ], - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Elixir Binary Punctuations", - "scope": "source.elixir .punctuation.binary.elixir", - "settings": { - "foreground": "#c792ea" - } - }, - { - "name": "Go Function Calls", - "scope": "source.go meta.function-call.go", - "settings": { - "foreground": "#DDDDDD" - } - }, - { - "name": "GraphQL Variables", - "scope": "variable.qraphql", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "ID Attribute Name in HTML", - "scope": "entity.other.attribute-name.id.html", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "HTML Punctuation Definition Tag", - "scope": "punctuation.definition.tag.html", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "HTML Doctype", - "scope": "meta.tag.sgml.doctype.html", - "settings": { - "foreground": "#c792ea", - "fontStyle": "italic" - } - }, - { - "name": "JavaScript Classes", - "scope": "meta.class entity.name.type.class.js", - "settings": { - "foreground": "#ffcb8b" - } - }, - { - "name": "JavaScript Method Declaration e.g. `constructor`", - "scope": "meta.method.declaration storage.type.js", - "settings": { - "foreground": "#82AAFF", - "fontStyle": "normal" - } - }, - { - "name": "JavaScript Terminator", - "scope": "terminator.js", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "JavaScript Meta Punctuation Definition", - "scope": "meta.js punctuation.definition.js", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "Entity Names in Code Documentations", - "scope": [ - "entity.name.type.instance.jsdoc", - "entity.name.type.instance.phpdoc" - ], - "settings": { - "foreground": "#eeffff" - } - }, - { - "name": "Other Variables in Code Documentations", - "scope": ["variable.other.jsdoc", "variable.other.phpdoc"], - "settings": { - "foreground": "#78ccf0" - } - }, - { - "name": "JavaScript module imports and exports", - "scope": [ - "variable.other.meta.import.js", - "meta.import.js variable.other", - "variable.other.meta.export.js", - "meta.export.js variable.other" - ], - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "JavaScript Variable Parameter Function", - "scope": "variable.parameter.function.js", - "settings": { - "foreground": "#7986E7" - } - }, - { - "name": "JavaScript Variable Other ReadWrite", - "scope": "variable.other.readwrite.js", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "Text nested in React tags", - "scope": [ - "meta.jsx.children", - "meta.jsx.children.js", - "meta.jsx.children.tsx" - ], - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "JavaScript[React] Variable Other Object", - "scope": [ - "variable.other.object.js", - "variable.other.object.jsx", - "meta.object-literal.key.js", - "meta.object-literal.key.jsx", - "variable.object.property.js", - "variable.object.property.jsx" - ], - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "JavaScript Variables", - "scope": ["variable.js", "variable.other.js"], - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "JavaScript Entity Name Type", - "scope": ["entity.name.type.js", "entity.name.type.module.js"], - "settings": { - "foreground": "#ffcb8b" - } - }, - { - "name": "JavaScript Support Classes", - "scope": "support.class.js", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "JSON Property Names", - "scope": "support.type.property-name.json", - "settings": { - "foreground": "#C3E88D", - "fontStyle": "normal" - } - }, - { - "name": "JSON Support Constants", - "scope": "support.constant.json", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "JSON Property values (string)", - "scope": "meta.structure.dictionary.value.json string.quoted.double", - "settings": { - "foreground": "#80CBC4", - "fontStyle": "normal" - } - }, - { - "name": "Strings in JSON values", - "scope": "string.quoted.double.json punctuation.definition.string.json", - "settings": { - "foreground": "#80CBC4", - "fontStyle": "normal" - } - }, - { - "name": "Specific JSON Property values like null", - "scope": "meta.structure.dictionary.json meta.structure.dictionary.value constant.language", - "settings": { - "foreground": "#ff5874" - } - }, - { - "name": "Ruby Variables", - "scope": "variable.other.ruby", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "Ruby Hashkeys", - "scope": "constant.language.symbol.hashkey.ruby", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "LESS Tag names", - "scope": "entity.name.tag.less", - "settings": { - "foreground": "#ff5572" - } - }, - { - "name": "Attribute Name for LESS", - "scope": "meta.attribute-selector.less entity.other.attribute-name.attribute", - "settings": { - "foreground": "#F78C6C" - } - }, - { - "name": "Markup Headings", - "scope": "markup.heading", - "settings": { - "foreground": "#82b1ff" - } - }, - { - "name": "Markup Italics", - "scope": "markup.italic", - "settings": { - "foreground": "#c792ea", - "fontStyle": "italic" - } - }, - { - "name": "Markup Bold", - "scope": "markup.bold", - "settings": { - "foreground": "#ffcb6b", - "fontStyle": "bold" - } - }, - { - "name": "Markup Quote + others", - "scope": "markup.quote", - "settings": { - "foreground": "#697098", - "fontStyle": "italic" - } - }, - { - "name": "Markup Raw Code + others", - "scope": "markup.inline.raw", - "settings": { - "foreground": "#80CBC4" - } - }, - { - "name": "Markup Links", - "scope": ["markup.underline.link", "markup.underline.link.image"], - "settings": { - "foreground": "#ff869a" - } - }, - { - "name": "Markup Attributes", - "scope": ["markup.meta.attribute-list"], - "settings": { - "foreground": "#a9c77d" - } - }, - { - "name": "Markup Admonitions", - "scope": "markup.admonition", - "settings": { - "fontStyle": "bold" - } - }, - { - "name": "Markup Lists", - "scope": "markup.list.bullet", - "settings": { - "foreground": "#D9F5DD" - } - }, - { - "name": "Markup Superscript and Subscript", - "scope": ["markup.superscript", "markup.subscript"], - "settings": { - "fontStyle": "italic" - } - }, - { - "name": "Markdown Link Title and Description", - "scope": [ - "string.other.link.title.markdown", - "string.other.link.description.markdown" - ], - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "Markdown Punctuation", - "scope": [ - "punctuation.definition.string.markdown", - "punctuation.definition.string.begin.markdown", - "punctuation.definition.string.end.markdown", - "meta.link.inline.markdown punctuation.definition.string" - ], - "settings": { - "foreground": "#82b1ff" - } - }, - { - "name": "Markdown MetaData Punctuation", - "scope": ["punctuation.definition.metadata.markdown"], - "settings": { - "foreground": "#ff5572" - } - }, - { - "name": "Markdown List Punctuation", - "scope": ["beginning.punctuation.definition.list.markdown"], - "settings": { - "foreground": "#82b1ff" - } - }, - { - "name": "Asciidoc Function", - "scope": "entity.name.function.asciidoc", - "settings": { - "foreground": "#F78C6C" - } - }, - { - "name": "PHP Variables", - "scope": "variable.other.php", - "settings": { - "foreground": "#bec5d4" - } - }, - { - "name": "Support Classes in PHP", - "scope": "support.class.php", - "settings": { - "foreground": "#ffcb8b" - } - }, - { - "name": "Punctuations in PHP function calls", - "scope": "meta.function-call.php punctuation", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "PHP Global Variables", - "scope": "variable.other.global.php", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Declaration Punctuation in PHP Global Variables", - "scope": "variable.other.global.php punctuation.definition.variable", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Language Constants in Python", - "scope": "constant.language.python", - "settings": { - "foreground": "#ff5874" - } - }, - { - "name": "Python Function Parameter and Arguments", - "scope": [ - "variable.parameter.function.python", - "meta.function-call.arguments.python" - ], - "settings": { - "foreground": "#7986E7" - } - }, - { - "name": "Python Function Call", - "scope": [ - "meta.function-call.python", - "meta.function-call.generic.python" - ], - "settings": { - "foreground": "#B2CCD6" - } - }, - { - "name": "Punctuations in Python", - "scope": "punctuation.python", - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "Decorator Functions in Python", - "scope": "entity.name.function.decorator.python", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "Python Language Variable", - "scope": "source.python variable.language.special", - "settings": { - "foreground": "#8EACE3" - } - }, - { - "name": "SCSS Variable", - "scope": [ - "variable.scss", - "variable.sass", - "variable.parameter.url.scss", - "variable.parameter.url.sass" - ], - "settings": { - "foreground": "#DDDDDD" - } - }, - { - "name": "Variables in SASS At-Rules", - "scope": [ - "source.css.scss meta.at-rule variable", - "source.css.sass meta.at-rule variable" - ], - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "Variables in SASS At-Rules", - "scope": [ - "source.css.scss meta.at-rule variable", - "source.css.sass meta.at-rule variable" - ], - "settings": { - "foreground": "#bec5d4" - } - }, - { - "name": "Attribute Name for SASS", - "scope": [ - "meta.attribute-selector.scss entity.other.attribute-name.attribute", - "meta.attribute-selector.sass entity.other.attribute-name.attribute" - ], - "settings": { - "foreground": "#F78C6C" - } - }, - { - "name": "Tag names in SASS", - "scope": ["entity.name.tag.scss", "entity.name.tag.sass"], - "settings": { - "foreground": "#ff5572" - } - }, - { - "name": "TypeScript[React] Variables and Object Properties", - "scope": [ - "variable.other.readwrite.alias.ts", - "variable.other.readwrite.alias.tsx", - "variable.other.readwrite.ts", - "variable.other.readwrite.tsx", - "variable.other.object.ts", - "variable.other.object.tsx", - "variable.object.property.ts", - "variable.object.property.tsx", - "variable.other.ts", - "variable.other.tsx", - "variable.tsx", - "variable.ts" - ], - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "TypeScript[React] Entity Name Types", - "scope": ["entity.name.type.ts", "entity.name.type.tsx"], - "settings": { - "foreground": "#78ccf0" - } - }, - { - "name": "TypeScript[React] Node Classes", - "scope": ["support.class.node.ts", "support.class.node.tsx"], - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "TypeScript[React] Entity Name Types as Parameters", - "scope": [ - "meta.type.parameters.ts entity.name.type", - "meta.type.parameters.tsx entity.name.type" - ], - "settings": { - "foreground": "#eeffff" - } - }, - { - "name": "TypeScript[React] Import/Export Punctuations", - "scope": [ - "meta.import.ts punctuation.definition.block", - "meta.import.tsx punctuation.definition.block", - "meta.export.ts punctuation.definition.block", - "meta.export.tsx punctuation.definition.block" - ], - "settings": { - "foreground": "#bfc7d5" - } - }, - { - "name": "TypeScript[React] Punctuation Decorators", - "scope": [ - "meta.decorator punctuation.decorator.ts", - "meta.decorator punctuation.decorator.tsx" - ], - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "TypeScript[React] Punctuation Decorators", - "scope": "meta.tag.js meta.jsx.children.tsx", - "settings": { - "foreground": "#82AAFF" - } - }, - { - "name": "YAML Entity Name Tags", - "scope": "entity.name.tag.yaml", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "handlebars variables", - "scope": "variable.parameter.handlebars", - "settings": { - "foreground": "#bec5d4" - } - }, - { - "name": "handlebars parameters", - "scope": "entity.other.attribute-name.handlebars variable.parameter.handlebars", - "settings": { - "foreground": "#ffcb6b" - } - }, - { - "name": "handlebars enitity attribute names", - "scope": "entity.other.attribute-name.handlebars", - "settings": { - "foreground": "#89DDFF" - } - }, - { - "name": "handlebars enitity attribute values", - "scope": "entity.other.attribute-value.handlebars variable.parameter.handlebars", - "settings": { - "foreground": "#7986E7" - } - }, - { - "name": "normalize font style of certain components", - "scope": [ - "meta.tag.js meta.embedded.expression.js punctuation.section.embedded.begin.js", - "meta.tag.js meta.embedded.expression.js punctuation.section.embedded.end.js", - "meta.property-list.css meta.property-value.css variable.other.less", - "punctuation.section.embedded.begin.js.jsx", - "punctuation.section.embedded.end.js.jsx", - "meta.property-list.scss variable.scss", - "meta.property-list.sass variable.sass", - "keyword.operator.logical", - "keyword.operator.arithmetic", - "keyword.operator.bitwise", - "keyword.operator.increment", - "keyword.operator.ternary", - "keyword.operator.comparison", - "keyword.operator.assignment", - "keyword.operator.operator", - "keyword.operator.or.regexp", - "keyword.operator.expression.in", - "keyword.operator.type", - "punctuation.section.embedded.js", - "punctuation.definintion.string", - "punctuation" - ], - "settings": { - "fontStyle": "normal" - } - } - ] -} +{ + "name": "Palenight Theme", + "author": "Olaolu Olawuyi", + "maintainers": ["Olaolu Olawuyi "], + "type": "dark", + "semanticClass": "palenight", + "colors": { + "contrastActiveBorder": null, + "contrastBorder": "#282B3C", + "focusBorder": "#282B3C", + "foreground": "#ffffff", + "widget.shadow": "#232635", + "selection.background": "#7580B850", + "descriptionForeground": null, + "errorForeground": "#EF5350", + "button.background": "#7e57c2cc", + "button.foreground": "#ffffffcc", + "button.hoverBackground": "#7e57c2", + "dropdown.background": "#292D3E", + "dropdown.border": "#7e57c2", + "dropdown.foreground": "#ffffffcc", + "input.background": "#313850", + "input.border": "#7e57c2", + "input.foreground": "#ffffffcc", + "input.placeholderForeground": "#ffffffcc", + "inputOption.activeBorder": "#ffffffcc", + "inputValidation.errorBackground": "#ef5350f2", + "inputValidation.errorBorder": "#EF5350", + "inputValidation.infoBackground": "#64b5f6f2", + "inputValidation.infoBorder": "#64B5F6", + "inputValidation.warningBackground": "#ffca28f2", + "inputValidation.warningBorder": "#FFCA28", + "scrollbar.shadow": "#292D3E00", + "scrollbarSlider.activeBackground": "#694CA4cc", + "scrollbarSlider.background": "#694CA466", + "scrollbarSlider.hoverBackground": "#694CA4cc", + "badge.background": "#7e57c2", + "badge.foreground": "#ffffff", + "progress.background": "#7e57c2", + "list.activeSelectionBackground": "#7e57c2", + "list.activeSelectionForeground": "#ffffff", + "list.dropBackground": "#2E3245", + "list.focusBackground": "#0000002e", + "list.focusForeground": "#ffffff", + "list.highlightForeground": "#ffffff", + "list.hoverBackground": "#0000001a", + "list.hoverForeground": "#ffffff", + "list.inactiveSelectionBackground": "#929ac90d", + "list.inactiveSelectionForeground": "#929ac9", + "activityBar.background": "#282C3D", + "activityBar.dropBackground": "#7e57c2e3", + "activityBar.foreground": "#eeffff", + "activityBar.border": "#282C3D", + "activityBarBadge.background": "#7e57c2", + "activityBarBadge.foreground": "#ffffff", + "sideBar.background": "#292D3E", + "sideBar.foreground": "#6C739A", + "sideBar.border": "#282B3C", + "sideBarTitle.foreground": "#eeffff", + "sideBarSectionHeader.background": "#292D3E", + "sideBarSectionHeader.foreground": "#eeffff", + "editorGroup.background": "#32374C", + "editorGroup.border": "#2E3245", + "editorGroup.dropBackground": "#7e57c273", + "editorGroupHeader.noTabsBackground": "#32374C", + "editorGroupHeader.tabsBackground": "#31364a", + "editorGroupHeader.tabsBorder": "#262A39", + "tab.activeBackground": "#292D3E", + "tab.activeForeground": "#eeffff", + "tab.border": "#272B3B", + "tab.activeBorder": "#262A39", + "tab.unfocusedActiveBorder": "#262A39", + "tab.inactiveBackground": "#31364A", + "tab.inactiveForeground": "#929ac9", + "tab.unfocusedActiveForeground": null, + "tab.unfocusedInactiveForeground": null, + "editor.background": "#292D3E", + "editor.foreground": "#BFC7D5", + "editorLineNumber.foreground": "#4c5374", + "editorLineNumber.activeForeground": "#eeffff", + "editorCursor.foreground": "#7e57c2", + "editorCursor.background": null, + "editor.selectionBackground": "#7580B850", + "editor.selectionHighlightBackground": "#383D51", + "editor.inactiveSelectionBackground": "#7e57c25a", + "editor.wordHighlightBackground": "#32374D", + "editor.wordHighlightStrongBackground": "#2E3250", + "editor.findMatchBackground": "#2e3248fc", + "editor.findMatchHighlightBackground": "#7e57c233", + "editor.findRangeHighlightBackground": null, + "editor.hoverHighlightBackground": "#7e57c25a", + "editor.lineHighlightBackground": "#0003", + "editor.lineHighlightBorder": null, + "editorLink.activeForeground": null, + "editor.rangeHighlightBackground": "#7e57c25a", + "editorWhitespace.foreground": null, + "editorIndentGuide.background": "#4E557980", + "editorRuler.foreground": "#4E557980", + "editorCodeLens.foreground": "#FFCA28", + "editorBracketMatch.background": null, + "editorBracketMatch.border": null, + "editorOverviewRuler.currentContentForeground": "#7e57c2", + "editorOverviewRuler.incomingContentForeground": "#7e57c2", + "editorOverviewRuler.commonContentForeground": "#7e57c2", + "editorError.foreground": "#EF5350", + "editorError.border": null, + "editorWarning.foreground": "#FFCA28", + "editorWarning.border": null, + "editorGutter.background": null, + "editorGutter.modifiedBackground": "#e2b93d", + "editorGutter.addedBackground": "#9CCC65", + "editorGutter.deletedBackground": "#EF5350", + "diffEditor.insertedTextBackground": "#99b76d23", + "diffEditor.removedTextBackground": "#ef535033", + "editorWidget.background": "#31364a", + "editorWidget.border": null, + "editorSuggestWidget.background": "#2C3043", + "editorSuggestWidget.border": "#2B2F40", + "editorSuggestWidget.foreground": "#bfc7d5", + "editorSuggestWidget.highlightForeground": "#ffffff", + "editorSuggestWidget.selectedBackground": "#7e57c2", + "editorHoverWidget.background": "#292D3E", + "editorHoverWidget.border": "#7e57c2", + "debugExceptionWidget.background": "#292D3E", + "debugExceptionWidget.border": "#7e57c2", + "editorMarkerNavigation.background": "#31364a", + "editorMarkerNavigationError.background": "#EF5350", + "editorMarkerNavigationWarning.background": "#FFCA28", + "peekView.border": "#7e57c2", + "peekViewEditor.background": "#232635", + "peekViewEditor.matchHighlightBackground": "#7e57c25a", + "peekViewResult.background": "#2E3245", + "peekViewResult.fileForeground": "#eeffff", + "peekViewResult.lineForeground": "#eeffff", + "peekViewResult.matchHighlightBackground": "#7e57c25a", + "peekViewResult.selectionBackground": "#2E3250", + "peekViewResult.selectionForeground": "#eeffff", + "peekViewTitle.background": "#292D3E", + "peekViewTitleDescription.foreground": "#697098", + "peekViewTitleLabel.foreground": "#eeffff", + "merge.currentHeaderBackground": "#7e57c25a", + "merge.currentContentBackground": null, + "merge.incomingHeaderBackground": "#7e57c25a", + "merge.incomingContentBackground": null, + "merge.border": null, + "panel.background": "#292D3E", + "panel.border": "#282B3C", + "panelTitle.activeBorder": "#7e57c2", + "panelTitle.activeForeground": "#eeffff", + "panelTitle.inactiveForeground": "#bfc7d580", + "statusBar.background": "#282C3D", + "statusBar.foreground": "#676E95", + "statusBar.border": "#262A39", + "statusBar.debuggingBackground": "#202431", + "statusBar.debuggingForeground": null, + "statusBar.debuggingBorder": "#1F2330", + "statusBar.noFolderForeground": null, + "statusBar.noFolderBackground": "#292D3E", + "statusBar.noFolderBorder": "#25293A", + "statusBarItem.activeBackground": "#202431", + "statusBarItem.hoverBackground": "#202431", + "statusBarItem.prominentBackground": "#202431", + "statusBarItem.prominentHoverBackground": "#202431", + "titleBar.activeBackground": "#292d3e", + "titleBar.activeForeground": "#eeefff", + "titleBar.border": "#30364c", + "titleBar.inactiveBackground": "#30364c", + "titleBar.inactiveForeground": null, + "notifications.background": "#292D3E", + "notifications.foreground": "#ffffffcc", + "notificationLink.foreground": "#80CBC4", + "extensionButton.prominentForeground": "#ffffffcc", + "extensionButton.prominentBackground": "#7e57c2cc", + "extensionButton.prominentHoverBackground": "#7e57c2", + "pickerGroup.foreground": "#d1aaff", + "pickerGroup.border": "#2E3245", + "terminal.ansiWhite": "#ffffff", + "terminal.ansiBlack": "#676E95", + "terminal.ansiBlue": "#82AAFF", + "terminal.ansiCyan": "#89DDFF", + "terminal.ansiGreen": "#a9c77d", + "terminal.ansiMagenta": "#C792EA", + "terminal.ansiRed": "#ff5572", + "terminal.ansiYellow": "#FFCB6B", + "terminal.ansiBrightWhite": "#ffffff", + "terminal.ansiBrightBlack": "#676E95", + "terminal.ansiBrightBlue": "#82AAFF", + "terminal.ansiBrightCyan": "#89DDFF", + "terminal.ansiBrightGreen": "#C3E88D", + "terminal.ansiBrightMagenta": "#C792EA", + "terminal.ansiBrightRed": "#ff5572", + "terminal.ansiBrightYellow": "#FFCB6B", + "debugToolBar.background": "#292D3E", + "welcomePage.buttonBackground": null, + "welcomePage.buttonHoverBackground": null, + "walkThrough.embeddedEditorBackground": "#232635", + "gitDecoration.modifiedResourceForeground": "#e2c08de6", + "gitDecoration.deletedResourceForeground": "#EF535090", + "gitDecoration.untrackedResourceForeground": "#a9c77dff", + "gitDecoration.ignoredResourceForeground": "#69709890", + "gitDecoration.conflictingResourceForeground": "#FFEB95CC", + "editorActiveLineNumber.foreground": "#eeffff", + "breadcrumb.foreground": "#6c739a", + "breadcrumb.focusForeground": "#bfc7d5", + "breadcrumb.activeSelectionForeground": "#eeffff", + "breadcrumbPicker.background": "#292D3E" + }, + "tokenColors": [ + { + "name": "Global settings", + "settings": { + "background": "#292D3E", + "foreground": "#bfc7d5" + } + }, + { + "name": "Comment", + "scope": "comment", + "settings": { + "foreground": "#697098", + "fontStyle": "italic" + } + }, + { + "name": "String", + "scope": "string", + "settings": { + "foreground": "#C3E88D" + } + }, + { + "name": "String Quoted", + "scope": "string.quoted", + "settings": { + "foreground": "#C3E88D" + } + }, + { + "name": "String Unquoted", + "scope": "string.unquoted", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Support Constant Math", + "scope": "support.constant.math", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Number", + "scope": ["constant.numeric", "constant.character.numeric"], + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Built-in constant", + "scope": [ + "constant.language", + "punctuation.definition.constant", + "variable.other.constant" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "User-defined constant", + "scope": ["constant.character", "constant.other"], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Constant Character Escape", + "scope": "constant.character.escape", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "RegExp String", + "scope": ["string.regexp", "string.regexp keyword.other"], + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "Comma in functions", + "scope": "meta.function punctuation.separator.comma", + "settings": { + "foreground": "#eeffff" + } + }, + { + "name": "Variable", + "scope": "variable", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Keyword", + "scope": ["punctuation.accessor", "keyword"], + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Storage", + "scope": [ + "storage", + "storage.type", + "meta.var.expr storage.type", + "storage.type.property.js", + "storage.type.property.ts", + "storage.type.property.tsx", + "meta.class meta.method.declaration meta.var.expr storage.type.js" + ], + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Class name", + "scope": ["entity.name.class", "meta.class entity.name.type.class"], + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Inherited class", + "scope": "entity.other.inherited-class", + "settings": { + "foreground": "#a9c77d" + } + }, + { + "name": "Function name", + "scope": "entity.name.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Function Parameters", + "scope": "variable.parameter", + "settings": { + "foreground": "#7986E7" + } + }, + { + "name": "Meta Tag", + "scope": ["punctuation.definition.tag", "meta.tag"], + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "HTML Tag names", + "scope": [ + "entity.name.tag support.class.component", + "meta.tag.other.html", + "meta.tag.other.js", + "meta.tag.other.tsx", + "entity.name.tag.tsx", + "entity.name.tag.js", + "entity.name.tag", + "meta.tag.js", + "meta.tag.tsx", + "meta.tag.html" + ], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Tag attribute", + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Entity Name Tag Custom", + "scope": "entity.name.tag.custom", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Library (function & constant)", + "scope": ["support.function", "support.constant"], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Support Constant Property Value meta", + "scope": "support.constant.meta.property-value", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Library class/type", + "scope": ["support.type", "support.class"], + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Support Variable DOM", + "scope": "support.variable.dom", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Invalid", + "scope": "invalid", + "settings": { + "background": "#ff2c83", + "foreground": "#ffffff" + } + }, + { + "name": "Invalid deprecated", + "scope": "invalid.deprecated", + "settings": { + "foreground": "#ffffff", + "background": "#d3423e" + } + }, + { + "name": "Keyword Operator", + "scope": "keyword.operator", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Keyword Operator Relational", + "scope": "keyword.operator.relational", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Keyword Operator Assignment", + "scope": "keyword.operator.assignment", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Double-Slashed Comment", + "scope": "comment.line.double-slash", + "settings": { + "foreground": "#697098" + } + }, + { + "name": "Object", + "scope": "object", + "settings": { + "foreground": "#cdebf7" + } + }, + { + "name": "Null", + "scope": "constant.language.null", + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "Meta Brace", + "scope": "meta.brace", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Meta Delimiter Period", + "scope": "meta.delimiter.period", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Punctuation Definition String", + "scope": "punctuation.definition.string", + "settings": { + "foreground": "#d9f5dd" + } + }, + { + "name": "Boolean", + "scope": "constant.language.boolean", + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "Object Comma", + "scope": "object.comma", + "settings": { + "foreground": "#ffffff" + } + }, + { + "name": "Variable Parameter Function", + "scope": "variable.parameter.function", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Support Type Property Name & entity name tags", + "scope": [ + "support.type.vendored.property-name", + "support.constant.vendored.property-value", + "support.type.property-name", + "meta.property-list entity.name.tag" + ], + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "Entity Name tag reference in stylesheets", + "scope": "meta.property-list entity.name.tag.reference", + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Constant Other Color RGB Value Punctuation Definition Constant", + "scope": "constant.other.color.rgb-value punctuation.definition.constant", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Constant Other Color", + "scope": "constant.other.color", + "settings": { + "foreground": "#FFEB95" + } + }, + { + "name": "Keyword Other Unit", + "scope": "keyword.other.unit", + "settings": { + "foreground": "#FFEB95" + } + }, + { + "name": "Meta Selector", + "scope": "meta.selector", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Entity Other Attribute Name Id", + "scope": "entity.other.attribute-name.id", + "settings": { + "foreground": "#FAD430" + } + }, + { + "name": "Meta Property Name", + "scope": "meta.property-name", + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "Doctypes", + "scope": ["entity.name.tag.doctype", "meta.tag.sgml.doctype"], + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Punctuation Definition Parameters", + "scope": "punctuation.definition.parameters", + "settings": { + "foreground": "#d9f5dd" + } + }, + { + "name": "Keyword Control Operator", + "scope": "keyword.control.operator", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Keyword Operator Logical", + "scope": "keyword.operator.logical", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Variable Instances", + "scope": [ + "variable.instance", + "variable.other.instance", + "variable.reaedwrite.instance", + "variable.other.readwrite.instance" + ], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Variable Property Other", + "scope": ["variable.other.property", "variable.other.object.property"], + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Entity Name Function", + "scope": "entity.name.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Keyword Operator Comparison", + "scope": "keyword.operator.comparison", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Support Constant, `new` keyword, Special Method Keyword", + "scope": [ + "support.constant", + "keyword.other.special-method", + "keyword.other.new" + ], + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Support Function", + "scope": "support.function", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Invalid Broken", + "scope": "invalid.broken", + "settings": { + "foreground": "#020e14", + "background": "#F78C6C" + } + }, + { + "name": "Invalid Unimplemented", + "scope": "invalid.unimplemented", + "settings": { + "background": "#8BD649", + "foreground": "#ffffff" + } + }, + { + "name": "Invalid Illegal", + "scope": "invalid.illegal", + "settings": { + "foreground": "#ffffff", + "background": "#ec5f67" + } + }, + { + "name": "Language Variable", + "scope": "variable.language", + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Support Variable Property", + "scope": "support.variable.property", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Variable Function", + "scope": "variable.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Variable Interpolation", + "scope": "variable.interpolation", + "settings": { + "foreground": "#ec5f67" + } + }, + { + "name": "Meta Function Call", + "scope": "meta.function-call", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Punctuation Section Embedded", + "scope": "punctuation.section.embedded", + "settings": { + "foreground": "#d3423e" + } + }, + { + "name": "Punctuation Tweaks", + "scope": [ + "punctuation.terminator.expression", + "punctuation.definition.arguments", + "punctuation.definition.array", + "punctuation.section.array", + "meta.array" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "More Punctuation Tweaks", + "scope": [ + "punctuation.definition.list.begin", + "punctuation.definition.list.end", + "punctuation.separator.arguments", + "punctuation.definition.list" + ], + "settings": { + "foreground": "#d9f5dd" + } + }, + { + "name": "Template Strings", + "scope": "string.template meta.template.expression", + "settings": { + "foreground": "#d3423e" + } + }, + { + "name": "Backtics(``) in Template Strings", + "scope": "string.template punctuation.definition.string", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Italics", + "scope": "italic", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Bold", + "scope": "bold", + "settings": { + "foreground": "#ffcb6b", + "fontStyle": "bold" + } + }, + { + "name": "Quote", + "scope": "quote", + "settings": { + "foreground": "#697098", + "fontStyle": "italic" + } + }, + { + "name": "Raw Code", + "scope": "raw", + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "CoffeScript Variable Assignment", + "scope": "variable.assignment.coffee", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "CoffeScript Parameter Function", + "scope": "variable.parameter.function.coffee", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "CoffeeScript Assignments", + "scope": "variable.assignment.coffee", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "C# Readwrite Variables", + "scope": "variable.other.readwrite.cs", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "C# Classes & Storage types", + "scope": ["entity.name.type.class.cs", "storage.type.cs"], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "C# Namespaces", + "scope": "entity.name.type.namespace.cs", + "settings": { + "foreground": "#B2CCD6" + } + }, + { + "name": "Tag names in Stylesheets", + "scope": [ + "entity.name.tag.css", + "entity.name.tag.less", + "entity.name.tag.custom.css" + ], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Wildcard(*) selector in Stylesheets", + "scope": [ + "entity.name.tag.wildcard.css", + "entity.name.tag.wildcard.less", + "entity.name.tag.wildcard.scss", + "entity.name.tag.wildcard.sass" + ], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "(C|SC|SA|LE)SS property value unit", + "scope": [ + "keyword.other.unit.css", + "constant.length.units.css", + "keyword.other.unit.less", + "constant.length.units.less", + "keyword.other.unit.scss", + "constant.length.units.scss", + "keyword.other.unit.sass", + "constant.length.units.sass" + ], + "settings": { + "foreground": "#FFEB95" + } + }, + { + "name": "Attribute Name for CSS", + "scope": "meta.attribute-selector.css entity.other.attribute-name.attribute", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "punctuations in styled components", + "scope": [ + "source.js source.css meta.property-list", + "source.js source.css punctuation.section", + "source.js source.css punctuation.terminator.rule", + "source.js source.css punctuation.definition.entity.end.bracket", + "source.js source.css punctuation.definition.entity.begin.bracket", + "source.js source.css punctuation.separator.key-value", + "source.js source.css punctuation.definition.attribute-selector", + "source.js source.css meta.property-list", + "source.js source.css meta.property-list punctuation.separator.comma", + "source.ts source.css punctuation.section", + "source.ts source.css punctuation.terminator.rule", + "source.ts source.css punctuation.definition.entity.end.bracket", + "source.ts source.css punctuation.definition.entity.begin.bracket", + "source.ts source.css punctuation.separator.key-value", + "source.ts source.css punctuation.definition.attribute-selector", + "source.ts source.css meta.property-list", + "source.ts source.css meta.property-list punctuation.separator.comma" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Elixir Classes", + "scope": [ + "source.elixir support.type.elixir", + "source.elixir meta.module.elixir entity.name.class.elixir" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Elixir Functions", + "scope": "source.elixir entity.name.function", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Elixir Constants", + "scope": [ + "source.elixir constant.other.symbol.elixir", + "source.elixir constant.other.keywords.elixir" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Elixir String Punctuations", + "scope": "source.elixir punctuation.definition.string", + "settings": { + "foreground": "#a9c77d" + } + }, + { + "name": "Elixir", + "scope": [ + "source.elixir variable.other.readwrite.module.elixir", + "source.elixir variable.other.readwrite.module.elixir punctuation.definition.variable.elixir" + ], + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Elixir Binary Punctuations", + "scope": "source.elixir .punctuation.binary.elixir", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Go Function Calls", + "scope": "source.go meta.function-call.go", + "settings": { + "foreground": "#DDDDDD" + } + }, + { + "name": "GraphQL Variables", + "scope": "variable.qraphql", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "ID Attribute Name in HTML", + "scope": "entity.other.attribute-name.id.html", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "HTML Punctuation Definition Tag", + "scope": "punctuation.definition.tag.html", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "HTML Doctype", + "scope": "meta.tag.sgml.doctype.html", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "JavaScript Classes", + "scope": "meta.class entity.name.type.class.js", + "settings": { + "foreground": "#ffcb8b" + } + }, + { + "name": "JavaScript Method Declaration e.g. `constructor`", + "scope": "meta.method.declaration storage.type.js", + "settings": { + "foreground": "#82AAFF", + "fontStyle": "normal" + } + }, + { + "name": "JavaScript Terminator", + "scope": "terminator.js", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JavaScript Meta Punctuation Definition", + "scope": "meta.js punctuation.definition.js", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Entity Names in Code Documentations", + "scope": [ + "entity.name.type.instance.jsdoc", + "entity.name.type.instance.phpdoc" + ], + "settings": { + "foreground": "#eeffff" + } + }, + { + "name": "Other Variables in Code Documentations", + "scope": ["variable.other.jsdoc", "variable.other.phpdoc"], + "settings": { + "foreground": "#78ccf0" + } + }, + { + "name": "JavaScript module imports and exports", + "scope": [ + "variable.other.meta.import.js", + "meta.import.js variable.other", + "variable.other.meta.export.js", + "meta.export.js variable.other" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JavaScript Variable Parameter Function", + "scope": "variable.parameter.function.js", + "settings": { + "foreground": "#7986E7" + } + }, + { + "name": "JavaScript Variable Other ReadWrite", + "scope": "variable.other.readwrite.js", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Text nested in React tags", + "scope": [ + "meta.jsx.children", + "meta.jsx.children.js", + "meta.jsx.children.tsx" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JavaScript[React] Variable Other Object", + "scope": [ + "variable.other.object.js", + "variable.other.object.jsx", + "meta.object-literal.key.js", + "meta.object-literal.key.jsx", + "variable.object.property.js", + "variable.object.property.jsx" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JavaScript Variables", + "scope": ["variable.js", "variable.other.js"], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JavaScript Entity Name Type", + "scope": ["entity.name.type.js", "entity.name.type.module.js"], + "settings": { + "foreground": "#ffcb8b" + } + }, + { + "name": "JavaScript Support Classes", + "scope": "support.class.js", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "JSON Property Names", + "scope": "support.type.property-name.json", + "settings": { + "foreground": "#C3E88D", + "fontStyle": "normal" + } + }, + { + "name": "JSON Support Constants", + "scope": "support.constant.json", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "JSON Property values (string)", + "scope": "meta.structure.dictionary.value.json string.quoted.double", + "settings": { + "foreground": "#80CBC4", + "fontStyle": "normal" + } + }, + { + "name": "Strings in JSON values", + "scope": "string.quoted.double.json punctuation.definition.string.json", + "settings": { + "foreground": "#80CBC4", + "fontStyle": "normal" + } + }, + { + "name": "Specific JSON Property values like null", + "scope": "meta.structure.dictionary.json meta.structure.dictionary.value constant.language", + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "Ruby Variables", + "scope": "variable.other.ruby", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Ruby Hashkeys", + "scope": "constant.language.symbol.hashkey.ruby", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "LESS Tag names", + "scope": "entity.name.tag.less", + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Attribute Name for LESS", + "scope": "meta.attribute-selector.less entity.other.attribute-name.attribute", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Markup Headings", + "scope": "markup.heading", + "settings": { + "foreground": "#82b1ff" + } + }, + { + "name": "Markup Italics", + "scope": "markup.italic", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Markup Bold", + "scope": "markup.bold", + "settings": { + "foreground": "#ffcb6b", + "fontStyle": "bold" + } + }, + { + "name": "Markup Quote + others", + "scope": "markup.quote", + "settings": { + "foreground": "#697098", + "fontStyle": "italic" + } + }, + { + "name": "Markup Raw Code + others", + "scope": "markup.inline.raw", + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "Markup Links", + "scope": ["markup.underline.link", "markup.underline.link.image"], + "settings": { + "foreground": "#ff869a" + } + }, + { + "name": "Markup Attributes", + "scope": ["markup.meta.attribute-list"], + "settings": { + "foreground": "#a9c77d" + } + }, + { + "name": "Markup Admonitions", + "scope": "markup.admonition", + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "Markup Lists", + "scope": "markup.list.bullet", + "settings": { + "foreground": "#D9F5DD" + } + }, + { + "name": "Markup Superscript and Subscript", + "scope": ["markup.superscript", "markup.subscript"], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "Markdown Link Title and Description", + "scope": [ + "string.other.link.title.markdown", + "string.other.link.description.markdown" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Markdown Punctuation", + "scope": [ + "punctuation.definition.string.markdown", + "punctuation.definition.string.begin.markdown", + "punctuation.definition.string.end.markdown", + "meta.link.inline.markdown punctuation.definition.string" + ], + "settings": { + "foreground": "#82b1ff" + } + }, + { + "name": "Markdown MetaData Punctuation", + "scope": ["punctuation.definition.metadata.markdown"], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "Markdown List Punctuation", + "scope": ["beginning.punctuation.definition.list.markdown"], + "settings": { + "foreground": "#82b1ff" + } + }, + { + "name": "Asciidoc Function", + "scope": "entity.name.function.asciidoc", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "PHP Variables", + "scope": "variable.other.php", + "settings": { + "foreground": "#bec5d4" + } + }, + { + "name": "Support Classes in PHP", + "scope": "support.class.php", + "settings": { + "foreground": "#ffcb8b" + } + }, + { + "name": "Punctuations in PHP function calls", + "scope": "meta.function-call.php punctuation", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "PHP Global Variables", + "scope": "variable.other.global.php", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Declaration Punctuation in PHP Global Variables", + "scope": "variable.other.global.php punctuation.definition.variable", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Language Constants in Python", + "scope": "constant.language.python", + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "Python Function Parameter and Arguments", + "scope": [ + "variable.parameter.function.python", + "meta.function-call.arguments.python" + ], + "settings": { + "foreground": "#7986E7" + } + }, + { + "name": "Python Function Call", + "scope": [ + "meta.function-call.python", + "meta.function-call.generic.python" + ], + "settings": { + "foreground": "#B2CCD6" + } + }, + { + "name": "Punctuations in Python", + "scope": "punctuation.python", + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "Decorator Functions in Python", + "scope": "entity.name.function.decorator.python", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "Python Language Variable", + "scope": "source.python variable.language.special", + "settings": { + "foreground": "#8EACE3" + } + }, + { + "name": "SCSS Variable", + "scope": [ + "variable.scss", + "variable.sass", + "variable.parameter.url.scss", + "variable.parameter.url.sass" + ], + "settings": { + "foreground": "#DDDDDD" + } + }, + { + "name": "Variables in SASS At-Rules", + "scope": [ + "source.css.scss meta.at-rule variable", + "source.css.sass meta.at-rule variable" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Variables in SASS At-Rules", + "scope": [ + "source.css.scss meta.at-rule variable", + "source.css.sass meta.at-rule variable" + ], + "settings": { + "foreground": "#bec5d4" + } + }, + { + "name": "Attribute Name for SASS", + "scope": [ + "meta.attribute-selector.scss entity.other.attribute-name.attribute", + "meta.attribute-selector.sass entity.other.attribute-name.attribute" + ], + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Tag names in SASS", + "scope": ["entity.name.tag.scss", "entity.name.tag.sass"], + "settings": { + "foreground": "#ff5572" + } + }, + { + "name": "TypeScript[React] Variables and Object Properties", + "scope": [ + "variable.other.readwrite.alias.ts", + "variable.other.readwrite.alias.tsx", + "variable.other.readwrite.ts", + "variable.other.readwrite.tsx", + "variable.other.object.ts", + "variable.other.object.tsx", + "variable.object.property.ts", + "variable.object.property.tsx", + "variable.other.ts", + "variable.other.tsx", + "variable.tsx", + "variable.ts" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "TypeScript[React] Entity Name Types", + "scope": ["entity.name.type.ts", "entity.name.type.tsx"], + "settings": { + "foreground": "#78ccf0" + } + }, + { + "name": "TypeScript[React] Node Classes", + "scope": ["support.class.node.ts", "support.class.node.tsx"], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "TypeScript[React] Entity Name Types as Parameters", + "scope": [ + "meta.type.parameters.ts entity.name.type", + "meta.type.parameters.tsx entity.name.type" + ], + "settings": { + "foreground": "#eeffff" + } + }, + { + "name": "TypeScript[React] Import/Export Punctuations", + "scope": [ + "meta.import.ts punctuation.definition.block", + "meta.import.tsx punctuation.definition.block", + "meta.export.ts punctuation.definition.block", + "meta.export.tsx punctuation.definition.block" + ], + "settings": { + "foreground": "#bfc7d5" + } + }, + { + "name": "TypeScript[React] Punctuation Decorators", + "scope": [ + "meta.decorator punctuation.decorator.ts", + "meta.decorator punctuation.decorator.tsx" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "TypeScript[React] Punctuation Decorators", + "scope": "meta.tag.js meta.jsx.children.tsx", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "YAML Entity Name Tags", + "scope": "entity.name.tag.yaml", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "handlebars variables", + "scope": "variable.parameter.handlebars", + "settings": { + "foreground": "#bec5d4" + } + }, + { + "name": "handlebars parameters", + "scope": "entity.other.attribute-name.handlebars variable.parameter.handlebars", + "settings": { + "foreground": "#ffcb6b" + } + }, + { + "name": "handlebars enitity attribute names", + "scope": "entity.other.attribute-name.handlebars", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "handlebars enitity attribute values", + "scope": "entity.other.attribute-value.handlebars variable.parameter.handlebars", + "settings": { + "foreground": "#7986E7" + } + }, + { + "name": "normalize font style of certain components", + "scope": [ + "meta.tag.js meta.embedded.expression.js punctuation.section.embedded.begin.js", + "meta.tag.js meta.embedded.expression.js punctuation.section.embedded.end.js", + "meta.property-list.css meta.property-value.css variable.other.less", + "punctuation.section.embedded.begin.js.jsx", + "punctuation.section.embedded.end.js.jsx", + "meta.property-list.scss variable.scss", + "meta.property-list.sass variable.sass", + "keyword.operator.logical", + "keyword.operator.arithmetic", + "keyword.operator.bitwise", + "keyword.operator.increment", + "keyword.operator.ternary", + "keyword.operator.comparison", + "keyword.operator.assignment", + "keyword.operator.operator", + "keyword.operator.or.regexp", + "keyword.operator.expression.in", + "keyword.operator.type", + "punctuation.section.embedded.js", + "punctuation.definintion.string", + "punctuation" + ], + "settings": { + "fontStyle": "normal" + } + } + ] +} From 7964b3560742fa3d821e13548c762b0531b45fc4 Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Fri, 8 Dec 2023 12:10:25 -0500 Subject: [PATCH 038/115] Add release channel to panic collab upload --- crates/collab/src/api.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/crates/collab/src/api.rs b/crates/collab/src/api.rs index a84fcf328b..8d286388cf 100644 --- a/crates/collab/src/api.rs +++ b/crates/collab/src/api.rs @@ -116,12 +116,13 @@ struct CreateUserResponse { #[derive(Debug, Deserialize)] struct Panic { version: String, + release_channel: String, text: String, } #[instrument(skip(panic))] async fn trace_panic(panic: Json) -> Result<()> { - tracing::error!(version = %panic.version, text = %panic.text, "panic report"); + tracing::error!(version = %panic.version, release_channel = %panic.release_channel, text = %panic.text, "panic report"); Ok(()) } From 0cab3de0ae6e57ad806730290c883d1ba9d69a8f Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Fri, 8 Dec 2023 12:48:02 -0500 Subject: [PATCH 039/115] collab 0.30.1 --- Cargo.lock | 2 +- crates/collab/Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 841812e19e..44b705c129 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 50491704c9..674a324d97 100644 --- a/crates/collab/Cargo.toml +++ b/crates/collab/Cargo.toml @@ -3,7 +3,7 @@ authors = ["Nathan Sobo "] default-run = "collab" edition = "2021" name = "collab" -version = "0.30.0" +version = "0.30.1" publish = false [[bin]] From 63cc9e506801694f3413f6155834751652811833 Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Fri, 8 Dec 2023 13:07:16 -0500 Subject: [PATCH 040/115] Move character counter up above editor in feedback modal --- crates/feedback2/src/feedback_modal.rs | 46 +++++++++++++------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/crates/feedback2/src/feedback_modal.rs b/crates/feedback2/src/feedback_modal.rs index 5ac2197609..ada844ecda 100644 --- a/crates/feedback2/src/feedback_modal.rs +++ b/crates/feedback2/src/feedback_modal.rs @@ -301,6 +301,29 @@ impl Render for FeedbackModal { // TODO: Add Headline component to `ui2` div().text_xl().child("Share Feedback"), )) + .child( + Label::new(if self.character_count < *FEEDBACK_CHAR_LIMIT.start() { + format!( + "Feedback must be at least {} characters.", + FEEDBACK_CHAR_LIMIT.start() + ) + } else if self.character_count > *FEEDBACK_CHAR_LIMIT.end() { + format!( + "Feedback must be less than {} characters.", + FEEDBACK_CHAR_LIMIT.end() + ) + } else { + format!( + "Characters: {}", + *FEEDBACK_CHAR_LIMIT.end() - self.character_count + ) + }) + .color(if valid_character_count { + Color::Success + } else { + Color::Error + }), + ) .child( div() .flex_1() @@ -313,29 +336,6 @@ impl Render for FeedbackModal { ) .child( div() - .child( - Label::new(if self.character_count < *FEEDBACK_CHAR_LIMIT.start() { - format!( - "Feedback must be at least {} characters.", - FEEDBACK_CHAR_LIMIT.start() - ) - } else if self.character_count > *FEEDBACK_CHAR_LIMIT.end() { - format!( - "Feedback must be less than {} characters.", - FEEDBACK_CHAR_LIMIT.end() - ) - } else { - format!( - "Characters: {}", - *FEEDBACK_CHAR_LIMIT.end() - self.character_count - ) - }) - .color(if valid_character_count { - Color::Success - } else { - Color::Error - }), - ) .child( h_stack() .bg(cx.theme().colors().editor_background) From 9ac9532d3d0542f241c8f5b7eabe233227d5cff9 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 8 Dec 2023 13:12:09 -0500 Subject: [PATCH 041/115] Treat empty strings as `None` when deserializing VS Code themes --- crates/theme_importer/src/vscode/theme.rs | 1410 ++++++++++++++++++--- 1 file changed, 1209 insertions(+), 201 deletions(-) diff --git a/crates/theme_importer/src/vscode/theme.rs b/crates/theme_importer/src/vscode/theme.rs index d2c1136d7b..2c3fcd1752 100644 --- a/crates/theme_importer/src/vscode/theme.rs +++ b/crates/theme_importer/src/vscode/theme.rs @@ -1,7 +1,15 @@ -use serde::Deserialize; +use serde::{Deserialize, Deserializer}; use crate::vscode::VsCodeTokenColor; +fn empty_string_as_none<'de, D>(deserializer: D) -> Result, D::Error> +where + D: Deserializer<'de>, +{ + let value = Option::::deserialize(deserializer)?; + Ok(value.filter(|value| !value.is_empty())) +} + #[derive(Deserialize, Debug)] pub struct VsCodeTheme { #[serde(rename = "$schema")] @@ -20,405 +28,1405 @@ pub struct VsCodeTheme { #[derive(Debug, Deserialize)] pub struct VsCodeColors { - #[serde(rename = "terminal.background")] + #[serde( + default, + rename = "terminal.background", + deserialize_with = "empty_string_as_none" + )] pub terminal_background: Option, - #[serde(rename = "terminal.foreground")] + + #[serde( + default, + rename = "terminal.foreground", + deserialize_with = "empty_string_as_none" + )] pub terminal_foreground: Option, - #[serde(rename = "terminal.ansiBrightBlack")] + + #[serde( + default, + rename = "terminal.ansiBrightBlack", + deserialize_with = "empty_string_as_none" + )] pub terminal_ansi_bright_black: Option, - #[serde(rename = "terminal.ansiBrightRed")] + + #[serde( + default, + rename = "terminal.ansiBrightRed", + deserialize_with = "empty_string_as_none" + )] pub terminal_ansi_bright_red: Option, - #[serde(rename = "terminal.ansiBrightGreen")] + + #[serde( + default, + rename = "terminal.ansiBrightGreen", + deserialize_with = "empty_string_as_none" + )] pub terminal_ansi_bright_green: Option, - #[serde(rename = "terminal.ansiBrightYellow")] + + #[serde( + default, + rename = "terminal.ansiBrightYellow", + deserialize_with = "empty_string_as_none" + )] pub terminal_ansi_bright_yellow: Option, - #[serde(rename = "terminal.ansiBrightBlue")] + + #[serde( + default, + rename = "terminal.ansiBrightBlue", + deserialize_with = "empty_string_as_none" + )] pub terminal_ansi_bright_blue: Option, - #[serde(rename = "terminal.ansiBrightMagenta")] + + #[serde( + default, + rename = "terminal.ansiBrightMagenta", + deserialize_with = "empty_string_as_none" + )] pub terminal_ansi_bright_magenta: Option, - #[serde(rename = "terminal.ansiBrightCyan")] + + #[serde( + default, + rename = "terminal.ansiBrightCyan", + deserialize_with = "empty_string_as_none" + )] pub terminal_ansi_bright_cyan: Option, - #[serde(rename = "terminal.ansiBrightWhite")] + + #[serde( + default, + rename = "terminal.ansiBrightWhite", + deserialize_with = "empty_string_as_none" + )] pub terminal_ansi_bright_white: Option, - #[serde(rename = "terminal.ansiBlack")] + + #[serde( + default, + rename = "terminal.ansiBlack", + deserialize_with = "empty_string_as_none" + )] pub terminal_ansi_black: Option, - #[serde(rename = "terminal.ansiRed")] + + #[serde( + default, + rename = "terminal.ansiRed", + deserialize_with = "empty_string_as_none" + )] pub terminal_ansi_red: Option, - #[serde(rename = "terminal.ansiGreen")] + + #[serde( + default, + rename = "terminal.ansiGreen", + deserialize_with = "empty_string_as_none" + )] pub terminal_ansi_green: Option, - #[serde(rename = "terminal.ansiYellow")] + + #[serde( + default, + rename = "terminal.ansiYellow", + deserialize_with = "empty_string_as_none" + )] pub terminal_ansi_yellow: Option, - #[serde(rename = "terminal.ansiBlue")] + + #[serde( + default, + rename = "terminal.ansiBlue", + deserialize_with = "empty_string_as_none" + )] pub terminal_ansi_blue: Option, - #[serde(rename = "terminal.ansiMagenta")] + + #[serde( + default, + rename = "terminal.ansiMagenta", + deserialize_with = "empty_string_as_none" + )] pub terminal_ansi_magenta: Option, - #[serde(rename = "terminal.ansiCyan")] + + #[serde( + default, + rename = "terminal.ansiCyan", + deserialize_with = "empty_string_as_none" + )] pub terminal_ansi_cyan: Option, - #[serde(rename = "terminal.ansiWhite")] + + #[serde( + default, + rename = "terminal.ansiWhite", + deserialize_with = "empty_string_as_none" + )] pub terminal_ansi_white: Option, - #[serde(rename = "focusBorder")] + + #[serde( + default, + rename = "focusBorder", + deserialize_with = "empty_string_as_none" + )] pub focus_border: Option, + pub foreground: Option, - #[serde(rename = "selection.background")] + + #[serde( + default, + rename = "selection.background", + deserialize_with = "empty_string_as_none" + )] pub selection_background: Option, - #[serde(rename = "errorForeground")] + + #[serde( + default, + rename = "errorForeground", + deserialize_with = "empty_string_as_none" + )] pub error_foreground: Option, - #[serde(rename = "button.background")] + + #[serde( + default, + rename = "button.background", + deserialize_with = "empty_string_as_none" + )] pub button_background: Option, - #[serde(rename = "button.foreground")] + + #[serde( + default, + rename = "button.foreground", + deserialize_with = "empty_string_as_none" + )] pub button_foreground: Option, - #[serde(rename = "button.secondaryBackground")] + + #[serde( + default, + rename = "button.secondaryBackground", + deserialize_with = "empty_string_as_none" + )] pub button_secondary_background: Option, - #[serde(rename = "button.secondaryForeground")] + + #[serde( + default, + rename = "button.secondaryForeground", + deserialize_with = "empty_string_as_none" + )] pub button_secondary_foreground: Option, - #[serde(rename = "button.secondaryHoverBackground")] + + #[serde( + default, + rename = "button.secondaryHoverBackground", + deserialize_with = "empty_string_as_none" + )] pub button_secondary_hover_background: Option, - #[serde(rename = "dropdown.background")] + + #[serde( + default, + rename = "dropdown.background", + deserialize_with = "empty_string_as_none" + )] pub dropdown_background: Option, - #[serde(rename = "dropdown.border")] + + #[serde( + default, + rename = "dropdown.border", + deserialize_with = "empty_string_as_none" + )] pub dropdown_border: Option, - #[serde(rename = "dropdown.foreground")] + + #[serde( + default, + rename = "dropdown.foreground", + deserialize_with = "empty_string_as_none" + )] pub dropdown_foreground: Option, - #[serde(rename = "input.background")] + + #[serde( + default, + rename = "input.background", + deserialize_with = "empty_string_as_none" + )] pub input_background: Option, - #[serde(rename = "input.foreground")] + + #[serde( + default, + rename = "input.foreground", + deserialize_with = "empty_string_as_none" + )] pub input_foreground: Option, - #[serde(rename = "input.border")] + + #[serde( + default, + rename = "input.border", + deserialize_with = "empty_string_as_none" + )] pub input_border: Option, - #[serde(rename = "input.placeholderForeground")] + + #[serde( + default, + rename = "input.placeholderForeground", + deserialize_with = "empty_string_as_none" + )] pub input_placeholder_foreground: Option, - #[serde(rename = "inputOption.activeBorder")] + + #[serde( + default, + rename = "inputOption.activeBorder", + deserialize_with = "empty_string_as_none" + )] pub input_option_active_border: Option, - #[serde(rename = "inputValidation.infoBorder")] + + #[serde( + default, + rename = "inputValidation.infoBorder", + deserialize_with = "empty_string_as_none" + )] pub input_validation_info_border: Option, - #[serde(rename = "inputValidation.warningBorder")] + + #[serde( + default, + rename = "inputValidation.warningBorder", + deserialize_with = "empty_string_as_none" + )] pub input_validation_warning_border: Option, - #[serde(rename = "inputValidation.errorBorder")] + + #[serde( + default, + rename = "inputValidation.errorBorder", + deserialize_with = "empty_string_as_none" + )] pub input_validation_error_border: Option, - #[serde(rename = "badge.foreground")] + + #[serde( + default, + rename = "badge.foreground", + deserialize_with = "empty_string_as_none" + )] pub badge_foreground: Option, - #[serde(rename = "badge.background")] + + #[serde( + default, + rename = "badge.background", + deserialize_with = "empty_string_as_none" + )] pub badge_background: Option, - #[serde(rename = "progressBar.background")] + + #[serde( + default, + rename = "progressBar.background", + deserialize_with = "empty_string_as_none" + )] pub progress_bar_background: Option, - #[serde(rename = "list.activeSelectionBackground")] + + #[serde( + default, + rename = "list.activeSelectionBackground", + deserialize_with = "empty_string_as_none" + )] pub list_active_selection_background: Option, - #[serde(rename = "list.activeSelectionForeground")] + + #[serde( + default, + rename = "list.activeSelectionForeground", + deserialize_with = "empty_string_as_none" + )] pub list_active_selection_foreground: Option, - #[serde(rename = "list.dropBackground")] + + #[serde( + default, + rename = "list.dropBackground", + deserialize_with = "empty_string_as_none" + )] pub list_drop_background: Option, - #[serde(rename = "list.focusBackground")] + + #[serde( + default, + rename = "list.focusBackground", + deserialize_with = "empty_string_as_none" + )] pub list_focus_background: Option, - #[serde(rename = "list.highlightForeground")] + + #[serde( + default, + rename = "list.highlightForeground", + deserialize_with = "empty_string_as_none" + )] pub list_highlight_foreground: Option, - #[serde(rename = "list.hoverBackground")] + + #[serde( + default, + rename = "list.hoverBackground", + deserialize_with = "empty_string_as_none" + )] pub list_hover_background: Option, - #[serde(rename = "list.inactiveSelectionBackground")] + + #[serde( + default, + rename = "list.inactiveSelectionBackground", + deserialize_with = "empty_string_as_none" + )] pub list_inactive_selection_background: Option, - #[serde(rename = "list.warningForeground")] + + #[serde( + default, + rename = "list.warningForeground", + deserialize_with = "empty_string_as_none" + )] pub list_warning_foreground: Option, - #[serde(rename = "list.errorForeground")] + + #[serde( + default, + rename = "list.errorForeground", + deserialize_with = "empty_string_as_none" + )] pub list_error_foreground: Option, - #[serde(rename = "activityBar.background")] + + #[serde( + default, + rename = "activityBar.background", + deserialize_with = "empty_string_as_none" + )] pub activity_bar_background: Option, - #[serde(rename = "activityBar.inactiveForeground")] + + #[serde( + default, + rename = "activityBar.inactiveForeground", + deserialize_with = "empty_string_as_none" + )] pub activity_bar_inactive_foreground: Option, - #[serde(rename = "activityBar.foreground")] + + #[serde( + default, + rename = "activityBar.foreground", + deserialize_with = "empty_string_as_none" + )] pub activity_bar_foreground: Option, - #[serde(rename = "activityBar.activeBorder")] + + #[serde( + default, + rename = "activityBar.activeBorder", + deserialize_with = "empty_string_as_none" + )] pub activity_bar_active_border: Option, - #[serde(rename = "activityBar.activeBackground")] + + #[serde( + default, + rename = "activityBar.activeBackground", + deserialize_with = "empty_string_as_none" + )] pub activity_bar_active_background: Option, - #[serde(rename = "activityBarBadge.background")] + + #[serde( + default, + rename = "activityBarBadge.background", + deserialize_with = "empty_string_as_none" + )] pub activity_bar_badge_background: Option, - #[serde(rename = "activityBarBadge.foreground")] + + #[serde( + default, + rename = "activityBarBadge.foreground", + deserialize_with = "empty_string_as_none" + )] pub activity_bar_badge_foreground: Option, - #[serde(rename = "sideBar.background")] + + #[serde( + default, + rename = "sideBar.background", + deserialize_with = "empty_string_as_none" + )] pub side_bar_background: Option, - #[serde(rename = "sideBarTitle.foreground")] + + #[serde( + default, + rename = "sideBarTitle.foreground", + deserialize_with = "empty_string_as_none" + )] pub side_bar_title_foreground: Option, - #[serde(rename = "sideBarSectionHeader.background")] + + #[serde( + default, + rename = "sideBarSectionHeader.background", + deserialize_with = "empty_string_as_none" + )] pub side_bar_section_header_background: Option, - #[serde(rename = "sideBarSectionHeader.border")] + + #[serde( + default, + rename = "sideBarSectionHeader.border", + deserialize_with = "empty_string_as_none" + )] pub side_bar_section_header_border: Option, - #[serde(rename = "editorGroup.border")] + + #[serde( + default, + rename = "editorGroup.border", + deserialize_with = "empty_string_as_none" + )] pub editor_group_border: Option, - #[serde(rename = "editorGroup.dropBackground")] + + #[serde( + default, + rename = "editorGroup.dropBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_group_drop_background: Option, - #[serde(rename = "editorGroupHeader.tabsBackground")] + + #[serde( + default, + rename = "editorGroupHeader.tabsBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_group_header_tabs_background: Option, - #[serde(rename = "tab.activeBackground")] + + #[serde( + default, + rename = "tab.activeBackground", + deserialize_with = "empty_string_as_none" + )] pub tab_active_background: Option, - #[serde(rename = "tab.activeForeground")] + + #[serde( + default, + rename = "tab.activeForeground", + deserialize_with = "empty_string_as_none" + )] pub tab_active_foreground: Option, - #[serde(rename = "tab.border")] + + #[serde( + default, + rename = "tab.border", + deserialize_with = "empty_string_as_none" + )] pub tab_border: Option, - #[serde(rename = "tab.activeBorderTop")] + + #[serde( + default, + rename = "tab.activeBorderTop", + deserialize_with = "empty_string_as_none" + )] pub tab_active_border_top: Option, - #[serde(rename = "tab.inactiveBackground")] + + #[serde( + default, + rename = "tab.inactiveBackground", + deserialize_with = "empty_string_as_none" + )] pub tab_inactive_background: Option, - #[serde(rename = "tab.inactiveForeground")] + + #[serde( + default, + rename = "tab.inactiveForeground", + deserialize_with = "empty_string_as_none" + )] pub tab_inactive_foreground: Option, - #[serde(rename = "editor.foreground")] + + #[serde( + default, + rename = "editor.foreground", + deserialize_with = "empty_string_as_none" + )] pub editor_foreground: Option, - #[serde(rename = "editor.background")] + + #[serde( + default, + rename = "editor.background", + deserialize_with = "empty_string_as_none" + )] pub editor_background: Option, - #[serde(rename = "editorInlayHint.foreground")] + + #[serde( + default, + rename = "editorInlayHint.foreground", + deserialize_with = "empty_string_as_none" + )] pub editor_inlay_hint_foreground: Option, - #[serde(rename = "editorInlayHint.background")] + + #[serde( + default, + rename = "editorInlayHint.background", + deserialize_with = "empty_string_as_none" + )] pub editor_inlay_hint_background: Option, - #[serde(rename = "editorInlayHint.parameterForeground")] + + #[serde( + default, + rename = "editorInlayHint.parameterForeground", + deserialize_with = "empty_string_as_none" + )] pub editor_inlay_hint_parameter_foreground: Option, - #[serde(rename = "editorInlayHint.parameterBackground")] + + #[serde( + default, + rename = "editorInlayHint.parameterBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_inlay_hint_parameter_background: Option, - #[serde(rename = "editorInlayHint.typForeground")] + + #[serde( + default, + rename = "editorInlayHint.typForeground", + deserialize_with = "empty_string_as_none" + )] pub editor_inlay_hint_typ_foreground: Option, - #[serde(rename = "editorInlayHint.typBackground")] + + #[serde( + default, + rename = "editorInlayHint.typBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_inlay_hint_typ_background: Option, - #[serde(rename = "editorLineNumber.foreground")] + + #[serde( + default, + rename = "editorLineNumber.foreground", + deserialize_with = "empty_string_as_none" + )] pub editor_line_number_foreground: Option, - #[serde(rename = "editor.selectionBackground")] + + #[serde( + default, + rename = "editor.selectionBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_selection_background: Option, - #[serde(rename = "editor.selectionHighlightBackground")] + + #[serde( + default, + rename = "editor.selectionHighlightBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_selection_highlight_background: Option, - #[serde(rename = "editor.foldBackground")] + + #[serde( + default, + rename = "editor.foldBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_fold_background: Option, - #[serde(rename = "editor.wordHighlightBackground")] + + #[serde( + default, + rename = "editor.wordHighlightBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_word_highlight_background: Option, - #[serde(rename = "editor.wordHighlightStrongBackground")] + + #[serde( + default, + rename = "editor.wordHighlightStrongBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_word_highlight_strong_background: Option, - #[serde(rename = "editor.findMatchBackground")] + + #[serde( + default, + rename = "editor.findMatchBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_find_match_background: Option, - #[serde(rename = "editor.findMatchHighlightBackground")] + + #[serde( + default, + rename = "editor.findMatchHighlightBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_find_match_highlight_background: Option, - #[serde(rename = "editor.findRangeHighlightBackground")] + + #[serde( + default, + rename = "editor.findRangeHighlightBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_find_range_highlight_background: Option, - #[serde(rename = "editor.hoverHighlightBackground")] + + #[serde( + default, + rename = "editor.hoverHighlightBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_hover_highlight_background: Option, - #[serde(rename = "editor.lineHighlightBorder")] + + #[serde( + default, + rename = "editor.lineHighlightBorder", + deserialize_with = "empty_string_as_none" + )] pub editor_line_highlight_border: Option, - #[serde(rename = "editorLink.activeForeground")] + + #[serde( + default, + rename = "editorLink.activeForeground", + deserialize_with = "empty_string_as_none" + )] pub editor_link_active_foreground: Option, - #[serde(rename = "editor.rangeHighlightBackground")] + + #[serde( + default, + rename = "editor.rangeHighlightBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_range_highlight_background: Option, - #[serde(rename = "editor.snippetTabstopHighlightBackground")] + + #[serde( + default, + rename = "editor.snippetTabstopHighlightBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_snippet_tabstop_highlight_background: Option, - #[serde(rename = "editor.snippetTabstopHighlightBorder")] + + #[serde( + default, + rename = "editor.snippetTabstopHighlightBorder", + deserialize_with = "empty_string_as_none" + )] pub editor_snippet_tabstop_highlight_border: Option, - #[serde(rename = "editor.snippetFinalTabstopHighlightBackground")] + + #[serde( + default, + rename = "editor.snippetFinalTabstopHighlightBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_snippet_final_tabstop_highlight_background: Option, - #[serde(rename = "editor.snippetFinalTabstopHighlightBorder")] + + #[serde( + default, + rename = "editor.snippetFinalTabstopHighlightBorder", + deserialize_with = "empty_string_as_none" + )] pub editor_snippet_final_tabstop_highlight_border: Option, - #[serde(rename = "editorWhitespace.foreground")] + + #[serde( + default, + rename = "editorWhitespace.foreground", + deserialize_with = "empty_string_as_none" + )] pub editor_whitespace_foreground: Option, - #[serde(rename = "editorIndentGuide.background")] + + #[serde( + default, + rename = "editorIndentGuide.background", + deserialize_with = "empty_string_as_none" + )] pub editor_indent_guide_background: Option, - #[serde(rename = "editorIndentGuide.activeBackground")] + + #[serde( + default, + rename = "editorIndentGuide.activeBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_indent_guide_active_background: Option, - #[serde(rename = "editorRuler.foreground")] + + #[serde( + default, + rename = "editorRuler.foreground", + deserialize_with = "empty_string_as_none" + )] pub editor_ruler_foreground: Option, - #[serde(rename = "editorCodeLens.foreground")] + + #[serde( + default, + rename = "editorCodeLens.foreground", + deserialize_with = "empty_string_as_none" + )] pub editor_code_lens_foreground: Option, - #[serde(rename = "editorBracketHighlight.foreground1")] + + #[serde( + default, + rename = "editorBracketHighlight.foreground1", + deserialize_with = "empty_string_as_none" + )] pub editor_bracket_highlight_foreground1: Option, - #[serde(rename = "editorBracketHighlight.foreground2")] + + #[serde( + default, + rename = "editorBracketHighlight.foreground2", + deserialize_with = "empty_string_as_none" + )] pub editor_bracket_highlight_foreground2: Option, - #[serde(rename = "editorBracketHighlight.foreground3")] + + #[serde( + default, + rename = "editorBracketHighlight.foreground3", + deserialize_with = "empty_string_as_none" + )] pub editor_bracket_highlight_foreground3: Option, - #[serde(rename = "editorBracketHighlight.foreground4")] + + #[serde( + default, + rename = "editorBracketHighlight.foreground4", + deserialize_with = "empty_string_as_none" + )] pub editor_bracket_highlight_foreground4: Option, - #[serde(rename = "editorBracketHighlight.foreground5")] + + #[serde( + default, + rename = "editorBracketHighlight.foreground5", + deserialize_with = "empty_string_as_none" + )] pub editor_bracket_highlight_foreground5: Option, - #[serde(rename = "editorBracketHighlight.foreground6")] + + #[serde( + default, + rename = "editorBracketHighlight.foreground6", + deserialize_with = "empty_string_as_none" + )] pub editor_bracket_highlight_foreground6: Option, - #[serde(rename = "editorBracketHighlight.unexpectedBracket.foreground")] + + #[serde( + default, + rename = "editorBracketHighlight.unexpectedBracket.foreground", + deserialize_with = "empty_string_as_none" + )] pub editor_bracket_highlight_unexpected_bracket_foreground: Option, - #[serde(rename = "editorOverviewRuler.border")] + + #[serde( + default, + rename = "editorOverviewRuler.border", + deserialize_with = "empty_string_as_none" + )] pub editor_overview_ruler_border: Option, - #[serde(rename = "editorOverviewRuler.selectionHighlightForeground")] + + #[serde( + default, + rename = "editorOverviewRuler.selectionHighlightForeground", + deserialize_with = "empty_string_as_none" + )] pub editor_overview_ruler_selection_highlight_foreground: Option, - #[serde(rename = "editorOverviewRuler.wordHighlightForeground")] + + #[serde( + default, + rename = "editorOverviewRuler.wordHighlightForeground", + deserialize_with = "empty_string_as_none" + )] pub editor_overview_ruler_word_highlight_foreground: Option, - #[serde(rename = "editorOverviewRuler.wordHighlightStrongForeground")] + + #[serde( + default, + rename = "editorOverviewRuler.wordHighlightStrongForeground", + deserialize_with = "empty_string_as_none" + )] pub editor_overview_ruler_word_highlight_strong_foreground: Option, - #[serde(rename = "editorOverviewRuler.modifiedForeground")] + + #[serde( + default, + rename = "editorOverviewRuler.modifiedForeground", + deserialize_with = "empty_string_as_none" + )] pub editor_overview_ruler_modified_foreground: Option, - #[serde(rename = "editorOverviewRuler.addedForeground")] + + #[serde( + default, + rename = "editorOverviewRuler.addedForeground", + deserialize_with = "empty_string_as_none" + )] pub editor_overview_ruler_added_foreground: Option, - #[serde(rename = "editorOverviewRuler.deletedForeground")] + + #[serde( + default, + rename = "editorOverviewRuler.deletedForeground", + deserialize_with = "empty_string_as_none" + )] pub editor_overview_ruler_deleted_foreground: Option, - #[serde(rename = "editorOverviewRuler.errorForeground")] + + #[serde( + default, + rename = "editorOverviewRuler.errorForeground", + deserialize_with = "empty_string_as_none" + )] pub editor_overview_ruler_error_foreground: Option, - #[serde(rename = "editorOverviewRuler.warningForeground")] + + #[serde( + default, + rename = "editorOverviewRuler.warningForeground", + deserialize_with = "empty_string_as_none" + )] pub editor_overview_ruler_warning_foreground: Option, - #[serde(rename = "editorOverviewRuler.infoForeground")] + + #[serde( + default, + rename = "editorOverviewRuler.infoForeground", + deserialize_with = "empty_string_as_none" + )] pub editor_overview_ruler_info_foreground: Option, - #[serde(rename = "editorError.foreground")] + + #[serde( + default, + rename = "editorError.foreground", + deserialize_with = "empty_string_as_none" + )] pub editor_error_foreground: Option, - #[serde(rename = "editorWarning.foreground")] + + #[serde( + default, + rename = "editorWarning.foreground", + deserialize_with = "empty_string_as_none" + )] pub editor_warning_foreground: Option, - #[serde(rename = "editorGutter.modifiedBackground")] + + #[serde( + default, + rename = "editorGutter.modifiedBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_gutter_modified_background: Option, - #[serde(rename = "editorGutter.addedBackground")] + + #[serde( + default, + rename = "editorGutter.addedBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_gutter_added_background: Option, - #[serde(rename = "editorGutter.deletedBackground")] + + #[serde( + default, + rename = "editorGutter.deletedBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_gutter_deleted_background: Option, - #[serde(rename = "gitDecoration.modifiedResourceForeground")] + + #[serde( + default, + rename = "gitDecoration.modifiedResourceForeground", + deserialize_with = "empty_string_as_none" + )] pub git_decoration_modified_resource_foreground: Option, - #[serde(rename = "gitDecoration.deletedResourceForeground")] + + #[serde( + default, + rename = "gitDecoration.deletedResourceForeground", + deserialize_with = "empty_string_as_none" + )] pub git_decoration_deleted_resource_foreground: Option, - #[serde(rename = "gitDecoration.untrackedResourceForeground")] + + #[serde( + default, + rename = "gitDecoration.untrackedResourceForeground", + deserialize_with = "empty_string_as_none" + )] pub git_decoration_untracked_resource_foreground: Option, - #[serde(rename = "gitDecoration.ignoredResourceForeground")] + + #[serde( + default, + rename = "gitDecoration.ignoredResourceForeground", + deserialize_with = "empty_string_as_none" + )] pub git_decoration_ignored_resource_foreground: Option, - #[serde(rename = "gitDecoration.conflictingResourceForeground")] + + #[serde( + default, + rename = "gitDecoration.conflictingResourceForeground", + deserialize_with = "empty_string_as_none" + )] pub git_decoration_conflicting_resource_foreground: Option, - #[serde(rename = "diffEditor.insertedTextBackground")] + + #[serde( + default, + rename = "diffEditor.insertedTextBackground", + deserialize_with = "empty_string_as_none" + )] pub diff_editor_inserted_text_background: Option, - #[serde(rename = "diffEditor.removedTextBackground")] + + #[serde( + default, + rename = "diffEditor.removedTextBackground", + deserialize_with = "empty_string_as_none" + )] pub diff_editor_removed_text_background: Option, - #[serde(rename = "inlineChat.regionHighlight")] + + #[serde( + default, + rename = "inlineChat.regionHighlight", + deserialize_with = "empty_string_as_none" + )] pub inline_chat_region_highlight: Option, - #[serde(rename = "editorWidget.background")] + + #[serde( + default, + rename = "editorWidget.background", + deserialize_with = "empty_string_as_none" + )] pub editor_widget_background: Option, - #[serde(rename = "editorSuggestWidget.background")] + + #[serde( + default, + rename = "editorSuggestWidget.background", + deserialize_with = "empty_string_as_none" + )] pub editor_suggest_widget_background: Option, - #[serde(rename = "editorSuggestWidget.foreground")] + + #[serde( + default, + rename = "editorSuggestWidget.foreground", + deserialize_with = "empty_string_as_none" + )] pub editor_suggest_widget_foreground: Option, - #[serde(rename = "editorSuggestWidget.selectedBackground")] + + #[serde( + default, + rename = "editorSuggestWidget.selectedBackground", + deserialize_with = "empty_string_as_none" + )] pub editor_suggest_widget_selected_background: Option, - #[serde(rename = "editorHoverWidget.background")] + + #[serde( + default, + rename = "editorHoverWidget.background", + deserialize_with = "empty_string_as_none" + )] pub editor_hover_widget_background: Option, - #[serde(rename = "editorHoverWidget.border")] + + #[serde( + default, + rename = "editorHoverWidget.border", + deserialize_with = "empty_string_as_none" + )] pub editor_hover_widget_border: Option, - #[serde(rename = "editorMarkerNavigation.background")] + + #[serde( + default, + rename = "editorMarkerNavigation.background", + deserialize_with = "empty_string_as_none" + )] pub editor_marker_navigation_background: Option, - #[serde(rename = "peekView.border")] + + #[serde( + default, + rename = "peekView.border", + deserialize_with = "empty_string_as_none" + )] pub peek_view_border: Option, - #[serde(rename = "peekViewEditor.background")] + + #[serde( + default, + rename = "peekViewEditor.background", + deserialize_with = "empty_string_as_none" + )] pub peek_view_editor_background: Option, - #[serde(rename = "peekViewEditor.matchHighlightBackground")] + + #[serde( + default, + rename = "peekViewEditor.matchHighlightBackground", + deserialize_with = "empty_string_as_none" + )] pub peek_view_editor_match_highlight_background: Option, - #[serde(rename = "peekViewResult.background")] + + #[serde( + default, + rename = "peekViewResult.background", + deserialize_with = "empty_string_as_none" + )] pub peek_view_result_background: Option, - #[serde(rename = "peekViewResult.fileForeground")] + + #[serde( + default, + rename = "peekViewResult.fileForeground", + deserialize_with = "empty_string_as_none" + )] pub peek_view_result_file_foreground: Option, - #[serde(rename = "peekViewResult.lineForeground")] + + #[serde( + default, + rename = "peekViewResult.lineForeground", + deserialize_with = "empty_string_as_none" + )] pub peek_view_result_line_foreground: Option, - #[serde(rename = "peekViewResult.matchHighlightBackground")] + + #[serde( + default, + rename = "peekViewResult.matchHighlightBackground", + deserialize_with = "empty_string_as_none" + )] pub peek_view_result_match_highlight_background: Option, - #[serde(rename = "peekViewResult.selectionBackground")] + + #[serde( + default, + rename = "peekViewResult.selectionBackground", + deserialize_with = "empty_string_as_none" + )] pub peek_view_result_selection_background: Option, - #[serde(rename = "peekViewResult.selectionForeground")] + + #[serde( + default, + rename = "peekViewResult.selectionForeground", + deserialize_with = "empty_string_as_none" + )] pub peek_view_result_selection_foreground: Option, - #[serde(rename = "peekViewTitle.background")] + + #[serde( + default, + rename = "peekViewTitle.background", + deserialize_with = "empty_string_as_none" + )] pub peek_view_title_background: Option, - #[serde(rename = "peekViewTitleDescription.foreground")] + + #[serde( + default, + rename = "peekViewTitleDescription.foreground", + deserialize_with = "empty_string_as_none" + )] pub peek_view_title_description_foreground: Option, - #[serde(rename = "peekViewTitleLabel.foreground")] + + #[serde( + default, + rename = "peekViewTitleLabel.foreground", + deserialize_with = "empty_string_as_none" + )] pub peek_view_title_label_foreground: Option, - #[serde(rename = "merge.currentHeaderBackground")] + + #[serde( + default, + rename = "merge.currentHeaderBackground", + deserialize_with = "empty_string_as_none" + )] pub merge_current_header_background: Option, - #[serde(rename = "merge.incomingHeaderBackground")] + + #[serde( + default, + rename = "merge.incomingHeaderBackground", + deserialize_with = "empty_string_as_none" + )] pub merge_incoming_header_background: Option, - #[serde(rename = "editorOverviewRuler.currentContentForeground")] + + #[serde( + default, + rename = "editorOverviewRuler.currentContentForeground", + deserialize_with = "empty_string_as_none" + )] pub editor_overview_ruler_current_content_foreground: Option, - #[serde(rename = "editorOverviewRuler.incomingContentForeground")] + + #[serde( + default, + rename = "editorOverviewRuler.incomingContentForeground", + deserialize_with = "empty_string_as_none" + )] pub editor_overview_ruler_incoming_content_foreground: Option, - #[serde(rename = "panel.background")] + + #[serde( + default, + rename = "panel.background", + deserialize_with = "empty_string_as_none" + )] pub panel_background: Option, - #[serde(rename = "panel.border")] + + #[serde( + default, + rename = "panel.border", + deserialize_with = "empty_string_as_none" + )] pub panel_border: Option, - #[serde(rename = "panelTitle.activeBorder")] + + #[serde( + default, + rename = "panelTitle.activeBorder", + deserialize_with = "empty_string_as_none" + )] pub panel_title_active_border: Option, - #[serde(rename = "panelTitle.activeForeground")] + + #[serde( + default, + rename = "panelTitle.activeForeground", + deserialize_with = "empty_string_as_none" + )] pub panel_title_active_foreground: Option, - #[serde(rename = "panelTitle.inactiveForeground")] + + #[serde( + default, + rename = "panelTitle.inactiveForeground", + deserialize_with = "empty_string_as_none" + )] pub panel_title_inactive_foreground: Option, - #[serde(rename = "statusBar.background")] + + #[serde( + default, + rename = "statusBar.background", + deserialize_with = "empty_string_as_none" + )] pub status_bar_background: Option, - #[serde(rename = "statusBar.foreground")] + + #[serde( + default, + rename = "statusBar.foreground", + deserialize_with = "empty_string_as_none" + )] pub status_bar_foreground: Option, - #[serde(rename = "statusBar.debuggingBackground")] + + #[serde( + default, + rename = "statusBar.debuggingBackground", + deserialize_with = "empty_string_as_none" + )] pub status_bar_debugging_background: Option, - #[serde(rename = "statusBar.debuggingForeground")] + + #[serde( + default, + rename = "statusBar.debuggingForeground", + deserialize_with = "empty_string_as_none" + )] pub status_bar_debugging_foreground: Option, - #[serde(rename = "statusBar.noFolderBackground")] + + #[serde( + default, + rename = "statusBar.noFolderBackground", + deserialize_with = "empty_string_as_none" + )] pub status_bar_no_folder_background: Option, - #[serde(rename = "statusBar.noFolderForeground")] + + #[serde( + default, + rename = "statusBar.noFolderForeground", + deserialize_with = "empty_string_as_none" + )] pub status_bar_no_folder_foreground: Option, - #[serde(rename = "statusBarItem.prominentBackground")] + + #[serde( + default, + rename = "statusBarItem.prominentBackground", + deserialize_with = "empty_string_as_none" + )] pub status_bar_item_prominent_background: Option, - #[serde(rename = "statusBarItem.prominentHoverBackground")] + + #[serde( + default, + rename = "statusBarItem.prominentHoverBackground", + deserialize_with = "empty_string_as_none" + )] pub status_bar_item_prominent_hover_background: Option, - #[serde(rename = "statusBarItem.remoteForeground")] + + #[serde( + default, + rename = "statusBarItem.remoteForeground", + deserialize_with = "empty_string_as_none" + )] pub status_bar_item_remote_foreground: Option, - #[serde(rename = "statusBarItem.remoteBackground")] + + #[serde( + default, + rename = "statusBarItem.remoteBackground", + deserialize_with = "empty_string_as_none" + )] pub status_bar_item_remote_background: Option, - #[serde(rename = "titleBar.activeBackground")] + + #[serde( + default, + rename = "titleBar.activeBackground", + deserialize_with = "empty_string_as_none" + )] pub title_bar_active_background: Option, - #[serde(rename = "titleBar.activeForeground")] + + #[serde( + default, + rename = "titleBar.activeForeground", + deserialize_with = "empty_string_as_none" + )] pub title_bar_active_foreground: Option, - #[serde(rename = "titleBar.inactiveBackground")] + + #[serde( + default, + rename = "titleBar.inactiveBackground", + deserialize_with = "empty_string_as_none" + )] pub title_bar_inactive_background: Option, - #[serde(rename = "titleBar.inactiveForeground")] + + #[serde( + default, + rename = "titleBar.inactiveForeground", + deserialize_with = "empty_string_as_none" + )] pub title_bar_inactive_foreground: Option, - #[serde(rename = "extensionButton.prominentForeground")] + + #[serde( + default, + rename = "extensionButton.prominentForeground", + deserialize_with = "empty_string_as_none" + )] pub extension_button_prominent_foreground: Option, - #[serde(rename = "extensionButton.prominentBackground")] + + #[serde( + default, + rename = "extensionButton.prominentBackground", + deserialize_with = "empty_string_as_none" + )] pub extension_button_prominent_background: Option, - #[serde(rename = "extensionButton.prominentHoverBackground")] + + #[serde( + default, + rename = "extensionButton.prominentHoverBackground", + deserialize_with = "empty_string_as_none" + )] pub extension_button_prominent_hover_background: Option, - #[serde(rename = "pickerGroup.border")] + + #[serde( + default, + rename = "pickerGroup.border", + deserialize_with = "empty_string_as_none" + )] pub picker_group_border: Option, - #[serde(rename = "pickerGroup.foreground")] + + #[serde( + default, + rename = "pickerGroup.foreground", + deserialize_with = "empty_string_as_none" + )] pub picker_group_foreground: Option, - #[serde(rename = "debugToolBar.background")] + + #[serde( + default, + rename = "debugToolBar.background", + deserialize_with = "empty_string_as_none" + )] pub debug_tool_bar_background: Option, - #[serde(rename = "walkThrough.embeddedEditorBackground")] + + #[serde( + default, + rename = "walkThrough.embeddedEditorBackground", + deserialize_with = "empty_string_as_none" + )] pub walk_through_embedded_editor_background: Option, - #[serde(rename = "settings.headerForeground")] + + #[serde( + default, + rename = "settings.headerForeground", + deserialize_with = "empty_string_as_none" + )] pub settings_header_foreground: Option, - #[serde(rename = "settings.modifiedItemIndicator")] + + #[serde( + default, + rename = "settings.modifiedItemIndicator", + deserialize_with = "empty_string_as_none" + )] pub settings_modified_item_indicator: Option, - #[serde(rename = "settings.dropdownBackground")] + + #[serde( + default, + rename = "settings.dropdownBackground", + deserialize_with = "empty_string_as_none" + )] pub settings_dropdown_background: Option, - #[serde(rename = "settings.dropdownForeground")] + + #[serde( + default, + rename = "settings.dropdownForeground", + deserialize_with = "empty_string_as_none" + )] pub settings_dropdown_foreground: Option, - #[serde(rename = "settings.dropdownBorder")] + + #[serde( + default, + rename = "settings.dropdownBorder", + deserialize_with = "empty_string_as_none" + )] pub settings_dropdown_border: Option, - #[serde(rename = "settings.checkboxBackground")] + + #[serde( + default, + rename = "settings.checkboxBackground", + deserialize_with = "empty_string_as_none" + )] pub settings_checkbox_background: Option, - #[serde(rename = "settings.checkboxForeground")] + + #[serde( + default, + rename = "settings.checkboxForeground", + deserialize_with = "empty_string_as_none" + )] pub settings_checkbox_foreground: Option, - #[serde(rename = "settings.checkboxBorder")] + + #[serde( + default, + rename = "settings.checkboxBorder", + deserialize_with = "empty_string_as_none" + )] pub settings_checkbox_border: Option, - #[serde(rename = "settings.textInputBackground")] + + #[serde( + default, + rename = "settings.textInputBackground", + deserialize_with = "empty_string_as_none" + )] pub settings_text_input_background: Option, - #[serde(rename = "settings.textInputForeground")] + + #[serde( + default, + rename = "settings.textInputForeground", + deserialize_with = "empty_string_as_none" + )] pub settings_text_input_foreground: Option, - #[serde(rename = "settings.textInputBorder")] + + #[serde( + default, + rename = "settings.textInputBorder", + deserialize_with = "empty_string_as_none" + )] pub settings_text_input_border: Option, - #[serde(rename = "settings.numberInputBackground")] + + #[serde( + default, + rename = "settings.numberInputBackground", + deserialize_with = "empty_string_as_none" + )] pub settings_number_input_background: Option, - #[serde(rename = "settings.numberInputForeground")] + + #[serde( + default, + rename = "settings.numberInputForeground", + deserialize_with = "empty_string_as_none" + )] pub settings_number_input_foreground: Option, - #[serde(rename = "settings.numberInputBorder")] + + #[serde( + default, + rename = "settings.numberInputBorder", + deserialize_with = "empty_string_as_none" + )] pub settings_number_input_border: Option, - #[serde(rename = "breadcrumb.foreground")] + + #[serde( + default, + rename = "breadcrumb.foreground", + deserialize_with = "empty_string_as_none" + )] pub breadcrumb_foreground: Option, - #[serde(rename = "breadcrumb.background")] + + #[serde( + default, + rename = "breadcrumb.background", + deserialize_with = "empty_string_as_none" + )] pub breadcrumb_background: Option, - #[serde(rename = "breadcrumb.focusForeground")] + + #[serde( + default, + rename = "breadcrumb.focusForeground", + deserialize_with = "empty_string_as_none" + )] pub breadcrumb_focus_foreground: Option, - #[serde(rename = "breadcrumb.activeSelectionForeground")] + + #[serde( + default, + rename = "breadcrumb.activeSelectionForeground", + deserialize_with = "empty_string_as_none" + )] pub breadcrumb_active_selection_foreground: Option, - #[serde(rename = "breadcrumbPicker.background")] + + #[serde( + default, + rename = "breadcrumbPicker.background", + deserialize_with = "empty_string_as_none" + )] pub breadcrumb_picker_background: Option, - #[serde(rename = "listFilterWidget.background")] + + #[serde( + default, + rename = "listFilterWidget.background", + deserialize_with = "empty_string_as_none" + )] pub list_filter_widget_background: Option, - #[serde(rename = "listFilterWidget.outline")] + + #[serde( + default, + rename = "listFilterWidget.outline", + deserialize_with = "empty_string_as_none" + )] pub list_filter_widget_outline: Option, - #[serde(rename = "listFilterWidget.noMatchesOutline")] + + #[serde( + default, + rename = "listFilterWidget.noMatchesOutline", + deserialize_with = "empty_string_as_none" + )] pub list_filter_widget_no_matches_outline: Option, } From 726d761646e51e378292845723e65ff1bbf8e157 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Fri, 8 Dec 2023 10:12:18 -0800 Subject: [PATCH 042/115] Bump tree-sitter-vue to remove dangling submodule --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 44b705c129..f3f301f3fe 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 5a3c451fd3..2190066df5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -205,7 +205,7 @@ tree-sitter-yaml = { git = "https://github.com/zed-industries/tree-sitter-yaml", tree-sitter-lua = "0.0.14" tree-sitter-nix = { git = "https://github.com/nix-community/tree-sitter-nix", rev = "66e3e9ce9180ae08fc57372061006ef83f0abde7" } tree-sitter-nu = { git = "https://github.com/nushell/tree-sitter-nu", rev = "786689b0562b9799ce53e824cb45a1a2a04dc673"} -tree-sitter-vue = {git = "https://github.com/zed-industries/tree-sitter-vue", rev = "9b6cb221ccb8d0b956fcb17e9a1efac2feefeb58"} +tree-sitter-vue = {git = "https://github.com/zed-industries/tree-sitter-vue", rev = "6608d9d60c386f19d80af7d8132322fa11199c42"} tree-sitter-uiua = {git = "https://github.com/shnarazk/tree-sitter-uiua", rev = "9260f11be5900beda4ee6d1a24ab8ddfaf5a19b2"} [patch.crates-io] From a5a0ad8b5c06a595027ea7ab6f6bf645f0c70915 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 8 Dec 2023 13:13:19 -0500 Subject: [PATCH 043/115] Add missing serde attribute to `foreground` --- crates/theme_importer/src/vscode/theme.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/crates/theme_importer/src/vscode/theme.rs b/crates/theme_importer/src/vscode/theme.rs index 2c3fcd1752..f214f5089d 100644 --- a/crates/theme_importer/src/vscode/theme.rs +++ b/crates/theme_importer/src/vscode/theme.rs @@ -161,6 +161,7 @@ pub struct VsCodeColors { )] pub focus_border: Option, + #[serde(default, deserialize_with = "empty_string_as_none")] pub foreground: Option, #[serde( From be6c909587c5c3d852288f7cb03e86f7e0875b1a Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Fri, 8 Dec 2023 13:13:40 -0500 Subject: [PATCH 044/115] Remove some unused imports --- crates/feedback2/src/feedback_modal.rs | 2 +- crates/workspace2/src/status_bar.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/feedback2/src/feedback_modal.rs b/crates/feedback2/src/feedback_modal.rs index ada844ecda..23d8c38626 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 22e2fa128d..c095fd03b0 100644 --- a/crates/workspace2/src/status_bar.rs +++ b/crates/workspace2/src/status_bar.rs @@ -6,7 +6,7 @@ use gpui::{ WindowContext, }; use ui::prelude::*; -use ui::{h_stack, Icon, IconButton}; +use ui::{h_stack}; use util::ResultExt; pub trait StatusItemView: Render { From ab5b76e9438314164158eed6cbab519cafd7406d Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 8 Dec 2023 13:14:22 -0500 Subject: [PATCH 045/115] Pull Git status colors from VS Code themes --- crates/theme2/src/themes/andromeda.rs | 2 + crates/theme2/src/themes/ayu.rs | 9 ++++ crates/theme2/src/themes/dracula.rs | 4 ++ crates/theme2/src/themes/gruvbox.rs | 24 ++++++++++ crates/theme2/src/themes/night_owl.rs | 4 ++ crates/theme2/src/themes/noctis.rs | 44 +++++++++++++++++++ crates/theme2/src/themes/nord.rs | 4 ++ crates/theme2/src/themes/palenight.rs | 12 +++++ crates/theme2/src/themes/rose_pine.rs | 12 +++++ crates/theme2/src/themes/synthwave_84.rs | 3 ++ crates/theme_importer/src/vscode/converter.rs | 20 +++++++-- 11 files changed, 134 insertions(+), 4 deletions(-) diff --git a/crates/theme2/src/themes/andromeda.rs b/crates/theme2/src/themes/andromeda.rs index 577bbea543..c789f4f395 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 10ef469490..c9bb3dd514 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 19902dd79d..27bc05c64a 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 43354b2d22..79efc43109 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 09b73c10db..cece73f00e 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 a05422300c..25a31f0290 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 ee32e56645..b4a723d35c 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 0b2cfaca99..31de1b798b 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 2e5cf835ab..e0513bbd08 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 90e8a9c667..832b92c7a1 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 4e9090d2cd..6e2f11e5ff 100644 --- a/crates/theme_importer/src/vscode/converter.rs +++ b/crates/theme_importer/src/vscode/converter.rs @@ -75,8 +75,14 @@ impl VsCodeThemeConverter { }; Ok(StatusColorsRefinement { - // conflict: None, - // created: None, + conflict: vscode_colors + .git_decoration_conflicting_resource_foreground + .as_ref() + .traverse(|color| try_parse_color(&color))?, + created: vscode_colors + .git_decoration_untracked_resource_foreground + .as_ref() + .traverse(|color| try_parse_color(&color))?, deleted: vscode_colors .error_foreground .as_ref() @@ -94,9 +100,15 @@ impl VsCodeThemeConverter { .as_ref() .traverse(|color| try_parse_color(&color))? .or(vscode_base_status_colors.hint), - // ignored: None, + ignored: vscode_colors + .git_decoration_ignored_resource_foreground + .as_ref() + .traverse(|color| try_parse_color(&color))?, // info: None, - // modified: None, + modified: vscode_colors + .git_decoration_modified_resource_foreground + .as_ref() + .traverse(|color| try_parse_color(&color))?, // renamed: None, // success: None, warning: vscode_colors From fdde76c1a5465fda848d0e5107d902c81302fd31 Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Fri, 8 Dec 2023 13:15:12 -0500 Subject: [PATCH 046/115] Cargo fmt --- crates/workspace2/src/status_bar.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/workspace2/src/status_bar.rs b/crates/workspace2/src/status_bar.rs index c095fd03b0..d198b0485e 100644 --- a/crates/workspace2/src/status_bar.rs +++ b/crates/workspace2/src/status_bar.rs @@ -5,8 +5,8 @@ use gpui::{ div, AnyView, Div, IntoElement, ParentElement, Render, Styled, Subscription, View, ViewContext, WindowContext, }; +use ui::h_stack; use ui::prelude::*; -use ui::{h_stack}; use util::ResultExt; pub trait StatusItemView: Render { From 62155f3a88f5d15945621514885fe1851fc7f686 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 8 Dec 2023 13:20:00 -0500 Subject: [PATCH 047/115] Add fallback to constant tokens for numbers --- crates/theme2/src/themes/dracula.rs | 7 ++++ crates/theme2/src/themes/gruvbox.rs | 42 ++++++++++++++++++++++ crates/theme_importer/src/vscode/syntax.rs | 1 + 3 files changed, 50 insertions(+) diff --git a/crates/theme2/src/themes/dracula.rs b/crates/theme2/src/themes/dracula.rs index 27bc05c64a..855698b471 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 79efc43109..d961c661a3 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 262bd81f77..f055fc3551 100644 --- a/crates/theme_importer/src/vscode/syntax.rs +++ b/crates/theme_importer/src/vscode/syntax.rs @@ -167,6 +167,7 @@ impl ZedSyntaxToken { pub fn fallbacks(&self) -> &[Self] { match self { ZedSyntaxToken::CommentDoc => &[ZedSyntaxToken::Comment], + ZedSyntaxToken::Number => &[ZedSyntaxToken::Constant], ZedSyntaxToken::VariableSpecial => &[ZedSyntaxToken::Variable], ZedSyntaxToken::PunctuationBracket | ZedSyntaxToken::PunctuationDelimiter From 79e6dedb7a98bcc5b7f97aed91f5953579a4d6dd Mon Sep 17 00:00:00 2001 From: Julia Date: Fri, 8 Dec 2023 13:49:42 -0500 Subject: [PATCH 048/115] Track focus shenanigans with context menu Co-Authored-By: Max Brunsfeld --- crates/terminal_view2/src/terminal_element.rs | 16 ++---------- crates/terminal_view2/src/terminal_view.rs | 25 +++++++++---------- crates/ui2/src/components/context_menu.rs | 6 +---- 3 files changed, 15 insertions(+), 32 deletions(-) diff --git a/crates/terminal_view2/src/terminal_element.rs b/crates/terminal_view2/src/terminal_element.rs index d61ba5988e..907e8cd9c1 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 c4f1512e8c..d41e535d50 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 0d6a632db5..c2dc0abe1a 100644 --- a/crates/ui2/src/components/context_menu.rs +++ b/crates/ui2/src/components/context_menu.rs @@ -239,7 +239,6 @@ impl Render for ContextMenu { action, } => { let handler = handler.clone(); - let dismiss = cx.listener(|_, _, cx| cx.emit(DismissEvent)); let label_element = if let Some(icon) = icon { h_stack() @@ -263,10 +262,7 @@ impl Render for ContextMenu { })), ) .selected(Some(ix) == self.selected_index) - .on_click(move |event, cx| { - handler(cx); - dismiss(event, cx) - }) + .on_click(move |_, cx| handler(cx)) .into_any_element() } }, From 1d35a815a68b10af12fc2c612ef4910a66b33877 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 8 Dec 2023 13:50:56 -0500 Subject: [PATCH 049/115] Use `editorGroupHeader.tabsBackground` from VS Code as tab bar background (#3558) This PR changes the color we use for the tab bar background from the VS Code theme to `editorGroupHeader.tabsBackground`. Release Notes: - N/A --- crates/theme2/src/themes/dracula.rs | 2 +- crates/theme2/src/themes/gruvbox.rs | 6 +++++ crates/theme2/src/themes/noctis.rs | 22 +++++++++---------- crates/theme2/src/themes/palenight.rs | 6 ++--- crates/theme2/src/themes/rose_pine.rs | 6 ++--- crates/theme2/src/themes/solarized.rs | 2 ++ crates/theme2/src/themes/synthwave_84.rs | 1 + crates/theme_importer/src/vscode/converter.rs | 2 +- 8 files changed, 28 insertions(+), 19 deletions(-) diff --git a/crates/theme2/src/themes/dracula.rs b/crates/theme2/src/themes/dracula.rs index 855698b471..391ef11803 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 d961c661a3..b27dee65eb 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 25a31f0290..db24e921cc 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 31de1b798b..710a0c7c83 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 e0513bbd08..0f3592cb0f 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 81171e0fb0..71a1ed0204 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 832b92c7a1..4849fb9f37 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 6e2f11e5ff..596aa09b93 100644 --- a/crates/theme_importer/src/vscode/converter.rs +++ b/crates/theme_importer/src/vscode/converter.rs @@ -202,7 +202,7 @@ impl VsCodeThemeConverter { .flatten() }), tab_bar_background: vscode_colors - .panel_background + .editor_group_header_tabs_background .as_ref() .traverse(|color| try_parse_color(&color))?, tab_active_background: vscode_colors From 1c850f495ca6a29fc427dced0d30492487bdf55f Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 8 Dec 2023 14:03:18 -0500 Subject: [PATCH 050/115] Use `breadcrumb.background` from VS Code for toolbar background (#3559) This PR changes the color we use for the toolbar background from the VS Code theme to `breadcrumb.background`. If this value isn't set then we fall back to the `editor.background`. Release Notes: - N/A --- crates/theme2/src/themes/andromeda.rs | 2 +- crates/theme2/src/themes/gruvbox.rs | 6 +++++ crates/theme2/src/themes/night_owl.rs | 2 +- crates/theme2/src/themes/noctis.rs | 22 ++++++++-------- crates/theme2/src/themes/palenight.rs | 2 +- crates/theme2/src/themes/rose_pine.rs | 6 ++--- crates/theme2/src/themes/solarized.rs | 2 ++ crates/theme2/src/themes/synthwave_84.rs | 1 + crates/theme_importer/src/vscode/converter.rs | 25 ++++++++----------- 9 files changed, 37 insertions(+), 31 deletions(-) diff --git a/crates/theme2/src/themes/andromeda.rs b/crates/theme2/src/themes/andromeda.rs index c789f4f395..9e61fbe2e0 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 b27dee65eb..161450dbc0 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 cece73f00e..8e4743e371 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 db24e921cc..3a0e96755e 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 710a0c7c83..3036a0ffdb 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 0f3592cb0f..d115eca6d3 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 71a1ed0204..9a7e6c145f 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 4849fb9f37..5d6214e231 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 596aa09b93..6c5ef51fe6 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 + .breadcrumb_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 - .as_ref() - .traverse(|color| try_parse_color(&color))?, + .traverse(|color| try_parse_color(&color))? + .or(vscode_editor_background), + editor_background: vscode_editor_background, + editor_gutter_background: vscode_editor_background, editor_line_number: vscode_colors .editor_line_number_foreground .as_ref() From 77c8108f9beaa3be7a2e6b048688f65e06e1c0e9 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 8 Dec 2023 14:13:50 -0500 Subject: [PATCH 051/115] Use `dropdown.background` from VS Code for elevated surface background --- crates/theme2/src/themes/andromeda.rs | 4 ++-- crates/theme2/src/themes/ayu.rs | 6 ++--- crates/theme2/src/themes/dracula.rs | 2 +- crates/theme2/src/themes/gruvbox.rs | 6 +++++ crates/theme2/src/themes/noctis.rs | 22 +++++++++---------- crates/theme2/src/themes/nord.rs | 2 +- crates/theme2/src/themes/palenight.rs | 2 +- crates/theme2/src/themes/solarized.rs | 2 ++ crates/theme2/src/themes/synthwave_84.rs | 1 + crates/theme_importer/src/vscode/converter.rs | 2 +- 10 files changed, 29 insertions(+), 20 deletions(-) diff --git a/crates/theme2/src/themes/andromeda.rs b/crates/theme2/src/themes/andromeda.rs index 9e61fbe2e0..8ff4b6887f 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 c9bb3dd514..92bdb32f6f 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 391ef11803..d4c395831c 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 161450dbc0..106c18868b 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 3a0e96755e..3a9203c804 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 b4a723d35c..e8d2bdc8b7 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 3036a0ffdb..82f8418e0d 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 9a7e6c145f..bc4752f7a6 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 5d6214e231..51855bdbef 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 6c5ef51fe6..1980327e01 100644 --- a/crates/theme_importer/src/vscode/converter.rs +++ b/crates/theme_importer/src/vscode/converter.rs @@ -153,7 +153,7 @@ impl VsCodeThemeConverter { .as_ref() .traverse(|color| try_parse_color(&color))?, elevated_surface_background: vscode_colors - .panel_background + .dropdown_background .as_ref() .traverse(|color| try_parse_color(&color))?, surface_background: vscode_colors From 27501d2929777db5b33e752c4e14ab2465a2ac78 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 8 Dec 2023 14:19:56 -0500 Subject: [PATCH 052/115] Pull in colors for selected ghost elements --- crates/theme2/src/themes/andromeda.rs | 2 ++ crates/theme2/src/themes/ayu.rs | 3 +++ crates/theme2/src/themes/dracula.rs | 1 + crates/theme2/src/themes/gruvbox.rs | 6 ++++++ crates/theme2/src/themes/night_owl.rs | 2 ++ crates/theme2/src/themes/noctis.rs | 11 +++++++++++ crates/theme2/src/themes/nord.rs | 1 + crates/theme2/src/themes/palenight.rs | 3 +++ crates/theme2/src/themes/rose_pine.rs | 3 +++ crates/theme2/src/themes/solarized.rs | 2 ++ crates/theme2/src/themes/synthwave_84.rs | 1 + crates/theme_importer/src/vscode/converter.rs | 4 ++++ 12 files changed, 39 insertions(+) diff --git a/crates/theme2/src/themes/andromeda.rs b/crates/theme2/src/themes/andromeda.rs index 8ff4b6887f..031dd51025 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 92bdb32f6f..1d6bb1634c 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 d4c395831c..795d7d5083 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 106c18868b..6d0851bbee 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 8e4743e371..cb4278526d 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 3a9203c804..e1497f57ab 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 e8d2bdc8b7..c5634bebcf 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 82f8418e0d..1cebdc83e2 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 d115eca6d3..91b79821c8 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 bc4752f7a6..ae2ad90051 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 51855bdbef..48d1870147 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 1980327e01..8a7d27becb 100644 --- a/crates/theme_importer/src/vscode/converter.rs +++ b/crates/theme_importer/src/vscode/converter.rs @@ -185,6 +185,10 @@ impl VsCodeThemeConverter { .list_hover_background .as_ref() .traverse(|color| try_parse_color(&color))?, + ghost_element_selected: vscode_colors + .list_active_selection_background + .as_ref() + .traverse(|color| try_parse_color(&color))?, drop_target_background: vscode_colors .list_drop_background .as_ref() From f0cc54a0b528766d3f24e5e6a39d517ea3ec324d Mon Sep 17 00:00:00 2001 From: Julia Date: Fri, 8 Dec 2023 14:26:02 -0500 Subject: [PATCH 053/115] Comment the weirdness Co-Authored-By: Max Brunsfeld --- crates/terminal_view2/src/terminal_view.rs | 37 ++++++++++------------ 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/crates/terminal_view2/src/terminal_view.rs b/crates/terminal_view2/src/terminal_view.rs index d41e535d50..83c7779d2e 100644 --- a/crates/terminal_view2/src/terminal_view.rs +++ b/crates/terminal_view2/src/terminal_view.rs @@ -11,8 +11,8 @@ use editor::{scroll::autoscroll::Autoscroll, Editor}; use gpui::{ div, overlay, Action, AnyElement, AppContext, DismissEvent, Div, EventEmitter, FocusEvent, FocusHandle, Focusable, FocusableElement, FocusableView, KeyContext, KeyDownEvent, Keystroke, - Model, MouseButton, MouseDownEvent, Pixels, Render, Subscription, Task, View, VisualContext, - WeakView, + Model, MouseButton, MouseDownEvent, Pixels, Render, Styled, Subscription, Task, View, + VisualContext, WeakView, }; use language::Bias; use persistence::TERMINAL_DB; @@ -651,25 +651,22 @@ impl Render for TerminalView { .on_focus_in(cx.listener(Self::focus_in)) .on_focus_out(cx.listener(Self::focus_out)) .on_key_down(cx.listener(Self::key_down)) + .on_mouse_down( + MouseButton::Right, + cx.listener(|this, event: &MouseDownEvent, cx| { + this.deploy_context_menu(event.position, cx); + cx.notify(); + }), + ) .child( - div() - .z_index(0) - .absolute() - .size_full() - .child(TerminalElement::new( - terminal_handle, - self.focus_handle.clone(), - focused, - self.should_show_cursor(focused, cx), - self.can_navigate_to_selected_word, - )) - .on_mouse_down( - MouseButton::Right, - cx.listener(|this, event: &MouseDownEvent, cx| { - this.deploy_context_menu(event.position, cx); - cx.notify(); - }), - ), + // TODO: Oddly this wrapper div is needed for TerminalElement to not steal events from the context menu + div().size_full().child(TerminalElement::new( + terminal_handle, + self.focus_handle.clone(), + focused, + self.should_show_cursor(focused, cx), + self.can_navigate_to_selected_word, + )), ) .children(self.context_menu.as_ref().map(|(menu, positon, _)| { overlay() From 0dc02b8354c5a28531f92628efbe2f60d2372943 Mon Sep 17 00:00:00 2001 From: Kirill Bulatov Date: Fri, 8 Dec 2023 21:38:28 +0200 Subject: [PATCH 054/115] Log Zed build sha in release builds. Also ensure that curl commands for nightly uploads return 200 (fail otherwise). --- crates/zed2/build.rs | 18 ++++++++++++++---- script/upload-nightly | 2 +- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/crates/zed2/build.rs b/crates/zed2/build.rs index 619f248029..101838b8af 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 073976a335..f03b2f7fd8 100755 --- a/script/upload-nightly +++ b/script/upload-nightly @@ -20,7 +20,7 @@ function uploadToSpaces string="PUT\n\n${content_type}\n${date}\n${acl}\n${storage_type}\n/${SPACE}/${space_path}/${file_name}" signature=$(echo -en "${string}" | openssl sha1 -hmac "${DIGITALOCEAN_SPACES_SECRET_KEY}" -binary | base64) - curl -vv -s -X PUT -T "$file_to_upload" \ + curl --fail -vv -s -X PUT -T "$file_to_upload" \ -H "Host: ${SPACE}.${REGION}.digitaloceanspaces.com" \ -H "Date: $date" \ -H "Content-Type: $content_type" \ From 4353bdb9d5849bc28454a54e4169502dfe9dbe10 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 8 Dec 2023 15:08:35 -0500 Subject: [PATCH 055/115] Restore theme sorting in Zed2 (#3563) This PR restores the sorting of themes in the theme selector in Zed2. Release Notes: - N/A --- crates/theme2/src/registry.rs | 13 +++++++-- crates/theme2/src/theme2.rs | 9 ++++++ crates/theme_selector2/src/theme_selector.rs | 30 +++++++++++--------- 3 files changed, 37 insertions(+), 15 deletions(-) diff --git a/crates/theme2/src/registry.rs b/crates/theme2/src/registry.rs index cb7814cb6f..e212d5f9a7 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 ff80b9f5f9..cb3808d4f1 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 8430f0698b..2aa893b69c 100644 --- a/crates/theme_selector2/src/theme_selector.rs +++ b/crates/theme_selector2/src/theme_selector.rs @@ -2,13 +2,13 @@ use feature_flags::FeatureFlagAppExt; use fs::Fs; use fuzzy::{match_strings, StringMatch, StringMatchCandidate}; use gpui::{ - actions, AppContext, DismissEvent, Div, EventEmitter, FocusableView, Render, SharedString, - View, ViewContext, VisualContext, WeakView, + actions, AppContext, DismissEvent, Div, EventEmitter, FocusableView, Render, View, ViewContext, + VisualContext, WeakView, }; use picker::{Picker, PickerDelegate}; use settings::{update_settings_file, SettingsStore}; use std::sync::Arc; -use theme::{Theme, ThemeRegistry, ThemeSettings}; +use theme::{Theme, ThemeMeta, ThemeRegistry, ThemeSettings}; use ui::{prelude::*, v_stack, ListItem}; use util::ResultExt; use workspace::{ui::HighlightedLabel, Workspace}; @@ -81,7 +81,7 @@ impl ThemeSelector { pub struct ThemeSelectorDelegate { fs: Arc, - theme_names: Vec, + themes: Vec, matches: Vec, original_theme: Arc, selection_completed: bool, @@ -99,21 +99,25 @@ impl ThemeSelectorDelegate { let staff_mode = cx.is_staff(); let registry = cx.global::(); - let theme_names = registry.list(staff_mode).collect::>(); - //todo!(theme sorting) - // theme_names.sort_unstable_by(|a, b| a.is_light.cmp(&b.is_light).then(a.name.cmp(&b.name))); - let matches = theme_names + let mut themes = registry.list(staff_mode).collect::>(); + themes.sort_unstable_by(|a, b| { + a.appearance + .is_light() + .cmp(&b.appearance.is_light()) + .then(a.name.cmp(&b.name)) + }); + let matches = themes .iter() .map(|meta| StringMatch { candidate_id: 0, score: 0.0, positions: Default::default(), - string: meta.to_string(), + string: meta.name.to_string(), }) .collect(); let mut this = Self { fs, - theme_names, + themes, matches, original_theme: original_theme.clone(), selected_index: 0, @@ -213,13 +217,13 @@ impl PickerDelegate for ThemeSelectorDelegate { ) -> gpui::Task<()> { let background = cx.background_executor().clone(); let candidates = self - .theme_names + .themes .iter() .enumerate() .map(|(id, meta)| StringMatchCandidate { id, - char_bag: meta.as_ref().into(), - string: meta.to_string(), + char_bag: meta.name.as_ref().into(), + string: meta.name.to_string(), }) .collect::>(); From 113c7287df2ddab3fbba159447b23a8a4624852b Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Fri, 8 Dec 2023 15:26:06 -0500 Subject: [PATCH 056/115] Allow modals to override their dismissal Co-Authored-By: Mikayla Maki --- .../src/collab_panel/channel_modal.rs | 2 + .../src/collab_panel/contact_finder.rs | 2 + .../command_palette2/src/command_palette.rs | 4 +- crates/feedback2/src/feedback_modal.rs | 58 +++++++++------ crates/file_finder2/src/file_finder.rs | 4 +- crates/go_to_line2/src/go_to_line.rs | 3 + .../src/language_selector.rs | 3 +- crates/outline2/src/outline.rs | 3 +- .../recent_projects2/src/recent_projects.rs | 6 +- crates/theme_selector2/src/theme_selector.rs | 4 +- crates/welcome2/src/base_keymap_picker.rs | 3 +- crates/workspace2/src/modal_layer.rs | 70 ++++++++++++++----- crates/workspace2/src/workspace2.rs | 2 +- 13 files changed, 118 insertions(+), 46 deletions(-) diff --git a/crates/collab_ui2/src/collab_panel/channel_modal.rs b/crates/collab_ui2/src/collab_panel/channel_modal.rs index af6343b98a..3a630a1959 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 1623d10eab..742c25d148 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 57c1fa5614..306ccc2b5a 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 23d8c38626..ed8944be06 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 63bf465a73..7324b3667a 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 aff9942c26..1a64b29c4c 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 5d6914d1e2..1ba989ba5d 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 45e167411e..bfa93d2099 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 d2c13b40a3..e014783687 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 8430f0698b..61f1cdf8fe 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 4e829972f0..9e672de69d 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 a9b6189fdc..a109352995 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 251f0685b0..012c881e5b 100644 --- a/crates/workspace2/src/workspace2.rs +++ b/crates/workspace2/src/workspace2.rs @@ -3414,7 +3414,7 @@ impl Workspace { self.modal_layer.read(cx).active_modal() } - pub fn toggle_modal(&mut self, cx: &mut ViewContext, build: B) + pub fn toggle_modal(&mut self, cx: &mut ViewContext, build: B) where B: FnOnce(&mut ViewContext) -> V, { From 6955579f1978dcf50fa1498f7e9c21b942d509d1 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Thu, 7 Dec 2023 18:14:10 -0800 Subject: [PATCH 057/115] Start work on chat panel and non-uniform list Co-authored-by: Nathan --- crates/assistant2/src/assistant.rs | 4 +- crates/assistant2/src/assistant_panel.rs | 7 +- crates/collab_ui2/src/chat_panel.rs | 579 +++++++----------- .../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, 758 insertions(+), 400 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 910eeda9e1..871ab131e5 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 359056d9d3..79ebb6602d 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 e9e2610a86..0f6d6c3cd1 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