From 004c5d309bbd1baa91d803f07a0d80db9ebd7e00 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Thu, 2 Nov 2023 14:23:43 -0400 Subject: [PATCH 01/76] WIP --- crates/theme2/src/import.rs | 222 ++++++++++++++++++++++++++++++++++++ crates/theme2/src/theme2.rs | 1 + 2 files changed, 223 insertions(+) create mode 100644 crates/theme2/src/import.rs diff --git a/crates/theme2/src/import.rs b/crates/theme2/src/import.rs new file mode 100644 index 0000000000..147babf007 --- /dev/null +++ b/crates/theme2/src/import.rs @@ -0,0 +1,222 @@ +use crate::ThemeColorsRefinement; + +struct ImportedThemeFamily { + pub id: String, + pub name: String, + pub author: String, + pub url: String, + pub license: String, + pub themes: Vec, +} + +#[derive(Debug)] +pub struct VSCodeColors { + terminal_background: String, + terminal_foreground: String, + terminal_ansi_bright_black: String, + terminal_ansi_bright_red: String, + terminal_ansi_bright_green: String, + terminal_ansi_bright_yellow: String, + terminal_ansi_bright_blue: String, + terminal_ansi_bright_magenta: String, + terminal_ansi_bright_cyan: String, + terminal_ansi_bright_white: String, + terminal_ansi_black: String, + terminal_ansi_red: String, + terminal_ansi_green: String, + terminal_ansi_yellow: String, + terminal_ansi_blue: String, + terminal_ansi_magenta: String, + terminal_ansi_cyan: String, + terminal_ansi_white: String, + focus_border: String, + foreground: String, + selection_background: String, + error_foreground: String, + button_background: String, + button_foreground: String, + button_secondary_background: String, + button_secondary_foreground: String, + button_secondary_hover_background: String, + dropdown_background: String, + dropdown_border: String, + dropdown_foreground: String, + input_background: String, + input_foreground: String, + input_border: String, + input_placeholder_foreground: String, + input_option_active_border: String, + input_validation_info_border: String, + input_validation_warning_border: String, + input_validation_error_border: String, + badge_foreground: String, + badge_background: String, + progress_bar_background: String, + list_active_selection_background: String, + list_active_selection_foreground: String, + list_drop_background: String, + list_focus_background: String, + list_highlight_foreground: String, + list_hover_background: String, + list_inactive_selection_background: String, + list_warning_foreground: String, + list_error_foreground: String, + activity_bar_background: String, + activity_bar_inactive_foreground: String, + activity_bar_foreground: String, + activity_bar_active_border: String, + activity_bar_active_background: String, + activity_bar_badge_background: String, + activity_bar_badge_foreground: String, + side_bar_background: String, + side_bar_title_foreground: String, + side_bar_section_header_background: String, + side_bar_section_header_border: String, + editor_group_border: String, + editor_group_drop_background: String, + editor_group_header_tabs_background: String, + tab_active_background: String, + tab_active_foreground: String, + tab_border: String, + tab_active_border_top: String, + tab_inactive_background: String, + tab_inactive_foreground: String, + editor_foreground: String, + editor_background: String, + editor_line_number_foreground: String, + editor_selection_background: String, + editor_selection_highlight_background: String, + editor_fold_background: String, + editor_word_highlight_background: String, + editor_word_highlight_strong_background: String, + editor_find_match_background: String, + editor_find_match_highlight_background: String, + editor_find_range_highlight_background: String, + editor_hover_highlight_background: String, + editor_line_highlight_border: String, + editor_link_active_foreground: String, + editor_range_highlight_background: String, + editor_snippet_tabstop_highlight_background: String, + editor_snippet_tabstop_highlight_border: String, + editor_snippet_final_tabstop_highlight_background: String, + editor_snippet_final_tabstop_highlight_border: String, + editor_whitespace_foreground: String, + editor_indent_guide_background: String, + editor_indent_guide_active_background: String, + editor_ruler_foreground: String, + editor_code_lens_foreground: String, + editor_bracket_highlight_foreground1: String, + editor_bracket_highlight_foreground2: String, + editor_bracket_highlight_foreground3: String, + editor_bracket_highlight_foreground4: String, + editor_bracket_highlight_foreground5: String, + editor_bracket_highlight_foreground6: String, + editor_bracket_highlight_unexpected_bracket_foreground: String, + editor_overview_ruler_border: String, + editor_overview_ruler_selection_highlight_foreground: String, + editor_overview_ruler_word_highlight_foreground: String, + editor_overview_ruler_word_highlight_strong_foreground: String, + editor_overview_ruler_modified_foreground: String, + editor_overview_ruler_added_foreground: String, + editor_overview_ruler_deleted_foreground: String, + editor_overview_ruler_error_foreground: String, + editor_overview_ruler_warning_foreground: String, + editor_overview_ruler_info_foreground: String, + editor_error_foreground: String, + editor_warning_foreground: String, + editor_gutter_modified_background: String, + editor_gutter_added_background: String, + editor_gutter_deleted_background: String, + git_decoration_modified_resource_foreground: String, + git_decoration_deleted_resource_foreground: String, + git_decoration_untracked_resource_foreground: String, + git_decoration_ignored_resource_foreground: String, + git_decoration_conflicting_resource_foreground: String, + diff_editor_inserted_text_background: String, + diff_editor_removed_text_background: String, + inline_chat_region_highlight: String, + editor_widget_background: String, + editor_suggest_widget_background: String, + editor_suggest_widget_foreground: String, + editor_suggest_widget_selected_background: String, + editor_hover_widget_background: String, + editor_hover_widget_border: String, + editor_marker_navigation_background: String, + peek_view_border: String, + peek_view_editor_background: String, + peek_view_editor_match_highlight_background: String, + peek_view_result_background: String, + peek_view_result_file_foreground: String, + peek_view_result_line_foreground: String, + peek_view_result_match_highlight_background: String, + peek_view_result_selection_background: String, + peek_view_result_selection_foreground: String, + peek_view_title_background: String, + peek_view_title_description_foreground: String, + peek_view_title_label_foreground: String, + merge_current_header_background: String, + merge_incoming_header_background: String, + editor_overview_ruler_current_content_foreground: String, + editor_overview_ruler_incoming_content_foreground: String, + panel_background: String, + panel_border: String, + panel_title_active_border: String, + panel_title_active_foreground: String, + panel_title_inactive_foreground: String, + status_bar_background: String, + status_bar_foreground: String, + status_bar_debugging_background: String, + status_bar_debugging_foreground: String, + status_bar_no_folder_background: String, + status_bar_no_folder_foreground: String, + status_bar_item_prominent_background: String, + status_bar_item_prominent_hover_background: String, + status_bar_item_remote_foreground: String, + status_bar_item_remote_background: String, + title_bar_active_background: String, + title_bar_active_foreground: String, + title_bar_inactive_background: String, + title_bar_inactive_foreground: String, + extension_button_prominent_foreground: String, + extension_button_prominent_background: String, + extension_button_prominent_hover_background: String, + picker_group_border: String, + picker_group_foreground: String, + debug_tool_bar_background: String, + walk_through_embedded_editor_background: String, + settings_header_foreground: String, + settings_modified_item_indicator: String, + settings_dropdown_background: String, + settings_dropdown_foreground: String, + settings_dropdown_border: String, + settings_checkbox_background: String, + settings_checkbox_foreground: String, + settings_checkbox_border: String, + settings_text_input_background: String, + settings_text_input_foreground: String, + settings_text_input_border: String, + settings_number_input_background: String, + settings_number_input_foreground: String, + settings_number_input_border: String, + breadcrumb_foreground: String, + breadcrumb_background: String, + breadcrumb_focus_foreground: String, + breadcrumb_active_selection_foreground: String, + breadcrumb_picker_background: String, + list_filter_widget_background: String, + list_filter_widget_outline: String, + list_filter_widget_no_matches_outline: String, +} + +pub fn try_vscode_colors_to_theme_colors(colors: VSCodeColors) -> ThemeColorsRefinement { + let mut theme_colors = ThemeColorsRefinement::default(); + + theme_colors +} + +pub fn vscode_colors_to_theme_colors(color: String) -> ThemeColorsRefinement { + ThemeColorsRefinement { + text: Some(color), + ..Default::default() + } +} diff --git a/crates/theme2/src/theme2.rs b/crates/theme2/src/theme2.rs index 88dcbd1286..431a96c05f 100644 --- a/crates/theme2/src/theme2.rs +++ b/crates/theme2/src/theme2.rs @@ -1,6 +1,7 @@ mod colors; mod default_colors; mod default_theme; +mod import; mod registry; mod scale; mod settings; From 809d8786f129589ca51714d4a734d6bd6b818f35 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Thu, 2 Nov 2023 14:54:53 -0400 Subject: [PATCH 02/76] WIP --- crates/theme2/src/import.rs | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/crates/theme2/src/import.rs b/crates/theme2/src/import.rs index 147babf007..26850b5b78 100644 --- a/crates/theme2/src/import.rs +++ b/crates/theme2/src/import.rs @@ -9,6 +9,38 @@ struct ImportedThemeFamily { pub themes: Vec, } +struct ImportedThemeVariant { + pub id: String, + pub name: String, + pub colors: ThemeColorsRefinement, +} + +macro_rules! gen_vscode_colors_and_enum { + ($($name:ident: $type:ty),*) => { + #[derive(Debug)] + pub struct VSCodeColors { + $( + pub $name: $type, + )* + } + + pub enum VSCodeColor { + $( + $({ + let mut s = stringify!($name).to_string(); + s.get_mut(0..1).unwrap().make_ascii_uppercase(); + s.replace("_", "") + }), + )* + } + }; +} + +gen_vscode_colors_and_enum! { + terminal_background: String, + terminal_foreground: String +} + #[derive(Debug)] pub struct VSCodeColors { terminal_background: String, From 58ac7f2926e414907d602e8f0823230e2cb689dd Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Thu, 2 Nov 2023 16:26:27 -0400 Subject: [PATCH 03/76] [Broken] Load a src theme in test --- assets/themes/src/vsc/dracula/LICENSE | 21 + assets/themes/src/vsc/dracula/dracula.json | 1067 ++++++++++++++++++++ crates/theme2/src/import.rs | 301 +++++- 3 files changed, 1342 insertions(+), 47 deletions(-) create mode 100644 assets/themes/src/vsc/dracula/LICENSE create mode 100644 assets/themes/src/vsc/dracula/dracula.json diff --git a/assets/themes/src/vsc/dracula/LICENSE b/assets/themes/src/vsc/dracula/LICENSE new file mode 100644 index 0000000000..dcaf6d7f61 --- /dev/null +++ b/assets/themes/src/vsc/dracula/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Dracula Theme + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/assets/themes/src/vsc/dracula/dracula.json b/assets/themes/src/vsc/dracula/dracula.json new file mode 100644 index 0000000000..6604a094d5 --- /dev/null +++ b/assets/themes/src/vsc/dracula/dracula.json @@ -0,0 +1,1067 @@ +{ + "$schema": "vscode://schemas/color-theme", + "name": "Dracula", + "author": "Zeno Rocha", + "maintainers": ["Derek P Sifford "], + "semanticClass": "theme.dracula", + "semanticHighlighting": true, + "dracula": { + "base": [ + "#282A36", + "#F8F8F2", + "#44475A", + "#6272A4", + "#8BE9FD", + "#50FA7B", + "#FFB86C", + "#FF79C6", + "#BD93F9", + "#FF5555", + "#F1FA8C" + ], + "ansi": [ + "#21222C", + "#FF5555", + "#50FA7B", + "#F1FA8C", + "#BD93F9", + "#FF79C6", + "#8BE9FD", + "#F8F8F2", + "#6272A4", + "#FF6E6E", + "#69FF94", + "#FFFFA5", + "#D6ACFF", + "#FF92DF", + "#A4FFFF", + "#FFFFFF" + ], + "brightOther": ["#E9F284", "#8BE9FE"], + "other": [ + "#44475A75", + "#FFFFFF1A", + "#FFFFFF", + "#44475A70", + "#424450", + "#343746", + "#21222C", + "#191A21" + ] + }, + "colors": { + "terminal.background": "#282A36", + "terminal.foreground": "#F8F8F2", + "terminal.ansiBrightBlack": "#6272A4", + "terminal.ansiBrightRed": "#FF6E6E", + "terminal.ansiBrightGreen": "#69FF94", + "terminal.ansiBrightYellow": "#FFFFA5", + "terminal.ansiBrightBlue": "#D6ACFF", + "terminal.ansiBrightMagenta": "#FF92DF", + "terminal.ansiBrightCyan": "#A4FFFF", + "terminal.ansiBrightWhite": "#FFFFFF", + "terminal.ansiBlack": "#21222C", + "terminal.ansiRed": "#FF5555", + "terminal.ansiGreen": "#50FA7B", + "terminal.ansiYellow": "#F1FA8C", + "terminal.ansiBlue": "#BD93F9", + "terminal.ansiMagenta": "#FF79C6", + "terminal.ansiCyan": "#8BE9FD", + "terminal.ansiWhite": "#F8F8F2", + "focusBorder": "#6272A4", + "foreground": "#F8F8F2", + "selection.background": "#BD93F9", + "errorForeground": "#FF5555", + "button.background": "#44475A", + "button.foreground": "#F8F8F2", + "button.secondaryBackground": "#282A36", + "button.secondaryForeground": "#F8F8F2", + "button.secondaryHoverBackground": "#343746", + "dropdown.background": "#343746", + "dropdown.border": "#191A21", + "dropdown.foreground": "#F8F8F2", + "input.background": "#282A36", + "input.foreground": "#F8F8F2", + "input.border": "#191A21", + "input.placeholderForeground": "#6272A4", + "inputOption.activeBorder": "#BD93F9", + "inputValidation.infoBorder": "#FF79C6", + "inputValidation.warningBorder": "#FFB86C", + "inputValidation.errorBorder": "#FF5555", + "badge.foreground": "#F8F8F2", + "badge.background": "#44475A", + "progressBar.background": "#FF79C6", + "list.activeSelectionBackground": "#44475A", + "list.activeSelectionForeground": "#F8F8F2", + "list.dropBackground": "#44475A", + "list.focusBackground": "#44475A75", + "list.highlightForeground": "#8BE9FD", + "list.hoverBackground": "#44475A75", + "list.inactiveSelectionBackground": "#44475A75", + "list.warningForeground": "#FFB86C", + "list.errorForeground": "#FF5555", + "activityBar.background": "#343746", + "activityBar.inactiveForeground": "#6272A4", + "activityBar.foreground": "#F8F8F2", + "activityBar.activeBorder": "#FF79C680", + "activityBar.activeBackground": "#BD93F910", + "activityBarBadge.background": "#FF79C6", + "activityBarBadge.foreground": "#F8F8F2", + "sideBar.background": "#21222C", + "sideBarTitle.foreground": "#F8F8F2", + "sideBarSectionHeader.background": "#282A36", + "sideBarSectionHeader.border": "#191A21", + "editorGroup.border": "#BD93F9", + "editorGroup.dropBackground": "#44475A70", + "editorGroupHeader.tabsBackground": "#191A21", + "tab.activeBackground": "#282A36", + "tab.activeForeground": "#F8F8F2", + "tab.border": "#191A21", + "tab.activeBorderTop": "#FF79C680", + "tab.inactiveBackground": "#21222C", + "tab.inactiveForeground": "#6272A4", + "editor.foreground": "#F8F8F2", + "editor.background": "#282A36", + "editorLineNumber.foreground": "#6272A4", + "editor.selectionBackground": "#44475A", + "editor.selectionHighlightBackground": "#424450", + "editor.foldBackground": "#21222C80", + "editor.wordHighlightBackground": "#8BE9FD50", + "editor.wordHighlightStrongBackground": "#50FA7B50", + "editor.findMatchBackground": "#FFB86C80", + "editor.findMatchHighlightBackground": "#FFFFFF40", + "editor.findRangeHighlightBackground": "#44475A75", + "editor.hoverHighlightBackground": "#8BE9FD50", + "editor.lineHighlightBorder": "#44475A", + "editorLink.activeForeground": "#8BE9FD", + "editor.rangeHighlightBackground": "#BD93F915", + "editor.snippetTabstopHighlightBackground": "#282A36", + "editor.snippetTabstopHighlightBorder": "#6272A4", + "editor.snippetFinalTabstopHighlightBackground": "#282A36", + "editor.snippetFinalTabstopHighlightBorder": "#50FA7B", + "editorWhitespace.foreground": "#FFFFFF1A", + "editorIndentGuide.background": "#FFFFFF1A", + "editorIndentGuide.activeBackground": "#FFFFFF45", + "editorRuler.foreground": "#FFFFFF1A", + "editorCodeLens.foreground": "#6272A4", + "editorBracketHighlight.foreground1": "#F8F8F2", + "editorBracketHighlight.foreground2": "#FF79C6", + "editorBracketHighlight.foreground3": "#8BE9FD", + "editorBracketHighlight.foreground4": "#50FA7B", + "editorBracketHighlight.foreground5": "#BD93F9", + "editorBracketHighlight.foreground6": "#FFB86C", + "editorBracketHighlight.unexpectedBracket.foreground": "#FF5555", + "editorOverviewRuler.border": "#191A21", + "editorOverviewRuler.selectionHighlightForeground": "#FFB86C", + "editorOverviewRuler.wordHighlightForeground": "#8BE9FD", + "editorOverviewRuler.wordHighlightStrongForeground": "#50FA7B", + "editorOverviewRuler.modifiedForeground": "#8BE9FD80", + "editorOverviewRuler.addedForeground": "#50FA7B80", + "editorOverviewRuler.deletedForeground": "#FF555580", + "editorOverviewRuler.errorForeground": "#FF555580", + "editorOverviewRuler.warningForeground": "#FFB86C80", + "editorOverviewRuler.infoForeground": "#8BE9FD80", + "editorError.foreground": "#FF5555", + "editorWarning.foreground": "#8BE9FD", + "editorGutter.modifiedBackground": "#8BE9FD80", + "editorGutter.addedBackground": "#50FA7B80", + "editorGutter.deletedBackground": "#FF555580", + "gitDecoration.modifiedResourceForeground": "#8BE9FD", + "gitDecoration.deletedResourceForeground": "#FF5555", + "gitDecoration.untrackedResourceForeground": "#50FA7B", + "gitDecoration.ignoredResourceForeground": "#6272A4", + "gitDecoration.conflictingResourceForeground": "#FFB86C", + "diffEditor.insertedTextBackground": "#50FA7B20", + "diffEditor.removedTextBackground": "#FF555550", + "inlineChat.regionHighlight": "#343746", + "editorWidget.background": "#21222C", + "editorSuggestWidget.background": "#21222C", + "editorSuggestWidget.foreground": "#F8F8F2", + "editorSuggestWidget.selectedBackground": "#44475A", + "editorHoverWidget.background": "#282A36", + "editorHoverWidget.border": "#6272A4", + "editorMarkerNavigation.background": "#21222C", + "peekView.border": "#44475A", + "peekViewEditor.background": "#282A36", + "peekViewEditor.matchHighlightBackground": "#F1FA8C80", + "peekViewResult.background": "#21222C", + "peekViewResult.fileForeground": "#F8F8F2", + "peekViewResult.lineForeground": "#F8F8F2", + "peekViewResult.matchHighlightBackground": "#F1FA8C80", + "peekViewResult.selectionBackground": "#44475A", + "peekViewResult.selectionForeground": "#F8F8F2", + "peekViewTitle.background": "#191A21", + "peekViewTitleDescription.foreground": "#6272A4", + "peekViewTitleLabel.foreground": "#F8F8F2", + "merge.currentHeaderBackground": "#50FA7B90", + "merge.incomingHeaderBackground": "#BD93F990", + "editorOverviewRuler.currentContentForeground": "#50FA7B", + "editorOverviewRuler.incomingContentForeground": "#BD93F9", + "panel.background": "#282A36", + "panel.border": "#BD93F9", + "panelTitle.activeBorder": "#FF79C6", + "panelTitle.activeForeground": "#F8F8F2", + "panelTitle.inactiveForeground": "#6272A4", + "statusBar.background": "#191A21", + "statusBar.foreground": "#F8F8F2", + "statusBar.debuggingBackground": "#FF5555", + "statusBar.debuggingForeground": "#191A21", + "statusBar.noFolderBackground": "#191A21", + "statusBar.noFolderForeground": "#F8F8F2", + "statusBarItem.prominentBackground": "#FF5555", + "statusBarItem.prominentHoverBackground": "#FFB86C", + "statusBarItem.remoteForeground": "#282A36", + "statusBarItem.remoteBackground": "#BD93F9", + "titleBar.activeBackground": "#21222C", + "titleBar.activeForeground": "#F8F8F2", + "titleBar.inactiveBackground": "#191A21", + "titleBar.inactiveForeground": "#6272A4", + "extensionButton.prominentForeground": "#F8F8F2", + "extensionButton.prominentBackground": "#50FA7B90", + "extensionButton.prominentHoverBackground": "#50FA7B60", + "pickerGroup.border": "#BD93F9", + "pickerGroup.foreground": "#8BE9FD", + "debugToolBar.background": "#21222C", + "walkThrough.embeddedEditorBackground": "#21222C", + "settings.headerForeground": "#F8F8F2", + "settings.modifiedItemIndicator": "#FFB86C", + "settings.dropdownBackground": "#21222C", + "settings.dropdownForeground": "#F8F8F2", + "settings.dropdownBorder": "#191A21", + "settings.checkboxBackground": "#21222C", + "settings.checkboxForeground": "#F8F8F2", + "settings.checkboxBorder": "#191A21", + "settings.textInputBackground": "#21222C", + "settings.textInputForeground": "#F8F8F2", + "settings.textInputBorder": "#191A21", + "settings.numberInputBackground": "#21222C", + "settings.numberInputForeground": "#F8F8F2", + "settings.numberInputBorder": "#191A21", + "breadcrumb.foreground": "#6272A4", + "breadcrumb.background": "#282A36", + "breadcrumb.focusForeground": "#F8F8F2", + "breadcrumb.activeSelectionForeground": "#F8F8F2", + "breadcrumbPicker.background": "#191A21", + "listFilterWidget.background": "#343746", + "listFilterWidget.outline": "#424450", + "listFilterWidget.noMatchesOutline": "#FF5555" + }, + "tokenColors": [ + { + "scope": ["emphasis"], + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": ["strong"], + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": ["header"], + "settings": { + "foreground": "#BD93F9" + } + }, + { + "scope": ["meta.diff", "meta.diff.header"], + "settings": { + "foreground": "#6272A4" + } + }, + { + "scope": ["markup.inserted"], + "settings": { + "foreground": "#50FA7B" + } + }, + { + "scope": ["markup.deleted"], + "settings": { + "foreground": "#FF5555" + } + }, + { + "scope": ["markup.changed"], + "settings": { + "foreground": "#FFB86C" + } + }, + { + "scope": ["invalid"], + "settings": { + "foreground": "#FF5555", + "fontStyle": "underline italic" + } + }, + { + "scope": ["invalid.deprecated"], + "settings": { + "foreground": "#F8F8F2", + "fontStyle": "underline italic" + } + }, + { + "scope": ["entity.name.filename"], + "settings": { + "foreground": "#F1FA8C" + } + }, + { + "scope": ["markup.error"], + "settings": { + "foreground": "#FF5555" + } + }, + { + "name": "Underlined markup", + "scope": ["markup.underline"], + "settings": { + "fontStyle": "underline" + } + }, + { + "name": "Bold markup", + "scope": ["markup.bold"], + "settings": { + "fontStyle": "bold", + "foreground": "#FFB86C" + } + }, + { + "name": "Markup headings", + "scope": ["markup.heading"], + "settings": { + "fontStyle": "bold", + "foreground": "#BD93F9" + } + }, + { + "name": "Markup italic", + "scope": ["markup.italic"], + "settings": { + "foreground": "#F1FA8C", + "fontStyle": "italic" + } + }, + { + "name": "Bullets, lists (prose)", + "scope": [ + "beginning.punctuation.definition.list.markdown", + "beginning.punctuation.definition.quote.markdown", + "punctuation.definition.link.restructuredtext" + ], + "settings": { + "foreground": "#8BE9FD" + } + }, + { + "name": "Inline code (prose)", + "scope": ["markup.inline.raw", "markup.raw.restructuredtext"], + "settings": { + "foreground": "#50FA7B" + } + }, + { + "name": "Links (prose)", + "scope": ["markup.underline.link", "markup.underline.link.image"], + "settings": { + "foreground": "#8BE9FD" + } + }, + { + "name": "Link text, image alt text (prose)", + "scope": [ + "meta.link.reference.def.restructuredtext", + "punctuation.definition.directive.restructuredtext", + "string.other.link.description", + "string.other.link.title" + ], + "settings": { + "foreground": "#FF79C6" + } + }, + { + "name": "Blockquotes (prose)", + "scope": ["entity.name.directive.restructuredtext", "markup.quote"], + "settings": { + "foreground": "#F1FA8C", + "fontStyle": "italic" + } + }, + { + "name": "Horizontal rule (prose)", + "scope": ["meta.separator.markdown"], + "settings": { + "foreground": "#6272A4" + } + }, + { + "name": "Code blocks", + "scope": [ + "fenced_code.block.language", + "markup.raw.inner.restructuredtext", + "markup.fenced_code.block.markdown punctuation.definition.markdown" + ], + "settings": { + "foreground": "#50FA7B" + } + }, + { + "name": "Prose constants", + "scope": ["punctuation.definition.constant.restructuredtext"], + "settings": { + "foreground": "#BD93F9" + } + }, + { + "name": "Braces in markdown headings", + "scope": [ + "markup.heading.markdown punctuation.definition.string.begin", + "markup.heading.markdown punctuation.definition.string.end" + ], + "settings": { + "foreground": "#BD93F9" + } + }, + { + "name": "Braces in markdown paragraphs", + "scope": [ + "meta.paragraph.markdown punctuation.definition.string.begin", + "meta.paragraph.markdown punctuation.definition.string.end" + ], + "settings": { + "foreground": "#F8F8F2" + } + }, + { + "name": "Braces in markdown blockquotes", + "scope": [ + "markup.quote.markdown meta.paragraph.markdown punctuation.definition.string.begin", + "markup.quote.markdown meta.paragraph.markdown punctuation.definition.string.end" + ], + "settings": { + "foreground": "#F1FA8C" + } + }, + { + "name": "User-defined class names", + "scope": ["entity.name.type.class", "entity.name.class"], + "settings": { + "foreground": "#8BE9FD", + "fontStyle": "normal" + } + }, + { + "name": "this, super, self, etc.", + "scope": [ + "keyword.expressions-and-types.swift", + "keyword.other.this", + "variable.language", + "variable.language punctuation.definition.variable.php", + "variable.other.readwrite.instance.ruby", + "variable.parameter.function.language.special" + ], + "settings": { + "foreground": "#BD93F9", + "fontStyle": "italic" + } + }, + { + "name": "Inherited classes", + "scope": ["entity.other.inherited-class"], + "settings": { + "fontStyle": "italic", + "foreground": "#8BE9FD" + } + }, + { + "name": "Comments", + "scope": [ + "comment", + "punctuation.definition.comment", + "unused.comment", + "wildcard.comment" + ], + "settings": { + "foreground": "#6272A4" + } + }, + { + "name": "JSDoc-style keywords", + "scope": [ + "comment keyword.codetag.notation", + "comment.block.documentation keyword", + "comment.block.documentation storage.type.class" + ], + "settings": { + "foreground": "#FF79C6" + } + }, + { + "name": "JSDoc-style types", + "scope": ["comment.block.documentation entity.name.type"], + "settings": { + "foreground": "#8BE9FD", + "fontStyle": "italic" + } + }, + { + "name": "JSDoc-style type brackets", + "scope": [ + "comment.block.documentation entity.name.type punctuation.definition.bracket" + ], + "settings": { + "foreground": "#8BE9FD" + } + }, + { + "name": "JSDoc-style comment parameters", + "scope": ["comment.block.documentation variable"], + "settings": { + "foreground": "#FFB86C", + "fontStyle": "italic" + } + }, + { + "name": "Constants", + "scope": ["constant", "variable.other.constant"], + "settings": { + "foreground": "#BD93F9" + } + }, + { + "name": "Constant escape sequences", + "scope": [ + "constant.character.escape", + "constant.character.string.escape", + "constant.regexp" + ], + "settings": { + "foreground": "#FF79C6" + } + }, + { + "name": "HTML tags", + "scope": ["entity.name.tag"], + "settings": { + "foreground": "#FF79C6" + } + }, + { + "name": "CSS attribute parent selectors ('&')", + "scope": ["entity.other.attribute-name.parent-selector"], + "settings": { + "foreground": "#FF79C6" + } + }, + { + "name": "HTML/CSS attribute names", + "scope": ["entity.other.attribute-name"], + "settings": { + "foreground": "#50FA7B", + "fontStyle": "italic" + } + }, + { + "name": "Function names", + "scope": [ + "entity.name.function", + "meta.function-call.object", + "meta.function-call.php", + "meta.function-call.static", + "meta.method-call.java meta.method", + "meta.method.groovy", + "support.function.any-method.lua", + "keyword.operator.function.infix" + ], + "settings": { + "foreground": "#50FA7B" + } + }, + { + "name": "Function parameters", + "scope": [ + "entity.name.variable.parameter", + "meta.at-rule.function variable", + "meta.at-rule.mixin variable", + "meta.function.arguments variable.other.php", + "meta.selectionset.graphql meta.arguments.graphql variable.arguments.graphql", + "variable.parameter" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#FFB86C" + } + }, + { + "name": "Decorators", + "scope": [ + "meta.decorator variable.other.readwrite", + "meta.decorator variable.other.property" + ], + "settings": { + "foreground": "#50FA7B", + "fontStyle": "italic" + } + }, + { + "name": "Decorator Objects", + "scope": ["meta.decorator variable.other.object"], + "settings": { + "foreground": "#50FA7B" + } + }, + { + "name": "Keywords", + "scope": ["keyword", "punctuation.definition.keyword"], + "settings": { + "foreground": "#FF79C6" + } + }, + { + "name": "Keyword \"new\"", + "scope": ["keyword.control.new", "keyword.operator.new"], + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "Generic selectors (CSS/SCSS/Less/Stylus)", + "scope": ["meta.selector"], + "settings": { + "foreground": "#FF79C6" + } + }, + { + "name": "Language Built-ins", + "scope": ["support"], + "settings": { + "fontStyle": "italic", + "foreground": "#8BE9FD" + } + }, + { + "name": "Built-in magic functions and constants", + "scope": [ + "support.function.magic", + "support.variable", + "variable.other.predefined" + ], + "settings": { + "fontStyle": "regular", + "foreground": "#BD93F9" + } + }, + { + "name": "Built-in functions / properties", + "scope": ["support.function", "support.type.property-name"], + "settings": { + "fontStyle": "regular" + } + }, + { + "name": "Separators (key/value, namespace, inheritance, pointer, hash, slice, etc)", + "scope": [ + "constant.other.symbol.hashkey punctuation.definition.constant.ruby", + "entity.other.attribute-name.placeholder punctuation", + "entity.other.attribute-name.pseudo-class punctuation", + "entity.other.attribute-name.pseudo-element punctuation", + "meta.group.double.toml", + "meta.group.toml", + "meta.object-binding-pattern-variable punctuation.destructuring", + "punctuation.colon.graphql", + "punctuation.definition.block.scalar.folded.yaml", + "punctuation.definition.block.scalar.literal.yaml", + "punctuation.definition.block.sequence.item.yaml", + "punctuation.definition.entity.other.inherited-class", + "punctuation.function.swift", + "punctuation.separator.dictionary.key-value", + "punctuation.separator.hash", + "punctuation.separator.inheritance", + "punctuation.separator.key-value", + "punctuation.separator.key-value.mapping.yaml", + "punctuation.separator.namespace", + "punctuation.separator.pointer-access", + "punctuation.separator.slice", + "string.unquoted.heredoc punctuation.definition.string", + "support.other.chomping-indicator.yaml", + "punctuation.separator.annotation" + ], + "settings": { + "foreground": "#FF79C6" + } + }, + { + "name": "Brackets, braces, parens, etc.", + "scope": [ + "keyword.operator.other.powershell", + "keyword.other.statement-separator.powershell", + "meta.brace.round", + "meta.function-call punctuation", + "punctuation.definition.arguments.begin", + "punctuation.definition.arguments.end", + "punctuation.definition.entity.begin", + "punctuation.definition.entity.end", + "punctuation.definition.tag.cs", + "punctuation.definition.type.begin", + "punctuation.definition.type.end", + "punctuation.section.scope.begin", + "punctuation.section.scope.end", + "punctuation.terminator.expression.php", + "storage.type.generic.java", + "string.template meta.brace", + "string.template punctuation.accessor" + ], + "settings": { + "foreground": "#F8F8F2" + } + }, + { + "name": "Variable interpolation operators", + "scope": [ + "meta.string-contents.quoted.double punctuation.definition.variable", + "punctuation.definition.interpolation.begin", + "punctuation.definition.interpolation.end", + "punctuation.definition.template-expression.begin", + "punctuation.definition.template-expression.end", + "punctuation.section.embedded.begin", + "punctuation.section.embedded.coffee", + "punctuation.section.embedded.end", + "punctuation.section.embedded.end source.php", + "punctuation.section.embedded.end source.ruby", + "punctuation.definition.variable.makefile" + ], + "settings": { + "foreground": "#FF79C6" + } + }, + { + "name": "Keys (serializable languages)", + "scope": [ + "entity.name.function.target.makefile", + "entity.name.section.toml", + "entity.name.tag.yaml", + "variable.other.key.toml" + ], + "settings": { + "foreground": "#8BE9FD" + } + }, + { + "name": "Dates / timestamps (serializable languages)", + "scope": ["constant.other.date", "constant.other.timestamp"], + "settings": { + "foreground": "#FFB86C" + } + }, + { + "name": "YAML aliases", + "scope": ["variable.other.alias.yaml"], + "settings": { + "fontStyle": "italic underline", + "foreground": "#50FA7B" + } + }, + { + "name": "Storage", + "scope": [ + "storage", + "meta.implementation storage.type.objc", + "meta.interface-or-protocol storage.type.objc", + "source.groovy storage.type.def" + ], + "settings": { + "fontStyle": "regular", + "foreground": "#FF79C6" + } + }, + { + "name": "Types", + "scope": [ + "entity.name.type", + "keyword.primitive-datatypes.swift", + "keyword.type.cs", + "meta.protocol-list.objc", + "meta.return-type.objc", + "source.go storage.type", + "source.groovy storage.type", + "source.java storage.type", + "source.powershell entity.other.attribute-name", + "storage.class.std.rust", + "storage.type.attribute.swift", + "storage.type.c", + "storage.type.core.rust", + "storage.type.cs", + "storage.type.groovy", + "storage.type.objc", + "storage.type.php", + "storage.type.haskell", + "storage.type.ocaml" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#8BE9FD" + } + }, + { + "name": "Generics, templates, and mapped type declarations", + "scope": [ + "entity.name.type.type-parameter", + "meta.indexer.mappedtype.declaration entity.name.type", + "meta.type.parameters entity.name.type" + ], + "settings": { + "foreground": "#FFB86C" + } + }, + { + "name": "Modifiers", + "scope": ["storage.modifier"], + "settings": { + "foreground": "#FF79C6" + } + }, + { + "name": "RegExp string", + "scope": [ + "string.regexp", + "constant.other.character-class.set.regexp", + "constant.character.escape.backslash.regexp" + ], + "settings": { + "foreground": "#F1FA8C" + } + }, + { + "name": "Non-capture operators", + "scope": ["punctuation.definition.group.capture.regexp"], + "settings": { + "foreground": "#FF79C6" + } + }, + { + "name": "RegExp start and end characters", + "scope": [ + "string.regexp punctuation.definition.string.begin", + "string.regexp punctuation.definition.string.end" + ], + "settings": { + "foreground": "#FF5555" + } + }, + { + "name": "Character group", + "scope": ["punctuation.definition.character-class.regexp"], + "settings": { + "foreground": "#8BE9FD" + } + }, + { + "name": "Capture groups", + "scope": ["punctuation.definition.group.regexp"], + "settings": { + "foreground": "#FFB86C" + } + }, + { + "name": "Assertion operators", + "scope": [ + "punctuation.definition.group.assertion.regexp", + "keyword.operator.negation.regexp" + ], + "settings": { + "foreground": "#FF5555" + } + }, + { + "name": "Positive lookaheads", + "scope": ["meta.assertion.look-ahead.regexp"], + "settings": { + "foreground": "#50FA7B" + } + }, + { + "name": "Strings", + "scope": ["string"], + "settings": { + "foreground": "#F1FA8C" + } + }, + { + "name": "String quotes (temporary vscode fix)", + "scope": [ + "punctuation.definition.string.begin", + "punctuation.definition.string.end" + ], + "settings": { + "foreground": "#E9F284" + } + }, + { + "name": "Property quotes (temporary vscode fix)", + "scope": [ + "punctuation.support.type.property-name.begin", + "punctuation.support.type.property-name.end" + ], + "settings": { + "foreground": "#8BE9FE" + } + }, + { + "name": "Docstrings", + "scope": [ + "string.quoted.docstring.multi", + "string.quoted.docstring.multi.python punctuation.definition.string.begin", + "string.quoted.docstring.multi.python punctuation.definition.string.end", + "string.quoted.docstring.multi.python constant.character.escape" + ], + "settings": { + "foreground": "#6272A4" + } + }, + { + "name": "Variables and object properties", + "scope": [ + "variable", + "constant.other.key.perl", + "support.variable.property", + "variable.other.constant.js", + "variable.other.constant.ts", + "variable.other.constant.tsx" + ], + "settings": { + "foreground": "#F8F8F2" + } + }, + { + "name": "Destructuring / aliasing reference name (LHS)", + "scope": [ + "meta.import variable.other.readwrite", + "meta.variable.assignment.destructured.object.coffee variable" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#FFB86C" + } + }, + { + "name": "Destructuring / aliasing variable name (RHS)", + "scope": [ + "meta.import variable.other.readwrite.alias", + "meta.export variable.other.readwrite.alias", + "meta.variable.assignment.destructured.object.coffee variable variable" + ], + "settings": { + "fontStyle": "normal", + "foreground": "#F8F8F2" + } + }, + { + "name": "GraphQL keys", + "scope": ["meta.selectionset.graphql variable"], + "settings": { + "foreground": "#F1FA8C" + } + }, + { + "name": "GraphQL function arguments", + "scope": ["meta.selectionset.graphql meta.arguments variable"], + "settings": { + "foreground": "#F8F8F2" + } + }, + { + "name": "GraphQL fragment name (definition)", + "scope": ["entity.name.fragment.graphql", "variable.fragment.graphql"], + "settings": { + "foreground": "#8BE9FD" + } + }, + { + "name": "Edge cases (foreground color resets)", + "scope": [ + "constant.other.symbol.hashkey.ruby", + "keyword.operator.dereference.java", + "keyword.operator.navigation.groovy", + "meta.scope.for-loop.shell punctuation.definition.string.begin", + "meta.scope.for-loop.shell punctuation.definition.string.end", + "meta.scope.for-loop.shell string", + "storage.modifier.import", + "punctuation.section.embedded.begin.tsx", + "punctuation.section.embedded.end.tsx", + "punctuation.section.embedded.begin.jsx", + "punctuation.section.embedded.end.jsx", + "punctuation.separator.list.comma.css", + "constant.language.empty-list.haskell" + ], + "settings": { + "foreground": "#F8F8F2" + } + }, + { + "name": "Shell variables prefixed with \"$\" (edge case)", + "scope": ["source.shell variable.other"], + "settings": { + "foreground": "#BD93F9" + } + }, + { + "name": "Powershell constants mistakenly scoped to `support`, rather than `constant` (edge)", + "scope": ["support.constant"], + "settings": { + "fontStyle": "normal", + "foreground": "#BD93F9" + } + }, + { + "name": "Makefile prerequisite names", + "scope": ["meta.scope.prerequisites.makefile"], + "settings": { + "foreground": "#F1FA8C" + } + }, + { + "name": "SCSS attibute selector strings", + "scope": ["meta.attribute-selector.scss"], + "settings": { + "foreground": "#F1FA8C" + } + }, + { + "name": "SCSS attribute selector brackets", + "scope": [ + "punctuation.definition.attribute-selector.end.bracket.square.scss", + "punctuation.definition.attribute-selector.begin.bracket.square.scss" + ], + "settings": { + "foreground": "#F8F8F2" + } + }, + { + "name": "Haskell Pragmas", + "scope": ["meta.preprocessor.haskell"], + "settings": { + "foreground": "#6272A4" + } + }, + { + "name": "Log file error", + "scope": ["log.error"], + "settings": { + "foreground": "#FF5555", + "fontStyle": "bold" + } + }, + { + "name": "Log file warning", + "scope": ["log.warning"], + "settings": { + "foreground": "#F1FA8C", + "fontStyle": "bold" + } + } + ] +} diff --git a/crates/theme2/src/import.rs b/crates/theme2/src/import.rs index 26850b5b78..64b91e2150 100644 --- a/crates/theme2/src/import.rs +++ b/crates/theme2/src/import.rs @@ -1,254 +1,461 @@ -use crate::ThemeColorsRefinement; +use serde::Deserialize; -struct ImportedThemeFamily { - pub id: String, +#[derive(Deserialize, Debug)] +pub struct Theme { + #[serde(rename = "$schema")] + pub schema: String, pub name: String, pub author: String, - pub url: String, - pub license: String, - pub themes: Vec, + pub maintainers: Vec, + pub semantic_class: String, + pub semantic_highlighting: bool, + pub colors: VSCodeColors, } -struct ImportedThemeVariant { - pub id: String, - pub name: String, - pub colors: ThemeColorsRefinement, -} - -macro_rules! gen_vscode_colors_and_enum { - ($($name:ident: $type:ty),*) => { - #[derive(Debug)] - pub struct VSCodeColors { - $( - pub $name: $type, - )* - } - - pub enum VSCodeColor { - $( - $({ - let mut s = stringify!($name).to_string(); - s.get_mut(0..1).unwrap().make_ascii_uppercase(); - s.replace("_", "") - }), - )* - } - }; -} - -gen_vscode_colors_and_enum! { - terminal_background: String, - terminal_foreground: String -} - -#[derive(Debug)] +#[derive(Debug, Deserialize)] pub struct VSCodeColors { + #[serde(rename = "vsc_terminal_background")] terminal_background: String, + #[serde(rename = "vsc_terminal_foreground")] terminal_foreground: String, + #[serde(rename = "vsc_terminal_ansi_bright_black")] terminal_ansi_bright_black: String, + #[serde(rename = "vsc_terminal_ansi_bright_red")] terminal_ansi_bright_red: String, + #[serde(rename = "vsc_terminal_ansi_bright_green")] terminal_ansi_bright_green: String, + #[serde(rename = "vsc_terminal_ansi_bright_yellow")] terminal_ansi_bright_yellow: String, + #[serde(rename = "vsc_terminal_ansi_bright_blue")] terminal_ansi_bright_blue: String, + #[serde(rename = "vsc_terminal_ansi_bright_magenta")] terminal_ansi_bright_magenta: String, + #[serde(rename = "vsc_terminal_ansi_bright_cyan")] terminal_ansi_bright_cyan: String, + #[serde(rename = "vsc_terminal_ansi_bright_white")] terminal_ansi_bright_white: String, + #[serde(rename = "vsc_terminal_ansi_black")] terminal_ansi_black: String, + #[serde(rename = "vsc_terminal_ansi_red")] terminal_ansi_red: String, + #[serde(rename = "vsc_terminal_ansi_green")] terminal_ansi_green: String, + #[serde(rename = "vsc_terminal_ansi_yellow")] terminal_ansi_yellow: String, + #[serde(rename = "vsc_terminal_ansi_blue")] terminal_ansi_blue: String, + #[serde(rename = "vsc_terminal_ansi_magenta")] terminal_ansi_magenta: String, + #[serde(rename = "vsc_terminal_ansi_cyan")] terminal_ansi_cyan: String, + #[serde(rename = "vsc_terminal_ansi_white")] terminal_ansi_white: String, + #[serde(rename = "vsc_focus_border")] focus_border: String, + #[serde(rename = "vsc_foreground")] foreground: String, + #[serde(rename = "vsc_selection_background")] selection_background: String, + #[serde(rename = "vsc_error_foreground")] error_foreground: String, + #[serde(rename = "vsc_button_background")] button_background: String, + #[serde(rename = "vsc_button_foreground")] button_foreground: String, + #[serde(rename = "vsc_button_secondary_background")] button_secondary_background: String, + #[serde(rename = "vsc_button_secondary_foreground")] button_secondary_foreground: String, + #[serde(rename = "vsc_button_secondary_hover_background")] button_secondary_hover_background: String, + #[serde(rename = "vsc_dropdown_background")] dropdown_background: String, + #[serde(rename = "vsc_dropdown_border")] dropdown_border: String, + #[serde(rename = "vsc_dropdown_foreground")] dropdown_foreground: String, + #[serde(rename = "vsc_input_background")] input_background: String, + #[serde(rename = "vsc_input_foreground")] input_foreground: String, + #[serde(rename = "vsc_input_border")] input_border: String, + #[serde(rename = "vsc_input_placeholder_foreground")] input_placeholder_foreground: String, + #[serde(rename = "vsc_input_option_active_border")] input_option_active_border: String, + #[serde(rename = "vsc_input_validation_info_border")] input_validation_info_border: String, + #[serde(rename = "vsc_input_validation_warning_border")] input_validation_warning_border: String, + #[serde(rename = "vsc_input_validation_error_border")] input_validation_error_border: String, + #[serde(rename = "vsc_badge_foreground")] badge_foreground: String, + #[serde(rename = "vsc_badge_background")] badge_background: String, + #[serde(rename = "vsc_progress_bar_background")] progress_bar_background: String, + #[serde(rename = "vsc_list_active_selection_background")] list_active_selection_background: String, + #[serde(rename = "vsc_list_active_selection_foreground")] list_active_selection_foreground: String, + #[serde(rename = "vsc_list_drop_background")] list_drop_background: String, + #[serde(rename = "vsc_list_focus_background")] list_focus_background: String, + #[serde(rename = "vsc_list_highlight_foreground")] list_highlight_foreground: String, + #[serde(rename = "vsc_list_hover_background")] list_hover_background: String, + #[serde(rename = "vsc_list_inactive_selection_background")] list_inactive_selection_background: String, + #[serde(rename = "vsc_list_warning_foreground")] list_warning_foreground: String, + #[serde(rename = "vsc_list_error_foreground")] list_error_foreground: String, + #[serde(rename = "vsc_activity_bar_background")] activity_bar_background: String, + #[serde(rename = "vsc_activity_bar_inactive_foreground")] activity_bar_inactive_foreground: String, + #[serde(rename = "vsc_activity_bar_foreground")] activity_bar_foreground: String, + #[serde(rename = "vsc_activity_bar_active_border")] activity_bar_active_border: String, + #[serde(rename = "vsc_activity_bar_active_background")] activity_bar_active_background: String, + #[serde(rename = "vsc_activity_bar_badge_background")] activity_bar_badge_background: String, + #[serde(rename = "vsc_activity_bar_badge_foreground")] activity_bar_badge_foreground: String, + #[serde(rename = "vsc_side_bar_background")] side_bar_background: String, + #[serde(rename = "vsc_side_bar_title_foreground")] side_bar_title_foreground: String, + #[serde(rename = "vsc_side_bar_section_header_background")] side_bar_section_header_background: String, + #[serde(rename = "vsc_side_bar_section_header_border")] side_bar_section_header_border: String, + #[serde(rename = "vsc_editor_group_border")] editor_group_border: String, + #[serde(rename = "vsc_editor_group_drop_background")] editor_group_drop_background: String, + #[serde(rename = "vsc_editor_group_header_tabs_background")] editor_group_header_tabs_background: String, + #[serde(rename = "vsc_tab_active_background")] tab_active_background: String, + #[serde(rename = "vsc_tab_active_foreground")] tab_active_foreground: String, + #[serde(rename = "vsc_tab_border")] tab_border: String, + #[serde(rename = "vsc_tab_active_border_top")] tab_active_border_top: String, + #[serde(rename = "vsc_tab_inactive_background")] tab_inactive_background: String, + #[serde(rename = "vsc_tab_inactive_foreground")] tab_inactive_foreground: String, + #[serde(rename = "vsc_editor_foreground")] editor_foreground: String, + #[serde(rename = "vsc_editor_background")] editor_background: String, + #[serde(rename = "vsc_editor_line_number_foreground")] editor_line_number_foreground: String, + #[serde(rename = "vsc_editor_selection_background")] editor_selection_background: String, + #[serde(rename = "vsc_editor_selection_highlight_background")] editor_selection_highlight_background: String, + #[serde(rename = "vsc_editor_fold_background")] editor_fold_background: String, + #[serde(rename = "vsc_editor_word_highlight_background")] editor_word_highlight_background: String, + #[serde(rename = "vsc_editor_word_highlight_strong_background")] editor_word_highlight_strong_background: String, + #[serde(rename = "vsc_editor_find_match_background")] editor_find_match_background: String, + #[serde(rename = "vsc_editor_find_match_highlight_background")] editor_find_match_highlight_background: String, + #[serde(rename = "vsc_editor_find_range_highlight_background")] editor_find_range_highlight_background: String, + #[serde(rename = "vsc_editor_hover_highlight_background")] editor_hover_highlight_background: String, + #[serde(rename = "vsc_editor_line_highlight_border")] editor_line_highlight_border: String, + #[serde(rename = "vsc_editor_link_active_foreground")] editor_link_active_foreground: String, + #[serde(rename = "vsc_editor_range_highlight_background")] editor_range_highlight_background: String, + #[serde(rename = "vsc_editor_snippet_tabstop_highlight_background")] editor_snippet_tabstop_highlight_background: String, + #[serde(rename = "vsc_editor_snippet_tabstop_highlight_border")] editor_snippet_tabstop_highlight_border: String, + #[serde(rename = "vsc_editor_snippet_final_tabstop_highlight_background")] editor_snippet_final_tabstop_highlight_background: String, + #[serde(rename = "vsc_editor_snippet_final_tabstop_highlight_border")] editor_snippet_final_tabstop_highlight_border: String, + #[serde(rename = "vsc_editor_whitespace_foreground")] editor_whitespace_foreground: String, + #[serde(rename = "vsc_editor_indent_guide_background")] editor_indent_guide_background: String, + #[serde(rename = "vsc_editor_indent_guide_active_background")] editor_indent_guide_active_background: String, + #[serde(rename = "vsc_editor_ruler_foreground")] editor_ruler_foreground: String, + #[serde(rename = "vsc_editor_code_lens_foreground")] editor_code_lens_foreground: String, + #[serde(rename = "vsc_editor_bracket_highlight_foreground1")] editor_bracket_highlight_foreground1: String, + #[serde(rename = "vsc_editor_bracket_highlight_foreground2")] editor_bracket_highlight_foreground2: String, + #[serde(rename = "vsc_editor_bracket_highlight_foreground3")] editor_bracket_highlight_foreground3: String, + #[serde(rename = "vsc_editor_bracket_highlight_foreground4")] editor_bracket_highlight_foreground4: String, + #[serde(rename = "vsc_editor_bracket_highlight_foreground5")] editor_bracket_highlight_foreground5: String, + #[serde(rename = "vsc_editor_bracket_highlight_foreground6")] editor_bracket_highlight_foreground6: String, + #[serde(rename = "vsc_editor_bracket_highlight_unexpected_bracket_foreground")] editor_bracket_highlight_unexpected_bracket_foreground: String, + #[serde(rename = "vsc_editor_overview_ruler_border")] editor_overview_ruler_border: String, + #[serde(rename = "vsc_editor_overview_ruler_selection_highlight_foreground")] editor_overview_ruler_selection_highlight_foreground: String, + #[serde(rename = "vsc_editor_overview_ruler_word_highlight_foreground")] editor_overview_ruler_word_highlight_foreground: String, + #[serde(rename = "vsc_editor_overview_ruler_word_highlight_strong_foreground")] editor_overview_ruler_word_highlight_strong_foreground: String, + #[serde(rename = "vsc_editor_overview_ruler_modified_foreground")] editor_overview_ruler_modified_foreground: String, + #[serde(rename = "vsc_editor_overview_ruler_added_foreground")] editor_overview_ruler_added_foreground: String, + #[serde(rename = "vsc_editor_overview_ruler_deleted_foreground")] editor_overview_ruler_deleted_foreground: String, + #[serde(rename = "vsc_editor_overview_ruler_error_foreground")] editor_overview_ruler_error_foreground: String, + #[serde(rename = "vsc_editor_overview_ruler_warning_foreground")] editor_overview_ruler_warning_foreground: String, + #[serde(rename = "vsc_editor_overview_ruler_info_foreground")] editor_overview_ruler_info_foreground: String, + #[serde(rename = "vsc_editor_error_foreground")] editor_error_foreground: String, + #[serde(rename = "vsc_editor_warning_foreground")] editor_warning_foreground: String, + #[serde(rename = "vsc_editor_gutter_modified_background")] editor_gutter_modified_background: String, + #[serde(rename = "vsc_editor_gutter_added_background")] editor_gutter_added_background: String, + #[serde(rename = "vsc_editor_gutter_deleted_background")] editor_gutter_deleted_background: String, + #[serde(rename = "vsc_git_decoration_modified_resource_foreground")] git_decoration_modified_resource_foreground: String, + #[serde(rename = "vsc_git_decoration_deleted_resource_foreground")] git_decoration_deleted_resource_foreground: String, + #[serde(rename = "vsc_git_decoration_untracked_resource_foreground")] git_decoration_untracked_resource_foreground: String, + #[serde(rename = "vsc_git_decoration_ignored_resource_foreground")] git_decoration_ignored_resource_foreground: String, + #[serde(rename = "vsc_git_decoration_conflicting_resource_foreground")] git_decoration_conflicting_resource_foreground: String, + #[serde(rename = "vsc_diff_editor_inserted_text_background")] diff_editor_inserted_text_background: String, + #[serde(rename = "vsc_diff_editor_removed_text_background")] diff_editor_removed_text_background: String, + #[serde(rename = "vsc_inline_chat_region_highlight")] inline_chat_region_highlight: String, + #[serde(rename = "vsc_editor_widget_background")] editor_widget_background: String, + #[serde(rename = "vsc_editor_suggest_widget_background")] editor_suggest_widget_background: String, + #[serde(rename = "vsc_editor_suggest_widget_foreground")] editor_suggest_widget_foreground: String, + #[serde(rename = "vsc_editor_suggest_widget_selected_background")] editor_suggest_widget_selected_background: String, + #[serde(rename = "vsc_editor_hover_widget_background")] editor_hover_widget_background: String, + #[serde(rename = "vsc_editor_hover_widget_border")] editor_hover_widget_border: String, + #[serde(rename = "vsc_editor_marker_navigation_background")] editor_marker_navigation_background: String, + #[serde(rename = "vsc_peek_view_border")] peek_view_border: String, + #[serde(rename = "vsc_peek_view_editor_background")] peek_view_editor_background: String, + #[serde(rename = "vsc_peek_view_editor_match_highlight_background")] peek_view_editor_match_highlight_background: String, + #[serde(rename = "vsc_peek_view_result_background")] peek_view_result_background: String, + #[serde(rename = "vsc_peek_view_result_file_foreground")] peek_view_result_file_foreground: String, + #[serde(rename = "vsc_peek_view_result_line_foreground")] peek_view_result_line_foreground: String, + #[serde(rename = "vsc_peek_view_result_match_highlight_background")] peek_view_result_match_highlight_background: String, + #[serde(rename = "vsc_peek_view_result_selection_background")] peek_view_result_selection_background: String, + #[serde(rename = "vsc_peek_view_result_selection_foreground")] peek_view_result_selection_foreground: String, + #[serde(rename = "vsc_peek_view_title_background")] peek_view_title_background: String, + #[serde(rename = "vsc_peek_view_title_description_foreground")] peek_view_title_description_foreground: String, + #[serde(rename = "vsc_peek_view_title_label_foreground")] peek_view_title_label_foreground: String, + #[serde(rename = "vsc_merge_current_header_background")] merge_current_header_background: String, + #[serde(rename = "vsc_merge_incoming_header_background")] merge_incoming_header_background: String, + #[serde(rename = "vsc_editor_overview_ruler_current_content_foreground")] editor_overview_ruler_current_content_foreground: String, + #[serde(rename = "vsc_editor_overview_ruler_incoming_content_foreground")] editor_overview_ruler_incoming_content_foreground: String, + #[serde(rename = "vsc_panel_background")] panel_background: String, + #[serde(rename = "vsc_panel_border")] panel_border: String, + #[serde(rename = "vsc_panel_title_active_border")] panel_title_active_border: String, + #[serde(rename = "vsc_panel_title_active_foreground")] panel_title_active_foreground: String, + #[serde(rename = "vsc_panel_title_inactive_foreground")] panel_title_inactive_foreground: String, + #[serde(rename = "vsc_status_bar_background")] status_bar_background: String, + #[serde(rename = "vsc_status_bar_foreground")] status_bar_foreground: String, + #[serde(rename = "vsc_status_bar_debugging_background")] status_bar_debugging_background: String, + #[serde(rename = "vsc_status_bar_debugging_foreground")] status_bar_debugging_foreground: String, + #[serde(rename = "vsc_status_bar_no_folder_background")] status_bar_no_folder_background: String, + #[serde(rename = "vsc_status_bar_no_folder_foreground")] status_bar_no_folder_foreground: String, + #[serde(rename = "vsc_status_bar_item_prominent_background")] status_bar_item_prominent_background: String, + #[serde(rename = "vsc_status_bar_item_prominent_hover_background")] status_bar_item_prominent_hover_background: String, + #[serde(rename = "vsc_status_bar_item_remote_foreground")] status_bar_item_remote_foreground: String, + #[serde(rename = "vsc_status_bar_item_remote_background")] status_bar_item_remote_background: String, + #[serde(rename = "vsc_title_bar_active_background")] title_bar_active_background: String, + #[serde(rename = "vsc_title_bar_active_foreground")] title_bar_active_foreground: String, + #[serde(rename = "vsc_title_bar_inactive_background")] title_bar_inactive_background: String, + #[serde(rename = "vsc_title_bar_inactive_foreground")] title_bar_inactive_foreground: String, + #[serde(rename = "vsc_extension_button_prominent_foreground")] extension_button_prominent_foreground: String, + #[serde(rename = "vsc_extension_button_prominent_background")] extension_button_prominent_background: String, + #[serde(rename = "vsc_extension_button_prominent_hover_background")] extension_button_prominent_hover_background: String, + #[serde(rename = "vsc_picker_group_border")] picker_group_border: String, + #[serde(rename = "vsc_picker_group_foreground")] picker_group_foreground: String, + #[serde(rename = "vsc_debug_tool_bar_background")] debug_tool_bar_background: String, + #[serde(rename = "vsc_walk_through_embedded_editor_background")] walk_through_embedded_editor_background: String, + #[serde(rename = "vsc_settings_header_foreground")] settings_header_foreground: String, + #[serde(rename = "vsc_settings_modified_item_indicator")] settings_modified_item_indicator: String, + #[serde(rename = "vsc_settings_dropdown_background")] settings_dropdown_background: String, + #[serde(rename = "vsc_settings_dropdown_foreground")] settings_dropdown_foreground: String, + #[serde(rename = "vsc_settings_dropdown_border")] settings_dropdown_border: String, + #[serde(rename = "vsc_settings_checkbox_background")] settings_checkbox_background: String, + #[serde(rename = "vsc_settings_checkbox_foreground")] settings_checkbox_foreground: String, + #[serde(rename = "vsc_settings_checkbox_border")] settings_checkbox_border: String, + #[serde(rename = "vsc_settings_text_input_background")] settings_text_input_background: String, + #[serde(rename = "vsc_settings_text_input_foreground")] settings_text_input_foreground: String, + #[serde(rename = "vsc_settings_text_input_border")] settings_text_input_border: String, + #[serde(rename = "vsc_settings_number_input_background")] settings_number_input_background: String, + #[serde(rename = "vsc_settings_number_input_foreground")] settings_number_input_foreground: String, + #[serde(rename = "vsc_settings_number_input_border")] settings_number_input_border: String, + #[serde(rename = "vsc_breadcrumb_foreground")] breadcrumb_foreground: String, + #[serde(rename = "vsc_breadcrumb_background")] breadcrumb_background: String, + #[serde(rename = "vsc_breadcrumb_focus_foreground")] breadcrumb_focus_foreground: String, + #[serde(rename = "vsc_breadcrumb_active_selection_foreground")] breadcrumb_active_selection_foreground: String, + #[serde(rename = "vsc_breadcrumb_picker_background")] breadcrumb_picker_background: String, + #[serde(rename = "vsc_list_filter_widget_background")] list_filter_widget_background: String, + #[serde(rename = "vsc_list_filter_widget_outline")] list_filter_widget_outline: String, + #[serde(rename = "vsc_list_filter_widget_no_matches_outline")] list_filter_widget_no_matches_outline: String, } -pub fn try_vscode_colors_to_theme_colors(colors: VSCodeColors) -> ThemeColorsRefinement { - let mut theme_colors = ThemeColorsRefinement::default(); +#[cfg(test)] +mod tests { + use super::*; + use std::path::PathBuf; - theme_colors -} + #[test] + fn test_deserialize_dracula() { + let manifest_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR")); + let root_dir = manifest_dir.parent().unwrap().parent().unwrap(); -pub fn vscode_colors_to_theme_colors(color: String) -> ThemeColorsRefinement { - ThemeColorsRefinement { - text: Some(color), - ..Default::default() + let mut d = root_dir.to_path_buf(); + d.push("assets/themes/src/vsc/dracula/dracula.json"); + + let data = std::fs::read_to_string(d).expect("Unable to read file"); + + let result: Theme = serde_json::from_str(&data).unwrap(); + println!("{:#?}", result); + + // Uncomment the following lines to print specific fields + println!("Name: {:?}", result.name); + println!("Author: {:?}", result.author); } } + +// use crate::ThemeColorsRefinement; + +// struct ImportedThemeFamily { +// pub id: String, +// pub name: String, +// pub author: String, +// pub url: String, +// pub license: String, +// pub themes: Vec, +// } + +// struct ImportedThemeVariant { +// pub id: String, +// pub name: String, +// pub colors: ThemeColorsRefinement, +// } + +// pub fn try_vscode_colors_to_theme_colors(colors: VSCodeColors) -> ThemeColorsRefinement { +// let mut theme_colors = ThemeColorsRefinement::default(); + +// theme_colors +// } + +// pub fn vscode_colors_to_theme_colors(color: String) -> ThemeColorsRefinement { +// ThemeColorsRefinement { +// text: Some(color), +// ..Default::default() +// } +// } From 972f076b4de20449400f03355909b9e6d42b67c8 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Thu, 2 Nov 2023 16:31:22 -0400 Subject: [PATCH 04/76] Deserialize theme metadata --- crates/theme2/src/import.rs | 790 ++++++++++++++++++------------------ 1 file changed, 400 insertions(+), 390 deletions(-) diff --git a/crates/theme2/src/import.rs b/crates/theme2/src/import.rs index 64b91e2150..6fe1fc705b 100644 --- a/crates/theme2/src/import.rs +++ b/crates/theme2/src/import.rs @@ -7,403 +7,19 @@ pub struct Theme { pub name: String, pub author: String, pub maintainers: Vec, + #[serde(rename = "semanticClass")] pub semantic_class: String, + #[serde(rename = "semanticHighlighting")] pub semantic_highlighting: bool, - pub colors: VSCodeColors, + // pub colors: VSCodeColors, } #[derive(Debug, Deserialize)] pub struct VSCodeColors { - #[serde(rename = "vsc_terminal_background")] - terminal_background: String, - #[serde(rename = "vsc_terminal_foreground")] - terminal_foreground: String, - #[serde(rename = "vsc_terminal_ansi_bright_black")] - terminal_ansi_bright_black: String, - #[serde(rename = "vsc_terminal_ansi_bright_red")] - terminal_ansi_bright_red: String, - #[serde(rename = "vsc_terminal_ansi_bright_green")] - terminal_ansi_bright_green: String, - #[serde(rename = "vsc_terminal_ansi_bright_yellow")] - terminal_ansi_bright_yellow: String, - #[serde(rename = "vsc_terminal_ansi_bright_blue")] - terminal_ansi_bright_blue: String, - #[serde(rename = "vsc_terminal_ansi_bright_magenta")] - terminal_ansi_bright_magenta: String, - #[serde(rename = "vsc_terminal_ansi_bright_cyan")] - terminal_ansi_bright_cyan: String, - #[serde(rename = "vsc_terminal_ansi_bright_white")] - terminal_ansi_bright_white: String, - #[serde(rename = "vsc_terminal_ansi_black")] - terminal_ansi_black: String, - #[serde(rename = "vsc_terminal_ansi_red")] - terminal_ansi_red: String, - #[serde(rename = "vsc_terminal_ansi_green")] - terminal_ansi_green: String, - #[serde(rename = "vsc_terminal_ansi_yellow")] - terminal_ansi_yellow: String, - #[serde(rename = "vsc_terminal_ansi_blue")] - terminal_ansi_blue: String, - #[serde(rename = "vsc_terminal_ansi_magenta")] - terminal_ansi_magenta: String, - #[serde(rename = "vsc_terminal_ansi_cyan")] - terminal_ansi_cyan: String, - #[serde(rename = "vsc_terminal_ansi_white")] - terminal_ansi_white: String, - #[serde(rename = "vsc_focus_border")] - focus_border: String, - #[serde(rename = "vsc_foreground")] - foreground: String, - #[serde(rename = "vsc_selection_background")] - selection_background: String, - #[serde(rename = "vsc_error_foreground")] - error_foreground: String, - #[serde(rename = "vsc_button_background")] - button_background: String, - #[serde(rename = "vsc_button_foreground")] - button_foreground: String, - #[serde(rename = "vsc_button_secondary_background")] - button_secondary_background: String, - #[serde(rename = "vsc_button_secondary_foreground")] - button_secondary_foreground: String, - #[serde(rename = "vsc_button_secondary_hover_background")] - button_secondary_hover_background: String, - #[serde(rename = "vsc_dropdown_background")] - dropdown_background: String, - #[serde(rename = "vsc_dropdown_border")] - dropdown_border: String, - #[serde(rename = "vsc_dropdown_foreground")] - dropdown_foreground: String, - #[serde(rename = "vsc_input_background")] - input_background: String, - #[serde(rename = "vsc_input_foreground")] - input_foreground: String, - #[serde(rename = "vsc_input_border")] - input_border: String, - #[serde(rename = "vsc_input_placeholder_foreground")] - input_placeholder_foreground: String, - #[serde(rename = "vsc_input_option_active_border")] - input_option_active_border: String, - #[serde(rename = "vsc_input_validation_info_border")] - input_validation_info_border: String, - #[serde(rename = "vsc_input_validation_warning_border")] - input_validation_warning_border: String, - #[serde(rename = "vsc_input_validation_error_border")] - input_validation_error_border: String, - #[serde(rename = "vsc_badge_foreground")] - badge_foreground: String, - #[serde(rename = "vsc_badge_background")] - badge_background: String, - #[serde(rename = "vsc_progress_bar_background")] - progress_bar_background: String, - #[serde(rename = "vsc_list_active_selection_background")] - list_active_selection_background: String, - #[serde(rename = "vsc_list_active_selection_foreground")] - list_active_selection_foreground: String, - #[serde(rename = "vsc_list_drop_background")] - list_drop_background: String, - #[serde(rename = "vsc_list_focus_background")] - list_focus_background: String, - #[serde(rename = "vsc_list_highlight_foreground")] - list_highlight_foreground: String, - #[serde(rename = "vsc_list_hover_background")] - list_hover_background: String, - #[serde(rename = "vsc_list_inactive_selection_background")] - list_inactive_selection_background: String, - #[serde(rename = "vsc_list_warning_foreground")] - list_warning_foreground: String, - #[serde(rename = "vsc_list_error_foreground")] - list_error_foreground: String, - #[serde(rename = "vsc_activity_bar_background")] - activity_bar_background: String, - #[serde(rename = "vsc_activity_bar_inactive_foreground")] - activity_bar_inactive_foreground: String, - #[serde(rename = "vsc_activity_bar_foreground")] - activity_bar_foreground: String, - #[serde(rename = "vsc_activity_bar_active_border")] - activity_bar_active_border: String, - #[serde(rename = "vsc_activity_bar_active_background")] - activity_bar_active_background: String, - #[serde(rename = "vsc_activity_bar_badge_background")] - activity_bar_badge_background: String, - #[serde(rename = "vsc_activity_bar_badge_foreground")] - activity_bar_badge_foreground: String, - #[serde(rename = "vsc_side_bar_background")] - side_bar_background: String, - #[serde(rename = "vsc_side_bar_title_foreground")] - side_bar_title_foreground: String, - #[serde(rename = "vsc_side_bar_section_header_background")] - side_bar_section_header_background: String, - #[serde(rename = "vsc_side_bar_section_header_border")] - side_bar_section_header_border: String, - #[serde(rename = "vsc_editor_group_border")] - editor_group_border: String, - #[serde(rename = "vsc_editor_group_drop_background")] - editor_group_drop_background: String, - #[serde(rename = "vsc_editor_group_header_tabs_background")] - editor_group_header_tabs_background: String, - #[serde(rename = "vsc_tab_active_background")] - tab_active_background: String, - #[serde(rename = "vsc_tab_active_foreground")] - tab_active_foreground: String, - #[serde(rename = "vsc_tab_border")] - tab_border: String, - #[serde(rename = "vsc_tab_active_border_top")] - tab_active_border_top: String, - #[serde(rename = "vsc_tab_inactive_background")] - tab_inactive_background: String, - #[serde(rename = "vsc_tab_inactive_foreground")] - tab_inactive_foreground: String, - #[serde(rename = "vsc_editor_foreground")] - editor_foreground: String, - #[serde(rename = "vsc_editor_background")] + #[serde(rename = "editor_foreground")] + text: String, + #[serde(rename = "editor")] editor_background: String, - #[serde(rename = "vsc_editor_line_number_foreground")] - editor_line_number_foreground: String, - #[serde(rename = "vsc_editor_selection_background")] - editor_selection_background: String, - #[serde(rename = "vsc_editor_selection_highlight_background")] - editor_selection_highlight_background: String, - #[serde(rename = "vsc_editor_fold_background")] - editor_fold_background: String, - #[serde(rename = "vsc_editor_word_highlight_background")] - editor_word_highlight_background: String, - #[serde(rename = "vsc_editor_word_highlight_strong_background")] - editor_word_highlight_strong_background: String, - #[serde(rename = "vsc_editor_find_match_background")] - editor_find_match_background: String, - #[serde(rename = "vsc_editor_find_match_highlight_background")] - editor_find_match_highlight_background: String, - #[serde(rename = "vsc_editor_find_range_highlight_background")] - editor_find_range_highlight_background: String, - #[serde(rename = "vsc_editor_hover_highlight_background")] - editor_hover_highlight_background: String, - #[serde(rename = "vsc_editor_line_highlight_border")] - editor_line_highlight_border: String, - #[serde(rename = "vsc_editor_link_active_foreground")] - editor_link_active_foreground: String, - #[serde(rename = "vsc_editor_range_highlight_background")] - editor_range_highlight_background: String, - #[serde(rename = "vsc_editor_snippet_tabstop_highlight_background")] - editor_snippet_tabstop_highlight_background: String, - #[serde(rename = "vsc_editor_snippet_tabstop_highlight_border")] - editor_snippet_tabstop_highlight_border: String, - #[serde(rename = "vsc_editor_snippet_final_tabstop_highlight_background")] - editor_snippet_final_tabstop_highlight_background: String, - #[serde(rename = "vsc_editor_snippet_final_tabstop_highlight_border")] - editor_snippet_final_tabstop_highlight_border: String, - #[serde(rename = "vsc_editor_whitespace_foreground")] - editor_whitespace_foreground: String, - #[serde(rename = "vsc_editor_indent_guide_background")] - editor_indent_guide_background: String, - #[serde(rename = "vsc_editor_indent_guide_active_background")] - editor_indent_guide_active_background: String, - #[serde(rename = "vsc_editor_ruler_foreground")] - editor_ruler_foreground: String, - #[serde(rename = "vsc_editor_code_lens_foreground")] - editor_code_lens_foreground: String, - #[serde(rename = "vsc_editor_bracket_highlight_foreground1")] - editor_bracket_highlight_foreground1: String, - #[serde(rename = "vsc_editor_bracket_highlight_foreground2")] - editor_bracket_highlight_foreground2: String, - #[serde(rename = "vsc_editor_bracket_highlight_foreground3")] - editor_bracket_highlight_foreground3: String, - #[serde(rename = "vsc_editor_bracket_highlight_foreground4")] - editor_bracket_highlight_foreground4: String, - #[serde(rename = "vsc_editor_bracket_highlight_foreground5")] - editor_bracket_highlight_foreground5: String, - #[serde(rename = "vsc_editor_bracket_highlight_foreground6")] - editor_bracket_highlight_foreground6: String, - #[serde(rename = "vsc_editor_bracket_highlight_unexpected_bracket_foreground")] - editor_bracket_highlight_unexpected_bracket_foreground: String, - #[serde(rename = "vsc_editor_overview_ruler_border")] - editor_overview_ruler_border: String, - #[serde(rename = "vsc_editor_overview_ruler_selection_highlight_foreground")] - editor_overview_ruler_selection_highlight_foreground: String, - #[serde(rename = "vsc_editor_overview_ruler_word_highlight_foreground")] - editor_overview_ruler_word_highlight_foreground: String, - #[serde(rename = "vsc_editor_overview_ruler_word_highlight_strong_foreground")] - editor_overview_ruler_word_highlight_strong_foreground: String, - #[serde(rename = "vsc_editor_overview_ruler_modified_foreground")] - editor_overview_ruler_modified_foreground: String, - #[serde(rename = "vsc_editor_overview_ruler_added_foreground")] - editor_overview_ruler_added_foreground: String, - #[serde(rename = "vsc_editor_overview_ruler_deleted_foreground")] - editor_overview_ruler_deleted_foreground: String, - #[serde(rename = "vsc_editor_overview_ruler_error_foreground")] - editor_overview_ruler_error_foreground: String, - #[serde(rename = "vsc_editor_overview_ruler_warning_foreground")] - editor_overview_ruler_warning_foreground: String, - #[serde(rename = "vsc_editor_overview_ruler_info_foreground")] - editor_overview_ruler_info_foreground: String, - #[serde(rename = "vsc_editor_error_foreground")] - editor_error_foreground: String, - #[serde(rename = "vsc_editor_warning_foreground")] - editor_warning_foreground: String, - #[serde(rename = "vsc_editor_gutter_modified_background")] - editor_gutter_modified_background: String, - #[serde(rename = "vsc_editor_gutter_added_background")] - editor_gutter_added_background: String, - #[serde(rename = "vsc_editor_gutter_deleted_background")] - editor_gutter_deleted_background: String, - #[serde(rename = "vsc_git_decoration_modified_resource_foreground")] - git_decoration_modified_resource_foreground: String, - #[serde(rename = "vsc_git_decoration_deleted_resource_foreground")] - git_decoration_deleted_resource_foreground: String, - #[serde(rename = "vsc_git_decoration_untracked_resource_foreground")] - git_decoration_untracked_resource_foreground: String, - #[serde(rename = "vsc_git_decoration_ignored_resource_foreground")] - git_decoration_ignored_resource_foreground: String, - #[serde(rename = "vsc_git_decoration_conflicting_resource_foreground")] - git_decoration_conflicting_resource_foreground: String, - #[serde(rename = "vsc_diff_editor_inserted_text_background")] - diff_editor_inserted_text_background: String, - #[serde(rename = "vsc_diff_editor_removed_text_background")] - diff_editor_removed_text_background: String, - #[serde(rename = "vsc_inline_chat_region_highlight")] - inline_chat_region_highlight: String, - #[serde(rename = "vsc_editor_widget_background")] - editor_widget_background: String, - #[serde(rename = "vsc_editor_suggest_widget_background")] - editor_suggest_widget_background: String, - #[serde(rename = "vsc_editor_suggest_widget_foreground")] - editor_suggest_widget_foreground: String, - #[serde(rename = "vsc_editor_suggest_widget_selected_background")] - editor_suggest_widget_selected_background: String, - #[serde(rename = "vsc_editor_hover_widget_background")] - editor_hover_widget_background: String, - #[serde(rename = "vsc_editor_hover_widget_border")] - editor_hover_widget_border: String, - #[serde(rename = "vsc_editor_marker_navigation_background")] - editor_marker_navigation_background: String, - #[serde(rename = "vsc_peek_view_border")] - peek_view_border: String, - #[serde(rename = "vsc_peek_view_editor_background")] - peek_view_editor_background: String, - #[serde(rename = "vsc_peek_view_editor_match_highlight_background")] - peek_view_editor_match_highlight_background: String, - #[serde(rename = "vsc_peek_view_result_background")] - peek_view_result_background: String, - #[serde(rename = "vsc_peek_view_result_file_foreground")] - peek_view_result_file_foreground: String, - #[serde(rename = "vsc_peek_view_result_line_foreground")] - peek_view_result_line_foreground: String, - #[serde(rename = "vsc_peek_view_result_match_highlight_background")] - peek_view_result_match_highlight_background: String, - #[serde(rename = "vsc_peek_view_result_selection_background")] - peek_view_result_selection_background: String, - #[serde(rename = "vsc_peek_view_result_selection_foreground")] - peek_view_result_selection_foreground: String, - #[serde(rename = "vsc_peek_view_title_background")] - peek_view_title_background: String, - #[serde(rename = "vsc_peek_view_title_description_foreground")] - peek_view_title_description_foreground: String, - #[serde(rename = "vsc_peek_view_title_label_foreground")] - peek_view_title_label_foreground: String, - #[serde(rename = "vsc_merge_current_header_background")] - merge_current_header_background: String, - #[serde(rename = "vsc_merge_incoming_header_background")] - merge_incoming_header_background: String, - #[serde(rename = "vsc_editor_overview_ruler_current_content_foreground")] - editor_overview_ruler_current_content_foreground: String, - #[serde(rename = "vsc_editor_overview_ruler_incoming_content_foreground")] - editor_overview_ruler_incoming_content_foreground: String, - #[serde(rename = "vsc_panel_background")] - panel_background: String, - #[serde(rename = "vsc_panel_border")] - panel_border: String, - #[serde(rename = "vsc_panel_title_active_border")] - panel_title_active_border: String, - #[serde(rename = "vsc_panel_title_active_foreground")] - panel_title_active_foreground: String, - #[serde(rename = "vsc_panel_title_inactive_foreground")] - panel_title_inactive_foreground: String, - #[serde(rename = "vsc_status_bar_background")] - status_bar_background: String, - #[serde(rename = "vsc_status_bar_foreground")] - status_bar_foreground: String, - #[serde(rename = "vsc_status_bar_debugging_background")] - status_bar_debugging_background: String, - #[serde(rename = "vsc_status_bar_debugging_foreground")] - status_bar_debugging_foreground: String, - #[serde(rename = "vsc_status_bar_no_folder_background")] - status_bar_no_folder_background: String, - #[serde(rename = "vsc_status_bar_no_folder_foreground")] - status_bar_no_folder_foreground: String, - #[serde(rename = "vsc_status_bar_item_prominent_background")] - status_bar_item_prominent_background: String, - #[serde(rename = "vsc_status_bar_item_prominent_hover_background")] - status_bar_item_prominent_hover_background: String, - #[serde(rename = "vsc_status_bar_item_remote_foreground")] - status_bar_item_remote_foreground: String, - #[serde(rename = "vsc_status_bar_item_remote_background")] - status_bar_item_remote_background: String, - #[serde(rename = "vsc_title_bar_active_background")] - title_bar_active_background: String, - #[serde(rename = "vsc_title_bar_active_foreground")] - title_bar_active_foreground: String, - #[serde(rename = "vsc_title_bar_inactive_background")] - title_bar_inactive_background: String, - #[serde(rename = "vsc_title_bar_inactive_foreground")] - title_bar_inactive_foreground: String, - #[serde(rename = "vsc_extension_button_prominent_foreground")] - extension_button_prominent_foreground: String, - #[serde(rename = "vsc_extension_button_prominent_background")] - extension_button_prominent_background: String, - #[serde(rename = "vsc_extension_button_prominent_hover_background")] - extension_button_prominent_hover_background: String, - #[serde(rename = "vsc_picker_group_border")] - picker_group_border: String, - #[serde(rename = "vsc_picker_group_foreground")] - picker_group_foreground: String, - #[serde(rename = "vsc_debug_tool_bar_background")] - debug_tool_bar_background: String, - #[serde(rename = "vsc_walk_through_embedded_editor_background")] - walk_through_embedded_editor_background: String, - #[serde(rename = "vsc_settings_header_foreground")] - settings_header_foreground: String, - #[serde(rename = "vsc_settings_modified_item_indicator")] - settings_modified_item_indicator: String, - #[serde(rename = "vsc_settings_dropdown_background")] - settings_dropdown_background: String, - #[serde(rename = "vsc_settings_dropdown_foreground")] - settings_dropdown_foreground: String, - #[serde(rename = "vsc_settings_dropdown_border")] - settings_dropdown_border: String, - #[serde(rename = "vsc_settings_checkbox_background")] - settings_checkbox_background: String, - #[serde(rename = "vsc_settings_checkbox_foreground")] - settings_checkbox_foreground: String, - #[serde(rename = "vsc_settings_checkbox_border")] - settings_checkbox_border: String, - #[serde(rename = "vsc_settings_text_input_background")] - settings_text_input_background: String, - #[serde(rename = "vsc_settings_text_input_foreground")] - settings_text_input_foreground: String, - #[serde(rename = "vsc_settings_text_input_border")] - settings_text_input_border: String, - #[serde(rename = "vsc_settings_number_input_background")] - settings_number_input_background: String, - #[serde(rename = "vsc_settings_number_input_foreground")] - settings_number_input_foreground: String, - #[serde(rename = "vsc_settings_number_input_border")] - settings_number_input_border: String, - #[serde(rename = "vsc_breadcrumb_foreground")] - breadcrumb_foreground: String, - #[serde(rename = "vsc_breadcrumb_background")] - breadcrumb_background: String, - #[serde(rename = "vsc_breadcrumb_focus_foreground")] - breadcrumb_focus_foreground: String, - #[serde(rename = "vsc_breadcrumb_active_selection_foreground")] - breadcrumb_active_selection_foreground: String, - #[serde(rename = "vsc_breadcrumb_picker_background")] - breadcrumb_picker_background: String, - #[serde(rename = "vsc_list_filter_widget_background")] - list_filter_widget_background: String, - #[serde(rename = "vsc_list_filter_widget_outline")] - list_filter_widget_outline: String, - #[serde(rename = "vsc_list_filter_widget_no_matches_outline")] - list_filter_widget_no_matches_outline: String, } #[cfg(test)] @@ -430,6 +46,400 @@ mod tests { } } +// #[derive(Debug, Deserialize)] +// pub struct VSCodeColors { +// #[serde(rename = "vsc_terminal_background")] +// terminal_background: String, +// #[serde(rename = "vsc_terminal_foreground")] +// terminal_foreground: String, +// #[serde(rename = "vsc_terminal_ansi_bright_black")] +// terminal_ansi_bright_black: String, +// #[serde(rename = "vsc_terminal_ansi_bright_red")] +// terminal_ansi_bright_red: String, +// #[serde(rename = "vsc_terminal_ansi_bright_green")] +// terminal_ansi_bright_green: String, +// #[serde(rename = "vsc_terminal_ansi_bright_yellow")] +// terminal_ansi_bright_yellow: String, +// #[serde(rename = "vsc_terminal_ansi_bright_blue")] +// terminal_ansi_bright_blue: String, +// #[serde(rename = "vsc_terminal_ansi_bright_magenta")] +// terminal_ansi_bright_magenta: String, +// #[serde(rename = "vsc_terminal_ansi_bright_cyan")] +// terminal_ansi_bright_cyan: String, +// #[serde(rename = "vsc_terminal_ansi_bright_white")] +// terminal_ansi_bright_white: String, +// #[serde(rename = "vsc_terminal_ansi_black")] +// terminal_ansi_black: String, +// #[serde(rename = "vsc_terminal_ansi_red")] +// terminal_ansi_red: String, +// #[serde(rename = "vsc_terminal_ansi_green")] +// terminal_ansi_green: String, +// #[serde(rename = "vsc_terminal_ansi_yellow")] +// terminal_ansi_yellow: String, +// #[serde(rename = "vsc_terminal_ansi_blue")] +// terminal_ansi_blue: String, +// #[serde(rename = "vsc_terminal_ansi_magenta")] +// terminal_ansi_magenta: String, +// #[serde(rename = "vsc_terminal_ansi_cyan")] +// terminal_ansi_cyan: String, +// #[serde(rename = "vsc_terminal_ansi_white")] +// terminal_ansi_white: String, +// #[serde(rename = "vsc_focus_border")] +// focus_border: String, +// #[serde(rename = "vsc_foreground")] +// foreground: String, +// #[serde(rename = "vsc_selection_background")] +// selection_background: String, +// #[serde(rename = "vsc_error_foreground")] +// error_foreground: String, +// #[serde(rename = "vsc_button_background")] +// button_background: String, +// #[serde(rename = "vsc_button_foreground")] +// button_foreground: String, +// #[serde(rename = "vsc_button_secondary_background")] +// button_secondary_background: String, +// #[serde(rename = "vsc_button_secondary_foreground")] +// button_secondary_foreground: String, +// #[serde(rename = "vsc_button_secondary_hover_background")] +// button_secondary_hover_background: String, +// #[serde(rename = "vsc_dropdown_background")] +// dropdown_background: String, +// #[serde(rename = "vsc_dropdown_border")] +// dropdown_border: String, +// #[serde(rename = "vsc_dropdown_foreground")] +// dropdown_foreground: String, +// #[serde(rename = "vsc_input_background")] +// input_background: String, +// #[serde(rename = "vsc_input_foreground")] +// input_foreground: String, +// #[serde(rename = "vsc_input_border")] +// input_border: String, +// #[serde(rename = "vsc_input_placeholder_foreground")] +// input_placeholder_foreground: String, +// #[serde(rename = "vsc_input_option_active_border")] +// input_option_active_border: String, +// #[serde(rename = "vsc_input_validation_info_border")] +// input_validation_info_border: String, +// #[serde(rename = "vsc_input_validation_warning_border")] +// input_validation_warning_border: String, +// #[serde(rename = "vsc_input_validation_error_border")] +// input_validation_error_border: String, +// #[serde(rename = "vsc_badge_foreground")] +// badge_foreground: String, +// #[serde(rename = "vsc_badge_background")] +// badge_background: String, +// #[serde(rename = "vsc_progress_bar_background")] +// progress_bar_background: String, +// #[serde(rename = "vsc_list_active_selection_background")] +// list_active_selection_background: String, +// #[serde(rename = "vsc_list_active_selection_foreground")] +// list_active_selection_foreground: String, +// #[serde(rename = "vsc_list_drop_background")] +// list_drop_background: String, +// #[serde(rename = "vsc_list_focus_background")] +// list_focus_background: String, +// #[serde(rename = "vsc_list_highlight_foreground")] +// list_highlight_foreground: String, +// #[serde(rename = "vsc_list_hover_background")] +// list_hover_background: String, +// #[serde(rename = "vsc_list_inactive_selection_background")] +// list_inactive_selection_background: String, +// #[serde(rename = "vsc_list_warning_foreground")] +// list_warning_foreground: String, +// #[serde(rename = "vsc_list_error_foreground")] +// list_error_foreground: String, +// #[serde(rename = "vsc_activity_bar_background")] +// activity_bar_background: String, +// #[serde(rename = "vsc_activity_bar_inactive_foreground")] +// activity_bar_inactive_foreground: String, +// #[serde(rename = "vsc_activity_bar_foreground")] +// activity_bar_foreground: String, +// #[serde(rename = "vsc_activity_bar_active_border")] +// activity_bar_active_border: String, +// #[serde(rename = "vsc_activity_bar_active_background")] +// activity_bar_active_background: String, +// #[serde(rename = "vsc_activity_bar_badge_background")] +// activity_bar_badge_background: String, +// #[serde(rename = "vsc_activity_bar_badge_foreground")] +// activity_bar_badge_foreground: String, +// #[serde(rename = "vsc_side_bar_background")] +// side_bar_background: String, +// #[serde(rename = "vsc_side_bar_title_foreground")] +// side_bar_title_foreground: String, +// #[serde(rename = "vsc_side_bar_section_header_background")] +// side_bar_section_header_background: String, +// #[serde(rename = "vsc_side_bar_section_header_border")] +// side_bar_section_header_border: String, +// #[serde(rename = "vsc_editor_group_border")] +// editor_group_border: String, +// #[serde(rename = "vsc_editor_group_drop_background")] +// editor_group_drop_background: String, +// #[serde(rename = "vsc_editor_group_header_tabs_background")] +// editor_group_header_tabs_background: String, +// #[serde(rename = "vsc_tab_active_background")] +// tab_active_background: String, +// #[serde(rename = "vsc_tab_active_foreground")] +// tab_active_foreground: String, +// #[serde(rename = "vsc_tab_border")] +// tab_border: String, +// #[serde(rename = "vsc_tab_active_border_top")] +// tab_active_border_top: String, +// #[serde(rename = "vsc_tab_inactive_background")] +// tab_inactive_background: String, +// #[serde(rename = "vsc_tab_inactive_foreground")] +// tab_inactive_foreground: String, +// #[serde(rename = "vsc_editor_foreground")] +// editor_foreground: String, +// #[serde(rename = "vsc_editor_background")] +// editor_background: String, +// #[serde(rename = "vsc_editor_line_number_foreground")] +// editor_line_number_foreground: String, +// #[serde(rename = "vsc_editor_selection_background")] +// editor_selection_background: String, +// #[serde(rename = "vsc_editor_selection_highlight_background")] +// editor_selection_highlight_background: String, +// #[serde(rename = "vsc_editor_fold_background")] +// editor_fold_background: String, +// #[serde(rename = "vsc_editor_word_highlight_background")] +// editor_word_highlight_background: String, +// #[serde(rename = "vsc_editor_word_highlight_strong_background")] +// editor_word_highlight_strong_background: String, +// #[serde(rename = "vsc_editor_find_match_background")] +// editor_find_match_background: String, +// #[serde(rename = "vsc_editor_find_match_highlight_background")] +// editor_find_match_highlight_background: String, +// #[serde(rename = "vsc_editor_find_range_highlight_background")] +// editor_find_range_highlight_background: String, +// #[serde(rename = "vsc_editor_hover_highlight_background")] +// editor_hover_highlight_background: String, +// #[serde(rename = "vsc_editor_line_highlight_border")] +// editor_line_highlight_border: String, +// #[serde(rename = "vsc_editor_link_active_foreground")] +// editor_link_active_foreground: String, +// #[serde(rename = "vsc_editor_range_highlight_background")] +// editor_range_highlight_background: String, +// #[serde(rename = "vsc_editor_snippet_tabstop_highlight_background")] +// editor_snippet_tabstop_highlight_background: String, +// #[serde(rename = "vsc_editor_snippet_tabstop_highlight_border")] +// editor_snippet_tabstop_highlight_border: String, +// #[serde(rename = "vsc_editor_snippet_final_tabstop_highlight_background")] +// editor_snippet_final_tabstop_highlight_background: String, +// #[serde(rename = "vsc_editor_snippet_final_tabstop_highlight_border")] +// editor_snippet_final_tabstop_highlight_border: String, +// #[serde(rename = "vsc_editor_whitespace_foreground")] +// editor_whitespace_foreground: String, +// #[serde(rename = "vsc_editor_indent_guide_background")] +// editor_indent_guide_background: String, +// #[serde(rename = "vsc_editor_indent_guide_active_background")] +// editor_indent_guide_active_background: String, +// #[serde(rename = "vsc_editor_ruler_foreground")] +// editor_ruler_foreground: String, +// #[serde(rename = "vsc_editor_code_lens_foreground")] +// editor_code_lens_foreground: String, +// #[serde(rename = "vsc_editor_bracket_highlight_foreground1")] +// editor_bracket_highlight_foreground1: String, +// #[serde(rename = "vsc_editor_bracket_highlight_foreground2")] +// editor_bracket_highlight_foreground2: String, +// #[serde(rename = "vsc_editor_bracket_highlight_foreground3")] +// editor_bracket_highlight_foreground3: String, +// #[serde(rename = "vsc_editor_bracket_highlight_foreground4")] +// editor_bracket_highlight_foreground4: String, +// #[serde(rename = "vsc_editor_bracket_highlight_foreground5")] +// editor_bracket_highlight_foreground5: String, +// #[serde(rename = "vsc_editor_bracket_highlight_foreground6")] +// editor_bracket_highlight_foreground6: String, +// #[serde(rename = "vsc_editor_bracket_highlight_unexpected_bracket_foreground")] +// editor_bracket_highlight_unexpected_bracket_foreground: String, +// #[serde(rename = "vsc_editor_overview_ruler_border")] +// editor_overview_ruler_border: String, +// #[serde(rename = "vsc_editor_overview_ruler_selection_highlight_foreground")] +// editor_overview_ruler_selection_highlight_foreground: String, +// #[serde(rename = "vsc_editor_overview_ruler_word_highlight_foreground")] +// editor_overview_ruler_word_highlight_foreground: String, +// #[serde(rename = "vsc_editor_overview_ruler_word_highlight_strong_foreground")] +// editor_overview_ruler_word_highlight_strong_foreground: String, +// #[serde(rename = "vsc_editor_overview_ruler_modified_foreground")] +// editor_overview_ruler_modified_foreground: String, +// #[serde(rename = "vsc_editor_overview_ruler_added_foreground")] +// editor_overview_ruler_added_foreground: String, +// #[serde(rename = "vsc_editor_overview_ruler_deleted_foreground")] +// editor_overview_ruler_deleted_foreground: String, +// #[serde(rename = "vsc_editor_overview_ruler_error_foreground")] +// editor_overview_ruler_error_foreground: String, +// #[serde(rename = "vsc_editor_overview_ruler_warning_foreground")] +// editor_overview_ruler_warning_foreground: String, +// #[serde(rename = "vsc_editor_overview_ruler_info_foreground")] +// editor_overview_ruler_info_foreground: String, +// #[serde(rename = "vsc_editor_error_foreground")] +// editor_error_foreground: String, +// #[serde(rename = "vsc_editor_warning_foreground")] +// editor_warning_foreground: String, +// #[serde(rename = "vsc_editor_gutter_modified_background")] +// editor_gutter_modified_background: String, +// #[serde(rename = "vsc_editor_gutter_added_background")] +// editor_gutter_added_background: String, +// #[serde(rename = "vsc_editor_gutter_deleted_background")] +// editor_gutter_deleted_background: String, +// #[serde(rename = "vsc_git_decoration_modified_resource_foreground")] +// git_decoration_modified_resource_foreground: String, +// #[serde(rename = "vsc_git_decoration_deleted_resource_foreground")] +// git_decoration_deleted_resource_foreground: String, +// #[serde(rename = "vsc_git_decoration_untracked_resource_foreground")] +// git_decoration_untracked_resource_foreground: String, +// #[serde(rename = "vsc_git_decoration_ignored_resource_foreground")] +// git_decoration_ignored_resource_foreground: String, +// #[serde(rename = "vsc_git_decoration_conflicting_resource_foreground")] +// git_decoration_conflicting_resource_foreground: String, +// #[serde(rename = "vsc_diff_editor_inserted_text_background")] +// diff_editor_inserted_text_background: String, +// #[serde(rename = "vsc_diff_editor_removed_text_background")] +// diff_editor_removed_text_background: String, +// #[serde(rename = "vsc_inline_chat_region_highlight")] +// inline_chat_region_highlight: String, +// #[serde(rename = "vsc_editor_widget_background")] +// editor_widget_background: String, +// #[serde(rename = "vsc_editor_suggest_widget_background")] +// editor_suggest_widget_background: String, +// #[serde(rename = "vsc_editor_suggest_widget_foreground")] +// editor_suggest_widget_foreground: String, +// #[serde(rename = "vsc_editor_suggest_widget_selected_background")] +// editor_suggest_widget_selected_background: String, +// #[serde(rename = "vsc_editor_hover_widget_background")] +// editor_hover_widget_background: String, +// #[serde(rename = "vsc_editor_hover_widget_border")] +// editor_hover_widget_border: String, +// #[serde(rename = "vsc_editor_marker_navigation_background")] +// editor_marker_navigation_background: String, +// #[serde(rename = "vsc_peek_view_border")] +// peek_view_border: String, +// #[serde(rename = "vsc_peek_view_editor_background")] +// peek_view_editor_background: String, +// #[serde(rename = "vsc_peek_view_editor_match_highlight_background")] +// peek_view_editor_match_highlight_background: String, +// #[serde(rename = "vsc_peek_view_result_background")] +// peek_view_result_background: String, +// #[serde(rename = "vsc_peek_view_result_file_foreground")] +// peek_view_result_file_foreground: String, +// #[serde(rename = "vsc_peek_view_result_line_foreground")] +// peek_view_result_line_foreground: String, +// #[serde(rename = "vsc_peek_view_result_match_highlight_background")] +// peek_view_result_match_highlight_background: String, +// #[serde(rename = "vsc_peek_view_result_selection_background")] +// peek_view_result_selection_background: String, +// #[serde(rename = "vsc_peek_view_result_selection_foreground")] +// peek_view_result_selection_foreground: String, +// #[serde(rename = "vsc_peek_view_title_background")] +// peek_view_title_background: String, +// #[serde(rename = "vsc_peek_view_title_description_foreground")] +// peek_view_title_description_foreground: String, +// #[serde(rename = "vsc_peek_view_title_label_foreground")] +// peek_view_title_label_foreground: String, +// #[serde(rename = "vsc_merge_current_header_background")] +// merge_current_header_background: String, +// #[serde(rename = "vsc_merge_incoming_header_background")] +// merge_incoming_header_background: String, +// #[serde(rename = "vsc_editor_overview_ruler_current_content_foreground")] +// editor_overview_ruler_current_content_foreground: String, +// #[serde(rename = "vsc_editor_overview_ruler_incoming_content_foreground")] +// editor_overview_ruler_incoming_content_foreground: String, +// #[serde(rename = "vsc_panel_background")] +// panel_background: String, +// #[serde(rename = "vsc_panel_border")] +// panel_border: String, +// #[serde(rename = "vsc_panel_title_active_border")] +// panel_title_active_border: String, +// #[serde(rename = "vsc_panel_title_active_foreground")] +// panel_title_active_foreground: String, +// #[serde(rename = "vsc_panel_title_inactive_foreground")] +// panel_title_inactive_foreground: String, +// #[serde(rename = "vsc_status_bar_background")] +// status_bar_background: String, +// #[serde(rename = "vsc_status_bar_foreground")] +// status_bar_foreground: String, +// #[serde(rename = "vsc_status_bar_debugging_background")] +// status_bar_debugging_background: String, +// #[serde(rename = "vsc_status_bar_debugging_foreground")] +// status_bar_debugging_foreground: String, +// #[serde(rename = "vsc_status_bar_no_folder_background")] +// status_bar_no_folder_background: String, +// #[serde(rename = "vsc_status_bar_no_folder_foreground")] +// status_bar_no_folder_foreground: String, +// #[serde(rename = "vsc_status_bar_item_prominent_background")] +// status_bar_item_prominent_background: String, +// #[serde(rename = "vsc_status_bar_item_prominent_hover_background")] +// status_bar_item_prominent_hover_background: String, +// #[serde(rename = "vsc_status_bar_item_remote_foreground")] +// status_bar_item_remote_foreground: String, +// #[serde(rename = "vsc_status_bar_item_remote_background")] +// status_bar_item_remote_background: String, +// #[serde(rename = "vsc_title_bar_active_background")] +// title_bar_active_background: String, +// #[serde(rename = "vsc_title_bar_active_foreground")] +// title_bar_active_foreground: String, +// #[serde(rename = "vsc_title_bar_inactive_background")] +// title_bar_inactive_background: String, +// #[serde(rename = "vsc_title_bar_inactive_foreground")] +// title_bar_inactive_foreground: String, +// #[serde(rename = "vsc_extension_button_prominent_foreground")] +// extension_button_prominent_foreground: String, +// #[serde(rename = "vsc_extension_button_prominent_background")] +// extension_button_prominent_background: String, +// #[serde(rename = "vsc_extension_button_prominent_hover_background")] +// extension_button_prominent_hover_background: String, +// #[serde(rename = "vsc_picker_group_border")] +// picker_group_border: String, +// #[serde(rename = "vsc_picker_group_foreground")] +// picker_group_foreground: String, +// #[serde(rename = "vsc_debug_tool_bar_background")] +// debug_tool_bar_background: String, +// #[serde(rename = "vsc_walk_through_embedded_editor_background")] +// walk_through_embedded_editor_background: String, +// #[serde(rename = "vsc_settings_header_foreground")] +// settings_header_foreground: String, +// #[serde(rename = "vsc_settings_modified_item_indicator")] +// settings_modified_item_indicator: String, +// #[serde(rename = "vsc_settings_dropdown_background")] +// settings_dropdown_background: String, +// #[serde(rename = "vsc_settings_dropdown_foreground")] +// settings_dropdown_foreground: String, +// #[serde(rename = "vsc_settings_dropdown_border")] +// settings_dropdown_border: String, +// #[serde(rename = "vsc_settings_checkbox_background")] +// settings_checkbox_background: String, +// #[serde(rename = "vsc_settings_checkbox_foreground")] +// settings_checkbox_foreground: String, +// #[serde(rename = "vsc_settings_checkbox_border")] +// settings_checkbox_border: String, +// #[serde(rename = "vsc_settings_text_input_background")] +// settings_text_input_background: String, +// #[serde(rename = "vsc_settings_text_input_foreground")] +// settings_text_input_foreground: String, +// #[serde(rename = "vsc_settings_text_input_border")] +// settings_text_input_border: String, +// #[serde(rename = "vsc_settings_number_input_background")] +// settings_number_input_background: String, +// #[serde(rename = "vsc_settings_number_input_foreground")] +// settings_number_input_foreground: String, +// #[serde(rename = "vsc_settings_number_input_border")] +// settings_number_input_border: String, +// #[serde(rename = "vsc_breadcrumb_foreground")] +// breadcrumb_foreground: String, +// #[serde(rename = "vsc_breadcrumb_background")] +// breadcrumb_background: String, +// #[serde(rename = "vsc_breadcrumb_focus_foreground")] +// breadcrumb_focus_foreground: String, +// #[serde(rename = "vsc_breadcrumb_active_selection_foreground")] +// breadcrumb_active_selection_foreground: String, +// #[serde(rename = "vsc_breadcrumb_picker_background")] +// breadcrumb_picker_background: String, +// #[serde(rename = "vsc_list_filter_widget_background")] +// list_filter_widget_background: String, +// #[serde(rename = "vsc_list_filter_widget_outline")] +// list_filter_widget_outline: String, +// #[serde(rename = "vsc_list_filter_widget_no_matches_outline")] +// list_filter_widget_no_matches_outline: String, +// } + // use crate::ThemeColorsRefinement; // struct ImportedThemeFamily { From 058981350c29ad96811abe385d8ded46488c0631 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Thu, 2 Nov 2023 17:21:11 -0400 Subject: [PATCH 05/76] Scaffold out new `theme-importer` crate Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com> --- Cargo.lock | 15 + Cargo.toml | 1 + assets/themes/src/vsc/ayu/LICENSE | 21 + assets/themes/src/vsc/ayu/ayu-dark.json | 847 ++++++++++++++++++++++ assets/themes/src/vsc/ayu/ayu-light.json | 847 ++++++++++++++++++++++ assets/themes/src/vsc/ayu/ayu-mirage.json | 847 ++++++++++++++++++++++ assets/themes/src/vsc/ayu/family.json | 18 + assets/themes/src/vsc/dracula/family.json | 10 + crates/theme2/src/import.rs | 471 ------------ crates/theme2/src/theme2.rs | 4 +- crates/theme_importer/Cargo.toml | 17 + crates/theme_importer/src/main.rs | 142 ++++ crates/theme_importer/src/temp.rs | 393 ++++++++++ crates/theme_importer/src/vscode.rs | 80 ++ 14 files changed, 3239 insertions(+), 474 deletions(-) create mode 100644 assets/themes/src/vsc/ayu/LICENSE create mode 100644 assets/themes/src/vsc/ayu/ayu-dark.json create mode 100644 assets/themes/src/vsc/ayu/ayu-light.json create mode 100644 assets/themes/src/vsc/ayu/ayu-mirage.json create mode 100644 assets/themes/src/vsc/ayu/family.json create mode 100644 assets/themes/src/vsc/dracula/family.json delete mode 100644 crates/theme2/src/import.rs create mode 100644 crates/theme_importer/Cargo.toml create mode 100644 crates/theme_importer/src/main.rs create mode 100644 crates/theme_importer/src/temp.rs create mode 100644 crates/theme_importer/src/vscode.rs diff --git a/Cargo.lock b/Cargo.lock index 903dd125c5..6e26d387e6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8872,6 +8872,21 @@ dependencies = [ "util", ] +[[package]] +name = "theme_importer" +version = "0.1.0" +dependencies = [ + "anyhow", + "convert_case 0.6.0", + "gpui2", + "log", + "rust-embed", + "serde", + "simplelog", + "theme2", + "uuid 1.4.1", +] + [[package]] name = "theme_selector" version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml index ed6e65d479..faae9871f8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -93,6 +93,7 @@ members = [ "crates/text", "crates/theme", "crates/theme2", + "crates/theme_importer", "crates/theme_selector", "crates/ui2", "crates/util", diff --git a/assets/themes/src/vsc/ayu/LICENSE b/assets/themes/src/vsc/ayu/LICENSE new file mode 100644 index 0000000000..97c615481a --- /dev/null +++ b/assets/themes/src/vsc/ayu/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2016 Ike Ku + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/assets/themes/src/vsc/ayu/ayu-dark.json b/assets/themes/src/vsc/ayu/ayu-dark.json new file mode 100644 index 0000000000..71c1da3fa5 --- /dev/null +++ b/assets/themes/src/vsc/ayu/ayu-dark.json @@ -0,0 +1,847 @@ +{ + "type": "dark", + "colors": { + "focusBorder": "#e6b450b3", + "foreground": "#565b66", + "widget.shadow": "#00000080", + "selection.background": "#409fff4d", + "icon.foreground": "#565b66", + "errorForeground": "#d95757", + "descriptionForeground": "#565b66", + "textBlockQuote.background": "#0f131a", + "textLink.foreground": "#e6b450", + "textLink.activeForeground": "#e6b450", + "textPreformat.foreground": "#bfbdb6", + "button.background": "#e6b450", + "button.foreground": "#734d00", + "button.hoverBackground": "#e1af4b", + "button.secondaryBackground": "#565b6633", + "button.secondaryForeground": "#bfbdb6", + "button.secondaryHoverBackground": "#565b6680", + "dropdown.background": "#0d1017", + "dropdown.foreground": "#565b66", + "dropdown.border": "#565b6645", + "input.background": "#0d1017", + "input.border": "#565b6645", + "input.foreground": "#bfbdb6", + "input.placeholderForeground": "#565b6680", + "inputOption.activeBorder": "#e6b4504d", + "inputOption.activeBackground": "#e6b45033", + "inputOption.activeForeground": "#e6b450", + "inputValidation.errorBackground": "#0d1017", + "inputValidation.errorBorder": "#d95757", + "inputValidation.infoBackground": "#0b0e14", + "inputValidation.infoBorder": "#39bae6", + "inputValidation.warningBackground": "#0b0e14", + "inputValidation.warningBorder": "#ffb454", + "scrollbar.shadow": "#1e232b00", + "scrollbarSlider.background": "#565b6666", + "scrollbarSlider.hoverBackground": "#565b6699", + "scrollbarSlider.activeBackground": "#565b66b3", + "badge.background": "#e6b45033", + "badge.foreground": "#e6b450", + "progressBar.background": "#e6b450", + "list.activeSelectionBackground": "#47526640", + "list.activeSelectionForeground": "#bfbdb6", + "list.focusBackground": "#47526640", + "list.focusForeground": "#bfbdb6", + "list.focusOutline": "#47526640", + "list.highlightForeground": "#e6b450", + "list.deemphasizedForeground": "#d95757", + "list.hoverBackground": "#47526640", + "list.inactiveSelectionBackground": "#47526633", + "list.inactiveSelectionForeground": "#565b66", + "list.invalidItemForeground": "#565b664d", + "list.errorForeground": "#d95757", + "tree.indentGuidesStroke": "#6c738080", + "listFilterWidget.background": "#0f131a", + "listFilterWidget.outline": "#e6b450", + "listFilterWidget.noMatchesOutline": "#d95757", + "list.filterMatchBackground": "#5f4c7266", + "list.filterMatchBorder": "#6c598066", + "activityBar.background": "#0b0e14", + "activityBar.foreground": "#565b66cc", + "activityBar.inactiveForeground": "#565b6699", + "activityBar.border": "#0b0e14", + "activityBar.activeBorder": "#e6b450", + "activityBarBadge.background": "#e6b450", + "activityBarBadge.foreground": "#734d00", + "sideBar.background": "#0b0e14", + "sideBar.border": "#0b0e14", + "sideBarTitle.foreground": "#565b66", + "sideBarSectionHeader.background": "#0b0e14", + "sideBarSectionHeader.foreground": "#565b66", + "sideBarSectionHeader.border": "#0b0e14", + "minimap.background": "#0b0e14", + "minimap.selectionHighlight": "#409fff4d", + "minimap.errorHighlight": "#d95757", + "minimap.findMatchHighlight": "#6c5980", + "minimapGutter.addedBackground": "#7fd962", + "minimapGutter.modifiedBackground": "#73b8ff", + "minimapGutter.deletedBackground": "#f26d78", + "editorGroup.border": "#1e232b", + "editorGroup.background": "#0f131a", + "editorGroupHeader.noTabsBackground": "#0b0e14", + "editorGroupHeader.tabsBackground": "#0b0e14", + "editorGroupHeader.tabsBorder": "#0b0e14", + "tab.activeBackground": "#0b0e14", + "tab.activeForeground": "#bfbdb6", + "tab.border": "#0b0e14", + "tab.activeBorder": "#e6b450", + "tab.unfocusedActiveBorder": "#565b66", + "tab.inactiveBackground": "#0b0e14", + "tab.inactiveForeground": "#565b66", + "tab.unfocusedActiveForeground": "#565b66", + "tab.unfocusedInactiveForeground": "#565b66", + "editor.background": "#0b0e14", + "editor.foreground": "#bfbdb6", + "editorLineNumber.foreground": "#6c738099", + "editorLineNumber.activeForeground": "#6c7380e6", + "editorCursor.foreground": "#e6b450", + "editor.inactiveSelectionBackground": "#409fff21", + "editor.selectionBackground": "#409fff4d", + "editor.selectionHighlightBackground": "#7fd96226", + "editor.selectionHighlightBorder": "#7fd96200", + "editor.wordHighlightBackground": "#73b8ff14", + "editor.wordHighlightStrongBackground": "#7fd96214", + "editor.wordHighlightBorder": "#73b8ff80", + "editor.wordHighlightStrongBorder": "#7fd96280", + "editor.findMatchBackground": "#6c5980", + "editor.findMatchBorder": "#6c5980", + "editor.findMatchHighlightBackground": "#6c598066", + "editor.findMatchHighlightBorder": "#5f4c7266", + "editor.findRangeHighlightBackground": "#6c598040", + "editor.rangeHighlightBackground": "#6c598033", + "editor.lineHighlightBackground": "#131721", + "editorLink.activeForeground": "#e6b450", + "editorWhitespace.foreground": "#6c738099", + "editorIndentGuide.background": "#6c738033", + "editorIndentGuide.activeBackground": "#6c738080", + "editorRuler.foreground": "#6c738033", + "editorCodeLens.foreground": "#acb6bf8c", + "editorBracketMatch.background": "#6c73804d", + "editorBracketMatch.border": "#6c73804d", + "editor.snippetTabstopHighlightBackground": "#7fd96233", + "editorOverviewRuler.border": "#1e232b", + "editorOverviewRuler.modifiedForeground": "#73b8ff", + "editorOverviewRuler.addedForeground": "#7fd962", + "editorOverviewRuler.deletedForeground": "#f26d78", + "editorOverviewRuler.errorForeground": "#d95757", + "editorOverviewRuler.warningForeground": "#e6b450", + "editorOverviewRuler.bracketMatchForeground": "#6c7380b3", + "editorOverviewRuler.wordHighlightForeground": "#73b8ff66", + "editorOverviewRuler.wordHighlightStrongForeground": "#7fd96266", + "editorOverviewRuler.findMatchForeground": "#6c5980", + "editorError.foreground": "#d95757", + "editorWarning.foreground": "#e6b450", + "editorGutter.modifiedBackground": "#73b8ffcc", + "editorGutter.addedBackground": "#7fd962cc", + "editorGutter.deletedBackground": "#f26d78cc", + "diffEditor.insertedTextBackground": "#7fd9621f", + "diffEditor.removedTextBackground": "#f26d781f", + "diffEditor.diagonalFill": "#1e232b", + "editorWidget.background": "#0f131a", + "editorWidget.border": "#1e232b", + "editorHoverWidget.background": "#0f131a", + "editorHoverWidget.border": "#1e232b", + "editorSuggestWidget.background": "#0f131a", + "editorSuggestWidget.border": "#1e232b", + "editorSuggestWidget.highlightForeground": "#e6b450", + "editorSuggestWidget.selectedBackground": "#47526640", + "debugExceptionWidget.border": "#1e232b", + "debugExceptionWidget.background": "#0f131a", + "editorMarkerNavigation.background": "#0f131a", + "peekView.border": "#47526640", + "peekViewTitle.background": "#47526640", + "peekViewTitleDescription.foreground": "#565b66", + "peekViewTitleLabel.foreground": "#bfbdb6", + "peekViewEditor.background": "#0f131a", + "peekViewEditor.matchHighlightBackground": "#6c598066", + "peekViewEditor.matchHighlightBorder": "#5f4c7266", + "peekViewResult.background": "#0f131a", + "peekViewResult.fileForeground": "#bfbdb6", + "peekViewResult.lineForeground": "#565b66", + "peekViewResult.matchHighlightBackground": "#6c598066", + "peekViewResult.selectionBackground": "#47526640", + "panel.background": "#0b0e14", + "panel.border": "#1e232b", + "panelTitle.activeBorder": "#e6b450", + "panelTitle.activeForeground": "#bfbdb6", + "panelTitle.inactiveForeground": "#565b66", + "statusBar.background": "#0b0e14", + "statusBar.foreground": "#565b66", + "statusBar.border": "#0b0e14", + "statusBar.debuggingBackground": "#f29668", + "statusBar.debuggingForeground": "#0d1017", + "statusBar.noFolderBackground": "#0f131a", + "statusBarItem.activeBackground": "#565b6633", + "statusBarItem.hoverBackground": "#565b6633", + "statusBarItem.prominentBackground": "#1e232b", + "statusBarItem.prominentHoverBackground": "#00000030", + "statusBarItem.remoteBackground": "#e6b450", + "statusBarItem.remoteForeground": "#734d00", + "titleBar.activeBackground": "#0b0e14", + "titleBar.activeForeground": "#bfbdb6", + "titleBar.inactiveBackground": "#0b0e14", + "titleBar.inactiveForeground": "#565b66", + "titleBar.border": "#0b0e14", + "extensionButton.prominentForeground": "#734d00", + "extensionButton.prominentBackground": "#e6b450", + "extensionButton.prominentHoverBackground": "#e1af4b", + "pickerGroup.border": "#1e232b", + "pickerGroup.foreground": "#565b6680", + "debugToolBar.background": "#0f131a", + "debugIcon.breakpointForeground": "#f29668", + "debugIcon.breakpointDisabledForeground": "#f2966880", + "debugConsoleInputIcon.foreground": "#e6b450", + "welcomePage.tileBackground": "#0b0e14", + "welcomePage.tileShadow": "#00000080", + "welcomePage.progress.background": "#131721", + "welcomePage.buttonBackground": "#e6b45066", + "walkThrough.embeddedEditorBackground": "#0f131a", + "gitDecoration.modifiedResourceForeground": "#73b8ffb3", + "gitDecoration.deletedResourceForeground": "#f26d78b3", + "gitDecoration.untrackedResourceForeground": "#7fd962b3", + "gitDecoration.ignoredResourceForeground": "#565b6680", + "gitDecoration.conflictingResourceForeground": "", + "gitDecoration.submoduleResourceForeground": "#d2a6ffb3", + "settings.headerForeground": "#bfbdb6", + "settings.modifiedItemIndicator": "#73b8ff", + "keybindingLabel.background": "#565b661a", + "keybindingLabel.foreground": "#bfbdb6", + "keybindingLabel.border": "#bfbdb61a", + "keybindingLabel.bottomBorder": "#bfbdb61a", + "terminal.background": "#0b0e14", + "terminal.foreground": "#bfbdb6", + "terminal.ansiBlack": "#1e232b", + "terminal.ansiRed": "#ea6c73", + "terminal.ansiGreen": "#7fd962", + "terminal.ansiYellow": "#f9af4f", + "terminal.ansiBlue": "#53bdfa", + "terminal.ansiMagenta": "#cda1fa", + "terminal.ansiCyan": "#90e1c6", + "terminal.ansiWhite": "#c7c7c7", + "terminal.ansiBrightBlack": "#686868", + "terminal.ansiBrightRed": "#f07178", + "terminal.ansiBrightGreen": "#aad94c", + "terminal.ansiBrightYellow": "#ffb454", + "terminal.ansiBrightBlue": "#59c2ff", + "terminal.ansiBrightMagenta": "#d2a6ff", + "terminal.ansiBrightCyan": "#95e6cb", + "terminal.ansiBrightWhite": "#ffffff" + }, + "tokenColors": [ + { + "settings": { + "background": "#0b0e14", + "foreground": "#bfbdb6" + } + }, + { + "name": "Comment", + "scope": [ + "comment" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#acb6bf8c" + } + }, + { + "name": "String", + "scope": [ + "string", + "constant.other.symbol" + ], + "settings": { + "foreground": "#aad94c" + } + }, + { + "name": "Regular Expressions and Escape Characters", + "scope": [ + "string.regexp", + "constant.character", + "constant.other" + ], + "settings": { + "foreground": "#95e6cb" + } + }, + { + "name": "Number", + "scope": [ + "constant.numeric" + ], + "settings": { + "foreground": "#d2a6ff" + } + }, + { + "name": "Built-in constants", + "scope": [ + "constant.language" + ], + "settings": { + "foreground": "#d2a6ff" + } + }, + { + "name": "Variable", + "scope": [ + "variable", + "variable.parameter.function-call" + ], + "settings": { + "foreground": "#bfbdb6" + } + }, + { + "name": "Member Variable", + "scope": [ + "variable.member" + ], + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "Language variable", + "scope": [ + "variable.language" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#39bae6" + } + }, + { + "name": "Storage", + "scope": [ + "storage" + ], + "settings": { + "foreground": "#ff8f40" + } + }, + { + "name": "Keyword", + "scope": [ + "keyword" + ], + "settings": { + "foreground": "#ff8f40" + } + }, + { + "name": "Operators", + "scope": [ + "keyword.operator" + ], + "settings": { + "foreground": "#f29668" + } + }, + { + "name": "Separators like ; or ,", + "scope": [ + "punctuation.separator", + "punctuation.terminator" + ], + "settings": { + "foreground": "#bfbdb6b3" + } + }, + { + "name": "Punctuation", + "scope": [ + "punctuation.section" + ], + "settings": { + "foreground": "#bfbdb6" + } + }, + { + "name": "Accessor", + "scope": [ + "punctuation.accessor" + ], + "settings": { + "foreground": "#f29668" + } + }, + { + "name": "JavaScript/TypeScript interpolation punctuation", + "scope": [ + "punctuation.definition.template-expression" + ], + "settings": { + "foreground": "#ff8f40" + } + }, + { + "name": "Ruby interpolation punctuation", + "scope": [ + "punctuation.section.embedded" + ], + "settings": { + "foreground": "#ff8f40" + } + }, + { + "name": "Interpolation text", + "scope": [ + "meta.embedded" + ], + "settings": { + "foreground": "#bfbdb6" + } + }, + { + "name": "Types fixes", + "scope": [ + "source.java storage.type", + "source.haskell storage.type", + "source.c storage.type" + ], + "settings": { + "foreground": "#59c2ff" + } + }, + { + "name": "Inherited class type", + "scope": [ + "entity.other.inherited-class" + ], + "settings": { + "foreground": "#39bae6" + } + }, + { + "name": "Lambda arrow", + "scope": [ + "storage.type.function" + ], + "settings": { + "foreground": "#ff8f40" + } + }, + { + "name": "Java primitive variable types", + "scope": [ + "source.java storage.type.primitive" + ], + "settings": { + "foreground": "#39bae6" + } + }, + { + "name": "Function name", + "scope": [ + "entity.name.function" + ], + "settings": { + "foreground": "#ffb454" + } + }, + { + "name": "Function arguments", + "scope": [ + "variable.parameter", + "meta.parameter" + ], + "settings": { + "foreground": "#d2a6ff" + } + }, + { + "name": "Function call", + "scope": [ + "variable.function", + "variable.annotation", + "meta.function-call.generic", + "support.function.go" + ], + "settings": { + "foreground": "#ffb454" + } + }, + { + "name": "Library function", + "scope": [ + "support.function", + "support.macro" + ], + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "Imports and packages", + "scope": [ + "entity.name.import", + "entity.name.package" + ], + "settings": { + "foreground": "#aad94c" + } + }, + { + "name": "Entity name", + "scope": [ + "entity.name" + ], + "settings": { + "foreground": "#59c2ff" + } + }, + { + "name": "Tag", + "scope": [ + "entity.name.tag", + "meta.tag.sgml" + ], + "settings": { + "foreground": "#39bae6" + } + }, + { + "name": "JSX Component", + "scope": [ + "support.class.component" + ], + "settings": { + "foreground": "#59c2ff" + } + }, + { + "name": "Tag start/end", + "scope": [ + "punctuation.definition.tag.end", + "punctuation.definition.tag.begin", + "punctuation.definition.tag" + ], + "settings": { + "foreground": "#39bae680" + } + }, + { + "name": "Tag attribute", + "scope": [ + "entity.other.attribute-name" + ], + "settings": { + "foreground": "#ffb454" + } + }, + { + "name": "Library constant", + "scope": [ + "support.constant" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#f29668" + } + }, + { + "name": "Library class/type", + "scope": [ + "support.type", + "support.class", + "source.go storage.type" + ], + "settings": { + "foreground": "#39bae6" + } + }, + { + "name": "Decorators/annotation", + "scope": [ + "meta.decorator variable.other", + "meta.decorator punctuation.decorator", + "storage.type.annotation" + ], + "settings": { + "foreground": "#e6b673" + } + }, + { + "name": "Invalid", + "scope": [ + "invalid" + ], + "settings": { + "foreground": "#d95757" + } + }, + { + "name": "diff.header", + "scope": [ + "meta.diff", + "meta.diff.header" + ], + "settings": { + "foreground": "#c594c5" + } + }, + { + "name": "Ruby class methods", + "scope": [ + "source.ruby variable.other.readwrite" + ], + "settings": { + "foreground": "#ffb454" + } + }, + { + "name": "CSS tag names", + "scope": [ + "source.css entity.name.tag", + "source.sass entity.name.tag", + "source.scss entity.name.tag", + "source.less entity.name.tag", + "source.stylus entity.name.tag" + ], + "settings": { + "foreground": "#59c2ff" + } + }, + { + "name": "CSS browser prefix", + "scope": [ + "source.css support.type", + "source.sass support.type", + "source.scss support.type", + "source.less support.type", + "source.stylus support.type" + ], + "settings": { + "foreground": "#acb6bf8c" + } + }, + { + "name": "CSS Properties", + "scope": [ + "support.type.property-name" + ], + "settings": { + "fontStyle": "normal", + "foreground": "#39bae6" + } + }, + { + "name": "Search Results Numbers", + "scope": [ + "constant.numeric.line-number.find-in-files - match" + ], + "settings": { + "foreground": "#acb6bf8c" + } + }, + { + "name": "Search Results Match Numbers", + "scope": [ + "constant.numeric.line-number.match" + ], + "settings": { + "foreground": "#ff8f40" + } + }, + { + "name": "Search Results Lines", + "scope": [ + "entity.name.filename.find-in-files" + ], + "settings": { + "foreground": "#aad94c" + } + }, + { + "scope": [ + "message.error" + ], + "settings": { + "foreground": "#d95757" + } + }, + { + "name": "Markup heading", + "scope": [ + "markup.heading", + "markup.heading entity.name" + ], + "settings": { + "fontStyle": "bold", + "foreground": "#aad94c" + } + }, + { + "name": "Markup links", + "scope": [ + "markup.underline.link", + "string.other.link" + ], + "settings": { + "foreground": "#39bae6" + } + }, + { + "name": "Markup Italic", + "scope": [ + "markup.italic" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#f07178" + } + }, + { + "name": "Markup Bold", + "scope": [ + "markup.bold" + ], + "settings": { + "fontStyle": "bold", + "foreground": "#f07178" + } + }, + { + "name": "Markup Bold/italic", + "scope": [ + "markup.italic markup.bold", + "markup.bold markup.italic" + ], + "settings": { + "fontStyle": "bold italic" + } + }, + { + "name": "Markup Code", + "scope": [ + "markup.raw" + ], + "settings": { + "background": "#bfbdb605" + } + }, + { + "name": "Markup Code Inline", + "scope": [ + "markup.raw.inline" + ], + "settings": { + "background": "#bfbdb60f" + } + }, + { + "name": "Markdown Separator", + "scope": [ + "meta.separator" + ], + "settings": { + "fontStyle": "bold", + "background": "#bfbdb60f", + "foreground": "#acb6bf8c" + } + }, + { + "name": "Markup Blockquote", + "scope": [ + "markup.quote" + ], + "settings": { + "foreground": "#95e6cb", + "fontStyle": "italic" + } + }, + { + "name": "Markup List Bullet", + "scope": [ + "markup.list punctuation.definition.list.begin" + ], + "settings": { + "foreground": "#ffb454" + } + }, + { + "name": "Markup added", + "scope": [ + "markup.inserted" + ], + "settings": { + "foreground": "#7fd962" + } + }, + { + "name": "Markup modified", + "scope": [ + "markup.changed" + ], + "settings": { + "foreground": "#73b8ff" + } + }, + { + "name": "Markup removed", + "scope": [ + "markup.deleted" + ], + "settings": { + "foreground": "#f26d78" + } + }, + { + "name": "Markup Strike", + "scope": [ + "markup.strike" + ], + "settings": { + "foreground": "#e6b673" + } + }, + { + "name": "Markup Table", + "scope": [ + "markup.table" + ], + "settings": { + "background": "#bfbdb60f", + "foreground": "#39bae6" + } + }, + { + "name": "Markup Raw Inline", + "scope": [ + "text.html.markdown markup.inline.raw" + ], + "settings": { + "foreground": "#f29668" + } + }, + { + "name": "Markdown - Line Break", + "scope": [ + "text.html.markdown meta.dummy.line-break" + ], + "settings": { + "background": "#acb6bf8c", + "foreground": "#acb6bf8c" + } + }, + { + "name": "Markdown - Raw Block Fenced", + "scope": [ + "punctuation.definition.markdown" + ], + "settings": { + "background": "#bfbdb6", + "foreground": "#acb6bf8c" + } + } + ], + "semanticHighlighting": true, + "semanticTokenColors": { + "parameter.label": "#bfbdb6" + } +} \ No newline at end of file diff --git a/assets/themes/src/vsc/ayu/ayu-light.json b/assets/themes/src/vsc/ayu/ayu-light.json new file mode 100644 index 0000000000..782b04ac76 --- /dev/null +++ b/assets/themes/src/vsc/ayu/ayu-light.json @@ -0,0 +1,847 @@ +{ + "type": "light", + "colors": { + "focusBorder": "#ffaa33b3", + "foreground": "#8a9199", + "widget.shadow": "#00000026", + "selection.background": "#035bd626", + "icon.foreground": "#8a9199", + "errorForeground": "#e65050", + "descriptionForeground": "#8a9199", + "textBlockQuote.background": "#f3f4f5", + "textLink.foreground": "#ffaa33", + "textLink.activeForeground": "#ffaa33", + "textPreformat.foreground": "#5c6166", + "button.background": "#ffaa33", + "button.foreground": "#804a00", + "button.hoverBackground": "#f9a52e", + "button.secondaryBackground": "#8a919933", + "button.secondaryForeground": "#5c6166", + "button.secondaryHoverBackground": "#8a919980", + "dropdown.background": "#fcfcfc", + "dropdown.foreground": "#8a9199", + "dropdown.border": "#8a919945", + "input.background": "#fcfcfc", + "input.border": "#8a919945", + "input.foreground": "#5c6166", + "input.placeholderForeground": "#8a919980", + "inputOption.activeBorder": "#f4a0284d", + "inputOption.activeBackground": "#ffaa3333", + "inputOption.activeForeground": "#f4a028", + "inputValidation.errorBackground": "#fcfcfc", + "inputValidation.errorBorder": "#e65050", + "inputValidation.infoBackground": "#f8f9fa", + "inputValidation.infoBorder": "#55b4d4", + "inputValidation.warningBackground": "#f8f9fa", + "inputValidation.warningBorder": "#f2ae49", + "scrollbar.shadow": "#6b7d8f00", + "scrollbarSlider.background": "#8a919966", + "scrollbarSlider.hoverBackground": "#8a919999", + "scrollbarSlider.activeBackground": "#8a9199b3", + "badge.background": "#ffaa3333", + "badge.foreground": "#f4a028", + "progressBar.background": "#ffaa33", + "list.activeSelectionBackground": "#56728f1f", + "list.activeSelectionForeground": "#5c6166", + "list.focusBackground": "#56728f1f", + "list.focusForeground": "#5c6166", + "list.focusOutline": "#56728f1f", + "list.highlightForeground": "#ffaa33", + "list.deemphasizedForeground": "#e65050", + "list.hoverBackground": "#56728f1f", + "list.inactiveSelectionBackground": "#6b7d8f1f", + "list.inactiveSelectionForeground": "#8a9199", + "list.invalidItemForeground": "#8a91994d", + "list.errorForeground": "#e65050", + "tree.indentGuidesStroke": "#8a919959", + "listFilterWidget.background": "#f3f4f5", + "listFilterWidget.outline": "#ffaa33", + "listFilterWidget.noMatchesOutline": "#e65050", + "list.filterMatchBackground": "#ddcaef73", + "list.filterMatchBorder": "#ecd9ff73", + "activityBar.background": "#f8f9fa", + "activityBar.foreground": "#8a9199cc", + "activityBar.inactiveForeground": "#8a919999", + "activityBar.border": "#f8f9fa", + "activityBar.activeBorder": "#ffaa33", + "activityBarBadge.background": "#ffaa33", + "activityBarBadge.foreground": "#f8f9fa", + "sideBar.background": "#f8f9fa", + "sideBar.border": "#f8f9fa", + "sideBarTitle.foreground": "#8a9199", + "sideBarSectionHeader.background": "#f8f9fa", + "sideBarSectionHeader.foreground": "#8a9199", + "sideBarSectionHeader.border": "#f8f9fa", + "minimap.background": "#f8f9fa", + "minimap.selectionHighlight": "#035bd626", + "minimap.errorHighlight": "#e65050", + "minimap.findMatchHighlight": "#ecd9ff", + "minimapGutter.addedBackground": "#6cbf43", + "minimapGutter.modifiedBackground": "#478acc", + "minimapGutter.deletedBackground": "#ff7383", + "editorGroup.border": "#6b7d8f1f", + "editorGroup.background": "#f3f4f5", + "editorGroupHeader.noTabsBackground": "#f8f9fa", + "editorGroupHeader.tabsBackground": "#f8f9fa", + "editorGroupHeader.tabsBorder": "#f8f9fa", + "tab.activeBackground": "#f8f9fa", + "tab.activeForeground": "#5c6166", + "tab.border": "#f8f9fa", + "tab.activeBorder": "#ffaa33", + "tab.unfocusedActiveBorder": "#8a9199", + "tab.inactiveBackground": "#f8f9fa", + "tab.inactiveForeground": "#8a9199", + "tab.unfocusedActiveForeground": "#8a9199", + "tab.unfocusedInactiveForeground": "#8a9199", + "editor.background": "#f8f9fa", + "editor.foreground": "#5c6166", + "editorLineNumber.foreground": "#8a919966", + "editorLineNumber.activeForeground": "#8a9199cc", + "editorCursor.foreground": "#ffaa33", + "editor.inactiveSelectionBackground": "#035bd612", + "editor.selectionBackground": "#035bd626", + "editor.selectionHighlightBackground": "#6cbf4326", + "editor.selectionHighlightBorder": "#6cbf4300", + "editor.wordHighlightBackground": "#478acc14", + "editor.wordHighlightStrongBackground": "#6cbf4314", + "editor.wordHighlightBorder": "#478acc80", + "editor.wordHighlightStrongBorder": "#6cbf4380", + "editor.findMatchBackground": "#ecd9ff", + "editor.findMatchBorder": "#ecd9ff", + "editor.findMatchHighlightBackground": "#ecd9ff73", + "editor.findMatchHighlightBorder": "#ddcaef73", + "editor.findRangeHighlightBackground": "#ecd9ff40", + "editor.rangeHighlightBackground": "#ecd9ff33", + "editor.lineHighlightBackground": "#8a91991a", + "editorLink.activeForeground": "#ffaa33", + "editorWhitespace.foreground": "#8a919966", + "editorIndentGuide.background": "#8a91992e", + "editorIndentGuide.activeBackground": "#8a919959", + "editorRuler.foreground": "#8a91992e", + "editorCodeLens.foreground": "#787b8099", + "editorBracketMatch.background": "#8a91994d", + "editorBracketMatch.border": "#8a91994d", + "editor.snippetTabstopHighlightBackground": "#6cbf4333", + "editorOverviewRuler.border": "#6b7d8f1f", + "editorOverviewRuler.modifiedForeground": "#478acc", + "editorOverviewRuler.addedForeground": "#6cbf43", + "editorOverviewRuler.deletedForeground": "#ff7383", + "editorOverviewRuler.errorForeground": "#e65050", + "editorOverviewRuler.warningForeground": "#ffaa33", + "editorOverviewRuler.bracketMatchForeground": "#8a9199b3", + "editorOverviewRuler.wordHighlightForeground": "#478acc66", + "editorOverviewRuler.wordHighlightStrongForeground": "#6cbf4366", + "editorOverviewRuler.findMatchForeground": "#ecd9ff", + "editorError.foreground": "#e65050", + "editorWarning.foreground": "#ffaa33", + "editorGutter.modifiedBackground": "#478acccc", + "editorGutter.addedBackground": "#6cbf43cc", + "editorGutter.deletedBackground": "#ff7383cc", + "diffEditor.insertedTextBackground": "#6cbf431f", + "diffEditor.removedTextBackground": "#ff73831f", + "diffEditor.diagonalFill": "#6b7d8f1f", + "editorWidget.background": "#f3f4f5", + "editorWidget.border": "#6b7d8f1f", + "editorHoverWidget.background": "#f3f4f5", + "editorHoverWidget.border": "#6b7d8f1f", + "editorSuggestWidget.background": "#f3f4f5", + "editorSuggestWidget.border": "#6b7d8f1f", + "editorSuggestWidget.highlightForeground": "#ffaa33", + "editorSuggestWidget.selectedBackground": "#56728f1f", + "debugExceptionWidget.border": "#6b7d8f1f", + "debugExceptionWidget.background": "#f3f4f5", + "editorMarkerNavigation.background": "#f3f4f5", + "peekView.border": "#56728f1f", + "peekViewTitle.background": "#56728f1f", + "peekViewTitleDescription.foreground": "#8a9199", + "peekViewTitleLabel.foreground": "#5c6166", + "peekViewEditor.background": "#f3f4f5", + "peekViewEditor.matchHighlightBackground": "#ecd9ff73", + "peekViewEditor.matchHighlightBorder": "#ddcaef73", + "peekViewResult.background": "#f3f4f5", + "peekViewResult.fileForeground": "#5c6166", + "peekViewResult.lineForeground": "#8a9199", + "peekViewResult.matchHighlightBackground": "#ecd9ff73", + "peekViewResult.selectionBackground": "#56728f1f", + "panel.background": "#f8f9fa", + "panel.border": "#6b7d8f1f", + "panelTitle.activeBorder": "#ffaa33", + "panelTitle.activeForeground": "#5c6166", + "panelTitle.inactiveForeground": "#8a9199", + "statusBar.background": "#f8f9fa", + "statusBar.foreground": "#8a9199", + "statusBar.border": "#f8f9fa", + "statusBar.debuggingBackground": "#ed9366", + "statusBar.debuggingForeground": "#fcfcfc", + "statusBar.noFolderBackground": "#f3f4f5", + "statusBarItem.activeBackground": "#8a919933", + "statusBarItem.hoverBackground": "#8a919933", + "statusBarItem.prominentBackground": "#6b7d8f1f", + "statusBarItem.prominentHoverBackground": "#00000030", + "statusBarItem.remoteBackground": "#ffaa33", + "statusBarItem.remoteForeground": "#804a00", + "titleBar.activeBackground": "#f8f9fa", + "titleBar.activeForeground": "#5c6166", + "titleBar.inactiveBackground": "#f8f9fa", + "titleBar.inactiveForeground": "#8a9199", + "titleBar.border": "#f8f9fa", + "extensionButton.prominentForeground": "#804a00", + "extensionButton.prominentBackground": "#ffaa33", + "extensionButton.prominentHoverBackground": "#f9a52e", + "pickerGroup.border": "#6b7d8f1f", + "pickerGroup.foreground": "#8a919980", + "debugToolBar.background": "#f3f4f5", + "debugIcon.breakpointForeground": "#ed9366", + "debugIcon.breakpointDisabledForeground": "#ed936680", + "debugConsoleInputIcon.foreground": "#ffaa33", + "welcomePage.tileBackground": "#f8f9fa", + "welcomePage.tileShadow": "#00000026", + "welcomePage.progress.background": "#8a91991a", + "welcomePage.buttonBackground": "#ffaa3366", + "walkThrough.embeddedEditorBackground": "#f3f4f5", + "gitDecoration.modifiedResourceForeground": "#478accb3", + "gitDecoration.deletedResourceForeground": "#ff7383b3", + "gitDecoration.untrackedResourceForeground": "#6cbf43b3", + "gitDecoration.ignoredResourceForeground": "#8a919980", + "gitDecoration.conflictingResourceForeground": "", + "gitDecoration.submoduleResourceForeground": "#a37accb3", + "settings.headerForeground": "#5c6166", + "settings.modifiedItemIndicator": "#478acc", + "keybindingLabel.background": "#8a91991a", + "keybindingLabel.foreground": "#5c6166", + "keybindingLabel.border": "#5c61661a", + "keybindingLabel.bottomBorder": "#5c61661a", + "terminal.background": "#f8f9fa", + "terminal.foreground": "#5c6166", + "terminal.ansiBlack": "#000000", + "terminal.ansiRed": "#ea6c6d", + "terminal.ansiGreen": "#6cbf43", + "terminal.ansiYellow": "#eca944", + "terminal.ansiBlue": "#3199e1", + "terminal.ansiMagenta": "#9e75c7", + "terminal.ansiCyan": "#46ba94", + "terminal.ansiWhite": "#c7c7c7", + "terminal.ansiBrightBlack": "#686868", + "terminal.ansiBrightRed": "#f07171", + "terminal.ansiBrightGreen": "#86b300", + "terminal.ansiBrightYellow": "#f2ae49", + "terminal.ansiBrightBlue": "#399ee6", + "terminal.ansiBrightMagenta": "#a37acc", + "terminal.ansiBrightCyan": "#4cbf99", + "terminal.ansiBrightWhite": "#d1d1d1" + }, + "tokenColors": [ + { + "settings": { + "background": "#f8f9fa", + "foreground": "#5c6166" + } + }, + { + "name": "Comment", + "scope": [ + "comment" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#787b8099" + } + }, + { + "name": "String", + "scope": [ + "string", + "constant.other.symbol" + ], + "settings": { + "foreground": "#86b300" + } + }, + { + "name": "Regular Expressions and Escape Characters", + "scope": [ + "string.regexp", + "constant.character", + "constant.other" + ], + "settings": { + "foreground": "#4cbf99" + } + }, + { + "name": "Number", + "scope": [ + "constant.numeric" + ], + "settings": { + "foreground": "#a37acc" + } + }, + { + "name": "Built-in constants", + "scope": [ + "constant.language" + ], + "settings": { + "foreground": "#a37acc" + } + }, + { + "name": "Variable", + "scope": [ + "variable", + "variable.parameter.function-call" + ], + "settings": { + "foreground": "#5c6166" + } + }, + { + "name": "Member Variable", + "scope": [ + "variable.member" + ], + "settings": { + "foreground": "#f07171" + } + }, + { + "name": "Language variable", + "scope": [ + "variable.language" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#55b4d4" + } + }, + { + "name": "Storage", + "scope": [ + "storage" + ], + "settings": { + "foreground": "#fa8d3e" + } + }, + { + "name": "Keyword", + "scope": [ + "keyword" + ], + "settings": { + "foreground": "#fa8d3e" + } + }, + { + "name": "Operators", + "scope": [ + "keyword.operator" + ], + "settings": { + "foreground": "#ed9366" + } + }, + { + "name": "Separators like ; or ,", + "scope": [ + "punctuation.separator", + "punctuation.terminator" + ], + "settings": { + "foreground": "#5c6166b3" + } + }, + { + "name": "Punctuation", + "scope": [ + "punctuation.section" + ], + "settings": { + "foreground": "#5c6166" + } + }, + { + "name": "Accessor", + "scope": [ + "punctuation.accessor" + ], + "settings": { + "foreground": "#ed9366" + } + }, + { + "name": "JavaScript/TypeScript interpolation punctuation", + "scope": [ + "punctuation.definition.template-expression" + ], + "settings": { + "foreground": "#fa8d3e" + } + }, + { + "name": "Ruby interpolation punctuation", + "scope": [ + "punctuation.section.embedded" + ], + "settings": { + "foreground": "#fa8d3e" + } + }, + { + "name": "Interpolation text", + "scope": [ + "meta.embedded" + ], + "settings": { + "foreground": "#5c6166" + } + }, + { + "name": "Types fixes", + "scope": [ + "source.java storage.type", + "source.haskell storage.type", + "source.c storage.type" + ], + "settings": { + "foreground": "#399ee6" + } + }, + { + "name": "Inherited class type", + "scope": [ + "entity.other.inherited-class" + ], + "settings": { + "foreground": "#55b4d4" + } + }, + { + "name": "Lambda arrow", + "scope": [ + "storage.type.function" + ], + "settings": { + "foreground": "#fa8d3e" + } + }, + { + "name": "Java primitive variable types", + "scope": [ + "source.java storage.type.primitive" + ], + "settings": { + "foreground": "#55b4d4" + } + }, + { + "name": "Function name", + "scope": [ + "entity.name.function" + ], + "settings": { + "foreground": "#f2ae49" + } + }, + { + "name": "Function arguments", + "scope": [ + "variable.parameter", + "meta.parameter" + ], + "settings": { + "foreground": "#a37acc" + } + }, + { + "name": "Function call", + "scope": [ + "variable.function", + "variable.annotation", + "meta.function-call.generic", + "support.function.go" + ], + "settings": { + "foreground": "#f2ae49" + } + }, + { + "name": "Library function", + "scope": [ + "support.function", + "support.macro" + ], + "settings": { + "foreground": "#f07171" + } + }, + { + "name": "Imports and packages", + "scope": [ + "entity.name.import", + "entity.name.package" + ], + "settings": { + "foreground": "#86b300" + } + }, + { + "name": "Entity name", + "scope": [ + "entity.name" + ], + "settings": { + "foreground": "#399ee6" + } + }, + { + "name": "Tag", + "scope": [ + "entity.name.tag", + "meta.tag.sgml" + ], + "settings": { + "foreground": "#55b4d4" + } + }, + { + "name": "JSX Component", + "scope": [ + "support.class.component" + ], + "settings": { + "foreground": "#399ee6" + } + }, + { + "name": "Tag start/end", + "scope": [ + "punctuation.definition.tag.end", + "punctuation.definition.tag.begin", + "punctuation.definition.tag" + ], + "settings": { + "foreground": "#55b4d480" + } + }, + { + "name": "Tag attribute", + "scope": [ + "entity.other.attribute-name" + ], + "settings": { + "foreground": "#f2ae49" + } + }, + { + "name": "Library constant", + "scope": [ + "support.constant" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#ed9366" + } + }, + { + "name": "Library class/type", + "scope": [ + "support.type", + "support.class", + "source.go storage.type" + ], + "settings": { + "foreground": "#55b4d4" + } + }, + { + "name": "Decorators/annotation", + "scope": [ + "meta.decorator variable.other", + "meta.decorator punctuation.decorator", + "storage.type.annotation" + ], + "settings": { + "foreground": "#e6ba7e" + } + }, + { + "name": "Invalid", + "scope": [ + "invalid" + ], + "settings": { + "foreground": "#e65050" + } + }, + { + "name": "diff.header", + "scope": [ + "meta.diff", + "meta.diff.header" + ], + "settings": { + "foreground": "#c594c5" + } + }, + { + "name": "Ruby class methods", + "scope": [ + "source.ruby variable.other.readwrite" + ], + "settings": { + "foreground": "#f2ae49" + } + }, + { + "name": "CSS tag names", + "scope": [ + "source.css entity.name.tag", + "source.sass entity.name.tag", + "source.scss entity.name.tag", + "source.less entity.name.tag", + "source.stylus entity.name.tag" + ], + "settings": { + "foreground": "#399ee6" + } + }, + { + "name": "CSS browser prefix", + "scope": [ + "source.css support.type", + "source.sass support.type", + "source.scss support.type", + "source.less support.type", + "source.stylus support.type" + ], + "settings": { + "foreground": "#787b8099" + } + }, + { + "name": "CSS Properties", + "scope": [ + "support.type.property-name" + ], + "settings": { + "fontStyle": "normal", + "foreground": "#55b4d4" + } + }, + { + "name": "Search Results Numbers", + "scope": [ + "constant.numeric.line-number.find-in-files - match" + ], + "settings": { + "foreground": "#787b8099" + } + }, + { + "name": "Search Results Match Numbers", + "scope": [ + "constant.numeric.line-number.match" + ], + "settings": { + "foreground": "#fa8d3e" + } + }, + { + "name": "Search Results Lines", + "scope": [ + "entity.name.filename.find-in-files" + ], + "settings": { + "foreground": "#86b300" + } + }, + { + "scope": [ + "message.error" + ], + "settings": { + "foreground": "#e65050" + } + }, + { + "name": "Markup heading", + "scope": [ + "markup.heading", + "markup.heading entity.name" + ], + "settings": { + "fontStyle": "bold", + "foreground": "#86b300" + } + }, + { + "name": "Markup links", + "scope": [ + "markup.underline.link", + "string.other.link" + ], + "settings": { + "foreground": "#55b4d4" + } + }, + { + "name": "Markup Italic", + "scope": [ + "markup.italic" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#f07171" + } + }, + { + "name": "Markup Bold", + "scope": [ + "markup.bold" + ], + "settings": { + "fontStyle": "bold", + "foreground": "#f07171" + } + }, + { + "name": "Markup Bold/italic", + "scope": [ + "markup.italic markup.bold", + "markup.bold markup.italic" + ], + "settings": { + "fontStyle": "bold italic" + } + }, + { + "name": "Markup Code", + "scope": [ + "markup.raw" + ], + "settings": { + "background": "#5c616605" + } + }, + { + "name": "Markup Code Inline", + "scope": [ + "markup.raw.inline" + ], + "settings": { + "background": "#5c61660f" + } + }, + { + "name": "Markdown Separator", + "scope": [ + "meta.separator" + ], + "settings": { + "fontStyle": "bold", + "background": "#5c61660f", + "foreground": "#787b8099" + } + }, + { + "name": "Markup Blockquote", + "scope": [ + "markup.quote" + ], + "settings": { + "foreground": "#4cbf99", + "fontStyle": "italic" + } + }, + { + "name": "Markup List Bullet", + "scope": [ + "markup.list punctuation.definition.list.begin" + ], + "settings": { + "foreground": "#f2ae49" + } + }, + { + "name": "Markup added", + "scope": [ + "markup.inserted" + ], + "settings": { + "foreground": "#6cbf43" + } + }, + { + "name": "Markup modified", + "scope": [ + "markup.changed" + ], + "settings": { + "foreground": "#478acc" + } + }, + { + "name": "Markup removed", + "scope": [ + "markup.deleted" + ], + "settings": { + "foreground": "#ff7383" + } + }, + { + "name": "Markup Strike", + "scope": [ + "markup.strike" + ], + "settings": { + "foreground": "#e6ba7e" + } + }, + { + "name": "Markup Table", + "scope": [ + "markup.table" + ], + "settings": { + "background": "#5c61660f", + "foreground": "#55b4d4" + } + }, + { + "name": "Markup Raw Inline", + "scope": [ + "text.html.markdown markup.inline.raw" + ], + "settings": { + "foreground": "#ed9366" + } + }, + { + "name": "Markdown - Line Break", + "scope": [ + "text.html.markdown meta.dummy.line-break" + ], + "settings": { + "background": "#787b8099", + "foreground": "#787b8099" + } + }, + { + "name": "Markdown - Raw Block Fenced", + "scope": [ + "punctuation.definition.markdown" + ], + "settings": { + "background": "#5c6166", + "foreground": "#787b8099" + } + } + ], + "semanticHighlighting": true, + "semanticTokenColors": { + "parameter.label": "#5c6166" + } +} \ No newline at end of file diff --git a/assets/themes/src/vsc/ayu/ayu-mirage.json b/assets/themes/src/vsc/ayu/ayu-mirage.json new file mode 100644 index 0000000000..7708236829 --- /dev/null +++ b/assets/themes/src/vsc/ayu/ayu-mirage.json @@ -0,0 +1,847 @@ +{ + "type": "dark", + "colors": { + "focusBorder": "#ffcc66b3", + "foreground": "#707a8c", + "widget.shadow": "#12151cb3", + "selection.background": "#409fff40", + "icon.foreground": "#707a8c", + "errorForeground": "#ff6666", + "descriptionForeground": "#707a8c", + "textBlockQuote.background": "#1c212b", + "textLink.foreground": "#ffcc66", + "textLink.activeForeground": "#ffcc66", + "textPreformat.foreground": "#cccac2", + "button.background": "#ffcc66", + "button.foreground": "#805500", + "button.hoverBackground": "#fac761", + "button.secondaryBackground": "#707a8c33", + "button.secondaryForeground": "#cccac2", + "button.secondaryHoverBackground": "#707a8c80", + "dropdown.background": "#242936", + "dropdown.foreground": "#707a8c", + "dropdown.border": "#707a8c45", + "input.background": "#242936", + "input.border": "#707a8c45", + "input.foreground": "#cccac2", + "input.placeholderForeground": "#707a8c80", + "inputOption.activeBorder": "#ffcc664d", + "inputOption.activeBackground": "#ffcc6633", + "inputOption.activeForeground": "#ffcc66", + "inputValidation.errorBackground": "#242936", + "inputValidation.errorBorder": "#ff6666", + "inputValidation.infoBackground": "#1f2430", + "inputValidation.infoBorder": "#5ccfe6", + "inputValidation.warningBackground": "#1f2430", + "inputValidation.warningBorder": "#ffd173", + "scrollbar.shadow": "#171b2400", + "scrollbarSlider.background": "#707a8c66", + "scrollbarSlider.hoverBackground": "#707a8c99", + "scrollbarSlider.activeBackground": "#707a8cb3", + "badge.background": "#ffcc6633", + "badge.foreground": "#ffcc66", + "progressBar.background": "#ffcc66", + "list.activeSelectionBackground": "#63759926", + "list.activeSelectionForeground": "#cccac2", + "list.focusBackground": "#63759926", + "list.focusForeground": "#cccac2", + "list.focusOutline": "#63759926", + "list.highlightForeground": "#ffcc66", + "list.deemphasizedForeground": "#ff6666", + "list.hoverBackground": "#63759926", + "list.inactiveSelectionBackground": "#69758c1f", + "list.inactiveSelectionForeground": "#707a8c", + "list.invalidItemForeground": "#707a8c4d", + "list.errorForeground": "#ff6666", + "tree.indentGuidesStroke": "#8a919959", + "listFilterWidget.background": "#1c212b", + "listFilterWidget.outline": "#ffcc66", + "listFilterWidget.noMatchesOutline": "#ff6666", + "list.filterMatchBackground": "#5c467266", + "list.filterMatchBorder": "#69538066", + "activityBar.background": "#1f2430", + "activityBar.foreground": "#707a8ccc", + "activityBar.inactiveForeground": "#707a8c99", + "activityBar.border": "#1f2430", + "activityBar.activeBorder": "#ffcc66", + "activityBarBadge.background": "#ffcc66", + "activityBarBadge.foreground": "#805500", + "sideBar.background": "#1f2430", + "sideBar.border": "#1f2430", + "sideBarTitle.foreground": "#707a8c", + "sideBarSectionHeader.background": "#1f2430", + "sideBarSectionHeader.foreground": "#707a8c", + "sideBarSectionHeader.border": "#1f2430", + "minimap.background": "#1f2430", + "minimap.selectionHighlight": "#409fff40", + "minimap.errorHighlight": "#ff6666", + "minimap.findMatchHighlight": "#695380", + "minimapGutter.addedBackground": "#87d96c", + "minimapGutter.modifiedBackground": "#80bfff", + "minimapGutter.deletedBackground": "#f27983", + "editorGroup.border": "#171b24", + "editorGroup.background": "#1c212b", + "editorGroupHeader.noTabsBackground": "#1f2430", + "editorGroupHeader.tabsBackground": "#1f2430", + "editorGroupHeader.tabsBorder": "#1f2430", + "tab.activeBackground": "#1f2430", + "tab.activeForeground": "#cccac2", + "tab.border": "#1f2430", + "tab.activeBorder": "#ffcc66", + "tab.unfocusedActiveBorder": "#707a8c", + "tab.inactiveBackground": "#1f2430", + "tab.inactiveForeground": "#707a8c", + "tab.unfocusedActiveForeground": "#707a8c", + "tab.unfocusedInactiveForeground": "#707a8c", + "editor.background": "#1f2430", + "editor.foreground": "#cccac2", + "editorLineNumber.foreground": "#8a919966", + "editorLineNumber.activeForeground": "#8a9199cc", + "editorCursor.foreground": "#ffcc66", + "editor.inactiveSelectionBackground": "#409fff21", + "editor.selectionBackground": "#409fff40", + "editor.selectionHighlightBackground": "#87d96c26", + "editor.selectionHighlightBorder": "#87d96c00", + "editor.wordHighlightBackground": "#80bfff14", + "editor.wordHighlightStrongBackground": "#87d96c14", + "editor.wordHighlightBorder": "#80bfff80", + "editor.wordHighlightStrongBorder": "#87d96c80", + "editor.findMatchBackground": "#695380", + "editor.findMatchBorder": "#695380", + "editor.findMatchHighlightBackground": "#69538066", + "editor.findMatchHighlightBorder": "#5c467266", + "editor.findRangeHighlightBackground": "#69538040", + "editor.rangeHighlightBackground": "#69538033", + "editor.lineHighlightBackground": "#1a1f29", + "editorLink.activeForeground": "#ffcc66", + "editorWhitespace.foreground": "#8a919966", + "editorIndentGuide.background": "#8a91992e", + "editorIndentGuide.activeBackground": "#8a919959", + "editorRuler.foreground": "#8a91992e", + "editorCodeLens.foreground": "#b8cfe680", + "editorBracketMatch.background": "#8a91994d", + "editorBracketMatch.border": "#8a91994d", + "editor.snippetTabstopHighlightBackground": "#87d96c33", + "editorOverviewRuler.border": "#171b24", + "editorOverviewRuler.modifiedForeground": "#80bfff", + "editorOverviewRuler.addedForeground": "#87d96c", + "editorOverviewRuler.deletedForeground": "#f27983", + "editorOverviewRuler.errorForeground": "#ff6666", + "editorOverviewRuler.warningForeground": "#ffcc66", + "editorOverviewRuler.bracketMatchForeground": "#8a9199b3", + "editorOverviewRuler.wordHighlightForeground": "#80bfff66", + "editorOverviewRuler.wordHighlightStrongForeground": "#87d96c66", + "editorOverviewRuler.findMatchForeground": "#695380", + "editorError.foreground": "#ff6666", + "editorWarning.foreground": "#ffcc66", + "editorGutter.modifiedBackground": "#80bfffcc", + "editorGutter.addedBackground": "#87d96ccc", + "editorGutter.deletedBackground": "#f27983cc", + "diffEditor.insertedTextBackground": "#87d96c1f", + "diffEditor.removedTextBackground": "#f279831f", + "diffEditor.diagonalFill": "#171b24", + "editorWidget.background": "#1c212b", + "editorWidget.border": "#171b24", + "editorHoverWidget.background": "#1c212b", + "editorHoverWidget.border": "#171b24", + "editorSuggestWidget.background": "#1c212b", + "editorSuggestWidget.border": "#171b24", + "editorSuggestWidget.highlightForeground": "#ffcc66", + "editorSuggestWidget.selectedBackground": "#63759926", + "debugExceptionWidget.border": "#171b24", + "debugExceptionWidget.background": "#1c212b", + "editorMarkerNavigation.background": "#1c212b", + "peekView.border": "#63759926", + "peekViewTitle.background": "#63759926", + "peekViewTitleDescription.foreground": "#707a8c", + "peekViewTitleLabel.foreground": "#cccac2", + "peekViewEditor.background": "#1c212b", + "peekViewEditor.matchHighlightBackground": "#69538066", + "peekViewEditor.matchHighlightBorder": "#5c467266", + "peekViewResult.background": "#1c212b", + "peekViewResult.fileForeground": "#cccac2", + "peekViewResult.lineForeground": "#707a8c", + "peekViewResult.matchHighlightBackground": "#69538066", + "peekViewResult.selectionBackground": "#63759926", + "panel.background": "#1f2430", + "panel.border": "#171b24", + "panelTitle.activeBorder": "#ffcc66", + "panelTitle.activeForeground": "#cccac2", + "panelTitle.inactiveForeground": "#707a8c", + "statusBar.background": "#1f2430", + "statusBar.foreground": "#707a8c", + "statusBar.border": "#1f2430", + "statusBar.debuggingBackground": "#f29e74", + "statusBar.debuggingForeground": "#242936", + "statusBar.noFolderBackground": "#1c212b", + "statusBarItem.activeBackground": "#707a8c33", + "statusBarItem.hoverBackground": "#707a8c33", + "statusBarItem.prominentBackground": "#171b24", + "statusBarItem.prominentHoverBackground": "#00000030", + "statusBarItem.remoteBackground": "#ffcc66", + "statusBarItem.remoteForeground": "#805500", + "titleBar.activeBackground": "#1f2430", + "titleBar.activeForeground": "#cccac2", + "titleBar.inactiveBackground": "#1f2430", + "titleBar.inactiveForeground": "#707a8c", + "titleBar.border": "#1f2430", + "extensionButton.prominentForeground": "#805500", + "extensionButton.prominentBackground": "#ffcc66", + "extensionButton.prominentHoverBackground": "#fac761", + "pickerGroup.border": "#171b24", + "pickerGroup.foreground": "#707a8c80", + "debugToolBar.background": "#1c212b", + "debugIcon.breakpointForeground": "#f29e74", + "debugIcon.breakpointDisabledForeground": "#f29e7480", + "debugConsoleInputIcon.foreground": "#ffcc66", + "welcomePage.tileBackground": "#1f2430", + "welcomePage.tileShadow": "#12151cb3", + "welcomePage.progress.background": "#1a1f29", + "welcomePage.buttonBackground": "#ffcc6666", + "walkThrough.embeddedEditorBackground": "#1c212b", + "gitDecoration.modifiedResourceForeground": "#80bfffb3", + "gitDecoration.deletedResourceForeground": "#f27983b3", + "gitDecoration.untrackedResourceForeground": "#87d96cb3", + "gitDecoration.ignoredResourceForeground": "#707a8c80", + "gitDecoration.conflictingResourceForeground": "", + "gitDecoration.submoduleResourceForeground": "#dfbfffb3", + "settings.headerForeground": "#cccac2", + "settings.modifiedItemIndicator": "#80bfff", + "keybindingLabel.background": "#707a8c1a", + "keybindingLabel.foreground": "#cccac2", + "keybindingLabel.border": "#cccac21a", + "keybindingLabel.bottomBorder": "#cccac21a", + "terminal.background": "#1f2430", + "terminal.foreground": "#cccac2", + "terminal.ansiBlack": "#171b24", + "terminal.ansiRed": "#ed8274", + "terminal.ansiGreen": "#87d96c", + "terminal.ansiYellow": "#facc6e", + "terminal.ansiBlue": "#6dcbfa", + "terminal.ansiMagenta": "#dabafa", + "terminal.ansiCyan": "#90e1c6", + "terminal.ansiWhite": "#c7c7c7", + "terminal.ansiBrightBlack": "#686868", + "terminal.ansiBrightRed": "#f28779", + "terminal.ansiBrightGreen": "#d5ff80", + "terminal.ansiBrightYellow": "#ffd173", + "terminal.ansiBrightBlue": "#73d0ff", + "terminal.ansiBrightMagenta": "#dfbfff", + "terminal.ansiBrightCyan": "#95e6cb", + "terminal.ansiBrightWhite": "#ffffff" + }, + "tokenColors": [ + { + "settings": { + "background": "#1f2430", + "foreground": "#cccac2" + } + }, + { + "name": "Comment", + "scope": [ + "comment" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#b8cfe680" + } + }, + { + "name": "String", + "scope": [ + "string", + "constant.other.symbol" + ], + "settings": { + "foreground": "#d5ff80" + } + }, + { + "name": "Regular Expressions and Escape Characters", + "scope": [ + "string.regexp", + "constant.character", + "constant.other" + ], + "settings": { + "foreground": "#95e6cb" + } + }, + { + "name": "Number", + "scope": [ + "constant.numeric" + ], + "settings": { + "foreground": "#dfbfff" + } + }, + { + "name": "Built-in constants", + "scope": [ + "constant.language" + ], + "settings": { + "foreground": "#dfbfff" + } + }, + { + "name": "Variable", + "scope": [ + "variable", + "variable.parameter.function-call" + ], + "settings": { + "foreground": "#cccac2" + } + }, + { + "name": "Member Variable", + "scope": [ + "variable.member" + ], + "settings": { + "foreground": "#f28779" + } + }, + { + "name": "Language variable", + "scope": [ + "variable.language" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#5ccfe6" + } + }, + { + "name": "Storage", + "scope": [ + "storage" + ], + "settings": { + "foreground": "#ffad66" + } + }, + { + "name": "Keyword", + "scope": [ + "keyword" + ], + "settings": { + "foreground": "#ffad66" + } + }, + { + "name": "Operators", + "scope": [ + "keyword.operator" + ], + "settings": { + "foreground": "#f29e74" + } + }, + { + "name": "Separators like ; or ,", + "scope": [ + "punctuation.separator", + "punctuation.terminator" + ], + "settings": { + "foreground": "#cccac2b3" + } + }, + { + "name": "Punctuation", + "scope": [ + "punctuation.section" + ], + "settings": { + "foreground": "#cccac2" + } + }, + { + "name": "Accessor", + "scope": [ + "punctuation.accessor" + ], + "settings": { + "foreground": "#f29e74" + } + }, + { + "name": "JavaScript/TypeScript interpolation punctuation", + "scope": [ + "punctuation.definition.template-expression" + ], + "settings": { + "foreground": "#ffad66" + } + }, + { + "name": "Ruby interpolation punctuation", + "scope": [ + "punctuation.section.embedded" + ], + "settings": { + "foreground": "#ffad66" + } + }, + { + "name": "Interpolation text", + "scope": [ + "meta.embedded" + ], + "settings": { + "foreground": "#cccac2" + } + }, + { + "name": "Types fixes", + "scope": [ + "source.java storage.type", + "source.haskell storage.type", + "source.c storage.type" + ], + "settings": { + "foreground": "#73d0ff" + } + }, + { + "name": "Inherited class type", + "scope": [ + "entity.other.inherited-class" + ], + "settings": { + "foreground": "#5ccfe6" + } + }, + { + "name": "Lambda arrow", + "scope": [ + "storage.type.function" + ], + "settings": { + "foreground": "#ffad66" + } + }, + { + "name": "Java primitive variable types", + "scope": [ + "source.java storage.type.primitive" + ], + "settings": { + "foreground": "#5ccfe6" + } + }, + { + "name": "Function name", + "scope": [ + "entity.name.function" + ], + "settings": { + "foreground": "#ffd173" + } + }, + { + "name": "Function arguments", + "scope": [ + "variable.parameter", + "meta.parameter" + ], + "settings": { + "foreground": "#dfbfff" + } + }, + { + "name": "Function call", + "scope": [ + "variable.function", + "variable.annotation", + "meta.function-call.generic", + "support.function.go" + ], + "settings": { + "foreground": "#ffd173" + } + }, + { + "name": "Library function", + "scope": [ + "support.function", + "support.macro" + ], + "settings": { + "foreground": "#f28779" + } + }, + { + "name": "Imports and packages", + "scope": [ + "entity.name.import", + "entity.name.package" + ], + "settings": { + "foreground": "#d5ff80" + } + }, + { + "name": "Entity name", + "scope": [ + "entity.name" + ], + "settings": { + "foreground": "#73d0ff" + } + }, + { + "name": "Tag", + "scope": [ + "entity.name.tag", + "meta.tag.sgml" + ], + "settings": { + "foreground": "#5ccfe6" + } + }, + { + "name": "JSX Component", + "scope": [ + "support.class.component" + ], + "settings": { + "foreground": "#73d0ff" + } + }, + { + "name": "Tag start/end", + "scope": [ + "punctuation.definition.tag.end", + "punctuation.definition.tag.begin", + "punctuation.definition.tag" + ], + "settings": { + "foreground": "#5ccfe680" + } + }, + { + "name": "Tag attribute", + "scope": [ + "entity.other.attribute-name" + ], + "settings": { + "foreground": "#ffd173" + } + }, + { + "name": "Library constant", + "scope": [ + "support.constant" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#f29e74" + } + }, + { + "name": "Library class/type", + "scope": [ + "support.type", + "support.class", + "source.go storage.type" + ], + "settings": { + "foreground": "#5ccfe6" + } + }, + { + "name": "Decorators/annotation", + "scope": [ + "meta.decorator variable.other", + "meta.decorator punctuation.decorator", + "storage.type.annotation" + ], + "settings": { + "foreground": "#ffdfb3" + } + }, + { + "name": "Invalid", + "scope": [ + "invalid" + ], + "settings": { + "foreground": "#ff6666" + } + }, + { + "name": "diff.header", + "scope": [ + "meta.diff", + "meta.diff.header" + ], + "settings": { + "foreground": "#c594c5" + } + }, + { + "name": "Ruby class methods", + "scope": [ + "source.ruby variable.other.readwrite" + ], + "settings": { + "foreground": "#ffd173" + } + }, + { + "name": "CSS tag names", + "scope": [ + "source.css entity.name.tag", + "source.sass entity.name.tag", + "source.scss entity.name.tag", + "source.less entity.name.tag", + "source.stylus entity.name.tag" + ], + "settings": { + "foreground": "#73d0ff" + } + }, + { + "name": "CSS browser prefix", + "scope": [ + "source.css support.type", + "source.sass support.type", + "source.scss support.type", + "source.less support.type", + "source.stylus support.type" + ], + "settings": { + "foreground": "#b8cfe680" + } + }, + { + "name": "CSS Properties", + "scope": [ + "support.type.property-name" + ], + "settings": { + "fontStyle": "normal", + "foreground": "#5ccfe6" + } + }, + { + "name": "Search Results Numbers", + "scope": [ + "constant.numeric.line-number.find-in-files - match" + ], + "settings": { + "foreground": "#b8cfe680" + } + }, + { + "name": "Search Results Match Numbers", + "scope": [ + "constant.numeric.line-number.match" + ], + "settings": { + "foreground": "#ffad66" + } + }, + { + "name": "Search Results Lines", + "scope": [ + "entity.name.filename.find-in-files" + ], + "settings": { + "foreground": "#d5ff80" + } + }, + { + "scope": [ + "message.error" + ], + "settings": { + "foreground": "#ff6666" + } + }, + { + "name": "Markup heading", + "scope": [ + "markup.heading", + "markup.heading entity.name" + ], + "settings": { + "fontStyle": "bold", + "foreground": "#d5ff80" + } + }, + { + "name": "Markup links", + "scope": [ + "markup.underline.link", + "string.other.link" + ], + "settings": { + "foreground": "#5ccfe6" + } + }, + { + "name": "Markup Italic", + "scope": [ + "markup.italic" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#f28779" + } + }, + { + "name": "Markup Bold", + "scope": [ + "markup.bold" + ], + "settings": { + "fontStyle": "bold", + "foreground": "#f28779" + } + }, + { + "name": "Markup Bold/italic", + "scope": [ + "markup.italic markup.bold", + "markup.bold markup.italic" + ], + "settings": { + "fontStyle": "bold italic" + } + }, + { + "name": "Markup Code", + "scope": [ + "markup.raw" + ], + "settings": { + "background": "#cccac205" + } + }, + { + "name": "Markup Code Inline", + "scope": [ + "markup.raw.inline" + ], + "settings": { + "background": "#cccac20f" + } + }, + { + "name": "Markdown Separator", + "scope": [ + "meta.separator" + ], + "settings": { + "fontStyle": "bold", + "background": "#cccac20f", + "foreground": "#b8cfe680" + } + }, + { + "name": "Markup Blockquote", + "scope": [ + "markup.quote" + ], + "settings": { + "foreground": "#95e6cb", + "fontStyle": "italic" + } + }, + { + "name": "Markup List Bullet", + "scope": [ + "markup.list punctuation.definition.list.begin" + ], + "settings": { + "foreground": "#ffd173" + } + }, + { + "name": "Markup added", + "scope": [ + "markup.inserted" + ], + "settings": { + "foreground": "#87d96c" + } + }, + { + "name": "Markup modified", + "scope": [ + "markup.changed" + ], + "settings": { + "foreground": "#80bfff" + } + }, + { + "name": "Markup removed", + "scope": [ + "markup.deleted" + ], + "settings": { + "foreground": "#f27983" + } + }, + { + "name": "Markup Strike", + "scope": [ + "markup.strike" + ], + "settings": { + "foreground": "#ffdfb3" + } + }, + { + "name": "Markup Table", + "scope": [ + "markup.table" + ], + "settings": { + "background": "#cccac20f", + "foreground": "#5ccfe6" + } + }, + { + "name": "Markup Raw Inline", + "scope": [ + "text.html.markdown markup.inline.raw" + ], + "settings": { + "foreground": "#f29e74" + } + }, + { + "name": "Markdown - Line Break", + "scope": [ + "text.html.markdown meta.dummy.line-break" + ], + "settings": { + "background": "#b8cfe680", + "foreground": "#b8cfe680" + } + }, + { + "name": "Markdown - Raw Block Fenced", + "scope": [ + "punctuation.definition.markdown" + ], + "settings": { + "background": "#cccac2", + "foreground": "#b8cfe680" + } + } + ], + "semanticHighlighting": true, + "semanticTokenColors": { + "parameter.label": "#cccac2" + } +} \ No newline at end of file diff --git a/assets/themes/src/vsc/ayu/family.json b/assets/themes/src/vsc/ayu/family.json new file mode 100644 index 0000000000..8c0d0c5c55 --- /dev/null +++ b/assets/themes/src/vsc/ayu/family.json @@ -0,0 +1,18 @@ +{ + "name": "Ayu", + "author": "dempfi (Ike Ku)", + "themes": [ + { + "name": "Ayu Light", + "appearance": "light" + }, + { + "name": "Ayu Mirage", + "appearance": "dark" + }, + { + "name": "Ayu Dark", + "appearance": "dark" + } + ] +} diff --git a/assets/themes/src/vsc/dracula/family.json b/assets/themes/src/vsc/dracula/family.json new file mode 100644 index 0000000000..50d5940a7b --- /dev/null +++ b/assets/themes/src/vsc/dracula/family.json @@ -0,0 +1,10 @@ +{ + "name": "Dracula", + "author": "Zeno Rocha", + "themes": [ + { + "name": "Dracula", + "appearance": "dark" + } + ] +} diff --git a/crates/theme2/src/import.rs b/crates/theme2/src/import.rs deleted file mode 100644 index 6fe1fc705b..0000000000 --- a/crates/theme2/src/import.rs +++ /dev/null @@ -1,471 +0,0 @@ -use serde::Deserialize; - -#[derive(Deserialize, Debug)] -pub struct Theme { - #[serde(rename = "$schema")] - pub schema: String, - pub name: String, - pub author: String, - pub maintainers: Vec, - #[serde(rename = "semanticClass")] - pub semantic_class: String, - #[serde(rename = "semanticHighlighting")] - pub semantic_highlighting: bool, - // pub colors: VSCodeColors, -} - -#[derive(Debug, Deserialize)] -pub struct VSCodeColors { - #[serde(rename = "editor_foreground")] - text: String, - #[serde(rename = "editor")] - editor_background: String, -} - -#[cfg(test)] -mod tests { - use super::*; - use std::path::PathBuf; - - #[test] - fn test_deserialize_dracula() { - let manifest_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR")); - let root_dir = manifest_dir.parent().unwrap().parent().unwrap(); - - let mut d = root_dir.to_path_buf(); - d.push("assets/themes/src/vsc/dracula/dracula.json"); - - let data = std::fs::read_to_string(d).expect("Unable to read file"); - - let result: Theme = serde_json::from_str(&data).unwrap(); - println!("{:#?}", result); - - // Uncomment the following lines to print specific fields - println!("Name: {:?}", result.name); - println!("Author: {:?}", result.author); - } -} - -// #[derive(Debug, Deserialize)] -// pub struct VSCodeColors { -// #[serde(rename = "vsc_terminal_background")] -// terminal_background: String, -// #[serde(rename = "vsc_terminal_foreground")] -// terminal_foreground: String, -// #[serde(rename = "vsc_terminal_ansi_bright_black")] -// terminal_ansi_bright_black: String, -// #[serde(rename = "vsc_terminal_ansi_bright_red")] -// terminal_ansi_bright_red: String, -// #[serde(rename = "vsc_terminal_ansi_bright_green")] -// terminal_ansi_bright_green: String, -// #[serde(rename = "vsc_terminal_ansi_bright_yellow")] -// terminal_ansi_bright_yellow: String, -// #[serde(rename = "vsc_terminal_ansi_bright_blue")] -// terminal_ansi_bright_blue: String, -// #[serde(rename = "vsc_terminal_ansi_bright_magenta")] -// terminal_ansi_bright_magenta: String, -// #[serde(rename = "vsc_terminal_ansi_bright_cyan")] -// terminal_ansi_bright_cyan: String, -// #[serde(rename = "vsc_terminal_ansi_bright_white")] -// terminal_ansi_bright_white: String, -// #[serde(rename = "vsc_terminal_ansi_black")] -// terminal_ansi_black: String, -// #[serde(rename = "vsc_terminal_ansi_red")] -// terminal_ansi_red: String, -// #[serde(rename = "vsc_terminal_ansi_green")] -// terminal_ansi_green: String, -// #[serde(rename = "vsc_terminal_ansi_yellow")] -// terminal_ansi_yellow: String, -// #[serde(rename = "vsc_terminal_ansi_blue")] -// terminal_ansi_blue: String, -// #[serde(rename = "vsc_terminal_ansi_magenta")] -// terminal_ansi_magenta: String, -// #[serde(rename = "vsc_terminal_ansi_cyan")] -// terminal_ansi_cyan: String, -// #[serde(rename = "vsc_terminal_ansi_white")] -// terminal_ansi_white: String, -// #[serde(rename = "vsc_focus_border")] -// focus_border: String, -// #[serde(rename = "vsc_foreground")] -// foreground: String, -// #[serde(rename = "vsc_selection_background")] -// selection_background: String, -// #[serde(rename = "vsc_error_foreground")] -// error_foreground: String, -// #[serde(rename = "vsc_button_background")] -// button_background: String, -// #[serde(rename = "vsc_button_foreground")] -// button_foreground: String, -// #[serde(rename = "vsc_button_secondary_background")] -// button_secondary_background: String, -// #[serde(rename = "vsc_button_secondary_foreground")] -// button_secondary_foreground: String, -// #[serde(rename = "vsc_button_secondary_hover_background")] -// button_secondary_hover_background: String, -// #[serde(rename = "vsc_dropdown_background")] -// dropdown_background: String, -// #[serde(rename = "vsc_dropdown_border")] -// dropdown_border: String, -// #[serde(rename = "vsc_dropdown_foreground")] -// dropdown_foreground: String, -// #[serde(rename = "vsc_input_background")] -// input_background: String, -// #[serde(rename = "vsc_input_foreground")] -// input_foreground: String, -// #[serde(rename = "vsc_input_border")] -// input_border: String, -// #[serde(rename = "vsc_input_placeholder_foreground")] -// input_placeholder_foreground: String, -// #[serde(rename = "vsc_input_option_active_border")] -// input_option_active_border: String, -// #[serde(rename = "vsc_input_validation_info_border")] -// input_validation_info_border: String, -// #[serde(rename = "vsc_input_validation_warning_border")] -// input_validation_warning_border: String, -// #[serde(rename = "vsc_input_validation_error_border")] -// input_validation_error_border: String, -// #[serde(rename = "vsc_badge_foreground")] -// badge_foreground: String, -// #[serde(rename = "vsc_badge_background")] -// badge_background: String, -// #[serde(rename = "vsc_progress_bar_background")] -// progress_bar_background: String, -// #[serde(rename = "vsc_list_active_selection_background")] -// list_active_selection_background: String, -// #[serde(rename = "vsc_list_active_selection_foreground")] -// list_active_selection_foreground: String, -// #[serde(rename = "vsc_list_drop_background")] -// list_drop_background: String, -// #[serde(rename = "vsc_list_focus_background")] -// list_focus_background: String, -// #[serde(rename = "vsc_list_highlight_foreground")] -// list_highlight_foreground: String, -// #[serde(rename = "vsc_list_hover_background")] -// list_hover_background: String, -// #[serde(rename = "vsc_list_inactive_selection_background")] -// list_inactive_selection_background: String, -// #[serde(rename = "vsc_list_warning_foreground")] -// list_warning_foreground: String, -// #[serde(rename = "vsc_list_error_foreground")] -// list_error_foreground: String, -// #[serde(rename = "vsc_activity_bar_background")] -// activity_bar_background: String, -// #[serde(rename = "vsc_activity_bar_inactive_foreground")] -// activity_bar_inactive_foreground: String, -// #[serde(rename = "vsc_activity_bar_foreground")] -// activity_bar_foreground: String, -// #[serde(rename = "vsc_activity_bar_active_border")] -// activity_bar_active_border: String, -// #[serde(rename = "vsc_activity_bar_active_background")] -// activity_bar_active_background: String, -// #[serde(rename = "vsc_activity_bar_badge_background")] -// activity_bar_badge_background: String, -// #[serde(rename = "vsc_activity_bar_badge_foreground")] -// activity_bar_badge_foreground: String, -// #[serde(rename = "vsc_side_bar_background")] -// side_bar_background: String, -// #[serde(rename = "vsc_side_bar_title_foreground")] -// side_bar_title_foreground: String, -// #[serde(rename = "vsc_side_bar_section_header_background")] -// side_bar_section_header_background: String, -// #[serde(rename = "vsc_side_bar_section_header_border")] -// side_bar_section_header_border: String, -// #[serde(rename = "vsc_editor_group_border")] -// editor_group_border: String, -// #[serde(rename = "vsc_editor_group_drop_background")] -// editor_group_drop_background: String, -// #[serde(rename = "vsc_editor_group_header_tabs_background")] -// editor_group_header_tabs_background: String, -// #[serde(rename = "vsc_tab_active_background")] -// tab_active_background: String, -// #[serde(rename = "vsc_tab_active_foreground")] -// tab_active_foreground: String, -// #[serde(rename = "vsc_tab_border")] -// tab_border: String, -// #[serde(rename = "vsc_tab_active_border_top")] -// tab_active_border_top: String, -// #[serde(rename = "vsc_tab_inactive_background")] -// tab_inactive_background: String, -// #[serde(rename = "vsc_tab_inactive_foreground")] -// tab_inactive_foreground: String, -// #[serde(rename = "vsc_editor_foreground")] -// editor_foreground: String, -// #[serde(rename = "vsc_editor_background")] -// editor_background: String, -// #[serde(rename = "vsc_editor_line_number_foreground")] -// editor_line_number_foreground: String, -// #[serde(rename = "vsc_editor_selection_background")] -// editor_selection_background: String, -// #[serde(rename = "vsc_editor_selection_highlight_background")] -// editor_selection_highlight_background: String, -// #[serde(rename = "vsc_editor_fold_background")] -// editor_fold_background: String, -// #[serde(rename = "vsc_editor_word_highlight_background")] -// editor_word_highlight_background: String, -// #[serde(rename = "vsc_editor_word_highlight_strong_background")] -// editor_word_highlight_strong_background: String, -// #[serde(rename = "vsc_editor_find_match_background")] -// editor_find_match_background: String, -// #[serde(rename = "vsc_editor_find_match_highlight_background")] -// editor_find_match_highlight_background: String, -// #[serde(rename = "vsc_editor_find_range_highlight_background")] -// editor_find_range_highlight_background: String, -// #[serde(rename = "vsc_editor_hover_highlight_background")] -// editor_hover_highlight_background: String, -// #[serde(rename = "vsc_editor_line_highlight_border")] -// editor_line_highlight_border: String, -// #[serde(rename = "vsc_editor_link_active_foreground")] -// editor_link_active_foreground: String, -// #[serde(rename = "vsc_editor_range_highlight_background")] -// editor_range_highlight_background: String, -// #[serde(rename = "vsc_editor_snippet_tabstop_highlight_background")] -// editor_snippet_tabstop_highlight_background: String, -// #[serde(rename = "vsc_editor_snippet_tabstop_highlight_border")] -// editor_snippet_tabstop_highlight_border: String, -// #[serde(rename = "vsc_editor_snippet_final_tabstop_highlight_background")] -// editor_snippet_final_tabstop_highlight_background: String, -// #[serde(rename = "vsc_editor_snippet_final_tabstop_highlight_border")] -// editor_snippet_final_tabstop_highlight_border: String, -// #[serde(rename = "vsc_editor_whitespace_foreground")] -// editor_whitespace_foreground: String, -// #[serde(rename = "vsc_editor_indent_guide_background")] -// editor_indent_guide_background: String, -// #[serde(rename = "vsc_editor_indent_guide_active_background")] -// editor_indent_guide_active_background: String, -// #[serde(rename = "vsc_editor_ruler_foreground")] -// editor_ruler_foreground: String, -// #[serde(rename = "vsc_editor_code_lens_foreground")] -// editor_code_lens_foreground: String, -// #[serde(rename = "vsc_editor_bracket_highlight_foreground1")] -// editor_bracket_highlight_foreground1: String, -// #[serde(rename = "vsc_editor_bracket_highlight_foreground2")] -// editor_bracket_highlight_foreground2: String, -// #[serde(rename = "vsc_editor_bracket_highlight_foreground3")] -// editor_bracket_highlight_foreground3: String, -// #[serde(rename = "vsc_editor_bracket_highlight_foreground4")] -// editor_bracket_highlight_foreground4: String, -// #[serde(rename = "vsc_editor_bracket_highlight_foreground5")] -// editor_bracket_highlight_foreground5: String, -// #[serde(rename = "vsc_editor_bracket_highlight_foreground6")] -// editor_bracket_highlight_foreground6: String, -// #[serde(rename = "vsc_editor_bracket_highlight_unexpected_bracket_foreground")] -// editor_bracket_highlight_unexpected_bracket_foreground: String, -// #[serde(rename = "vsc_editor_overview_ruler_border")] -// editor_overview_ruler_border: String, -// #[serde(rename = "vsc_editor_overview_ruler_selection_highlight_foreground")] -// editor_overview_ruler_selection_highlight_foreground: String, -// #[serde(rename = "vsc_editor_overview_ruler_word_highlight_foreground")] -// editor_overview_ruler_word_highlight_foreground: String, -// #[serde(rename = "vsc_editor_overview_ruler_word_highlight_strong_foreground")] -// editor_overview_ruler_word_highlight_strong_foreground: String, -// #[serde(rename = "vsc_editor_overview_ruler_modified_foreground")] -// editor_overview_ruler_modified_foreground: String, -// #[serde(rename = "vsc_editor_overview_ruler_added_foreground")] -// editor_overview_ruler_added_foreground: String, -// #[serde(rename = "vsc_editor_overview_ruler_deleted_foreground")] -// editor_overview_ruler_deleted_foreground: String, -// #[serde(rename = "vsc_editor_overview_ruler_error_foreground")] -// editor_overview_ruler_error_foreground: String, -// #[serde(rename = "vsc_editor_overview_ruler_warning_foreground")] -// editor_overview_ruler_warning_foreground: String, -// #[serde(rename = "vsc_editor_overview_ruler_info_foreground")] -// editor_overview_ruler_info_foreground: String, -// #[serde(rename = "vsc_editor_error_foreground")] -// editor_error_foreground: String, -// #[serde(rename = "vsc_editor_warning_foreground")] -// editor_warning_foreground: String, -// #[serde(rename = "vsc_editor_gutter_modified_background")] -// editor_gutter_modified_background: String, -// #[serde(rename = "vsc_editor_gutter_added_background")] -// editor_gutter_added_background: String, -// #[serde(rename = "vsc_editor_gutter_deleted_background")] -// editor_gutter_deleted_background: String, -// #[serde(rename = "vsc_git_decoration_modified_resource_foreground")] -// git_decoration_modified_resource_foreground: String, -// #[serde(rename = "vsc_git_decoration_deleted_resource_foreground")] -// git_decoration_deleted_resource_foreground: String, -// #[serde(rename = "vsc_git_decoration_untracked_resource_foreground")] -// git_decoration_untracked_resource_foreground: String, -// #[serde(rename = "vsc_git_decoration_ignored_resource_foreground")] -// git_decoration_ignored_resource_foreground: String, -// #[serde(rename = "vsc_git_decoration_conflicting_resource_foreground")] -// git_decoration_conflicting_resource_foreground: String, -// #[serde(rename = "vsc_diff_editor_inserted_text_background")] -// diff_editor_inserted_text_background: String, -// #[serde(rename = "vsc_diff_editor_removed_text_background")] -// diff_editor_removed_text_background: String, -// #[serde(rename = "vsc_inline_chat_region_highlight")] -// inline_chat_region_highlight: String, -// #[serde(rename = "vsc_editor_widget_background")] -// editor_widget_background: String, -// #[serde(rename = "vsc_editor_suggest_widget_background")] -// editor_suggest_widget_background: String, -// #[serde(rename = "vsc_editor_suggest_widget_foreground")] -// editor_suggest_widget_foreground: String, -// #[serde(rename = "vsc_editor_suggest_widget_selected_background")] -// editor_suggest_widget_selected_background: String, -// #[serde(rename = "vsc_editor_hover_widget_background")] -// editor_hover_widget_background: String, -// #[serde(rename = "vsc_editor_hover_widget_border")] -// editor_hover_widget_border: String, -// #[serde(rename = "vsc_editor_marker_navigation_background")] -// editor_marker_navigation_background: String, -// #[serde(rename = "vsc_peek_view_border")] -// peek_view_border: String, -// #[serde(rename = "vsc_peek_view_editor_background")] -// peek_view_editor_background: String, -// #[serde(rename = "vsc_peek_view_editor_match_highlight_background")] -// peek_view_editor_match_highlight_background: String, -// #[serde(rename = "vsc_peek_view_result_background")] -// peek_view_result_background: String, -// #[serde(rename = "vsc_peek_view_result_file_foreground")] -// peek_view_result_file_foreground: String, -// #[serde(rename = "vsc_peek_view_result_line_foreground")] -// peek_view_result_line_foreground: String, -// #[serde(rename = "vsc_peek_view_result_match_highlight_background")] -// peek_view_result_match_highlight_background: String, -// #[serde(rename = "vsc_peek_view_result_selection_background")] -// peek_view_result_selection_background: String, -// #[serde(rename = "vsc_peek_view_result_selection_foreground")] -// peek_view_result_selection_foreground: String, -// #[serde(rename = "vsc_peek_view_title_background")] -// peek_view_title_background: String, -// #[serde(rename = "vsc_peek_view_title_description_foreground")] -// peek_view_title_description_foreground: String, -// #[serde(rename = "vsc_peek_view_title_label_foreground")] -// peek_view_title_label_foreground: String, -// #[serde(rename = "vsc_merge_current_header_background")] -// merge_current_header_background: String, -// #[serde(rename = "vsc_merge_incoming_header_background")] -// merge_incoming_header_background: String, -// #[serde(rename = "vsc_editor_overview_ruler_current_content_foreground")] -// editor_overview_ruler_current_content_foreground: String, -// #[serde(rename = "vsc_editor_overview_ruler_incoming_content_foreground")] -// editor_overview_ruler_incoming_content_foreground: String, -// #[serde(rename = "vsc_panel_background")] -// panel_background: String, -// #[serde(rename = "vsc_panel_border")] -// panel_border: String, -// #[serde(rename = "vsc_panel_title_active_border")] -// panel_title_active_border: String, -// #[serde(rename = "vsc_panel_title_active_foreground")] -// panel_title_active_foreground: String, -// #[serde(rename = "vsc_panel_title_inactive_foreground")] -// panel_title_inactive_foreground: String, -// #[serde(rename = "vsc_status_bar_background")] -// status_bar_background: String, -// #[serde(rename = "vsc_status_bar_foreground")] -// status_bar_foreground: String, -// #[serde(rename = "vsc_status_bar_debugging_background")] -// status_bar_debugging_background: String, -// #[serde(rename = "vsc_status_bar_debugging_foreground")] -// status_bar_debugging_foreground: String, -// #[serde(rename = "vsc_status_bar_no_folder_background")] -// status_bar_no_folder_background: String, -// #[serde(rename = "vsc_status_bar_no_folder_foreground")] -// status_bar_no_folder_foreground: String, -// #[serde(rename = "vsc_status_bar_item_prominent_background")] -// status_bar_item_prominent_background: String, -// #[serde(rename = "vsc_status_bar_item_prominent_hover_background")] -// status_bar_item_prominent_hover_background: String, -// #[serde(rename = "vsc_status_bar_item_remote_foreground")] -// status_bar_item_remote_foreground: String, -// #[serde(rename = "vsc_status_bar_item_remote_background")] -// status_bar_item_remote_background: String, -// #[serde(rename = "vsc_title_bar_active_background")] -// title_bar_active_background: String, -// #[serde(rename = "vsc_title_bar_active_foreground")] -// title_bar_active_foreground: String, -// #[serde(rename = "vsc_title_bar_inactive_background")] -// title_bar_inactive_background: String, -// #[serde(rename = "vsc_title_bar_inactive_foreground")] -// title_bar_inactive_foreground: String, -// #[serde(rename = "vsc_extension_button_prominent_foreground")] -// extension_button_prominent_foreground: String, -// #[serde(rename = "vsc_extension_button_prominent_background")] -// extension_button_prominent_background: String, -// #[serde(rename = "vsc_extension_button_prominent_hover_background")] -// extension_button_prominent_hover_background: String, -// #[serde(rename = "vsc_picker_group_border")] -// picker_group_border: String, -// #[serde(rename = "vsc_picker_group_foreground")] -// picker_group_foreground: String, -// #[serde(rename = "vsc_debug_tool_bar_background")] -// debug_tool_bar_background: String, -// #[serde(rename = "vsc_walk_through_embedded_editor_background")] -// walk_through_embedded_editor_background: String, -// #[serde(rename = "vsc_settings_header_foreground")] -// settings_header_foreground: String, -// #[serde(rename = "vsc_settings_modified_item_indicator")] -// settings_modified_item_indicator: String, -// #[serde(rename = "vsc_settings_dropdown_background")] -// settings_dropdown_background: String, -// #[serde(rename = "vsc_settings_dropdown_foreground")] -// settings_dropdown_foreground: String, -// #[serde(rename = "vsc_settings_dropdown_border")] -// settings_dropdown_border: String, -// #[serde(rename = "vsc_settings_checkbox_background")] -// settings_checkbox_background: String, -// #[serde(rename = "vsc_settings_checkbox_foreground")] -// settings_checkbox_foreground: String, -// #[serde(rename = "vsc_settings_checkbox_border")] -// settings_checkbox_border: String, -// #[serde(rename = "vsc_settings_text_input_background")] -// settings_text_input_background: String, -// #[serde(rename = "vsc_settings_text_input_foreground")] -// settings_text_input_foreground: String, -// #[serde(rename = "vsc_settings_text_input_border")] -// settings_text_input_border: String, -// #[serde(rename = "vsc_settings_number_input_background")] -// settings_number_input_background: String, -// #[serde(rename = "vsc_settings_number_input_foreground")] -// settings_number_input_foreground: String, -// #[serde(rename = "vsc_settings_number_input_border")] -// settings_number_input_border: String, -// #[serde(rename = "vsc_breadcrumb_foreground")] -// breadcrumb_foreground: String, -// #[serde(rename = "vsc_breadcrumb_background")] -// breadcrumb_background: String, -// #[serde(rename = "vsc_breadcrumb_focus_foreground")] -// breadcrumb_focus_foreground: String, -// #[serde(rename = "vsc_breadcrumb_active_selection_foreground")] -// breadcrumb_active_selection_foreground: String, -// #[serde(rename = "vsc_breadcrumb_picker_background")] -// breadcrumb_picker_background: String, -// #[serde(rename = "vsc_list_filter_widget_background")] -// list_filter_widget_background: String, -// #[serde(rename = "vsc_list_filter_widget_outline")] -// list_filter_widget_outline: String, -// #[serde(rename = "vsc_list_filter_widget_no_matches_outline")] -// list_filter_widget_no_matches_outline: String, -// } - -// use crate::ThemeColorsRefinement; - -// struct ImportedThemeFamily { -// pub id: String, -// pub name: String, -// pub author: String, -// pub url: String, -// pub license: String, -// pub themes: Vec, -// } - -// struct ImportedThemeVariant { -// pub id: String, -// pub name: String, -// pub colors: ThemeColorsRefinement, -// } - -// pub fn try_vscode_colors_to_theme_colors(colors: VSCodeColors) -> ThemeColorsRefinement { -// let mut theme_colors = ThemeColorsRefinement::default(); - -// theme_colors -// } - -// pub fn vscode_colors_to_theme_colors(color: String) -> ThemeColorsRefinement { -// ThemeColorsRefinement { -// text: Some(color), -// ..Default::default() -// } -// } diff --git a/crates/theme2/src/theme2.rs b/crates/theme2/src/theme2.rs index 431a96c05f..0aa3542a77 100644 --- a/crates/theme2/src/theme2.rs +++ b/crates/theme2/src/theme2.rs @@ -1,7 +1,6 @@ mod colors; mod default_colors; mod default_theme; -mod import; mod registry; mod scale; mod settings; @@ -40,8 +39,7 @@ impl ActiveTheme for AppContext { } pub struct ThemeFamily { - #[allow(dead_code)] - pub(crate) id: String, + pub id: String, pub name: SharedString, pub author: SharedString, pub themes: Vec, diff --git a/crates/theme_importer/Cargo.toml b/crates/theme_importer/Cargo.toml new file mode 100644 index 0000000000..443cc2e50b --- /dev/null +++ b/crates/theme_importer/Cargo.toml @@ -0,0 +1,17 @@ +[package] +name = "theme_importer" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +anyhow.workspace = true +convert_case = "0.6.0" +gpui = { package = "gpui2", path = "../gpui2" } +log.workspace = true +rust-embed.workspace = true +serde.workspace = true +simplelog = "0.9" +theme = { package = "theme2", path = "../theme2" } +uuid.workspace = true diff --git a/crates/theme_importer/src/main.rs b/crates/theme_importer/src/main.rs new file mode 100644 index 0000000000..82e2105e0c --- /dev/null +++ b/crates/theme_importer/src/main.rs @@ -0,0 +1,142 @@ +use std::path::PathBuf; +use std::str::FromStr; +use std::{borrow::Cow, fs::File}; + +use anyhow::{anyhow, Context, Result}; +use convert_case::Case; +use gpui::{AssetSource, SharedString}; +use log::LevelFilter; +use rust_embed::RustEmbed; +use serde::Deserialize; +use simplelog::SimpleLogger; +use theme::{default_color_scales, ThemeColorsRefinement, ThemeFamily}; + +mod vscode; + +pub(crate) fn new_theme_family(name: String, author: String) -> ThemeFamily { + ThemeFamily { + id: uuid::Uuid::new_v4().to_string(), + name: name.into(), + author: author.into(), + themes: Vec::new(), + scales: default_color_scales(), + } +} + +#[derive(Deserialize)] +struct FamilyJson { + pub name: String, + pub themes: Vec, +} + +#[derive(Deserialize)] +#[serde(rename_all = "snake_case")] +enum ThemeAppearanceJson { + Light, + Dark, +} + +#[derive(Deserialize)] +struct ThemeVariantJson { + pub name: String, + pub appearance: ThemeAppearanceJson, +} + +struct ImportedThemeFamily { + pub id: String, + pub name: String, + pub author: String, + pub url: Option, + // App should panic if we try to load a theme without a lisence + pub license: String, + pub themes: Vec, +} + +struct ImportedThemeVariant { + pub id: String, + pub name: String, + pub colors: ThemeColorsRefinement, +} + +// Load a vscode theme from json +// Load it's LICENSE from the same folder +// Create a ThemeFamily for the theme +// Create a ThemeVariant or Variants for the theme +// Output a rust file with the ThemeFamily and ThemeVariant(s) in it + +fn main() -> Result<()> { + SimpleLogger::init(LevelFilter::Info, Default::default()).expect("could not initialize logger"); + + let themes_path = PathBuf::from_str("crates/theme2/src/themes")?; + + let mut theme_modules = Vec::new(); + + for theme_path in Assets.list("themes/src/vsc/")? { + let (_, theme_name) = theme_path.split_once("themes/").unwrap(); + + if theme_name == ".gitkeep" { + continue; + } + + let theme_contents = Assets::get(&theme_path) + .with_context(|| format!("theme file not found: '{theme_path}'"))?; + + // let json_theme: JsonTheme = + // serde_json::from_str(std::str::from_utf8(&theme_contents.data)?) + // .context("failed to parse legacy theme")?; + + // let (json_theme, legacy_theme) = load_theme(&theme_path)?; + + // let theme = convert_theme(json_theme, legacy_theme)?; + + // let theme_slug = theme + // .metadata + // .name + // .as_ref() + // .replace("é", "e") + // .to_case(Case::Snake); + + // let mut output_file = File::create(themes_path.join(format!("{theme_slug}.rs")))?; + + // let theme_module = format!( + // r#" + // use gpui2::rgba; + + // use crate::{{PlayerTheme, SyntaxTheme, Theme, ThemeMetadata}}; + + // pub fn {theme_slug}() -> Theme {{ + // {theme_definition} + // }} + // "#, + // theme_definition = format!("{:#?}", ThemePrinter::new(theme)) + // ); + + // output_file.write_all(theme_module.as_bytes())?; + + theme_modules.push(theme_slug); + } + + println!("Hello, world!"); + + Ok(()) +} + +#[derive(RustEmbed)] +#[folder = "../../assets"] +#[include = "themes/**/*"] +pub struct Assets; + +impl AssetSource for Assets { + fn load(&self, path: &str) -> Result> { + Self::get(path) + .map(|f| f.data) + .ok_or_else(|| anyhow!("could not find asset at path \"{}\"", path)) + } + + fn list(&self, path: &str) -> Result> { + Ok(Self::iter() + .filter(|p| p.starts_with(path)) + .map(SharedString::from) + .collect()) + } +} diff --git a/crates/theme_importer/src/temp.rs b/crates/theme_importer/src/temp.rs new file mode 100644 index 0000000000..5536a1984b --- /dev/null +++ b/crates/theme_importer/src/temp.rs @@ -0,0 +1,393 @@ +#[derive(Debug, Deserialize)] +struct VSCodeColorsOld { + #[serde(rename = "vsc_terminal_background")] + terminal_background: String, + #[serde(rename = "vsc_terminal_foreground")] + terminal_foreground: String, + #[serde(rename = "vsc_terminal_ansi_bright_black")] + terminal_ansi_bright_black: String, + #[serde(rename = "vsc_terminal_ansi_bright_red")] + terminal_ansi_bright_red: String, + #[serde(rename = "vsc_terminal_ansi_bright_green")] + terminal_ansi_bright_green: String, + #[serde(rename = "vsc_terminal_ansi_bright_yellow")] + terminal_ansi_bright_yellow: String, + #[serde(rename = "vsc_terminal_ansi_bright_blue")] + terminal_ansi_bright_blue: String, + #[serde(rename = "vsc_terminal_ansi_bright_magenta")] + terminal_ansi_bright_magenta: String, + #[serde(rename = "vsc_terminal_ansi_bright_cyan")] + terminal_ansi_bright_cyan: String, + #[serde(rename = "vsc_terminal_ansi_bright_white")] + terminal_ansi_bright_white: String, + #[serde(rename = "vsc_terminal_ansi_black")] + terminal_ansi_black: String, + #[serde(rename = "vsc_terminal_ansi_red")] + terminal_ansi_red: String, + #[serde(rename = "vsc_terminal_ansi_green")] + terminal_ansi_green: String, + #[serde(rename = "vsc_terminal_ansi_yellow")] + terminal_ansi_yellow: String, + #[serde(rename = "vsc_terminal_ansi_blue")] + terminal_ansi_blue: String, + #[serde(rename = "vsc_terminal_ansi_magenta")] + terminal_ansi_magenta: String, + #[serde(rename = "vsc_terminal_ansi_cyan")] + terminal_ansi_cyan: String, + #[serde(rename = "vsc_terminal_ansi_white")] + terminal_ansi_white: String, + #[serde(rename = "vsc_focus_border")] + focus_border: String, + #[serde(rename = "vsc_foreground")] + foreground: String, + #[serde(rename = "vsc_selection_background")] + selection_background: String, + #[serde(rename = "vsc_error_foreground")] + error_foreground: String, + #[serde(rename = "vsc_button_background")] + button_background: String, + #[serde(rename = "vsc_button_foreground")] + button_foreground: String, + #[serde(rename = "vsc_button_secondary_background")] + button_secondary_background: String, + #[serde(rename = "vsc_button_secondary_foreground")] + button_secondary_foreground: String, + #[serde(rename = "vsc_button_secondary_hover_background")] + button_secondary_hover_background: String, + #[serde(rename = "vsc_dropdown_background")] + dropdown_background: String, + #[serde(rename = "vsc_dropdown_border")] + dropdown_border: String, + #[serde(rename = "vsc_dropdown_foreground")] + dropdown_foreground: String, + #[serde(rename = "vsc_input_background")] + input_background: String, + #[serde(rename = "vsc_input_foreground")] + input_foreground: String, + #[serde(rename = "vsc_input_border")] + input_border: String, + #[serde(rename = "vsc_input_placeholder_foreground")] + input_placeholder_foreground: String, + #[serde(rename = "vsc_input_option_active_border")] + input_option_active_border: String, + #[serde(rename = "vsc_input_validation_info_border")] + input_validation_info_border: String, + #[serde(rename = "vsc_input_validation_warning_border")] + input_validation_warning_border: String, + #[serde(rename = "vsc_input_validation_error_border")] + input_validation_error_border: String, + #[serde(rename = "vsc_badge_foreground")] + badge_foreground: String, + #[serde(rename = "vsc_badge_background")] + badge_background: String, + #[serde(rename = "vsc_progress_bar_background")] + progress_bar_background: String, + #[serde(rename = "vsc_list_active_selection_background")] + list_active_selection_background: String, + #[serde(rename = "vsc_list_active_selection_foreground")] + list_active_selection_foreground: String, + #[serde(rename = "vsc_list_drop_background")] + list_drop_background: String, + #[serde(rename = "vsc_list_focus_background")] + list_focus_background: String, + #[serde(rename = "vsc_list_highlight_foreground")] + list_highlight_foreground: String, + #[serde(rename = "vsc_list_hover_background")] + list_hover_background: String, + #[serde(rename = "vsc_list_inactive_selection_background")] + list_inactive_selection_background: String, + #[serde(rename = "vsc_list_warning_foreground")] + list_warning_foreground: String, + #[serde(rename = "vsc_list_error_foreground")] + list_error_foreground: String, + #[serde(rename = "vsc_activity_bar_background")] + activity_bar_background: String, + #[serde(rename = "vsc_activity_bar_inactive_foreground")] + activity_bar_inactive_foreground: String, + #[serde(rename = "vsc_activity_bar_foreground")] + activity_bar_foreground: String, + #[serde(rename = "vsc_activity_bar_active_border")] + activity_bar_active_border: String, + #[serde(rename = "vsc_activity_bar_active_background")] + activity_bar_active_background: String, + #[serde(rename = "vsc_activity_bar_badge_background")] + activity_bar_badge_background: String, + #[serde(rename = "vsc_activity_bar_badge_foreground")] + activity_bar_badge_foreground: String, + #[serde(rename = "vsc_side_bar_background")] + side_bar_background: String, + #[serde(rename = "vsc_side_bar_title_foreground")] + side_bar_title_foreground: String, + #[serde(rename = "vsc_side_bar_section_header_background")] + side_bar_section_header_background: String, + #[serde(rename = "vsc_side_bar_section_header_border")] + side_bar_section_header_border: String, + #[serde(rename = "vsc_editor_group_border")] + editor_group_border: String, + #[serde(rename = "vsc_editor_group_drop_background")] + editor_group_drop_background: String, + #[serde(rename = "vsc_editor_group_header_tabs_background")] + editor_group_header_tabs_background: String, + #[serde(rename = "vsc_tab_active_background")] + tab_active_background: String, + #[serde(rename = "vsc_tab_active_foreground")] + tab_active_foreground: String, + #[serde(rename = "vsc_tab_border")] + tab_border: String, + #[serde(rename = "vsc_tab_active_border_top")] + tab_active_border_top: String, + #[serde(rename = "vsc_tab_inactive_background")] + tab_inactive_background: String, + #[serde(rename = "vsc_tab_inactive_foreground")] + tab_inactive_foreground: String, + #[serde(rename = "vsc_editor_foreground")] + editor_foreground: String, + #[serde(rename = "vsc_editor_background")] + editor_background: String, + #[serde(rename = "vsc_editor_line_number_foreground")] + editor_line_number_foreground: String, + #[serde(rename = "vsc_editor_selection_background")] + editor_selection_background: String, + #[serde(rename = "vsc_editor_selection_highlight_background")] + editor_selection_highlight_background: String, + #[serde(rename = "vsc_editor_fold_background")] + editor_fold_background: String, + #[serde(rename = "vsc_editor_word_highlight_background")] + editor_word_highlight_background: String, + #[serde(rename = "vsc_editor_word_highlight_strong_background")] + editor_word_highlight_strong_background: String, + #[serde(rename = "vsc_editor_find_match_background")] + editor_find_match_background: String, + #[serde(rename = "vsc_editor_find_match_highlight_background")] + editor_find_match_highlight_background: String, + #[serde(rename = "vsc_editor_find_range_highlight_background")] + editor_find_range_highlight_background: String, + #[serde(rename = "vsc_editor_hover_highlight_background")] + editor_hover_highlight_background: String, + #[serde(rename = "vsc_editor_line_highlight_border")] + editor_line_highlight_border: String, + #[serde(rename = "vsc_editor_link_active_foreground")] + editor_link_active_foreground: String, + #[serde(rename = "vsc_editor_range_highlight_background")] + editor_range_highlight_background: String, + #[serde(rename = "vsc_editor_snippet_tabstop_highlight_background")] + editor_snippet_tabstop_highlight_background: String, + #[serde(rename = "vsc_editor_snippet_tabstop_highlight_border")] + editor_snippet_tabstop_highlight_border: String, + #[serde(rename = "vsc_editor_snippet_final_tabstop_highlight_background")] + editor_snippet_final_tabstop_highlight_background: String, + #[serde(rename = "vsc_editor_snippet_final_tabstop_highlight_border")] + editor_snippet_final_tabstop_highlight_border: String, + #[serde(rename = "vsc_editor_whitespace_foreground")] + editor_whitespace_foreground: String, + #[serde(rename = "vsc_editor_indent_guide_background")] + editor_indent_guide_background: String, + #[serde(rename = "vsc_editor_indent_guide_active_background")] + editor_indent_guide_active_background: String, + #[serde(rename = "vsc_editor_ruler_foreground")] + editor_ruler_foreground: String, + #[serde(rename = "vsc_editor_code_lens_foreground")] + editor_code_lens_foreground: String, + #[serde(rename = "vsc_editor_bracket_highlight_foreground1")] + editor_bracket_highlight_foreground1: String, + #[serde(rename = "vsc_editor_bracket_highlight_foreground2")] + editor_bracket_highlight_foreground2: String, + #[serde(rename = "vsc_editor_bracket_highlight_foreground3")] + editor_bracket_highlight_foreground3: String, + #[serde(rename = "vsc_editor_bracket_highlight_foreground4")] + editor_bracket_highlight_foreground4: String, + #[serde(rename = "vsc_editor_bracket_highlight_foreground5")] + editor_bracket_highlight_foreground5: String, + #[serde(rename = "vsc_editor_bracket_highlight_foreground6")] + editor_bracket_highlight_foreground6: String, + #[serde(rename = "vsc_editor_bracket_highlight_unexpected_bracket_foreground")] + editor_bracket_highlight_unexpected_bracket_foreground: String, + #[serde(rename = "vsc_editor_overview_ruler_border")] + editor_overview_ruler_border: String, + #[serde(rename = "vsc_editor_overview_ruler_selection_highlight_foreground")] + editor_overview_ruler_selection_highlight_foreground: String, + #[serde(rename = "vsc_editor_overview_ruler_word_highlight_foreground")] + editor_overview_ruler_word_highlight_foreground: String, + #[serde(rename = "vsc_editor_overview_ruler_word_highlight_strong_foreground")] + editor_overview_ruler_word_highlight_strong_foreground: String, + #[serde(rename = "vsc_editor_overview_ruler_modified_foreground")] + editor_overview_ruler_modified_foreground: String, + #[serde(rename = "vsc_editor_overview_ruler_added_foreground")] + editor_overview_ruler_added_foreground: String, + #[serde(rename = "vsc_editor_overview_ruler_deleted_foreground")] + editor_overview_ruler_deleted_foreground: String, + #[serde(rename = "vsc_editor_overview_ruler_error_foreground")] + editor_overview_ruler_error_foreground: String, + #[serde(rename = "vsc_editor_overview_ruler_warning_foreground")] + editor_overview_ruler_warning_foreground: String, + #[serde(rename = "vsc_editor_overview_ruler_info_foreground")] + editor_overview_ruler_info_foreground: String, + #[serde(rename = "vsc_editor_error_foreground")] + editor_error_foreground: String, + #[serde(rename = "vsc_editor_warning_foreground")] + editor_warning_foreground: String, + #[serde(rename = "vsc_editor_gutter_modified_background")] + editor_gutter_modified_background: String, + #[serde(rename = "vsc_editor_gutter_added_background")] + editor_gutter_added_background: String, + #[serde(rename = "vsc_editor_gutter_deleted_background")] + editor_gutter_deleted_background: String, + #[serde(rename = "vsc_git_decoration_modified_resource_foreground")] + git_decoration_modified_resource_foreground: String, + #[serde(rename = "vsc_git_decoration_deleted_resource_foreground")] + git_decoration_deleted_resource_foreground: String, + #[serde(rename = "vsc_git_decoration_untracked_resource_foreground")] + git_decoration_untracked_resource_foreground: String, + #[serde(rename = "vsc_git_decoration_ignored_resource_foreground")] + git_decoration_ignored_resource_foreground: String, + #[serde(rename = "vsc_git_decoration_conflicting_resource_foreground")] + git_decoration_conflicting_resource_foreground: String, + #[serde(rename = "vsc_diff_editor_inserted_text_background")] + diff_editor_inserted_text_background: String, + #[serde(rename = "vsc_diff_editor_removed_text_background")] + diff_editor_removed_text_background: String, + #[serde(rename = "vsc_inline_chat_region_highlight")] + inline_chat_region_highlight: String, + #[serde(rename = "vsc_editor_widget_background")] + editor_widget_background: String, + #[serde(rename = "vsc_editor_suggest_widget_background")] + editor_suggest_widget_background: String, + #[serde(rename = "vsc_editor_suggest_widget_foreground")] + editor_suggest_widget_foreground: String, + #[serde(rename = "vsc_editor_suggest_widget_selected_background")] + editor_suggest_widget_selected_background: String, + #[serde(rename = "vsc_editor_hover_widget_background")] + editor_hover_widget_background: String, + #[serde(rename = "vsc_editor_hover_widget_border")] + editor_hover_widget_border: String, + #[serde(rename = "vsc_editor_marker_navigation_background")] + editor_marker_navigation_background: String, + #[serde(rename = "vsc_peek_view_border")] + peek_view_border: String, + #[serde(rename = "vsc_peek_view_editor_background")] + peek_view_editor_background: String, + #[serde(rename = "vsc_peek_view_editor_match_highlight_background")] + peek_view_editor_match_highlight_background: String, + #[serde(rename = "vsc_peek_view_result_background")] + peek_view_result_background: String, + #[serde(rename = "vsc_peek_view_result_file_foreground")] + peek_view_result_file_foreground: String, + #[serde(rename = "vsc_peek_view_result_line_foreground")] + peek_view_result_line_foreground: String, + #[serde(rename = "vsc_peek_view_result_match_highlight_background")] + peek_view_result_match_highlight_background: String, + #[serde(rename = "vsc_peek_view_result_selection_background")] + peek_view_result_selection_background: String, + #[serde(rename = "vsc_peek_view_result_selection_foreground")] + peek_view_result_selection_foreground: String, + #[serde(rename = "vsc_peek_view_title_background")] + peek_view_title_background: String, + #[serde(rename = "vsc_peek_view_title_description_foreground")] + peek_view_title_description_foreground: String, + #[serde(rename = "vsc_peek_view_title_label_foreground")] + peek_view_title_label_foreground: String, + #[serde(rename = "vsc_merge_current_header_background")] + merge_current_header_background: String, + #[serde(rename = "vsc_merge_incoming_header_background")] + merge_incoming_header_background: String, + #[serde(rename = "vsc_editor_overview_ruler_current_content_foreground")] + editor_overview_ruler_current_content_foreground: String, + #[serde(rename = "vsc_editor_overview_ruler_incoming_content_foreground")] + editor_overview_ruler_incoming_content_foreground: String, + #[serde(rename = "vsc_panel_background")] + panel_background: String, + #[serde(rename = "vsc_panel_border")] + panel_border: String, + #[serde(rename = "vsc_panel_title_active_border")] + panel_title_active_border: String, + #[serde(rename = "vsc_panel_title_active_foreground")] + panel_title_active_foreground: String, + #[serde(rename = "vsc_panel_title_inactive_foreground")] + panel_title_inactive_foreground: String, + #[serde(rename = "vsc_status_bar_background")] + status_bar_background: String, + #[serde(rename = "vsc_status_bar_foreground")] + status_bar_foreground: String, + #[serde(rename = "vsc_status_bar_debugging_background")] + status_bar_debugging_background: String, + #[serde(rename = "vsc_status_bar_debugging_foreground")] + status_bar_debugging_foreground: String, + #[serde(rename = "vsc_status_bar_no_folder_background")] + status_bar_no_folder_background: String, + #[serde(rename = "vsc_status_bar_no_folder_foreground")] + status_bar_no_folder_foreground: String, + #[serde(rename = "vsc_status_bar_item_prominent_background")] + status_bar_item_prominent_background: String, + #[serde(rename = "vsc_status_bar_item_prominent_hover_background")] + status_bar_item_prominent_hover_background: String, + #[serde(rename = "vsc_status_bar_item_remote_foreground")] + status_bar_item_remote_foreground: String, + #[serde(rename = "vsc_status_bar_item_remote_background")] + status_bar_item_remote_background: String, + #[serde(rename = "vsc_title_bar_active_background")] + title_bar_active_background: String, + #[serde(rename = "vsc_title_bar_active_foreground")] + title_bar_active_foreground: String, + #[serde(rename = "vsc_title_bar_inactive_background")] + title_bar_inactive_background: String, + #[serde(rename = "vsc_title_bar_inactive_foreground")] + title_bar_inactive_foreground: String, + #[serde(rename = "vsc_extension_button_prominent_foreground")] + extension_button_prominent_foreground: String, + #[serde(rename = "vsc_extension_button_prominent_background")] + extension_button_prominent_background: String, + #[serde(rename = "vsc_extension_button_prominent_hover_background")] + extension_button_prominent_hover_background: String, + #[serde(rename = "vsc_picker_group_border")] + picker_group_border: String, + #[serde(rename = "vsc_picker_group_foreground")] + picker_group_foreground: String, + #[serde(rename = "vsc_debug_tool_bar_background")] + debug_tool_bar_background: String, + #[serde(rename = "vsc_walk_through_embedded_editor_background")] + walk_through_embedded_editor_background: String, + #[serde(rename = "vsc_settings_header_foreground")] + settings_header_foreground: String, + #[serde(rename = "vsc_settings_modified_item_indicator")] + settings_modified_item_indicator: String, + #[serde(rename = "vsc_settings_dropdown_background")] + settings_dropdown_background: String, + #[serde(rename = "vsc_settings_dropdown_foreground")] + settings_dropdown_foreground: String, + #[serde(rename = "vsc_settings_dropdown_border")] + settings_dropdown_border: String, + #[serde(rename = "vsc_settings_checkbox_background")] + settings_checkbox_background: String, + #[serde(rename = "vsc_settings_checkbox_foreground")] + settings_checkbox_foreground: String, + #[serde(rename = "vsc_settings_checkbox_border")] + settings_checkbox_border: String, + #[serde(rename = "vsc_settings_text_input_background")] + settings_text_input_background: String, + #[serde(rename = "vsc_settings_text_input_foreground")] + settings_text_input_foreground: String, + #[serde(rename = "vsc_settings_text_input_border")] + settings_text_input_border: String, + #[serde(rename = "vsc_settings_number_input_background")] + settings_number_input_background: String, + #[serde(rename = "vsc_settings_number_input_foreground")] + settings_number_input_foreground: String, + #[serde(rename = "vsc_settings_number_input_border")] + settings_number_input_border: String, + #[serde(rename = "vsc_breadcrumb_foreground")] + breadcrumb_foreground: String, + #[serde(rename = "vsc_breadcrumb_background")] + breadcrumb_background: String, + #[serde(rename = "vsc_breadcrumb_focus_foreground")] + breadcrumb_focus_foreground: String, + #[serde(rename = "vsc_breadcrumb_active_selection_foreground")] + breadcrumb_active_selection_foreground: String, + #[serde(rename = "vsc_breadcrumb_picker_background")] + breadcrumb_picker_background: String, + #[serde(rename = "vsc_list_filter_widget_background")] + list_filter_widget_background: String, + #[serde(rename = "vsc_list_filter_widget_outline")] + list_filter_widget_outline: String, + #[serde(rename = "vsc_list_filter_widget_no_matches_outline")] + list_filter_widget_no_matches_outline: String, +} diff --git a/crates/theme_importer/src/vscode.rs b/crates/theme_importer/src/vscode.rs new file mode 100644 index 0000000000..559d6eb4b7 --- /dev/null +++ b/crates/theme_importer/src/vscode.rs @@ -0,0 +1,80 @@ +use std::path::{Path, PathBuf}; + +use anyhow::Result; +use serde::Deserialize; +use theme::{default_color_scales, ColorScales, ThemeFamily}; + +#[derive(Deserialize, Debug)] +pub struct VSCodeTheme { + #[serde(rename = "$schema")] + pub schema: String, + pub name: String, + pub author: String, + pub maintainers: Vec, + #[serde(rename = "semanticClass")] + pub semantic_class: String, + #[serde(rename = "semanticHighlighting")] + pub semantic_highlighting: bool, + pub colors: VSCodeColors, +} + +#[derive(Debug, Deserialize)] +pub struct VSCodeColors { + #[serde(rename = "editor.foreground")] + text: String, + #[serde(rename = "editor.background")] + editor: String, +} + +pub(crate) fn new_theme_family_from_vsc(path: &Path) -> Result { + let path_str = path.to_str().unwrap(); + let family_name = path_str.split('/').last().unwrap(); + + let mut json_files: Vec = Vec::new(); + + if path.is_dir() { + for entry in std::fs::read_dir(path).unwrap() { + let entry = entry.unwrap(); + let path = entry.path(); + if path.is_file() { + if let Some(extension) = path.extension() { + if extension == "json" { + json_files.push(path.file_name().unwrap().to_str().unwrap().to_string()); + } + } + } + } + } else { + anyhow::bail!("Path is not a directory"); + } + + let mut theme_family = ThemeFamily { + id: uuid::Uuid::new_v4().to_string(), + name: family_name.into(), + author: "New Theme Family".into(), + themes: Vec::new(), + scales: default_color_scales(), + }; + + Ok(theme_family) +} + +#[cfg(test)] +mod tests { + use super::*; + use std::path::PathBuf; + + #[test] + fn test_deserialize_theme() { + let manifest_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR")); + let root_dir = manifest_dir.parent().unwrap().parent().unwrap(); + + let mut d = root_dir.to_path_buf(); + d.push("assets/themes/src/vsc/dracula/dracula.json"); + + let data = std::fs::read_to_string(d).expect("Unable to read file"); + + let result: Theme = serde_json::from_str(&data).unwrap(); + println!("{:#?}", result); + } +} From e48332c81f91fdbd709740e4ad06fd2723e1d060 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Thu, 2 Nov 2023 18:00:55 -0400 Subject: [PATCH 06/76] Parse VSCode theme files --- assets/themes/src/{vsc => vscode}/ayu/LICENSE | 0 .../src/{vsc => vscode}/ayu/ayu-dark.json | 0 .../src/{vsc => vscode}/ayu/ayu-light.json | 0 .../src/{vsc => vscode}/ayu/ayu-mirage.json | 0 .../src/{vsc => vscode}/ayu/family.json | 0 .../src/{vsc => vscode}/dracula/LICENSE | 0 .../src/{vsc => vscode}/dracula/dracula.json | 0 .../src/{vsc => vscode}/dracula/family.json | 0 crates/theme2/src/theme2.rs | 3 +- crates/theme_importer/src/main.rs | 128 +++++++++++------- crates/theme_importer/src/vscode.rs | 72 +++++----- 11 files changed, 118 insertions(+), 85 deletions(-) rename assets/themes/src/{vsc => vscode}/ayu/LICENSE (100%) rename assets/themes/src/{vsc => vscode}/ayu/ayu-dark.json (100%) rename assets/themes/src/{vsc => vscode}/ayu/ayu-light.json (100%) rename assets/themes/src/{vsc => vscode}/ayu/ayu-mirage.json (100%) rename assets/themes/src/{vsc => vscode}/ayu/family.json (100%) rename assets/themes/src/{vsc => vscode}/dracula/LICENSE (100%) rename assets/themes/src/{vsc => vscode}/dracula/dracula.json (100%) rename assets/themes/src/{vsc => vscode}/dracula/family.json (100%) diff --git a/assets/themes/src/vsc/ayu/LICENSE b/assets/themes/src/vscode/ayu/LICENSE similarity index 100% rename from assets/themes/src/vsc/ayu/LICENSE rename to assets/themes/src/vscode/ayu/LICENSE diff --git a/assets/themes/src/vsc/ayu/ayu-dark.json b/assets/themes/src/vscode/ayu/ayu-dark.json similarity index 100% rename from assets/themes/src/vsc/ayu/ayu-dark.json rename to assets/themes/src/vscode/ayu/ayu-dark.json diff --git a/assets/themes/src/vsc/ayu/ayu-light.json b/assets/themes/src/vscode/ayu/ayu-light.json similarity index 100% rename from assets/themes/src/vsc/ayu/ayu-light.json rename to assets/themes/src/vscode/ayu/ayu-light.json diff --git a/assets/themes/src/vsc/ayu/ayu-mirage.json b/assets/themes/src/vscode/ayu/ayu-mirage.json similarity index 100% rename from assets/themes/src/vsc/ayu/ayu-mirage.json rename to assets/themes/src/vscode/ayu/ayu-mirage.json diff --git a/assets/themes/src/vsc/ayu/family.json b/assets/themes/src/vscode/ayu/family.json similarity index 100% rename from assets/themes/src/vsc/ayu/family.json rename to assets/themes/src/vscode/ayu/family.json diff --git a/assets/themes/src/vsc/dracula/LICENSE b/assets/themes/src/vscode/dracula/LICENSE similarity index 100% rename from assets/themes/src/vsc/dracula/LICENSE rename to assets/themes/src/vscode/dracula/LICENSE diff --git a/assets/themes/src/vsc/dracula/dracula.json b/assets/themes/src/vscode/dracula/dracula.json similarity index 100% rename from assets/themes/src/vsc/dracula/dracula.json rename to assets/themes/src/vscode/dracula/dracula.json diff --git a/assets/themes/src/vsc/dracula/family.json b/assets/themes/src/vscode/dracula/family.json similarity index 100% rename from assets/themes/src/vsc/dracula/family.json rename to assets/themes/src/vscode/dracula/family.json diff --git a/crates/theme2/src/theme2.rs b/crates/theme2/src/theme2.rs index 0aa3542a77..4232fde324 100644 --- a/crates/theme2/src/theme2.rs +++ b/crates/theme2/src/theme2.rs @@ -49,8 +49,7 @@ pub struct ThemeFamily { impl ThemeFamily {} pub struct ThemeVariant { - #[allow(dead_code)] - pub(crate) id: String, + pub id: String, pub name: SharedString, pub appearance: Appearance, pub styles: ThemeStyles, diff --git a/crates/theme_importer/src/main.rs b/crates/theme_importer/src/main.rs index 82e2105e0c..b616b44e47 100644 --- a/crates/theme_importer/src/main.rs +++ b/crates/theme_importer/src/main.rs @@ -1,15 +1,21 @@ +use std::borrow::Cow; +use std::fs::{self, File}; use std::path::PathBuf; use std::str::FromStr; -use std::{borrow::Cow, fs::File}; use anyhow::{anyhow, Context, Result}; use convert_case::Case; -use gpui::{AssetSource, SharedString}; +use gpui::{serde_json, AssetSource, SharedString}; use log::LevelFilter; use rust_embed::RustEmbed; use serde::Deserialize; use simplelog::SimpleLogger; -use theme::{default_color_scales, ThemeColorsRefinement, ThemeFamily}; +use theme::{ + default_color_scales, Appearance, GitStatusColors, PlayerColors, StatusColors, SyntaxTheme, + SystemColors, ThemeColors, ThemeColorsRefinement, ThemeFamily, ThemeStyles, ThemeVariant, +}; + +use crate::vscode::VsCodeTheme; mod vscode; @@ -23,20 +29,21 @@ pub(crate) fn new_theme_family(name: String, author: String) -> ThemeFamily { } } -#[derive(Deserialize)] +#[derive(Debug, Deserialize)] struct FamilyJson { pub name: String, + pub author: String, pub themes: Vec, } -#[derive(Deserialize)] +#[derive(Debug, Deserialize)] #[serde(rename_all = "snake_case")] enum ThemeAppearanceJson { Light, Dark, } -#[derive(Deserialize)] +#[derive(Debug, Deserialize)] struct ThemeVariantJson { pub name: String, pub appearance: ThemeAppearanceJson, @@ -69,55 +76,80 @@ fn main() -> Result<()> { let themes_path = PathBuf::from_str("crates/theme2/src/themes")?; - let mut theme_modules = Vec::new(); + let vscode_themes_path = PathBuf::from_str("assets/themes/src/vscode/")?; - for theme_path in Assets.list("themes/src/vsc/")? { - let (_, theme_name) = theme_path.split_once("themes/").unwrap(); + let mut theme_families = Vec::new(); - if theme_name == ".gitkeep" { - continue; + for theme_family_dir in fs::read_dir(&vscode_themes_path)? { + let theme_family_dir = theme_family_dir?; + + let theme_family_slug = theme_family_dir + .path() + .file_stem() + .ok_or(anyhow!("no file stem")) + .map(|stem| stem.to_string_lossy().to_string())?; + + let family_metadata_file = File::open(theme_family_dir.path().join("family.json")) + .context(format!("no `family.json` found for '{theme_family_slug}'"))?; + + let family_metadata: FamilyJson = serde_json::from_reader(family_metadata_file).context( + format!("failed to parse `family.json` for '{theme_family_slug}'"), + )?; + + let mut themes = Vec::new(); + + for theme_entry in fs::read_dir(vscode_themes_path.join(theme_family_slug))? { + let theme_entry = theme_entry?; + + let theme_file_path = theme_entry.path(); + + let file_name = theme_file_path + .file_name() + .ok_or(anyhow!("no file stem")) + .map(|file_name| file_name.to_string_lossy())?; + + if !file_name.ends_with(".json") { + continue; + } + + if file_name == "family.json" { + continue; + } + + let theme_file = File::open(&theme_file_path)?; + + let theme: VsCodeTheme = serde_json::from_reader(theme_file) + .context(format!("failed to parse theme {theme_file_path:?}"))?; + + themes.push(theme); } - let theme_contents = Assets::get(&theme_path) - .with_context(|| format!("theme file not found: '{theme_path}'"))?; + let theme_family = ThemeFamily { + id: uuid::Uuid::new_v4().to_string(), + name: family_metadata.name.into(), + author: family_metadata.author.into(), + themes: themes + .into_iter() + .map(|theme| ThemeVariant { + id: uuid::Uuid::new_v4().to_string(), + name: "".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors::default(), + colors: ThemeColors::default_dark(), + status: StatusColors::default(), + git: GitStatusColors::default(), + player: PlayerColors::default(), + syntax: SyntaxTheme::default_dark(), + }, + }) + .collect(), + scales: default_color_scales(), + }; - // let json_theme: JsonTheme = - // serde_json::from_str(std::str::from_utf8(&theme_contents.data)?) - // .context("failed to parse legacy theme")?; - - // let (json_theme, legacy_theme) = load_theme(&theme_path)?; - - // let theme = convert_theme(json_theme, legacy_theme)?; - - // let theme_slug = theme - // .metadata - // .name - // .as_ref() - // .replace("é", "e") - // .to_case(Case::Snake); - - // let mut output_file = File::create(themes_path.join(format!("{theme_slug}.rs")))?; - - // let theme_module = format!( - // r#" - // use gpui2::rgba; - - // use crate::{{PlayerTheme, SyntaxTheme, Theme, ThemeMetadata}}; - - // pub fn {theme_slug}() -> Theme {{ - // {theme_definition} - // }} - // "#, - // theme_definition = format!("{:#?}", ThemePrinter::new(theme)) - // ); - - // output_file.write_all(theme_module.as_bytes())?; - - theme_modules.push(theme_slug); + theme_families.push(theme_family); } - println!("Hello, world!"); - Ok(()) } diff --git a/crates/theme_importer/src/vscode.rs b/crates/theme_importer/src/vscode.rs index 559d6eb4b7..c664108c83 100644 --- a/crates/theme_importer/src/vscode.rs +++ b/crates/theme_importer/src/vscode.rs @@ -5,21 +5,21 @@ use serde::Deserialize; use theme::{default_color_scales, ColorScales, ThemeFamily}; #[derive(Deserialize, Debug)] -pub struct VSCodeTheme { +pub struct VsCodeTheme { #[serde(rename = "$schema")] - pub schema: String, - pub name: String, - pub author: String, - pub maintainers: Vec, + pub schema: Option, + pub name: Option, + pub author: Option, + pub maintainers: Option>, #[serde(rename = "semanticClass")] - pub semantic_class: String, + pub semantic_class: Option, #[serde(rename = "semanticHighlighting")] - pub semantic_highlighting: bool, - pub colors: VSCodeColors, + pub semantic_highlighting: Option, + pub colors: VsCodeColors, } #[derive(Debug, Deserialize)] -pub struct VSCodeColors { +pub struct VsCodeColors { #[serde(rename = "editor.foreground")] text: String, #[serde(rename = "editor.background")] @@ -27,36 +27,38 @@ pub struct VSCodeColors { } pub(crate) fn new_theme_family_from_vsc(path: &Path) -> Result { - let path_str = path.to_str().unwrap(); - let family_name = path_str.split('/').last().unwrap(); + todo!() - let mut json_files: Vec = Vec::new(); + // let path_str = path.to_str().unwrap(); + // let family_name = path_str.split('/').last().unwrap(); - if path.is_dir() { - for entry in std::fs::read_dir(path).unwrap() { - let entry = entry.unwrap(); - let path = entry.path(); - if path.is_file() { - if let Some(extension) = path.extension() { - if extension == "json" { - json_files.push(path.file_name().unwrap().to_str().unwrap().to_string()); - } - } - } - } - } else { - anyhow::bail!("Path is not a directory"); - } + // let mut json_files: Vec = Vec::new(); - let mut theme_family = ThemeFamily { - id: uuid::Uuid::new_v4().to_string(), - name: family_name.into(), - author: "New Theme Family".into(), - themes: Vec::new(), - scales: default_color_scales(), - }; + // if path.is_dir() { + // for entry in std::fs::read_dir(path).unwrap() { + // let entry = entry.unwrap(); + // let path = entry.path(); + // if path.is_file() { + // if let Some(extension) = path.extension() { + // if extension == "json" { + // json_files.push(path.file_name().unwrap().to_str().unwrap().to_string()); + // } + // } + // } + // } + // } else { + // anyhow::bail!("Path is not a directory"); + // } - Ok(theme_family) + // let mut theme_family = ThemeFamily { + // id: uuid::Uuid::new_v4().to_string(), + // name: family_name.into(), + // author: "New Theme Family".into(), + // themes: Vec::new(), + // scales: default_color_scales(), + // }; + + // Ok(theme_family) } #[cfg(test)] From 0bc51382b2f49039fc21f4b6624d86c21bcc7337 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Thu, 2 Nov 2023 18:24:38 -0400 Subject: [PATCH 07/76] Add basic `VsCodeThemeConverter` --- assets/themes/src/vscode/ayu/family.json | 3 + assets/themes/src/vscode/dracula/family.json | 1 + crates/theme_importer/src/main.rs | 109 +++++-------------- crates/theme_importer/src/vscode.rs | 61 ++++++++++- 4 files changed, 92 insertions(+), 82 deletions(-) diff --git a/assets/themes/src/vscode/ayu/family.json b/assets/themes/src/vscode/ayu/family.json index 8c0d0c5c55..05092a335d 100644 --- a/assets/themes/src/vscode/ayu/family.json +++ b/assets/themes/src/vscode/ayu/family.json @@ -4,14 +4,17 @@ "themes": [ { "name": "Ayu Light", + "file_name": "ayu-light.json", "appearance": "light" }, { "name": "Ayu Mirage", + "file_name": "ayu-mirage.json", "appearance": "dark" }, { "name": "Ayu Dark", + "file_name": "ayu-dark.json", "appearance": "dark" } ] diff --git a/assets/themes/src/vscode/dracula/family.json b/assets/themes/src/vscode/dracula/family.json index 50d5940a7b..b3bf2cf04a 100644 --- a/assets/themes/src/vscode/dracula/family.json +++ b/assets/themes/src/vscode/dracula/family.json @@ -4,6 +4,7 @@ "themes": [ { "name": "Dracula", + "file_name": "dracula.json", "appearance": "dark" } ] diff --git a/crates/theme_importer/src/main.rs b/crates/theme_importer/src/main.rs index b616b44e47..7fcc5c2f6c 100644 --- a/crates/theme_importer/src/main.rs +++ b/crates/theme_importer/src/main.rs @@ -1,19 +1,17 @@ -use std::borrow::Cow; use std::fs::{self, File}; use std::path::PathBuf; use std::str::FromStr; use anyhow::{anyhow, Context, Result}; -use convert_case::Case; -use gpui::{serde_json, AssetSource, SharedString}; +use gpui::serde_json; use log::LevelFilter; -use rust_embed::RustEmbed; use serde::Deserialize; use simplelog::SimpleLogger; use theme::{ default_color_scales, Appearance, GitStatusColors, PlayerColors, StatusColors, SyntaxTheme, - SystemColors, ThemeColors, ThemeColorsRefinement, ThemeFamily, ThemeStyles, ThemeVariant, + SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, }; +use vscode::VsCodeThemeConverter; use crate::vscode::VsCodeTheme; @@ -30,10 +28,10 @@ pub(crate) fn new_theme_family(name: String, author: String) -> ThemeFamily { } #[derive(Debug, Deserialize)] -struct FamilyJson { +struct FamilyMetadata { pub name: String, pub author: String, - pub themes: Vec, + pub themes: Vec, } #[derive(Debug, Deserialize)] @@ -43,28 +41,22 @@ enum ThemeAppearanceJson { Dark, } +impl From for Appearance { + fn from(value: ThemeAppearanceJson) -> Self { + match value { + ThemeAppearanceJson::Light => Self::Light, + ThemeAppearanceJson::Dark => Self::Dark, + } + } +} + #[derive(Debug, Deserialize)] -struct ThemeVariantJson { +struct ThemeMetadata { pub name: String, + pub file_name: String, pub appearance: ThemeAppearanceJson, } -struct ImportedThemeFamily { - pub id: String, - pub name: String, - pub author: String, - pub url: Option, - // App should panic if we try to load a theme without a lisence - pub license: String, - pub themes: Vec, -} - -struct ImportedThemeVariant { - pub id: String, - pub name: String, - pub colors: ThemeColorsRefinement, -} - // Load a vscode theme from json // Load it's LICENSE from the same folder // Create a ThemeFamily for the theme @@ -92,35 +84,25 @@ fn main() -> Result<()> { let family_metadata_file = File::open(theme_family_dir.path().join("family.json")) .context(format!("no `family.json` found for '{theme_family_slug}'"))?; - let family_metadata: FamilyJson = serde_json::from_reader(family_metadata_file).context( - format!("failed to parse `family.json` for '{theme_family_slug}'"), - )?; + let family_metadata: FamilyMetadata = serde_json::from_reader(family_metadata_file) + .context(format!( + "failed to parse `family.json` for '{theme_family_slug}'" + ))?; let mut themes = Vec::new(); - for theme_entry in fs::read_dir(vscode_themes_path.join(theme_family_slug))? { - let theme_entry = theme_entry?; - - let theme_file_path = theme_entry.path(); - - let file_name = theme_file_path - .file_name() - .ok_or(anyhow!("no file stem")) - .map(|file_name| file_name.to_string_lossy())?; - - if !file_name.ends_with(".json") { - continue; - } - - if file_name == "family.json" { - continue; - } + for theme_metadata in family_metadata.themes { + let theme_file_path = theme_family_dir.path().join(&theme_metadata.file_name); let theme_file = File::open(&theme_file_path)?; - let theme: VsCodeTheme = serde_json::from_reader(theme_file) + let vscode_theme: VsCodeTheme = serde_json::from_reader(theme_file) .context(format!("failed to parse theme {theme_file_path:?}"))?; + let converter = VsCodeThemeConverter::new(vscode_theme, theme_metadata); + + let theme = converter.convert()?; + themes.push(theme); } @@ -128,22 +110,7 @@ fn main() -> Result<()> { id: uuid::Uuid::new_v4().to_string(), name: family_metadata.name.into(), author: family_metadata.author.into(), - themes: themes - .into_iter() - .map(|theme| ThemeVariant { - id: uuid::Uuid::new_v4().to_string(), - name: "".into(), - appearance: Appearance::Dark, - styles: ThemeStyles { - system: SystemColors::default(), - colors: ThemeColors::default_dark(), - status: StatusColors::default(), - git: GitStatusColors::default(), - player: PlayerColors::default(), - syntax: SyntaxTheme::default_dark(), - }, - }) - .collect(), + themes, scales: default_color_scales(), }; @@ -152,23 +119,3 @@ fn main() -> Result<()> { Ok(()) } - -#[derive(RustEmbed)] -#[folder = "../../assets"] -#[include = "themes/**/*"] -pub struct Assets; - -impl AssetSource for Assets { - fn load(&self, path: &str) -> Result> { - Self::get(path) - .map(|f| f.data) - .ok_or_else(|| anyhow!("could not find asset at path \"{}\"", path)) - } - - fn list(&self, path: &str) -> Result> { - Ok(Self::iter() - .filter(|p| p.starts_with(path)) - .map(SharedString::from) - .collect()) - } -} diff --git a/crates/theme_importer/src/vscode.rs b/crates/theme_importer/src/vscode.rs index c664108c83..bc3ebd22d1 100644 --- a/crates/theme_importer/src/vscode.rs +++ b/crates/theme_importer/src/vscode.rs @@ -1,8 +1,16 @@ use std::path::{Path, PathBuf}; use anyhow::Result; +use gpui::{Hsla, Refineable, Rgba}; use serde::Deserialize; -use theme::{default_color_scales, ColorScales, ThemeFamily}; +use theme::{ + default_color_scales, Appearance, ColorScales, GitStatusColors, PlayerColors, StatusColors, + SyntaxTheme, SystemColors, ThemeColors, ThemeColorsRefinement, ThemeFamily, ThemeStyles, + ThemeVariant, +}; +use uuid::Uuid; + +use crate::ThemeMetadata; #[derive(Deserialize, Debug)] pub struct VsCodeTheme { @@ -61,6 +69,57 @@ pub(crate) fn new_theme_family_from_vsc(path: &Path) -> Result { // Ok(theme_family) } +fn try_parse_color(color: &str) -> Result { + Ok(Rgba::try_from(color)?.into()) +} + +pub struct VsCodeThemeConverter { + theme: VsCodeTheme, + theme_metadata: ThemeMetadata, +} + +impl VsCodeThemeConverter { + pub fn new(theme: VsCodeTheme, theme_metadata: ThemeMetadata) -> Self { + Self { + theme, + theme_metadata, + } + } + + pub fn convert(self) -> Result { + let appearance = self.theme_metadata.appearance.into(); + + let mut theme_colors = match appearance { + Appearance::Light => ThemeColors::default_light(), + Appearance::Dark => ThemeColors::default_dark(), + }; + + let vscode_colors = &self.theme.colors; + + let theme_colors_refinements = ThemeColorsRefinement { + background: Some(try_parse_color(&vscode_colors.editor)?), + text: Some(try_parse_color(&vscode_colors.text)?), + ..Default::default() + }; + + theme_colors.refine(&theme_colors_refinements); + + Ok(ThemeVariant { + id: uuid::Uuid::new_v4().to_string(), + name: self.theme_metadata.name.into(), + appearance, + styles: ThemeStyles { + system: SystemColors::default(), + colors: theme_colors, + status: StatusColors::default(), + git: GitStatusColors::default(), + player: PlayerColors::default(), + syntax: SyntaxTheme::default_dark(), + }, + }) + } +} + #[cfg(test)] mod tests { use super::*; From fc376287e036552f6ee4f8906c1645360ab577cf Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Thu, 2 Nov 2023 18:57:13 -0400 Subject: [PATCH 08/76] Start work on theme printer --- crates/theme_importer/src/main.rs | 19 +- crates/theme_importer/src/theme_printer.rs | 267 +++++++++++++++++++++ 2 files changed, 278 insertions(+), 8 deletions(-) create mode 100644 crates/theme_importer/src/theme_printer.rs diff --git a/crates/theme_importer/src/main.rs b/crates/theme_importer/src/main.rs index 7fcc5c2f6c..5e44ae4ea2 100644 --- a/crates/theme_importer/src/main.rs +++ b/crates/theme_importer/src/main.rs @@ -1,3 +1,6 @@ +mod theme_printer; +mod vscode; + use std::fs::{self, File}; use std::path::PathBuf; use std::str::FromStr; @@ -7,16 +10,12 @@ use gpui::serde_json; use log::LevelFilter; use serde::Deserialize; use simplelog::SimpleLogger; -use theme::{ - default_color_scales, Appearance, GitStatusColors, PlayerColors, StatusColors, SyntaxTheme, - SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, -}; +use theme::{default_color_scales, Appearance, ThemeFamily}; use vscode::VsCodeThemeConverter; +use crate::theme_printer::ThemeFamilyPrinter; use crate::vscode::VsCodeTheme; -mod vscode; - pub(crate) fn new_theme_family(name: String, author: String) -> ThemeFamily { ThemeFamily { id: uuid::Uuid::new_v4().to_string(), @@ -36,7 +35,7 @@ struct FamilyMetadata { #[derive(Debug, Deserialize)] #[serde(rename_all = "snake_case")] -enum ThemeAppearanceJson { +pub enum ThemeAppearanceJson { Light, Dark, } @@ -51,7 +50,7 @@ impl From for Appearance { } #[derive(Debug, Deserialize)] -struct ThemeMetadata { +pub struct ThemeMetadata { pub name: String, pub file_name: String, pub appearance: ThemeAppearanceJson, @@ -117,5 +116,9 @@ fn main() -> Result<()> { theme_families.push(theme_family); } + for theme_family in theme_families { + println!("{:#?}", ThemeFamilyPrinter::new(theme_family)); + } + Ok(()) } diff --git a/crates/theme_importer/src/theme_printer.rs b/crates/theme_importer/src/theme_printer.rs new file mode 100644 index 0000000000..82446030e2 --- /dev/null +++ b/crates/theme_importer/src/theme_printer.rs @@ -0,0 +1,267 @@ +use std::fmt::{self, Debug}; + +use gpui::{Hsla, Rgba}; +use theme::{ + GitStatusColors, PlayerColor, PlayerColors, StatusColors, SyntaxTheme, SystemColors, + ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, +}; + +struct HslaPrinter(Hsla); + +impl Debug for HslaPrinter { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "{:?}", IntoPrinter(&Rgba::from(self.0))) + } +} + +struct IntoPrinter<'a, D: Debug>(&'a D); + +impl<'a, D: Debug> Debug for IntoPrinter<'a, D> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "{:?}.into()", self.0) + } +} + +pub struct VecPrinter<'a, T>(&'a Vec); + +impl<'a, T: Debug> Debug for VecPrinter<'a, T> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "vec!{:?}", &self.0) + } +} + +pub struct ThemeFamilyPrinter(ThemeFamily); + +impl ThemeFamilyPrinter { + pub fn new(theme_family: ThemeFamily) -> Self { + Self(theme_family) + } +} + +impl Debug for ThemeFamilyPrinter { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("ThemeFamily") + .field("id", &IntoPrinter(&self.0.id)) + .field("name", &IntoPrinter(&self.0.name)) + .field("author", &IntoPrinter(&self.0.author)) + .field( + "themes", + &VecPrinter( + &self + .0 + .themes + .iter() + .map(|theme| ThemeVariantPrinter(theme)) + .collect(), + ), + ) + .finish() + } +} + +pub struct ThemeVariantPrinter<'a>(&'a ThemeVariant); + +impl<'a> Debug for ThemeVariantPrinter<'a> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("ThemeVariant") + .field("id", &IntoPrinter(&self.0.id)) + .field("name", &IntoPrinter(&self.0.name)) + .field("appearance", &self.0.appearance) + .field("styles", &ThemeStylesPrinter(&self.0.styles)) + .finish() + } +} + +pub struct ThemeStylesPrinter<'a>(&'a ThemeStyles); + +impl<'a> Debug for ThemeStylesPrinter<'a> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("ThemeStyles") + .field("system", &SystemColorsPrinter(&self.0.system)) + .field("colors", &ThemeColorsPrinter(&self.0.colors)) + .field("status", &StatusColorsPrinter(&self.0.status)) + .field("git", &GitStatusColorsPrinter(&self.0.git)) + .field("player", &PlayerColorsPrinter(&self.0.player)) + .field("syntax", &SyntaxThemePrinter(&self.0.syntax)) + .finish() + } +} + +pub struct SystemColorsPrinter<'a>(&'a SystemColors); + +impl<'a> Debug for SystemColorsPrinter<'a> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("SystemColors") + .field("transparent", &HslaPrinter(self.0.transparent)) + .field( + "mac_os_traffic_light_red", + &HslaPrinter(self.0.mac_os_traffic_light_red), + ) + .field( + "mac_os_traffic_light_yellow", + &HslaPrinter(self.0.mac_os_traffic_light_yellow), + ) + .field( + "mac_os_traffic_light_green", + &HslaPrinter(self.0.mac_os_traffic_light_green), + ) + .finish() + } +} + +pub struct ThemeColorsPrinter<'a>(&'a ThemeColors); + +impl<'a> Debug for ThemeColorsPrinter<'a> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("ThemeColors") + .field("border", &HslaPrinter(self.0.border)) + .field("border_variant", &HslaPrinter(self.0.border_variant)) + .field("border_focused", &HslaPrinter(self.0.border_focused)) + .field( + "border_transparent", + &HslaPrinter(self.0.border_transparent), + ) + .field("elevated_surface", &HslaPrinter(self.0.elevated_surface)) + .field("surface", &HslaPrinter(self.0.surface)) + .field("background", &HslaPrinter(self.0.background)) + .field("element", &HslaPrinter(self.0.element)) + .field("element_hover", &HslaPrinter(self.0.element_hover)) + .field("element_active", &HslaPrinter(self.0.element_active)) + .field("element_selected", &HslaPrinter(self.0.element_selected)) + .field("element_disabled", &HslaPrinter(self.0.element_disabled)) + .field( + "element_placeholder", + &HslaPrinter(self.0.element_placeholder), + ) + .field( + "element_drop_target", + &HslaPrinter(self.0.element_drop_target), + ) + .field("ghost_element", &HslaPrinter(self.0.ghost_element)) + .field( + "ghost_element_hover", + &HslaPrinter(self.0.ghost_element_hover), + ) + .field( + "ghost_element_active", + &HslaPrinter(self.0.ghost_element_active), + ) + .field( + "ghost_element_selected", + &HslaPrinter(self.0.ghost_element_selected), + ) + .field( + "ghost_element_disabled", + &HslaPrinter(self.0.ghost_element_disabled), + ) + .field("text", &HslaPrinter(self.0.text)) + .field("text_muted", &HslaPrinter(self.0.text_muted)) + .field("text_placeholder", &HslaPrinter(self.0.text_placeholder)) + .field("text_disabled", &HslaPrinter(self.0.text_disabled)) + .field("text_accent", &HslaPrinter(self.0.text_accent)) + .field("icon", &HslaPrinter(self.0.icon)) + .field("icon_muted", &HslaPrinter(self.0.icon_muted)) + .field("icon_disabled", &HslaPrinter(self.0.icon_disabled)) + .field("icon_placeholder", &HslaPrinter(self.0.icon_placeholder)) + .field("icon_accent", &HslaPrinter(self.0.icon_accent)) + .field("status_bar", &HslaPrinter(self.0.status_bar)) + .field("title_bar", &HslaPrinter(self.0.title_bar)) + .field("toolbar", &HslaPrinter(self.0.toolbar)) + .field("tab_bar", &HslaPrinter(self.0.tab_bar)) + .field("tab_inactive", &HslaPrinter(self.0.tab_inactive)) + .field("tab_active", &HslaPrinter(self.0.tab_active)) + .field("editor", &HslaPrinter(self.0.editor)) + .field("editor_subheader", &HslaPrinter(self.0.editor_subheader)) + .field( + "editor_active_line", + &HslaPrinter(self.0.editor_active_line), + ) + .finish() + } +} + +pub struct StatusColorsPrinter<'a>(&'a StatusColors); + +impl<'a> Debug for StatusColorsPrinter<'a> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("StatusColors") + .field("conflict", &HslaPrinter(self.0.conflict)) + .field("created", &HslaPrinter(self.0.created)) + .field("deleted", &HslaPrinter(self.0.deleted)) + .field("error", &HslaPrinter(self.0.error)) + .field("hidden", &HslaPrinter(self.0.hidden)) + .field("ignored", &HslaPrinter(self.0.ignored)) + .field("info", &HslaPrinter(self.0.info)) + .field("modified", &HslaPrinter(self.0.modified)) + .field("renamed", &HslaPrinter(self.0.renamed)) + .field("success", &HslaPrinter(self.0.success)) + .field("warning", &HslaPrinter(self.0.warning)) + .finish() + } +} + +pub struct GitStatusColorsPrinter<'a>(&'a GitStatusColors); + +impl<'a> Debug for GitStatusColorsPrinter<'a> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("GitStatusColors") + .field("conflict", &HslaPrinter(self.0.conflict)) + .field("created", &HslaPrinter(self.0.created)) + .field("deleted", &HslaPrinter(self.0.deleted)) + .field("ignored", &HslaPrinter(self.0.ignored)) + .field("modified", &HslaPrinter(self.0.modified)) + .field("renamed", &HslaPrinter(self.0.renamed)) + .finish() + } +} + +pub struct PlayerColorsPrinter<'a>(&'a PlayerColors); + +impl<'a> Debug for PlayerColorsPrinter<'a> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_tuple("PlayerColors") + .field(&VecPrinter( + &self + .0 + .0 + .iter() + .map(|player_color| PlayerColorPrinter(player_color)) + .collect(), + )) + .finish() + } +} + +pub struct PlayerColorPrinter<'a>(&'a PlayerColor); + +impl<'a> Debug for PlayerColorPrinter<'a> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("PlayerColor") + .field("cursor", &HslaPrinter(self.0.cursor)) + .field("background", &HslaPrinter(self.0.background)) + .field("selection", &HslaPrinter(self.0.selection)) + .finish() + } +} + +pub struct SyntaxThemePrinter<'a>(&'a SyntaxTheme); + +impl<'a> Debug for SyntaxThemePrinter<'a> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("SyntaxTheme") + .field( + "highlights", + &VecPrinter( + &self + .0 + .highlights + .iter() + .map(|(token, highlight)| { + (IntoPrinter(token), HslaPrinter(highlight.color.unwrap())) + }) + .collect(), + ), + ) + .finish() + } +} From d1636bf16b9b37dfc8e0d4e237d8732e53d28b08 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Thu, 2 Nov 2023 19:14:51 -0400 Subject: [PATCH 09/76] Finish up theme printer --- crates/theme2/src/theme2.rs | 2 +- crates/theme_importer/src/main.rs | 55 ++++++++++++++++++++-- crates/theme_importer/src/theme_printer.rs | 23 +++++++-- 3 files changed, 73 insertions(+), 7 deletions(-) diff --git a/crates/theme2/src/theme2.rs b/crates/theme2/src/theme2.rs index 4232fde324..9cd5fe75c0 100644 --- a/crates/theme2/src/theme2.rs +++ b/crates/theme2/src/theme2.rs @@ -17,7 +17,7 @@ pub use syntax::*; use gpui2::{AppContext, Hsla, SharedString}; use settings2::Settings; -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, PartialEq, Clone, Copy)] pub enum Appearance { Light, Dark, diff --git a/crates/theme_importer/src/main.rs b/crates/theme_importer/src/main.rs index 5e44ae4ea2..ca2b2e3195 100644 --- a/crates/theme_importer/src/main.rs +++ b/crates/theme_importer/src/main.rs @@ -2,10 +2,12 @@ mod theme_printer; mod vscode; use std::fs::{self, File}; +use std::io::Write; use std::path::PathBuf; use std::str::FromStr; use anyhow::{anyhow, Context, Result}; +use convert_case::{Case, Casing}; use gpui::serde_json; use log::LevelFilter; use serde::Deserialize; @@ -65,8 +67,6 @@ pub struct ThemeMetadata { fn main() -> Result<()> { SimpleLogger::init(LevelFilter::Info, Default::default()).expect("could not initialize logger"); - let themes_path = PathBuf::from_str("crates/theme2/src/themes")?; - let vscode_themes_path = PathBuf::from_str("assets/themes/src/vscode/")?; let mut theme_families = Vec::new(); @@ -116,9 +116,58 @@ fn main() -> Result<()> { theme_families.push(theme_family); } + let themes_output_path = PathBuf::from_str("crates/theme2/src/themes")?; + + let mut theme_modules = Vec::new(); + for theme_family in theme_families { - println!("{:#?}", ThemeFamilyPrinter::new(theme_family)); + let theme_family_slug = theme_family.name.to_string().to_case(Case::Snake); + + let mut output_file = + File::create(themes_output_path.join(format!("{theme_family_slug}.rs")))?; + + let theme_module = format!( + r#" + use gpui2::rgba; + + use crate::{{ + default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, + SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, + }}; + + pub fn {theme_family_slug}() -> ThemeFamily {{ + {theme_family_definition} + }} + "#, + theme_family_definition = format!("{:#?}", ThemeFamilyPrinter::new(theme_family)) + ); + + output_file.write_all(theme_module.as_bytes())?; + + theme_modules.push(theme_family_slug); } + let mut mod_rs_file = File::create(themes_output_path.join(format!("mod.rs")))?; + + let mod_rs_contents = format!( + r#" + {mod_statements} + + {use_statements} + "#, + mod_statements = theme_modules + .iter() + .map(|module| format!("mod {module};")) + .collect::>() + .join("\n"), + use_statements = theme_modules + .iter() + .map(|module| format!("pub use {module}::*;")) + .collect::>() + .join("\n") + ); + + mod_rs_file.write_all(mod_rs_contents.as_bytes())?; + Ok(()) } diff --git a/crates/theme_importer/src/theme_printer.rs b/crates/theme_importer/src/theme_printer.rs index 82446030e2..7619734eb1 100644 --- a/crates/theme_importer/src/theme_printer.rs +++ b/crates/theme_importer/src/theme_printer.rs @@ -2,10 +2,18 @@ use std::fmt::{self, Debug}; use gpui::{Hsla, Rgba}; use theme::{ - GitStatusColors, PlayerColor, PlayerColors, StatusColors, SyntaxTheme, SystemColors, - ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, + Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, SyntaxTheme, + SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, }; +struct RawSyntaxPrinter<'a>(&'a str); + +impl<'a> Debug for RawSyntaxPrinter<'a> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "{}", self.0) + } +} + struct HslaPrinter(Hsla); impl Debug for HslaPrinter { @@ -55,6 +63,7 @@ impl Debug for ThemeFamilyPrinter { .collect(), ), ) + .field("scales", &RawSyntaxPrinter("default_color_scales()")) .finish() } } @@ -66,12 +75,20 @@ impl<'a> Debug for ThemeVariantPrinter<'a> { f.debug_struct("ThemeVariant") .field("id", &IntoPrinter(&self.0.id)) .field("name", &IntoPrinter(&self.0.name)) - .field("appearance", &self.0.appearance) + .field("appearance", &AppearancePrinter(self.0.appearance)) .field("styles", &ThemeStylesPrinter(&self.0.styles)) .finish() } } +pub struct AppearancePrinter(Appearance); + +impl Debug for AppearancePrinter { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "Appearance::{:?}", self.0) + } +} + pub struct ThemeStylesPrinter<'a>(&'a ThemeStyles); impl<'a> Debug for ThemeStylesPrinter<'a> { From 152ac6927f9051b25b0dbfec07aea8ce41eb0c5a Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Thu, 2 Nov 2023 19:17:39 -0400 Subject: [PATCH 10/76] Add `themes2/src/themes` directory --- crates/theme2/src/themes/.gitkeep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 crates/theme2/src/themes/.gitkeep diff --git a/crates/theme2/src/themes/.gitkeep b/crates/theme2/src/themes/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 From 95a0827517d2d29a26157b051ac1fea771da48ca Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Thu, 2 Nov 2023 19:20:21 -0400 Subject: [PATCH 11/76] Clean up unused code --- crates/theme_importer/src/main.rs | 10 ------- crates/theme_importer/src/vscode.rs | 43 ++--------------------------- 2 files changed, 2 insertions(+), 51 deletions(-) diff --git a/crates/theme_importer/src/main.rs b/crates/theme_importer/src/main.rs index ca2b2e3195..0e187d631d 100644 --- a/crates/theme_importer/src/main.rs +++ b/crates/theme_importer/src/main.rs @@ -18,16 +18,6 @@ use vscode::VsCodeThemeConverter; use crate::theme_printer::ThemeFamilyPrinter; use crate::vscode::VsCodeTheme; -pub(crate) fn new_theme_family(name: String, author: String) -> ThemeFamily { - ThemeFamily { - id: uuid::Uuid::new_v4().to_string(), - name: name.into(), - author: author.into(), - themes: Vec::new(), - scales: default_color_scales(), - } -} - #[derive(Debug, Deserialize)] struct FamilyMetadata { pub name: String, diff --git a/crates/theme_importer/src/vscode.rs b/crates/theme_importer/src/vscode.rs index bc3ebd22d1..5988598943 100644 --- a/crates/theme_importer/src/vscode.rs +++ b/crates/theme_importer/src/vscode.rs @@ -1,14 +1,10 @@ -use std::path::{Path, PathBuf}; - use anyhow::Result; use gpui::{Hsla, Refineable, Rgba}; use serde::Deserialize; use theme::{ - default_color_scales, Appearance, ColorScales, GitStatusColors, PlayerColors, StatusColors, - SyntaxTheme, SystemColors, ThemeColors, ThemeColorsRefinement, ThemeFamily, ThemeStyles, - ThemeVariant, + Appearance, GitStatusColors, PlayerColors, StatusColors, SyntaxTheme, SystemColors, + ThemeColors, ThemeColorsRefinement, ThemeStyles, ThemeVariant, }; -use uuid::Uuid; use crate::ThemeMetadata; @@ -34,41 +30,6 @@ pub struct VsCodeColors { editor: String, } -pub(crate) fn new_theme_family_from_vsc(path: &Path) -> Result { - todo!() - - // let path_str = path.to_str().unwrap(); - // let family_name = path_str.split('/').last().unwrap(); - - // let mut json_files: Vec = Vec::new(); - - // if path.is_dir() { - // for entry in std::fs::read_dir(path).unwrap() { - // let entry = entry.unwrap(); - // let path = entry.path(); - // if path.is_file() { - // if let Some(extension) = path.extension() { - // if extension == "json" { - // json_files.push(path.file_name().unwrap().to_str().unwrap().to_string()); - // } - // } - // } - // } - // } else { - // anyhow::bail!("Path is not a directory"); - // } - - // let mut theme_family = ThemeFamily { - // id: uuid::Uuid::new_v4().to_string(), - // name: family_name.into(), - // author: "New Theme Family".into(), - // themes: Vec::new(), - // scales: default_color_scales(), - // }; - - // Ok(theme_family) -} - fn try_parse_color(color: &str) -> Result { Ok(Rgba::try_from(color)?.into()) } From 2b0c9591371eb345da35d23b00638c0d86b8e60d Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Thu, 2 Nov 2023 19:53:52 -0400 Subject: [PATCH 12/76] Add terminal colors to ThemeColors, add `_background` to some color names. --- crates/theme2/src/colors.rs | 41 ++++++--- crates/theme2/src/default_colors.rs | 82 ++++++++++++------ crates/theme_importer/src/theme_printer.rs | 33 +++++--- crates/theme_importer/src/vscode.rs | 84 +++++++++++++++---- crates/ui2/src/components/buffer.rs | 2 +- crates/ui2/src/components/buffer_search.rs | 21 +++-- crates/ui2/src/components/collab_panel.rs | 2 +- crates/ui2/src/components/context_menu.rs | 2 +- crates/ui2/src/components/icon_button.rs | 4 +- crates/ui2/src/components/keybinding.rs | 2 +- crates/ui2/src/components/list.rs | 8 +- crates/ui2/src/components/multi_buffer.rs | 2 +- .../ui2/src/components/notification_toast.rs | 2 +- .../ui2/src/components/notifications_panel.rs | 4 +- crates/ui2/src/components/palette.rs | 9 +- crates/ui2/src/components/panel.rs | 2 +- crates/ui2/src/components/panes.rs | 2 +- crates/ui2/src/components/project_panel.rs | 2 +- crates/ui2/src/components/status_bar.rs | 2 +- crates/ui2/src/components/tab.rs | 4 +- crates/ui2/src/components/tab_bar.rs | 2 +- crates/ui2/src/components/terminal.rs | 2 +- crates/ui2/src/components/toast.rs | 2 +- crates/ui2/src/components/toolbar.rs | 2 +- crates/ui2/src/components/traffic_lights.rs | 2 +- crates/ui2/src/elements/button.rs | 4 +- crates/ui2/src/elements/indicator.rs | 2 +- crates/ui2/src/elements/input.rs | 4 +- 28 files changed, 224 insertions(+), 106 deletions(-) diff --git a/crates/theme2/src/colors.rs b/crates/theme2/src/colors.rs index ee69eed612..471c6e2360 100644 --- a/crates/theme2/src/colors.rs +++ b/crates/theme2/src/colors.rs @@ -55,17 +55,17 @@ pub struct ThemeColors { pub border_variant: Hsla, pub border_focused: Hsla, pub border_transparent: Hsla, - pub elevated_surface: Hsla, - pub surface: Hsla, + pub elevated_surface_background: Hsla, + pub surface_background: Hsla, pub background: Hsla, - pub element: Hsla, + pub element_background: Hsla, pub element_hover: Hsla, pub element_active: Hsla, pub element_selected: Hsla, pub element_disabled: Hsla, pub element_placeholder: Hsla, pub element_drop_target: Hsla, - pub ghost_element: Hsla, + pub ghost_element_background: Hsla, pub ghost_element_hover: Hsla, pub ghost_element_active: Hsla, pub ghost_element_selected: Hsla, @@ -80,15 +80,32 @@ pub struct ThemeColors { pub icon_disabled: Hsla, pub icon_placeholder: Hsla, pub icon_accent: Hsla, - pub status_bar: Hsla, - pub title_bar: Hsla, - pub toolbar: Hsla, - pub tab_bar: Hsla, - pub tab_inactive: Hsla, - pub tab_active: Hsla, - pub editor: Hsla, - pub editor_subheader: Hsla, + pub status_bar_background: Hsla, + pub title_bar_background: Hsla, + pub toolbar_background: Hsla, + pub tab_bar_background: Hsla, + pub tab_inactive_background: Hsla, + pub tab_active_background: Hsla, + pub editor_background: Hsla, + pub editor_subheader_background: Hsla, pub editor_active_line: Hsla, + pub terminal_background: Hsla, + pub terminal_ansi_bright_black: Hsla, + pub terminal_ansi_bright_red: Hsla, + pub terminal_ansi_bright_green: Hsla, + pub terminal_ansi_bright_yellow: Hsla, + pub terminal_ansi_bright_blue: Hsla, + pub terminal_ansi_bright_magenta: Hsla, + pub terminal_ansi_bright_cyan: Hsla, + pub terminal_ansi_bright_white: Hsla, + pub terminal_ansi_black: Hsla, + pub terminal_ansi_red: Hsla, + pub terminal_ansi_green: Hsla, + pub terminal_ansi_yellow: Hsla, + pub terminal_ansi_blue: Hsla, + pub terminal_ansi_magenta: Hsla, + pub terminal_ansi_cyan: Hsla, + pub terminal_ansi_white: Hsla, } #[derive(Refineable, Clone)] diff --git a/crates/theme2/src/default_colors.rs b/crates/theme2/src/default_colors.rs index 8b7137683c..ddb563d237 100644 --- a/crates/theme2/src/default_colors.rs +++ b/crates/theme2/src/default_colors.rs @@ -206,17 +206,17 @@ impl ThemeColors { border_variant: neutral().light().step_5(), border_focused: blue().light().step_5(), border_transparent: system.transparent, - elevated_surface: neutral().light().step_2(), - surface: neutral().light().step_2(), + elevated_surface_background: neutral().light().step_2(), + surface_background: neutral().light().step_2(), background: neutral().light().step_1(), - element: neutral().light().step_3(), + element_background: neutral().light().step_3(), element_hover: neutral().light().step_4(), element_active: neutral().light().step_5(), element_selected: neutral().light().step_5(), element_disabled: neutral().light_alpha().step_3(), element_placeholder: neutral().light().step_11(), element_drop_target: blue().light_alpha().step_2(), - ghost_element: system.transparent, + ghost_element_background: system.transparent, ghost_element_hover: neutral().light().step_4(), ghost_element_active: neutral().light().step_5(), ghost_element_selected: neutral().light().step_5(), @@ -231,15 +231,32 @@ impl ThemeColors { icon_disabled: neutral().light().step_9(), icon_placeholder: neutral().light().step_10(), icon_accent: blue().light().step_11(), - status_bar: neutral().light().step_2(), - title_bar: neutral().light().step_2(), - toolbar: neutral().light().step_1(), - tab_bar: neutral().light().step_2(), - tab_active: neutral().light().step_1(), - tab_inactive: neutral().light().step_2(), - editor: neutral().light().step_1(), - editor_subheader: neutral().light().step_2(), + status_bar_background: neutral().light().step_2(), + title_bar_background: neutral().light().step_2(), + toolbar_background: neutral().light().step_1(), + tab_bar_background: neutral().light().step_2(), + tab_active_background: neutral().light().step_1(), + tab_inactive_background: neutral().light().step_2(), + editor_background: neutral().light().step_1(), + editor_subheader_background: neutral().light().step_2(), editor_active_line: neutral().light_alpha().step_3(), + terminal_background: neutral().light().step_1(), + terminal_ansi_black: black().light().step_12(), + terminal_ansi_red: red().light().step_11(), + terminal_ansi_green: green().light().step_11(), + terminal_ansi_yellow: yellow().light().step_11(), + terminal_ansi_blue: blue().light().step_11(), + terminal_ansi_magenta: violet().light().step_11(), + terminal_ansi_cyan: cyan().light().step_11(), + terminal_ansi_white: neutral().light().step_12(), + terminal_ansi_bright_black: black().light().step_11(), + terminal_ansi_bright_red: red().light().step_10(), + terminal_ansi_bright_green: green().light().step_10(), + terminal_ansi_bright_yellow: yellow().light().step_10(), + terminal_ansi_bright_blue: blue().light().step_10(), + terminal_ansi_bright_magenta: violet().light().step_10(), + terminal_ansi_bright_cyan: cyan().light().step_10(), + terminal_ansi_bright_white: neutral().light().step_11(), } } @@ -251,17 +268,17 @@ impl ThemeColors { border_variant: neutral().dark().step_5(), border_focused: blue().dark().step_5(), border_transparent: system.transparent, - elevated_surface: neutral().dark().step_2(), - surface: neutral().dark().step_2(), + elevated_surface_background: neutral().dark().step_2(), + surface_background: neutral().dark().step_2(), background: neutral().dark().step_1(), - element: neutral().dark().step_3(), + element_background: neutral().dark().step_3(), element_hover: neutral().dark().step_4(), element_active: neutral().dark().step_5(), element_selected: neutral().dark().step_5(), element_disabled: neutral().dark_alpha().step_3(), element_placeholder: neutral().dark().step_11(), element_drop_target: blue().dark_alpha().step_2(), - ghost_element: system.transparent, + ghost_element_background: system.transparent, ghost_element_hover: neutral().dark().step_4(), ghost_element_active: neutral().dark().step_5(), ghost_element_selected: neutral().dark().step_5(), @@ -276,15 +293,32 @@ impl ThemeColors { icon_disabled: neutral().dark().step_9(), icon_placeholder: neutral().dark().step_10(), icon_accent: blue().dark().step_11(), - status_bar: neutral().dark().step_2(), - title_bar: neutral().dark().step_2(), - toolbar: neutral().dark().step_1(), - tab_bar: neutral().dark().step_2(), - tab_active: neutral().dark().step_1(), - tab_inactive: neutral().dark().step_2(), - editor: neutral().dark().step_1(), - editor_subheader: neutral().dark().step_2(), + status_bar_background: neutral().dark().step_2(), + title_bar_background: neutral().dark().step_2(), + toolbar_background: neutral().dark().step_1(), + tab_bar_background: neutral().dark().step_2(), + tab_active_background: neutral().dark().step_1(), + tab_inactive_background: neutral().dark().step_2(), + editor_background: neutral().dark().step_1(), + editor_subheader_background: neutral().dark().step_2(), editor_active_line: neutral().dark_alpha().step_3(), + terminal_background: neutral().dark().step_1(), + terminal_ansi_black: black().dark().step_12(), + terminal_ansi_red: red().dark().step_11(), + terminal_ansi_green: green().dark().step_11(), + terminal_ansi_yellow: yellow().dark().step_11(), + terminal_ansi_blue: blue().dark().step_11(), + terminal_ansi_magenta: violet().dark().step_11(), + terminal_ansi_cyan: cyan().dark().step_11(), + terminal_ansi_white: neutral().dark().step_12(), + terminal_ansi_bright_black: black().dark().step_11(), + terminal_ansi_bright_red: red().dark().step_10(), + terminal_ansi_bright_green: green().dark().step_10(), + terminal_ansi_bright_yellow: yellow().dark().step_10(), + terminal_ansi_bright_blue: blue().dark().step_10(), + terminal_ansi_bright_magenta: violet().dark().step_10(), + terminal_ansi_bright_cyan: cyan().dark().step_10(), + terminal_ansi_bright_white: neutral().dark().step_11(), } } } diff --git a/crates/theme_importer/src/theme_printer.rs b/crates/theme_importer/src/theme_printer.rs index 7619734eb1..ef1104d383 100644 --- a/crates/theme_importer/src/theme_printer.rs +++ b/crates/theme_importer/src/theme_printer.rs @@ -138,10 +138,13 @@ impl<'a> Debug for ThemeColorsPrinter<'a> { "border_transparent", &HslaPrinter(self.0.border_transparent), ) - .field("elevated_surface", &HslaPrinter(self.0.elevated_surface)) - .field("surface", &HslaPrinter(self.0.surface)) + .field( + "elevated_surface", + &HslaPrinter(self.0.elevated_surface_background), + ) + .field("surface", &HslaPrinter(self.0.surface_background)) .field("background", &HslaPrinter(self.0.background)) - .field("element", &HslaPrinter(self.0.element)) + .field("element", &HslaPrinter(self.0.element_background)) .field("element_hover", &HslaPrinter(self.0.element_hover)) .field("element_active", &HslaPrinter(self.0.element_active)) .field("element_selected", &HslaPrinter(self.0.element_selected)) @@ -154,7 +157,10 @@ impl<'a> Debug for ThemeColorsPrinter<'a> { "element_drop_target", &HslaPrinter(self.0.element_drop_target), ) - .field("ghost_element", &HslaPrinter(self.0.ghost_element)) + .field( + "ghost_element", + &HslaPrinter(self.0.ghost_element_background), + ) .field( "ghost_element_hover", &HslaPrinter(self.0.ghost_element_hover), @@ -181,14 +187,17 @@ impl<'a> Debug for ThemeColorsPrinter<'a> { .field("icon_disabled", &HslaPrinter(self.0.icon_disabled)) .field("icon_placeholder", &HslaPrinter(self.0.icon_placeholder)) .field("icon_accent", &HslaPrinter(self.0.icon_accent)) - .field("status_bar", &HslaPrinter(self.0.status_bar)) - .field("title_bar", &HslaPrinter(self.0.title_bar)) - .field("toolbar", &HslaPrinter(self.0.toolbar)) - .field("tab_bar", &HslaPrinter(self.0.tab_bar)) - .field("tab_inactive", &HslaPrinter(self.0.tab_inactive)) - .field("tab_active", &HslaPrinter(self.0.tab_active)) - .field("editor", &HslaPrinter(self.0.editor)) - .field("editor_subheader", &HslaPrinter(self.0.editor_subheader)) + .field("status_bar", &HslaPrinter(self.0.status_bar_background)) + .field("title_bar", &HslaPrinter(self.0.title_bar_background)) + .field("toolbar", &HslaPrinter(self.0.toolbar_background)) + .field("tab_bar", &HslaPrinter(self.0.tab_bar_background)) + .field("tab_inactive", &HslaPrinter(self.0.tab_inactive_background)) + .field("tab_active", &HslaPrinter(self.0.tab_active_background)) + .field("editor", &HslaPrinter(self.0.editor_background)) + .field( + "editor_subheader", + &HslaPrinter(self.0.editor_subheader_background), + ) .field( "editor_active_line", &HslaPrinter(self.0.editor_active_line), diff --git a/crates/theme_importer/src/vscode.rs b/crates/theme_importer/src/vscode.rs index 5988598943..78bc211fc8 100644 --- a/crates/theme_importer/src/vscode.rs +++ b/crates/theme_importer/src/vscode.rs @@ -27,7 +27,24 @@ pub struct VsCodeColors { #[serde(rename = "editor.foreground")] text: String, #[serde(rename = "editor.background")] - editor: String, + editor_background: String, + terminal_background: String, + terminal_ansi_bright_black: String, + terminal_ansi_bright_red: String, + terminal_ansi_bright_green: String, + terminal_ansi_bright_yellow: String, + terminal_ansi_bright_blue: String, + terminal_ansi_bright_magenta: String, + terminal_ansi_bright_cyan: String, + terminal_ansi_bright_white: String, + terminal_ansi_black: String, + terminal_ansi_red: String, + terminal_ansi_green: String, + terminal_ansi_yellow: String, + terminal_ansi_blue: String, + terminal_ansi_magenta: String, + terminal_ansi_cyan: String, + terminal_ansi_white: String, } fn try_parse_color(color: &str) -> Result { @@ -58,8 +75,41 @@ impl VsCodeThemeConverter { let vscode_colors = &self.theme.colors; let theme_colors_refinements = ThemeColorsRefinement { - background: Some(try_parse_color(&vscode_colors.editor)?), + background: Some(try_parse_color(&vscode_colors.editor_background)?), text: Some(try_parse_color(&vscode_colors.text)?), + terminal_background: Some(try_parse_color(&vscode_colors.terminal_background)?), + terminal_ansi_bright_black: Some(try_parse_color( + &vscode_colors.terminal_ansi_bright_black, + )?), + terminal_ansi_bright_red: Some(try_parse_color( + &vscode_colors.terminal_ansi_bright_red, + )?), + terminal_ansi_bright_green: Some(try_parse_color( + &vscode_colors.terminal_ansi_bright_green, + )?), + terminal_ansi_bright_yellow: Some(try_parse_color( + &vscode_colors.terminal_ansi_bright_yellow, + )?), + terminal_ansi_bright_blue: Some(try_parse_color( + &vscode_colors.terminal_ansi_bright_blue, + )?), + terminal_ansi_bright_magenta: Some(try_parse_color( + &vscode_colors.terminal_ansi_bright_magenta, + )?), + terminal_ansi_bright_cyan: Some(try_parse_color( + &vscode_colors.terminal_ansi_bright_cyan, + )?), + terminal_ansi_bright_white: Some(try_parse_color( + &vscode_colors.terminal_ansi_bright_white, + )?), + terminal_ansi_black: Some(try_parse_color(&vscode_colors.terminal_ansi_black)?), + terminal_ansi_red: Some(try_parse_color(&vscode_colors.terminal_ansi_red)?), + terminal_ansi_green: Some(try_parse_color(&vscode_colors.terminal_ansi_green)?), + terminal_ansi_yellow: Some(try_parse_color(&vscode_colors.terminal_ansi_yellow)?), + terminal_ansi_blue: Some(try_parse_color(&vscode_colors.terminal_ansi_blue)?), + terminal_ansi_magenta: Some(try_parse_color(&vscode_colors.terminal_ansi_magenta)?), + terminal_ansi_cyan: Some(try_parse_color(&vscode_colors.terminal_ansi_cyan)?), + terminal_ansi_white: Some(try_parse_color(&vscode_colors.terminal_ansi_white)?), ..Default::default() }; @@ -81,22 +131,22 @@ impl VsCodeThemeConverter { } } -#[cfg(test)] -mod tests { - use super::*; - use std::path::PathBuf; +// #[cfg(test)] +// mod tests { +// use super::*; +// use std::path::PathBuf; - #[test] - fn test_deserialize_theme() { - let manifest_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR")); - let root_dir = manifest_dir.parent().unwrap().parent().unwrap(); +// #[test] +// fn test_deserialize_theme() { +// let manifest_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR")); +// let root_dir = manifest_dir.parent().unwrap().parent().unwrap(); - let mut d = root_dir.to_path_buf(); - d.push("assets/themes/src/vsc/dracula/dracula.json"); +// let mut d = root_dir.to_path_buf(); +// d.push("assets/themes/src/vsc/dracula/dracula.json"); - let data = std::fs::read_to_string(d).expect("Unable to read file"); +// let data = std::fs::read_to_string(d).expect("Unable to read file"); - let result: Theme = serde_json::from_str(&data).unwrap(); - println!("{:#?}", result); - } -} +// let result: Theme = serde_json::from_str(&data).unwrap(); +// println!("{:#?}", result); +// } +// } diff --git a/crates/ui2/src/components/buffer.rs b/crates/ui2/src/components/buffer.rs index 2b3db676ce..e12beff2fc 100644 --- a/crates/ui2/src/components/buffer.rs +++ b/crates/ui2/src/components/buffer.rs @@ -220,7 +220,7 @@ impl Buffer { .flex_1() .w_full() .h_full() - .bg(cx.theme().colors().editor) + .bg(cx.theme().colors().editor_background) .children(rows) } } diff --git a/crates/ui2/src/components/buffer_search.rs b/crates/ui2/src/components/buffer_search.rs index 5d7de1b408..02f689ca3e 100644 --- a/crates/ui2/src/components/buffer_search.rs +++ b/crates/ui2/src/components/buffer_search.rs @@ -30,14 +30,17 @@ impl Render for BufferSearch { type Element = Div; fn render(&mut self, cx: &mut ViewContext) -> Div { - h_stack().bg(cx.theme().colors().toolbar).p_2().child( - h_stack().child(Input::new("Search")).child( - IconButton::::new("replace", Icon::Replace) - .when(self.is_replace_open, |this| this.color(IconColor::Accent)) - .on_click(|buffer_search, cx| { - buffer_search.toggle_replace(cx); - }), - ), - ) + h_stack() + .bg(cx.theme().colors().toolbar_background) + .p_2() + .child( + h_stack().child(Input::new("Search")).child( + IconButton::::new("replace", Icon::Replace) + .when(self.is_replace_open, |this| this.color(IconColor::Accent)) + .on_click(|buffer_search, cx| { + buffer_search.toggle_replace(cx); + }), + ), + ) } } diff --git a/crates/ui2/src/components/collab_panel.rs b/crates/ui2/src/components/collab_panel.rs index a0e3b55f63..9f228e54bf 100644 --- a/crates/ui2/src/components/collab_panel.rs +++ b/crates/ui2/src/components/collab_panel.rs @@ -18,7 +18,7 @@ impl CollabPanel { v_stack() .id(self.id.clone()) .h_full() - .bg(cx.theme().colors().surface) + .bg(cx.theme().colors().surface_background) .child( v_stack() .id("crdb") diff --git a/crates/ui2/src/components/context_menu.rs b/crates/ui2/src/components/context_menu.rs index 8345be1b35..e5e439ac64 100644 --- a/crates/ui2/src/components/context_menu.rs +++ b/crates/ui2/src/components/context_menu.rs @@ -46,7 +46,7 @@ impl ContextMenu { fn render(self, _view: &mut V, cx: &mut ViewContext) -> impl Component { v_stack() .flex() - .bg(cx.theme().colors().elevated_surface) + .bg(cx.theme().colors().elevated_surface_background) .border() .border_color(cx.theme().colors().border) .child( diff --git a/crates/ui2/src/components/icon_button.rs b/crates/ui2/src/components/icon_button.rs index 101c845a76..8fe1a1fa9b 100644 --- a/crates/ui2/src/components/icon_button.rs +++ b/crates/ui2/src/components/icon_button.rs @@ -73,12 +73,12 @@ impl IconButton { let (bg_color, bg_hover_color, bg_active_color) = match self.variant { ButtonVariant::Filled => ( - cx.theme().colors().element, + cx.theme().colors().element_background, cx.theme().colors().element_hover, cx.theme().colors().element_active, ), ButtonVariant::Ghost => ( - cx.theme().colors().ghost_element, + cx.theme().colors().ghost_element_background, cx.theme().colors().ghost_element_hover, cx.theme().colors().ghost_element_active, ), diff --git a/crates/ui2/src/components/keybinding.rs b/crates/ui2/src/components/keybinding.rs index 88cabbdc88..8b8fba8c08 100644 --- a/crates/ui2/src/components/keybinding.rs +++ b/crates/ui2/src/components/keybinding.rs @@ -66,7 +66,7 @@ impl Key { .rounded_md() .text_sm() .text_color(cx.theme().colors().text) - .bg(cx.theme().colors().element) + .bg(cx.theme().colors().element_background) .child(self.key.clone()) } } diff --git a/crates/ui2/src/components/list.rs b/crates/ui2/src/components/list.rs index 50a86ff256..2e61bd6118 100644 --- a/crates/ui2/src/components/list.rs +++ b/crates/ui2/src/components/list.rs @@ -106,7 +106,7 @@ impl ListHeader { h_stack() .w_full() - .bg(cx.theme().colors().surface) + .bg(cx.theme().colors().surface_background) // TODO: Add focus state // .when(self.state == InteractionState::Focused, |this| { // this.border() @@ -399,7 +399,7 @@ impl ListEntry { div() .relative() .group("") - .bg(cx.theme().colors().surface) + .bg(cx.theme().colors().surface_background) .when(self.state == InteractionState::Focused, |this| { this.border() .border_color(cx.theme().colors().border_focused) @@ -490,7 +490,7 @@ impl ListDetailsEntry { let settings = user_settings(cx); let (item_bg, item_bg_hover, item_bg_active) = ( - cx.theme().colors().ghost_element, + cx.theme().colors().ghost_element_background, cx.theme().colors().ghost_element_hover, cx.theme().colors().ghost_element_active, ); @@ -516,7 +516,7 @@ impl ListDetailsEntry { .top_3() .rounded_full() .border_2() - .border_color(cx.theme().colors().surface) + .border_color(cx.theme().colors().surface_background) .w(px(9.0)) .h(px(9.0)) .z_index(2) diff --git a/crates/ui2/src/components/multi_buffer.rs b/crates/ui2/src/components/multi_buffer.rs index ea130f20bd..1334703015 100644 --- a/crates/ui2/src/components/multi_buffer.rs +++ b/crates/ui2/src/components/multi_buffer.rs @@ -24,7 +24,7 @@ impl MultiBuffer { .items_center() .justify_between() .p_4() - .bg(cx.theme().colors().editor_subheader) + .bg(cx.theme().colors().editor_subheader_background) .child(Label::new("main.rs")) .child(IconButton::new("arrow_up_right", Icon::ArrowUpRight)), ) diff --git a/crates/ui2/src/components/notification_toast.rs b/crates/ui2/src/components/notification_toast.rs index 59078c98f4..e8739b925c 100644 --- a/crates/ui2/src/components/notification_toast.rs +++ b/crates/ui2/src/components/notification_toast.rs @@ -34,7 +34,7 @@ impl NotificationToast { .px_1p5() .rounded_lg() .shadow_md() - .bg(cx.theme().colors().elevated_surface) + .bg(cx.theme().colors().elevated_surface_background) .child(div().size_full().child(self.label.clone())) } } diff --git a/crates/ui2/src/components/notifications_panel.rs b/crates/ui2/src/components/notifications_panel.rs index 74f015ac06..be9b51115d 100644 --- a/crates/ui2/src/components/notifications_panel.rs +++ b/crates/ui2/src/components/notifications_panel.rs @@ -22,7 +22,7 @@ impl NotificationsPanel { .flex() .flex_col() .size_full() - .bg(cx.theme().colors().surface) + .bg(cx.theme().colors().surface_background) .child( ListHeader::new("Notifications").meta(Some(ListHeaderMeta::Tools(vec![ Icon::AtSign, @@ -43,7 +43,7 @@ impl NotificationsPanel { .p_1() // TODO: Add cursor style // .cursor(Cursor::IBeam) - .bg(cx.theme().colors().element) + .bg(cx.theme().colors().element_background) .border() .border_color(cx.theme().colors().border_variant) .child( diff --git a/crates/ui2/src/components/palette.rs b/crates/ui2/src/components/palette.rs index a1f3eb7e1c..269b39d86d 100644 --- a/crates/ui2/src/components/palette.rs +++ b/crates/ui2/src/components/palette.rs @@ -47,7 +47,7 @@ impl Palette { .id(self.id.clone()) .w_96() .rounded_lg() - .bg(cx.theme().colors().elevated_surface) + .bg(cx.theme().colors().elevated_surface_background) .border() .border_color(cx.theme().colors().border) .child( @@ -56,7 +56,12 @@ impl Palette { .child(v_stack().py_0p5().px_1().child(div().px_2().py_0p5().child( Label::new(self.input_placeholder.clone()).color(LabelColor::Placeholder), ))) - .child(div().h_px().w_full().bg(cx.theme().colors().element)) + .child( + div() + .h_px() + .w_full() + .bg(cx.theme().colors().element_background), + ) .child( v_stack() .id("items") diff --git a/crates/ui2/src/components/panel.rs b/crates/ui2/src/components/panel.rs index 5d941eb50e..ba88abb337 100644 --- a/crates/ui2/src/components/panel.rs +++ b/crates/ui2/src/components/panel.rs @@ -107,7 +107,7 @@ impl Panel { PanelSide::Right => this.border_l(), PanelSide::Bottom => this.border_b().w_full().h(current_size), }) - .bg(cx.theme().colors().surface) + .bg(cx.theme().colors().surface_background) .border_color(cx.theme().colors().border) .children(self.children) } diff --git a/crates/ui2/src/components/panes.rs b/crates/ui2/src/components/panes.rs index bf0f27d43f..a1e040b0ca 100644 --- a/crates/ui2/src/components/panes.rs +++ b/crates/ui2/src/components/panes.rs @@ -113,7 +113,7 @@ impl PaneGroup { .gap_px() .w_full() .h_full() - .bg(cx.theme().colors().editor) + .bg(cx.theme().colors().editor_background) .children(self.groups.into_iter().map(|group| group.render(view, cx))); if self.split_direction == SplitDirection::Horizontal { diff --git a/crates/ui2/src/components/project_panel.rs b/crates/ui2/src/components/project_panel.rs index 76fa50d338..90c5696c5b 100644 --- a/crates/ui2/src/components/project_panel.rs +++ b/crates/ui2/src/components/project_panel.rs @@ -20,7 +20,7 @@ impl ProjectPanel { .flex_col() .w_full() .h_full() - .bg(cx.theme().colors().surface) + .bg(cx.theme().colors().surface_background) .child( div() .id("project-panel-contents") diff --git a/crates/ui2/src/components/status_bar.rs b/crates/ui2/src/components/status_bar.rs index 136472f605..34a5993e69 100644 --- a/crates/ui2/src/components/status_bar.rs +++ b/crates/ui2/src/components/status_bar.rs @@ -93,7 +93,7 @@ impl StatusBar { .items_center() .justify_between() .w_full() - .bg(cx.theme().colors().status_bar) + .bg(cx.theme().colors().status_bar_background) .child(self.left_tools(view, cx)) .child(self.right_tools(view, cx)) } diff --git a/crates/ui2/src/components/tab.rs b/crates/ui2/src/components/tab.rs index e8b0ee3be5..47de0541f1 100644 --- a/crates/ui2/src/components/tab.rs +++ b/crates/ui2/src/components/tab.rs @@ -109,12 +109,12 @@ impl Tab { let (tab_bg, tab_hover_bg, tab_active_bg) = match self.current { false => ( - cx.theme().colors().tab_inactive, + cx.theme().colors().tab_inactive_background, cx.theme().colors().ghost_element_hover, cx.theme().colors().ghost_element_active, ), true => ( - cx.theme().colors().tab_active, + cx.theme().colors().tab_active_background, cx.theme().colors().element_hover, cx.theme().colors().element_active, ), diff --git a/crates/ui2/src/components/tab_bar.rs b/crates/ui2/src/components/tab_bar.rs index bb7fca1153..a128044183 100644 --- a/crates/ui2/src/components/tab_bar.rs +++ b/crates/ui2/src/components/tab_bar.rs @@ -31,7 +31,7 @@ impl TabBar { .id(self.id.clone()) .w_full() .flex() - .bg(cx.theme().colors().tab_bar) + .bg(cx.theme().colors().tab_bar_background) // Left Side .child( div() diff --git a/crates/ui2/src/components/terminal.rs b/crates/ui2/src/components/terminal.rs index 051ebf7315..b912a59607 100644 --- a/crates/ui2/src/components/terminal.rs +++ b/crates/ui2/src/components/terminal.rs @@ -24,7 +24,7 @@ impl Terminal { div() .w_full() .flex() - .bg(cx.theme().colors().surface) + .bg(cx.theme().colors().surface_background) .child( div().px_1().flex().flex_none().gap_2().child( div() diff --git a/crates/ui2/src/components/toast.rs b/crates/ui2/src/components/toast.rs index 3b81ac42b4..4ab6625dba 100644 --- a/crates/ui2/src/components/toast.rs +++ b/crates/ui2/src/components/toast.rs @@ -54,7 +54,7 @@ impl Toast { .rounded_lg() .shadow_md() .overflow_hidden() - .bg(cx.theme().colors().elevated_surface) + .bg(cx.theme().colors().elevated_surface_background) .children(self.children) } } diff --git a/crates/ui2/src/components/toolbar.rs b/crates/ui2/src/components/toolbar.rs index 05a5c991d6..0e3e7c259f 100644 --- a/crates/ui2/src/components/toolbar.rs +++ b/crates/ui2/src/components/toolbar.rs @@ -56,7 +56,7 @@ impl Toolbar { fn render(self, _view: &mut V, cx: &mut ViewContext) -> impl Component { div() - .bg(cx.theme().colors().toolbar) + .bg(cx.theme().colors().toolbar_background) .p_2() .flex() .justify_between() diff --git a/crates/ui2/src/components/traffic_lights.rs b/crates/ui2/src/components/traffic_lights.rs index 9080276cdd..677fae886c 100644 --- a/crates/ui2/src/components/traffic_lights.rs +++ b/crates/ui2/src/components/traffic_lights.rs @@ -28,7 +28,7 @@ impl TrafficLight { (true, TrafficLightColor::Red) => system_colors.mac_os_traffic_light_red, (true, TrafficLightColor::Yellow) => system_colors.mac_os_traffic_light_yellow, (true, TrafficLightColor::Green) => system_colors.mac_os_traffic_light_green, - (false, _) => cx.theme().colors().element, + (false, _) => cx.theme().colors().element_background, }; div().w_3().h_3().rounded_full().bg(fill) diff --git a/crates/ui2/src/elements/button.rs b/crates/ui2/src/elements/button.rs index 073bcdbb45..be7f29fee2 100644 --- a/crates/ui2/src/elements/button.rs +++ b/crates/ui2/src/elements/button.rs @@ -22,8 +22,8 @@ pub enum ButtonVariant { impl ButtonVariant { pub fn bg_color(&self, cx: &mut WindowContext) -> Hsla { match self { - ButtonVariant::Ghost => cx.theme().colors().ghost_element, - ButtonVariant::Filled => cx.theme().colors().element, + ButtonVariant::Ghost => cx.theme().colors().ghost_element_background, + ButtonVariant::Filled => cx.theme().colors().element_background, } } diff --git a/crates/ui2/src/elements/indicator.rs b/crates/ui2/src/elements/indicator.rs index 1f6e00e621..94398ab7f6 100644 --- a/crates/ui2/src/elements/indicator.rs +++ b/crates/ui2/src/elements/indicator.rs @@ -14,7 +14,7 @@ impl UnreadIndicator { div() .rounded_full() .border_2() - .border_color(cx.theme().colors().surface) + .border_color(cx.theme().colors().surface_background) .w(px(9.0)) .h(px(9.0)) .z_index(2) diff --git a/crates/ui2/src/elements/input.rs b/crates/ui2/src/elements/input.rs index 2884470ce2..f288f3ca56 100644 --- a/crates/ui2/src/elements/input.rs +++ b/crates/ui2/src/elements/input.rs @@ -59,12 +59,12 @@ impl Input { fn render(self, _view: &mut V, cx: &mut ViewContext) -> impl Component { let (input_bg, input_hover_bg, input_active_bg) = match self.variant { InputVariant::Ghost => ( - cx.theme().colors().ghost_element, + cx.theme().colors().ghost_element_background, cx.theme().colors().ghost_element_hover, cx.theme().colors().ghost_element_active, ), InputVariant::Filled => ( - cx.theme().colors().element, + cx.theme().colors().element_background, cx.theme().colors().element_hover, cx.theme().colors().element_active, ), From 8d09baa3a50d33e542cb030d8a64ecbc168ee414 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Thu, 2 Nov 2023 20:06:35 -0400 Subject: [PATCH 13/76] Remove unintentionally committed txt file --- theme.txt | 254 ------------------------------------------------------ 1 file changed, 254 deletions(-) delete mode 100644 theme.txt diff --git a/theme.txt b/theme.txt deleted file mode 100644 index 626d6b9fa9..0000000000 --- a/theme.txt +++ /dev/null @@ -1,254 +0,0 @@ - Finished dev [unoptimized + debuginfo] target(s) in 0.39s - Running `target/debug/storybook` -[crates/ui2/src/components/workspace.rs:182] color = [crates/ui2/src/color.rs:162] "ThemeColor debug" = "ThemeColor debug" -ThemeColor { - transparent: "rgba(0x00000000).into()", - mac_os_traffic_light_red: "rgba(0xec695eff).into()", - mac_os_traffic_light_yellow: "rgba(0xf4bf4eff).into()", - mac_os_traffic_light_green: "rgba(0x61c553ff).into()", - border: "rgba(0x464b57ff).into()", - border_variant: "rgba(0x464b57ff).into()", - border_focused: "rgba(0x293b5bff).into()", - border_transparent: "rgba(0x00000000).into()", - elevated_surface: "rgba(0x3b414dff).into()", - surface: "rgba(0x2f343eff).into()", - background: "rgba(0x3b414dff).into()", - filled_element: "rgba(0x3b414dff).into()", - filled_element_hover: "rgba(0xffffff1e).into()", - filled_element_active: "rgba(0xffffff28).into()", - filled_element_selected: "rgba(0x18243dff).into()", - filled_element_disabled: "rgba(0x00000000).into()", - ghost_element: "rgba(0x00000000).into()", - ghost_element_hover: "rgba(0xffffff14).into()", - ghost_element_active: "rgba(0xffffff1e).into()", - ghost_element_selected: "rgba(0x18243dff).into()", - ghost_element_disabled: "rgba(0x00000000).into()", - text: "rgba(0xc8ccd4ff).into()", - text_muted: "rgba(0x838994ff).into()", - text_placeholder: "rgba(0xd07277ff).into()", - text_disabled: "rgba(0x555a63ff).into()", - text_accent: "rgba(0x74ade8ff).into()", - icon_muted: "rgba(0x838994ff).into()", - syntax: SyntaxColor { - comment: "rgba(0x5d636fff).into()", - string: "rgba(0xa1c181ff).into()", - function: "rgba(0x73ade9ff).into()", - keyword: "rgba(0xb477cfff).into()", - }, - status_bar: "rgba(0x3b414dff).into()", - title_bar: "rgba(0x3b414dff).into()", - toolbar: "rgba(0x282c33ff).into()", - tab_bar: "rgba(0x2f343eff).into()", - editor_subheader: "rgba(0x2f343eff).into()", - editor_active_line: "rgba(0x2f343eff).into()", - terminal: "rgba(0x282c33ff).into()", - image_fallback_background: "rgba(0x3b414dff).into()", - git_created: "rgba(0xa1c181ff).into()", - git_modified: "rgba(0x74ade8ff).into()", - git_deleted: "rgba(0xd07277ff).into()", - git_conflict: "rgba(0xdec184ff).into()", - git_ignored: "rgba(0x555a63ff).into()", - git_renamed: "rgba(0xdec184ff).into()", - player: [ - PlayerThemeColors { - cursor: "rgba(0x74ade8ff).into()", - selection: "rgba(0x74ade83d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xa1c181ff).into()", - selection: "rgba(0xa1c1813d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xbe5046ff).into()", - selection: "rgba(0xbe50463d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xbf956aff).into()", - selection: "rgba(0xbf956a3d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xb477cfff).into()", - selection: "rgba(0xb477cf3d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0x6eb4bfff).into()", - selection: "rgba(0x6eb4bf3d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xd07277ff).into()", - selection: "rgba(0xd072773d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xdec184ff).into()", - selection: "rgba(0xdec1843d).into()", - }, - ], -} -[crates/ui2/src/components/workspace.rs:182] color = [crates/ui2/src/color.rs:162] "ThemeColor debug" = "ThemeColor debug" -ThemeColor { - transparent: "rgba(0x00000000).into()", - mac_os_traffic_light_red: "rgba(0xec695eff).into()", - mac_os_traffic_light_yellow: "rgba(0xf4bf4eff).into()", - mac_os_traffic_light_green: "rgba(0x61c553ff).into()", - border: "rgba(0x464b57ff).into()", - border_variant: "rgba(0x464b57ff).into()", - border_focused: "rgba(0x293b5bff).into()", - border_transparent: "rgba(0x00000000).into()", - elevated_surface: "rgba(0x3b414dff).into()", - surface: "rgba(0x2f343eff).into()", - background: "rgba(0x3b414dff).into()", - filled_element: "rgba(0x3b414dff).into()", - filled_element_hover: "rgba(0xffffff1e).into()", - filled_element_active: "rgba(0xffffff28).into()", - filled_element_selected: "rgba(0x18243dff).into()", - filled_element_disabled: "rgba(0x00000000).into()", - ghost_element: "rgba(0x00000000).into()", - ghost_element_hover: "rgba(0xffffff14).into()", - ghost_element_active: "rgba(0xffffff1e).into()", - ghost_element_selected: "rgba(0x18243dff).into()", - ghost_element_disabled: "rgba(0x00000000).into()", - text: "rgba(0xc8ccd4ff).into()", - text_muted: "rgba(0x838994ff).into()", - text_placeholder: "rgba(0xd07277ff).into()", - text_disabled: "rgba(0x555a63ff).into()", - text_accent: "rgba(0x74ade8ff).into()", - icon_muted: "rgba(0x838994ff).into()", - syntax: SyntaxColor { - comment: "rgba(0x5d636fff).into()", - string: "rgba(0xa1c181ff).into()", - function: "rgba(0x73ade9ff).into()", - keyword: "rgba(0xb477cfff).into()", - }, - status_bar: "rgba(0x3b414dff).into()", - title_bar: "rgba(0x3b414dff).into()", - toolbar: "rgba(0x282c33ff).into()", - tab_bar: "rgba(0x2f343eff).into()", - editor_subheader: "rgba(0x2f343eff).into()", - editor_active_line: "rgba(0x2f343eff).into()", - terminal: "rgba(0x282c33ff).into()", - image_fallback_background: "rgba(0x3b414dff).into()", - git_created: "rgba(0xa1c181ff).into()", - git_modified: "rgba(0x74ade8ff).into()", - git_deleted: "rgba(0xd07277ff).into()", - git_conflict: "rgba(0xdec184ff).into()", - git_ignored: "rgba(0x555a63ff).into()", - git_renamed: "rgba(0xdec184ff).into()", - player: [ - PlayerThemeColors { - cursor: "rgba(0x74ade8ff).into()", - selection: "rgba(0x74ade83d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xa1c181ff).into()", - selection: "rgba(0xa1c1813d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xbe5046ff).into()", - selection: "rgba(0xbe50463d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xbf956aff).into()", - selection: "rgba(0xbf956a3d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xb477cfff).into()", - selection: "rgba(0xb477cf3d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0x6eb4bfff).into()", - selection: "rgba(0x6eb4bf3d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xd07277ff).into()", - selection: "rgba(0xd072773d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xdec184ff).into()", - selection: "rgba(0xdec1843d).into()", - }, - ], -} -[crates/ui2/src/components/workspace.rs:182] color = [crates/ui2/src/color.rs:162] "ThemeColor debug" = "ThemeColor debug" -ThemeColor { - transparent: "rgba(0x00000000).into()", - mac_os_traffic_light_red: "rgba(0xec695eff).into()", - mac_os_traffic_light_yellow: "rgba(0xf4bf4eff).into()", - mac_os_traffic_light_green: "rgba(0x61c553ff).into()", - border: "rgba(0x464b57ff).into()", - border_variant: "rgba(0x464b57ff).into()", - border_focused: "rgba(0x293b5bff).into()", - border_transparent: "rgba(0x00000000).into()", - elevated_surface: "rgba(0x3b414dff).into()", - surface: "rgba(0x2f343eff).into()", - background: "rgba(0x3b414dff).into()", - filled_element: "rgba(0x3b414dff).into()", - filled_element_hover: "rgba(0xffffff1e).into()", - filled_element_active: "rgba(0xffffff28).into()", - filled_element_selected: "rgba(0x18243dff).into()", - filled_element_disabled: "rgba(0x00000000).into()", - ghost_element: "rgba(0x00000000).into()", - ghost_element_hover: "rgba(0xffffff14).into()", - ghost_element_active: "rgba(0xffffff1e).into()", - ghost_element_selected: "rgba(0x18243dff).into()", - ghost_element_disabled: "rgba(0x00000000).into()", - text: "rgba(0xc8ccd4ff).into()", - text_muted: "rgba(0x838994ff).into()", - text_placeholder: "rgba(0xd07277ff).into()", - text_disabled: "rgba(0x555a63ff).into()", - text_accent: "rgba(0x74ade8ff).into()", - icon_muted: "rgba(0x838994ff).into()", - syntax: SyntaxColor { - comment: "rgba(0x5d636fff).into()", - string: "rgba(0xa1c181ff).into()", - function: "rgba(0x73ade9ff).into()", - keyword: "rgba(0xb477cfff).into()", - }, - status_bar: "rgba(0x3b414dff).into()", - title_bar: "rgba(0x3b414dff).into()", - toolbar: "rgba(0x282c33ff).into()", - tab_bar: "rgba(0x2f343eff).into()", - editor_subheader: "rgba(0x2f343eff).into()", - editor_active_line: "rgba(0x2f343eff).into()", - terminal: "rgba(0x282c33ff).into()", - image_fallback_background: "rgba(0x3b414dff).into()", - git_created: "rgba(0xa1c181ff).into()", - git_modified: "rgba(0x74ade8ff).into()", - git_deleted: "rgba(0xd07277ff).into()", - git_conflict: "rgba(0xdec184ff).into()", - git_ignored: "rgba(0x555a63ff).into()", - git_renamed: "rgba(0xdec184ff).into()", - player: [ - PlayerThemeColors { - cursor: "rgba(0x74ade8ff).into()", - selection: "rgba(0x74ade83d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xa1c181ff).into()", - selection: "rgba(0xa1c1813d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xbe5046ff).into()", - selection: "rgba(0xbe50463d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xbf956aff).into()", - selection: "rgba(0xbf956a3d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xb477cfff).into()", - selection: "rgba(0xb477cf3d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0x6eb4bfff).into()", - selection: "rgba(0x6eb4bf3d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xd07277ff).into()", - selection: "rgba(0xd072773d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xdec184ff).into()", - selection: "rgba(0xdec1843d).into()", - }, - ], -} From 0d0b6db24f6221a124d60e4bd7e4363aeeebb7df Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Thu, 2 Nov 2023 20:15:51 -0400 Subject: [PATCH 14/76] Update theme importer --- crates/theme_importer/src/theme_printer.rs | 113 ++++++++++++++++++--- crates/theme_importer/src/vscode.rs | 17 ++++ 2 files changed, 118 insertions(+), 12 deletions(-) diff --git a/crates/theme_importer/src/theme_printer.rs b/crates/theme_importer/src/theme_printer.rs index ef1104d383..1c4d263389 100644 --- a/crates/theme_importer/src/theme_printer.rs +++ b/crates/theme_importer/src/theme_printer.rs @@ -139,12 +139,18 @@ impl<'a> Debug for ThemeColorsPrinter<'a> { &HslaPrinter(self.0.border_transparent), ) .field( - "elevated_surface", + "elevated_surface_background", &HslaPrinter(self.0.elevated_surface_background), ) - .field("surface", &HslaPrinter(self.0.surface_background)) + .field( + "surface_background", + &HslaPrinter(self.0.surface_background), + ) .field("background", &HslaPrinter(self.0.background)) - .field("element", &HslaPrinter(self.0.element_background)) + .field( + "element_background", + &HslaPrinter(self.0.element_background), + ) .field("element_hover", &HslaPrinter(self.0.element_hover)) .field("element_active", &HslaPrinter(self.0.element_active)) .field("element_selected", &HslaPrinter(self.0.element_selected)) @@ -158,7 +164,7 @@ impl<'a> Debug for ThemeColorsPrinter<'a> { &HslaPrinter(self.0.element_drop_target), ) .field( - "ghost_element", + "ghost_element_background", &HslaPrinter(self.0.ghost_element_background), ) .field( @@ -187,21 +193,104 @@ impl<'a> Debug for ThemeColorsPrinter<'a> { .field("icon_disabled", &HslaPrinter(self.0.icon_disabled)) .field("icon_placeholder", &HslaPrinter(self.0.icon_placeholder)) .field("icon_accent", &HslaPrinter(self.0.icon_accent)) - .field("status_bar", &HslaPrinter(self.0.status_bar_background)) - .field("title_bar", &HslaPrinter(self.0.title_bar_background)) - .field("toolbar", &HslaPrinter(self.0.toolbar_background)) - .field("tab_bar", &HslaPrinter(self.0.tab_bar_background)) - .field("tab_inactive", &HslaPrinter(self.0.tab_inactive_background)) - .field("tab_active", &HslaPrinter(self.0.tab_active_background)) - .field("editor", &HslaPrinter(self.0.editor_background)) .field( - "editor_subheader", + "status_bar_background", + &HslaPrinter(self.0.status_bar_background), + ) + .field( + "title_bar_background", + &HslaPrinter(self.0.title_bar_background), + ) + .field( + "toolbar_background", + &HslaPrinter(self.0.toolbar_background), + ) + .field( + "tab_bar_background", + &HslaPrinter(self.0.tab_bar_background), + ) + .field( + "tab_inactive_background", + &HslaPrinter(self.0.tab_inactive_background), + ) + .field( + "tab_active_background", + &HslaPrinter(self.0.tab_active_background), + ) + .field("editor_background", &HslaPrinter(self.0.editor_background)) + .field( + "editor_subheader_background", &HslaPrinter(self.0.editor_subheader_background), ) .field( "editor_active_line", &HslaPrinter(self.0.editor_active_line), ) + .field( + "terminal_background", + &HslaPrinter(self.0.terminal_background), + ) + .field( + "terminal_ansi_bright_black", + &HslaPrinter(self.0.terminal_ansi_bright_black), + ) + .field( + "terminal_ansi_bright_red", + &HslaPrinter(self.0.terminal_ansi_bright_red), + ) + .field( + "terminal_ansi_bright_green", + &HslaPrinter(self.0.terminal_ansi_bright_green), + ) + .field( + "terminal_ansi_bright_yellow", + &HslaPrinter(self.0.terminal_ansi_bright_yellow), + ) + .field( + "terminal_ansi_bright_blue", + &HslaPrinter(self.0.terminal_ansi_bright_blue), + ) + .field( + "terminal_ansi_bright_magenta", + &HslaPrinter(self.0.terminal_ansi_bright_magenta), + ) + .field( + "terminal_ansi_bright_cyan", + &HslaPrinter(self.0.terminal_ansi_bright_cyan), + ) + .field( + "terminal_ansi_bright_white", + &HslaPrinter(self.0.terminal_ansi_bright_white), + ) + .field( + "terminal_ansi_black", + &HslaPrinter(self.0.terminal_ansi_black), + ) + .field("terminal_ansi_red", &HslaPrinter(self.0.terminal_ansi_red)) + .field( + "terminal_ansi_green", + &HslaPrinter(self.0.terminal_ansi_green), + ) + .field( + "terminal_ansi_yellow", + &HslaPrinter(self.0.terminal_ansi_yellow), + ) + .field( + "terminal_ansi_blue", + &HslaPrinter(self.0.terminal_ansi_blue), + ) + .field( + "terminal_ansi_magenta", + &HslaPrinter(self.0.terminal_ansi_magenta), + ) + .field( + "terminal_ansi_cyan", + &HslaPrinter(self.0.terminal_ansi_cyan), + ) + .field( + "terminal_ansi_white", + &HslaPrinter(self.0.terminal_ansi_white), + ) .finish() } } diff --git a/crates/theme_importer/src/vscode.rs b/crates/theme_importer/src/vscode.rs index 78bc211fc8..db63a6adf4 100644 --- a/crates/theme_importer/src/vscode.rs +++ b/crates/theme_importer/src/vscode.rs @@ -28,22 +28,39 @@ pub struct VsCodeColors { text: String, #[serde(rename = "editor.background")] editor_background: String, + #[serde(rename = "terminal.background")] terminal_background: String, + #[serde(rename = "terminal.ansiBrightBlack")] terminal_ansi_bright_black: String, + #[serde(rename = "terminal.ansiBrightRed")] terminal_ansi_bright_red: String, + #[serde(rename = "terminal.ansiBrightGreen")] terminal_ansi_bright_green: String, + #[serde(rename = "terminal.ansiBrightYellow")] terminal_ansi_bright_yellow: String, + #[serde(rename = "terminal.ansiBrightBlue")] terminal_ansi_bright_blue: String, + #[serde(rename = "terminal.ansiBrightMagenta")] terminal_ansi_bright_magenta: String, + #[serde(rename = "terminal.ansiBrightCyan")] terminal_ansi_bright_cyan: String, + #[serde(rename = "terminal.ansiBrightWhite")] terminal_ansi_bright_white: String, + #[serde(rename = "terminal.ansiBlack")] terminal_ansi_black: String, + #[serde(rename = "terminal.ansiRed")] terminal_ansi_red: String, + #[serde(rename = "terminal.ansiGreen")] terminal_ansi_green: String, + #[serde(rename = "terminal.ansiYellow")] terminal_ansi_yellow: String, + #[serde(rename = "terminal.ansiBlue")] terminal_ansi_blue: String, + #[serde(rename = "terminal.ansiMagenta")] terminal_ansi_magenta: String, + #[serde(rename = "terminal.ansiCyan")] terminal_ansi_cyan: String, + #[serde(rename = "terminal.ansiWhite")] terminal_ansi_white: String, } From 383d9129f480245a043694e5d17d32f8bcfa2144 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Thu, 2 Nov 2023 21:49:26 -0400 Subject: [PATCH 15/76] [Not compiling] Continue working on VSCode import --- crates/theme_importer/src/vscode.rs | 404 ++++++++++++++++++++++++++-- 1 file changed, 382 insertions(+), 22 deletions(-) diff --git a/crates/theme_importer/src/vscode.rs b/crates/theme_importer/src/vscode.rs index db63a6adf4..b1a6a0e44b 100644 --- a/crates/theme_importer/src/vscode.rs +++ b/crates/theme_importer/src/vscode.rs @@ -24,44 +24,395 @@ pub struct VsCodeTheme { #[derive(Debug, Deserialize)] pub struct VsCodeColors { - #[serde(rename = "editor.foreground")] - text: String, - #[serde(rename = "editor.background")] - editor_background: String, #[serde(rename = "terminal.background")] - terminal_background: String, + pub terminal_background: Option, + #[serde(rename = "terminal.foreground")] + pub terminal_foreground: Option, #[serde(rename = "terminal.ansiBrightBlack")] - terminal_ansi_bright_black: String, + pub terminal_ansi_bright_black: Option, #[serde(rename = "terminal.ansiBrightRed")] - terminal_ansi_bright_red: String, + pub terminal_ansi_bright_red: Option, #[serde(rename = "terminal.ansiBrightGreen")] - terminal_ansi_bright_green: String, + pub terminal_ansi_bright_green: Option, #[serde(rename = "terminal.ansiBrightYellow")] - terminal_ansi_bright_yellow: String, + pub terminal_ansi_bright_yellow: Option, #[serde(rename = "terminal.ansiBrightBlue")] - terminal_ansi_bright_blue: String, + pub terminal_ansi_bright_blue: Option, #[serde(rename = "terminal.ansiBrightMagenta")] - terminal_ansi_bright_magenta: String, + pub terminal_ansi_bright_magenta: Option, #[serde(rename = "terminal.ansiBrightCyan")] - terminal_ansi_bright_cyan: String, + pub terminal_ansi_bright_cyan: Option, #[serde(rename = "terminal.ansiBrightWhite")] - terminal_ansi_bright_white: String, + pub terminal_ansi_bright_white: Option, #[serde(rename = "terminal.ansiBlack")] - terminal_ansi_black: String, + pub terminal_ansi_black: Option, #[serde(rename = "terminal.ansiRed")] - terminal_ansi_red: String, + pub terminal_ansi_red: Option, #[serde(rename = "terminal.ansiGreen")] - terminal_ansi_green: String, + pub terminal_ansi_green: Option, #[serde(rename = "terminal.ansiYellow")] - terminal_ansi_yellow: String, + pub terminal_ansi_yellow: Option, #[serde(rename = "terminal.ansiBlue")] - terminal_ansi_blue: String, + pub terminal_ansi_blue: Option, #[serde(rename = "terminal.ansiMagenta")] - terminal_ansi_magenta: String, + pub terminal_ansi_magenta: Option, #[serde(rename = "terminal.ansiCyan")] - terminal_ansi_cyan: String, + pub terminal_ansi_cyan: Option, #[serde(rename = "terminal.ansiWhite")] - terminal_ansi_white: String, + pub terminal_ansi_white: Option, + #[serde(rename = "focusBorder")] + pub focus_border: Option, + pub foreground: Option, + #[serde(rename = "selection.background")] + pub selection_background: Option, + #[serde(rename = "errorForeground")] + pub error_foreground: Option, + #[serde(rename = "button.background")] + pub button_background: Option, + #[serde(rename = "button.foreground")] + pub button_foreground: Option, + #[serde(rename = "button.secondaryBackground")] + pub button_secondary_background: Option, + #[serde(rename = "button.secondaryForeground")] + pub button_secondary_foreground: Option, + #[serde(rename = "button.secondaryHoverBackground")] + pub button_secondary_hover_background: Option, + #[serde(rename = "dropdown.background")] + pub dropdown_background: Option, + #[serde(rename = "dropdown.border")] + pub dropdown_border: Option, + #[serde(rename = "dropdown.foreground")] + pub dropdown_foreground: Option, + #[serde(rename = "input.background")] + pub input_background: Option, + #[serde(rename = "input.foreground")] + pub input_foreground: Option, + #[serde(rename = "input.border")] + pub input_border: Option, + #[serde(rename = "input.placeholderForeground")] + pub input_placeholder_foreground: Option, + #[serde(rename = "inputOption.activeBorder")] + pub input_option_active_border: Option, + #[serde(rename = "inputValidation.infoBorder")] + pub input_validation_info_border: Option, + #[serde(rename = "inputValidation.warningBorder")] + pub input_validation_warning_border: Option, + #[serde(rename = "inputValidation.errorBorder")] + pub input_validation_error_border: Option, + #[serde(rename = "badge.foreground")] + pub badge_foreground: Option, + #[serde(rename = "badge.background")] + pub badge_background: Option, + #[serde(rename = "progressBar.background")] + pub progress_bar_background: Option, + #[serde(rename = "list.activeSelectionBackground")] + pub list_active_selection_background: Option, + #[serde(rename = "list.activeSelectionForeground")] + pub list_active_selection_foreground: Option, + #[serde(rename = "list.dropBackground")] + pub list_drop_background: Option, + #[serde(rename = "list.focusBackground")] + pub list_focus_background: Option, + #[serde(rename = "list.highlightForeground")] + pub list_highlight_foreground: Option, + #[serde(rename = "list.hoverBackground")] + pub list_hover_background: Option, + #[serde(rename = "list.inactiveSelectionBackground")] + pub list_inactive_selection_background: Option, + #[serde(rename = "list.warningForeground")] + pub list_warning_foreground: Option, + #[serde(rename = "list.errorForeground")] + pub list_error_foreground: Option, + #[serde(rename = "activityBar.background")] + pub activity_bar_background: Option, + #[serde(rename = "activityBar.inactiveForeground")] + pub activity_bar_inactive_foreground: Option, + #[serde(rename = "activityBar.foreground")] + pub activity_bar_foreground: Option, + #[serde(rename = "activityBar.activeBorder")] + pub activity_bar_active_border: Option, + #[serde(rename = "activityBar.activeBackground")] + pub activity_bar_active_background: Option, + #[serde(rename = "activityBarBadge.background")] + pub activity_bar_badge_background: Option, + #[serde(rename = "activityBarBadge.foreground")] + pub activity_bar_badge_foreground: Option, + #[serde(rename = "sideBar.background")] + pub side_bar_background: Option, + #[serde(rename = "sideBarTitle.foreground")] + pub side_bar_title_foreground: Option, + #[serde(rename = "sideBarSectionHeader.background")] + pub side_bar_section_header_background: Option, + #[serde(rename = "sideBarSectionHeader.border")] + pub side_bar_section_header_border: Option, + #[serde(rename = "editorGroup.border")] + pub editor_group_border: Option, + #[serde(rename = "editorGroup.dropBackground")] + pub editor_group_drop_background: Option, + #[serde(rename = "editorGroupHeader.tabsBackground")] + pub editor_group_header_tabs_background: Option, + #[serde(rename = "tab.activeBackground")] + pub tab_active_background: Option, + #[serde(rename = "tab.activeForeground")] + pub tab_active_foreground: Option, + #[serde(rename = "tab.border")] + pub tab_border: Option, + #[serde(rename = "tab.activeBorderTop")] + pub tab_active_border_top: Option, + #[serde(rename = "tab.inactiveBackground")] + pub tab_inactive_background: Option, + #[serde(rename = "tab.inactiveForeground")] + pub tab_inactive_foreground: Option, + #[serde(rename = "editor.foreground")] + pub editor_foreground: Option, + #[serde(rename = "editor.background")] + pub editor_background: Option, + #[serde(rename = "editorLineNumber.foreground")] + pub editor_line_number_foreground: Option, + #[serde(rename = "editor.selectionBackground")] + pub editor_selection_background: Option, + #[serde(rename = "editor.selectionHighlightBackground")] + pub editor_selection_highlight_background: Option, + #[serde(rename = "editor.foldBackground")] + pub editor_fold_background: Option, + #[serde(rename = "editor.wordHighlightBackground")] + pub editor_word_highlight_background: Option, + #[serde(rename = "editor.wordHighlightStrongBackground")] + pub editor_word_highlight_strong_background: Option, + #[serde(rename = "editor.findMatchBackground")] + pub editor_find_match_background: Option, + #[serde(rename = "editor.findMatchHighlightBackground")] + pub editor_find_match_highlight_background: Option, + #[serde(rename = "editor.findRangeHighlightBackground")] + pub editor_find_range_highlight_background: Option, + #[serde(rename = "editor.hoverHighlightBackground")] + pub editor_hover_highlight_background: Option, + #[serde(rename = "editor.lineHighlightBorder")] + pub editor_line_highlight_border: Option, + #[serde(rename = "editorLink.activeForeground")] + pub editor_link_active_foreground: Option, + #[serde(rename = "editor.rangeHighlightBackground")] + pub editor_range_highlight_background: Option, + #[serde(rename = "editor.snippetTabstopHighlightBackground")] + pub editor_snippet_tabstop_highlight_background: Option, + #[serde(rename = "editor.snippetTabstopHighlightBorder")] + pub editor_snippet_tabstop_highlight_border: Option, + #[serde(rename = "editor.snippetFinalTabstopHighlightBackground")] + pub editor_snippet_final_tabstop_highlight_background: Option, + #[serde(rename = "editor.snippetFinalTabstopHighlightBorder")] + pub editor_snippet_final_tabstop_highlight_border: Option, + #[serde(rename = "editorWhitespace.foreground")] + pub editor_whitespace_foreground: Option, + #[serde(rename = "editorIndentGuide.background")] + pub editor_indent_guide_background: Option, + #[serde(rename = "editorIndentGuide.activeBackground")] + pub editor_indent_guide_active_background: Option, + #[serde(rename = "editorRuler.foreground")] + pub editor_ruler_foreground: Option, + #[serde(rename = "editorCodeLens.foreground")] + pub editor_code_lens_foreground: Option, + #[serde(rename = "editorBracketHighlight.foreground1")] + pub editor_bracket_highlight_foreground1: Option, + #[serde(rename = "editorBracketHighlight.foreground2")] + pub editor_bracket_highlight_foreground2: Option, + #[serde(rename = "editorBracketHighlight.foreground3")] + pub editor_bracket_highlight_foreground3: Option, + #[serde(rename = "editorBracketHighlight.foreground4")] + pub editor_bracket_highlight_foreground4: Option, + #[serde(rename = "editorBracketHighlight.foreground5")] + pub editor_bracket_highlight_foreground5: Option, + #[serde(rename = "editorBracketHighlight.foreground6")] + pub editor_bracket_highlight_foreground6: Option, + #[serde(rename = "editorBracketHighlight.unexpectedBracket.foreground")] + pub editor_bracket_highlight_unexpected_bracket_foreground: Option, + #[serde(rename = "editorOverviewRuler.border")] + pub editor_overview_ruler_border: Option, + #[serde(rename = "editorOverviewRuler.selectionHighlightForeground")] + pub editor_overview_ruler_selection_highlight_foreground: Option, + #[serde(rename = "editorOverviewRuler.wordHighlightForeground")] + pub editor_overview_ruler_word_highlight_foreground: Option, + #[serde(rename = "editorOverviewRuler.wordHighlightStrongForeground")] + pub editor_overview_ruler_word_highlight_strong_foreground: Option, + #[serde(rename = "editorOverviewRuler.modifiedForeground")] + pub editor_overview_ruler_modified_foreground: Option, + #[serde(rename = "editorOverviewRuler.addedForeground")] + pub editor_overview_ruler_added_foreground: Option, + #[serde(rename = "editorOverviewRuler.deletedForeground")] + pub editor_overview_ruler_deleted_foreground: Option, + #[serde(rename = "editorOverviewRuler.errorForeground")] + pub editor_overview_ruler_error_foreground: Option, + #[serde(rename = "editorOverviewRuler.warningForeground")] + pub editor_overview_ruler_warning_foreground: Option, + #[serde(rename = "editorOverviewRuler.infoForeground")] + pub editor_overview_ruler_info_foreground: Option, + #[serde(rename = "editorError.foreground")] + pub editor_error_foreground: Option, + #[serde(rename = "editorWarning.foreground")] + pub editor_warning_foreground: Option, + #[serde(rename = "editorGutter.modifiedBackground")] + pub editor_gutter_modified_background: Option, + #[serde(rename = "editorGutter.addedBackground")] + pub editor_gutter_added_background: Option, + #[serde(rename = "editorGutter.deletedBackground")] + pub editor_gutter_deleted_background: Option, + #[serde(rename = "gitDecoration.modifiedResourceForeground")] + pub git_decoration_modified_resource_foreground: Option, + #[serde(rename = "gitDecoration.deletedResourceForeground")] + pub git_decoration_deleted_resource_foreground: Option, + #[serde(rename = "gitDecoration.untrackedResourceForeground")] + pub git_decoration_untracked_resource_foreground: Option, + #[serde(rename = "gitDecoration.ignoredResourceForeground")] + pub git_decoration_ignored_resource_foreground: Option, + #[serde(rename = "gitDecoration.conflictingResourceForeground")] + pub git_decoration_conflicting_resource_foreground: Option, + #[serde(rename = "diffEditor.insertedTextBackground")] + pub diff_editor_inserted_text_background: Option, + #[serde(rename = "diffEditor.removedTextBackground")] + pub diff_editor_removed_text_background: Option, + #[serde(rename = "inlineChat.regionHighlight")] + pub inline_chat_region_highlight: Option, + #[serde(rename = "editorWidget.background")] + pub editor_widget_background: Option, + #[serde(rename = "editorSuggestWidget.background")] + pub editor_suggest_widget_background: Option, + #[serde(rename = "editorSuggestWidget.foreground")] + pub editor_suggest_widget_foreground: Option, + #[serde(rename = "editorSuggestWidget.selectedBackground")] + pub editor_suggest_widget_selected_background: Option, + #[serde(rename = "editorHoverWidget.background")] + pub editor_hover_widget_background: Option, + #[serde(rename = "editorHoverWidget.border")] + pub editor_hover_widget_border: Option, + #[serde(rename = "editorMarkerNavigation.background")] + pub editor_marker_navigation_background: Option, + #[serde(rename = "peekView.border")] + pub peek_view_border: Option, + #[serde(rename = "peekViewEditor.background")] + pub peek_view_editor_background: Option, + #[serde(rename = "peekViewEditor.matchHighlightBackground")] + pub peek_view_editor_match_highlight_background: Option, + #[serde(rename = "peekViewResult.background")] + pub peek_view_result_background: Option, + #[serde(rename = "peekViewResult.fileForeground")] + pub peek_view_result_file_foreground: Option, + #[serde(rename = "peekViewResult.lineForeground")] + pub peek_view_result_line_foreground: Option, + #[serde(rename = "peekViewResult.matchHighlightBackground")] + pub peek_view_result_match_highlight_background: Option, + #[serde(rename = "peekViewResult.selectionBackground")] + pub peek_view_result_selection_background: Option, + #[serde(rename = "peekViewResult.selectionForeground")] + pub peek_view_result_selection_foreground: Option, + #[serde(rename = "peekViewTitle.background")] + pub peek_view_title_background: Option, + #[serde(rename = "peekViewTitleDescription.foreground")] + pub peek_view_title_description_foreground: Option, + #[serde(rename = "peekViewTitleLabel.foreground")] + pub peek_view_title_label_foreground: Option, + #[serde(rename = "merge.currentHeaderBackground")] + pub merge_current_header_background: Option, + #[serde(rename = "merge.incomingHeaderBackground")] + pub merge_incoming_header_background: Option, + #[serde(rename = "editorOverviewRuler.currentContentForeground")] + pub editor_overview_ruler_current_content_foreground: Option, + #[serde(rename = "editorOverviewRuler.incomingContentForeground")] + pub editor_overview_ruler_incoming_content_foreground: Option, + #[serde(rename = "panel.background")] + pub panel_background: Option, + #[serde(rename = "panel.border")] + pub panel_border: Option, + #[serde(rename = "panelTitle.activeBorder")] + pub panel_title_active_border: Option, + #[serde(rename = "panelTitle.activeForeground")] + pub panel_title_active_foreground: Option, + #[serde(rename = "panelTitle.inactiveForeground")] + pub panel_title_inactive_foreground: Option, + #[serde(rename = "statusBar.background")] + pub status_bar_background: Option, + #[serde(rename = "statusBar.foreground")] + pub status_bar_foreground: Option, + #[serde(rename = "statusBar.debuggingBackground")] + pub status_bar_debugging_background: Option, + #[serde(rename = "statusBar.debuggingForeground")] + pub status_bar_debugging_foreground: Option, + #[serde(rename = "statusBar.noFolderBackground")] + pub status_bar_no_folder_background: Option, + #[serde(rename = "statusBar.noFolderForeground")] + pub status_bar_no_folder_foreground: Option, + #[serde(rename = "statusBarItem.prominentBackground")] + pub status_bar_item_prominent_background: Option, + #[serde(rename = "statusBarItem.prominentHoverBackground")] + pub status_bar_item_prominent_hover_background: Option, + #[serde(rename = "statusBarItem.remoteForeground")] + pub status_bar_item_remote_foreground: Option, + #[serde(rename = "statusBarItem.remoteBackground")] + pub status_bar_item_remote_background: Option, + #[serde(rename = "titleBar.activeBackground")] + pub title_bar_active_background: Option, + #[serde(rename = "titleBar.activeForeground")] + pub title_bar_active_foreground: Option, + #[serde(rename = "titleBar.inactiveBackground")] + pub title_bar_inactive_background: Option, + #[serde(rename = "titleBar.inactiveForeground")] + pub title_bar_inactive_foreground: Option, + #[serde(rename = "extensionButton.prominentForeground")] + pub extension_button_prominent_foreground: Option, + #[serde(rename = "extensionButton.prominentBackground")] + pub extension_button_prominent_background: Option, + #[serde(rename = "extensionButton.prominentHoverBackground")] + pub extension_button_prominent_hover_background: Option, + #[serde(rename = "pickerGroup.border")] + pub picker_group_border: Option, + #[serde(rename = "pickerGroup.foreground")] + pub picker_group_foreground: Option, + #[serde(rename = "debugToolBar.background")] + pub debug_tool_bar_background: Option, + #[serde(rename = "walkThrough.embeddedEditorBackground")] + pub walk_through_embedded_editor_background: Option, + #[serde(rename = "settings.headerForeground")] + pub settings_header_foreground: Option, + #[serde(rename = "settings.modifiedItemIndicator")] + pub settings_modified_item_indicator: Option, + #[serde(rename = "settings.dropdownBackground")] + pub settings_dropdown_background: Option, + #[serde(rename = "settings.dropdownForeground")] + pub settings_dropdown_foreground: Option, + #[serde(rename = "settings.dropdownBorder")] + pub settings_dropdown_border: Option, + #[serde(rename = "settings.checkboxBackground")] + pub settings_checkbox_background: Option, + #[serde(rename = "settings.checkboxForeground")] + pub settings_checkbox_foreground: Option, + #[serde(rename = "settings.checkboxBorder")] + pub settings_checkbox_border: Option, + #[serde(rename = "settings.textInputBackground")] + pub settings_text_input_background: Option, + #[serde(rename = "settings.textInputForeground")] + pub settings_text_input_foreground: Option, + #[serde(rename = "settings.textInputBorder")] + pub settings_text_input_border: Option, + #[serde(rename = "settings.numberInputBackground")] + pub settings_number_input_background: Option, + #[serde(rename = "settings.numberInputForeground")] + pub settings_number_input_foreground: Option, + #[serde(rename = "settings.numberInputBorder")] + pub settings_number_input_border: Option, + #[serde(rename = "breadcrumb.foreground")] + pub breadcrumb_foreground: Option, + #[serde(rename = "breadcrumb.background")] + pub breadcrumb_background: Option, + #[serde(rename = "breadcrumb.focusForeground")] + pub breadcrumb_focus_foreground: Option, + #[serde(rename = "breadcrumb.activeSelectionForeground")] + pub breadcrumb_active_selection_foreground: Option, + #[serde(rename = "breadcrumbPicker.background")] + pub breadcrumb_picker_background: Option, + #[serde(rename = "listFilterWidget.background")] + pub list_filter_widget_background: Option, + #[serde(rename = "listFilterWidget.outline")] + pub list_filter_widget_outline: Option, + #[serde(rename = "listFilterWidget.noMatchesOutline")] + pub list_filter_widget_no_matches_outline: Option, } fn try_parse_color(color: &str) -> Result { @@ -92,8 +443,17 @@ impl VsCodeThemeConverter { let vscode_colors = &self.theme.colors; let theme_colors_refinements = ThemeColorsRefinement { + border: Some(try_parse_color(&vscode_colors.panel_border)?), + border_variant: Some(try_parse_color(&vscode_colors.panel_border)?), + border_focused: Some(try_parse_color(&vscode_colors.panel_border)?), + border_transparent: Some(try_parse_color(&vscode_colors.panel_border)?), + elevated_surface_background: Some(try_parse_color(&vscode_colors.panel_background)?), + surface_background: Some(try_parse_color(&vscode_colors.panel_background)?), background: Some(try_parse_color(&vscode_colors.editor_background)?), - text: Some(try_parse_color(&vscode_colors.text)?), + element_background: Some(try_parse_color(&vscode_colors.button_background)?), + text: Some(try_parse_color(&vscode_colors.foreground)?), + tab_active_background: Some(try_parse_color(&vscode_colors.tab_active_background)?), + tab_inactive_background: Some(try_parse_color(&vscode_colors.tab_inactive_background)?), terminal_background: Some(try_parse_color(&vscode_colors.terminal_background)?), terminal_ansi_bright_black: Some(try_parse_color( &vscode_colors.terminal_ansi_bright_black, From b148c610479f5bf10b2a70625b886e6156f58a50 Mon Sep 17 00:00:00 2001 From: KCaverly Date: Fri, 3 Nov 2023 08:52:18 -0400 Subject: [PATCH 16/76] added workspace event for WorkspaceCreated --- crates/workspace2/src/workspace2.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/crates/workspace2/src/workspace2.rs b/crates/workspace2/src/workspace2.rs index bb9cb7e527..48f4ae21cd 100644 --- a/crates/workspace2/src/workspace2.rs +++ b/crates/workspace2/src/workspace2.rs @@ -544,6 +544,7 @@ impl DelayedDebouncedEditAction { pub enum Event { PaneAdded(View), ContactRequestedJoin(u64), + WorkspaceCreated(WeakView), } pub struct Workspace { @@ -697,8 +698,7 @@ impl Workspace { Ok(()) }); - // todo!("replace with a different mechanism") - // cx.emit_global(WorkspaceCreated(weak_handle.clone())); + cx.emit(Event::WorkspaceCreated(weak_handle.clone())); let left_dock = cx.build_view(|_| Dock::new(DockPosition::Left)); let bottom_dock = cx.build_view(|_| Dock::new(DockPosition::Bottom)); @@ -4250,7 +4250,7 @@ impl ViewId { // } // } -// pub struct WorkspaceCreated(pub WeakView); +pub struct WorkspaceCreated(pub WeakView); pub fn activate_workspace_for_project( cx: &mut AppContext, From e0382a61b96d8144e4e1d6ffc46e6beba23625a8 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 3 Nov 2023 10:16:34 -0400 Subject: [PATCH 17/76] Update color names in `workspace2` --- crates/workspace2/src/pane.rs | 6 +++--- crates/workspace2/src/status_bar.rs | 2 +- crates/workspace2/src/workspace2.rs | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/crates/workspace2/src/pane.rs b/crates/workspace2/src/pane.rs index 16dbfda361..80533c76d6 100644 --- a/crates/workspace2/src/pane.rs +++ b/crates/workspace2/src/pane.rs @@ -1359,12 +1359,12 @@ impl Pane { let (tab_bg, tab_hover_bg, tab_active_bg) = match ix == self.active_item_index { false => ( - cx.theme().colors().tab_inactive, + cx.theme().colors().tab_inactive_background, cx.theme().colors().ghost_element_hover, cx.theme().colors().ghost_element_active, ), true => ( - cx.theme().colors().tab_active, + cx.theme().colors().tab_active_background, cx.theme().colors().element_hover, cx.theme().colors().element_active, ), @@ -1428,7 +1428,7 @@ impl Pane { .id("tab_bar") .w_full() .flex() - .bg(cx.theme().colors().tab_bar) + .bg(cx.theme().colors().tab_bar_background) // Left Side .child( div() diff --git a/crates/workspace2/src/status_bar.rs b/crates/workspace2/src/status_bar.rs index ca4ebcdb13..ac99be9f89 100644 --- a/crates/workspace2/src/status_bar.rs +++ b/crates/workspace2/src/status_bar.rs @@ -44,7 +44,7 @@ impl Render for StatusBar { .items_center() .justify_between() .w_full() - .bg(cx.theme().colors().status_bar) + .bg(cx.theme().colors().status_bar_background) .child(self.render_left_tools(cx)) .child(self.render_right_tools(cx)) } diff --git a/crates/workspace2/src/workspace2.rs b/crates/workspace2/src/workspace2.rs index bb9cb7e527..db35a6f388 100644 --- a/crates/workspace2/src/workspace2.rs +++ b/crates/workspace2/src/workspace2.rs @@ -2694,7 +2694,7 @@ impl Workspace { fn render_titlebar(&self, cx: &mut ViewContext) -> impl Component { div() - .bg(cx.theme().colors().title_bar) + .bg(cx.theme().colors().title_bar_background) .when( !matches!(cx.window_bounds(), WindowBounds::Fullscreen), |s| s.pl_20(), From 293fbe4c757abd6fbeca6803275f99a53af6acab Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 3 Nov 2023 10:54:12 -0400 Subject: [PATCH 18/76] Account for colors in VS Code theme being optional --- crates/theme_importer/src/main.rs | 1 + crates/theme_importer/src/util.rs | 11 ++ crates/theme_importer/src/vscode.rs | 157 ++++++++++++++++++++-------- 3 files changed, 125 insertions(+), 44 deletions(-) create mode 100644 crates/theme_importer/src/util.rs diff --git a/crates/theme_importer/src/main.rs b/crates/theme_importer/src/main.rs index 0e187d631d..abed535be7 100644 --- a/crates/theme_importer/src/main.rs +++ b/crates/theme_importer/src/main.rs @@ -1,4 +1,5 @@ mod theme_printer; +mod util; mod vscode; use std::fs::{self, File}; diff --git a/crates/theme_importer/src/util.rs b/crates/theme_importer/src/util.rs new file mode 100644 index 0000000000..a78d57ecde --- /dev/null +++ b/crates/theme_importer/src/util.rs @@ -0,0 +1,11 @@ +use anyhow::Result; + +pub trait Traverse { + fn traverse(self, f: impl FnOnce(T) -> Result) -> Result>; +} + +impl Traverse for Option { + fn traverse(self, f: impl FnOnce(T) -> Result) -> Result> { + self.map_or(Ok(None), |value| f(value).map(Some)) + } +} diff --git a/crates/theme_importer/src/vscode.rs b/crates/theme_importer/src/vscode.rs index b1a6a0e44b..06c4653dec 100644 --- a/crates/theme_importer/src/vscode.rs +++ b/crates/theme_importer/src/vscode.rs @@ -6,6 +6,7 @@ use theme::{ ThemeColors, ThemeColorsRefinement, ThemeStyles, ThemeVariant, }; +use crate::util::Traverse; use crate::ThemeMetadata; #[derive(Deserialize, Debug)] @@ -443,50 +444,118 @@ impl VsCodeThemeConverter { let vscode_colors = &self.theme.colors; let theme_colors_refinements = ThemeColorsRefinement { - border: Some(try_parse_color(&vscode_colors.panel_border)?), - border_variant: Some(try_parse_color(&vscode_colors.panel_border)?), - border_focused: Some(try_parse_color(&vscode_colors.panel_border)?), - border_transparent: Some(try_parse_color(&vscode_colors.panel_border)?), - elevated_surface_background: Some(try_parse_color(&vscode_colors.panel_background)?), - surface_background: Some(try_parse_color(&vscode_colors.panel_background)?), - background: Some(try_parse_color(&vscode_colors.editor_background)?), - element_background: Some(try_parse_color(&vscode_colors.button_background)?), - text: Some(try_parse_color(&vscode_colors.foreground)?), - tab_active_background: Some(try_parse_color(&vscode_colors.tab_active_background)?), - tab_inactive_background: Some(try_parse_color(&vscode_colors.tab_inactive_background)?), - terminal_background: Some(try_parse_color(&vscode_colors.terminal_background)?), - terminal_ansi_bright_black: Some(try_parse_color( - &vscode_colors.terminal_ansi_bright_black, - )?), - terminal_ansi_bright_red: Some(try_parse_color( - &vscode_colors.terminal_ansi_bright_red, - )?), - terminal_ansi_bright_green: Some(try_parse_color( - &vscode_colors.terminal_ansi_bright_green, - )?), - terminal_ansi_bright_yellow: Some(try_parse_color( - &vscode_colors.terminal_ansi_bright_yellow, - )?), - terminal_ansi_bright_blue: Some(try_parse_color( - &vscode_colors.terminal_ansi_bright_blue, - )?), - terminal_ansi_bright_magenta: Some(try_parse_color( - &vscode_colors.terminal_ansi_bright_magenta, - )?), - terminal_ansi_bright_cyan: Some(try_parse_color( - &vscode_colors.terminal_ansi_bright_cyan, - )?), - terminal_ansi_bright_white: Some(try_parse_color( - &vscode_colors.terminal_ansi_bright_white, - )?), - terminal_ansi_black: Some(try_parse_color(&vscode_colors.terminal_ansi_black)?), - terminal_ansi_red: Some(try_parse_color(&vscode_colors.terminal_ansi_red)?), - terminal_ansi_green: Some(try_parse_color(&vscode_colors.terminal_ansi_green)?), - terminal_ansi_yellow: Some(try_parse_color(&vscode_colors.terminal_ansi_yellow)?), - terminal_ansi_blue: Some(try_parse_color(&vscode_colors.terminal_ansi_blue)?), - terminal_ansi_magenta: Some(try_parse_color(&vscode_colors.terminal_ansi_magenta)?), - terminal_ansi_cyan: Some(try_parse_color(&vscode_colors.terminal_ansi_cyan)?), - terminal_ansi_white: Some(try_parse_color(&vscode_colors.terminal_ansi_white)?), + border: vscode_colors + .panel_border + .as_ref() + .traverse(|color| try_parse_color(&color))?, + border_variant: vscode_colors + .panel_border + .as_ref() + .traverse(|color| try_parse_color(&color))?, + border_focused: vscode_colors + .panel_border + .as_ref() + .traverse(|color| try_parse_color(&color))?, + border_transparent: vscode_colors + .panel_border + .as_ref() + .traverse(|color| try_parse_color(&color))?, + elevated_surface_background: vscode_colors + .panel_background + .as_ref() + .traverse(|color| try_parse_color(&color))?, + surface_background: vscode_colors + .panel_background + .as_ref() + .traverse(|color| try_parse_color(&color))?, + background: vscode_colors + .editor_background + .as_ref() + .traverse(|color| try_parse_color(&color))?, + element_background: vscode_colors + .button_background + .as_ref() + .traverse(|color| try_parse_color(&color))?, + text: vscode_colors + .foreground + .as_ref() + .traverse(|color| try_parse_color(&color))?, + tab_active_background: vscode_colors + .tab_active_background + .as_ref() + .traverse(|color| try_parse_color(&color))?, + tab_inactive_background: vscode_colors + .tab_inactive_background + .as_ref() + .traverse(|color| try_parse_color(&color))?, + terminal_background: vscode_colors + .terminal_background + .as_ref() + .traverse(|color| try_parse_color(&color))?, + terminal_ansi_bright_black: vscode_colors + .terminal_ansi_bright_black + .as_ref() + .traverse(|color| try_parse_color(&color))?, + terminal_ansi_bright_red: vscode_colors + .terminal_ansi_bright_red + .as_ref() + .traverse(|color| try_parse_color(&color))?, + terminal_ansi_bright_green: vscode_colors + .terminal_ansi_bright_green + .as_ref() + .traverse(|color| try_parse_color(&color))?, + terminal_ansi_bright_yellow: vscode_colors + .terminal_ansi_bright_yellow + .as_ref() + .traverse(|color| try_parse_color(&color))?, + terminal_ansi_bright_blue: vscode_colors + .terminal_ansi_bright_blue + .as_ref() + .traverse(|color| try_parse_color(&color))?, + terminal_ansi_bright_magenta: vscode_colors + .terminal_ansi_bright_magenta + .as_ref() + .traverse(|color| try_parse_color(&color))?, + terminal_ansi_bright_cyan: vscode_colors + .terminal_ansi_bright_cyan + .as_ref() + .traverse(|color| try_parse_color(&color))?, + terminal_ansi_bright_white: vscode_colors + .terminal_ansi_bright_white + .as_ref() + .traverse(|color| try_parse_color(&color))?, + terminal_ansi_black: vscode_colors + .terminal_ansi_black + .as_ref() + .traverse(|color| try_parse_color(&color))?, + terminal_ansi_red: vscode_colors + .terminal_ansi_red + .as_ref() + .traverse(|color| try_parse_color(&color))?, + terminal_ansi_green: vscode_colors + .terminal_ansi_green + .as_ref() + .traverse(|color| try_parse_color(&color))?, + terminal_ansi_yellow: vscode_colors + .terminal_ansi_yellow + .as_ref() + .traverse(|color| try_parse_color(&color))?, + terminal_ansi_blue: vscode_colors + .terminal_ansi_blue + .as_ref() + .traverse(|color| try_parse_color(&color))?, + terminal_ansi_magenta: vscode_colors + .terminal_ansi_magenta + .as_ref() + .traverse(|color| try_parse_color(&color))?, + terminal_ansi_cyan: vscode_colors + .terminal_ansi_cyan + .as_ref() + .traverse(|color| try_parse_color(&color))?, + terminal_ansi_white: vscode_colors + .terminal_ansi_white + .as_ref() + .traverse(|color| try_parse_color(&color))?, ..Default::default() }; From acc36e6dab8ea754cb0a46267b48fc54c9f132dd Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 3 Nov 2023 10:58:06 -0400 Subject: [PATCH 19/76] Update emitted module import --- crates/theme_importer/src/main.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/theme_importer/src/main.rs b/crates/theme_importer/src/main.rs index abed535be7..882ab85c33 100644 --- a/crates/theme_importer/src/main.rs +++ b/crates/theme_importer/src/main.rs @@ -119,7 +119,7 @@ fn main() -> Result<()> { let theme_module = format!( r#" - use gpui2::rgba; + use gpui::rgba; use crate::{{ default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, From 363d7c6634e0f1274077a274dffa088efdd59f6b Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 3 Nov 2023 11:11:10 -0400 Subject: [PATCH 20/76] Exclude source themes from Zed2 binary --- crates/zed2/src/assets.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/crates/zed2/src/assets.rs b/crates/zed2/src/assets.rs index 873138c244..5d5e81a60e 100644 --- a/crates/zed2/src/assets.rs +++ b/crates/zed2/src/assets.rs @@ -8,6 +8,7 @@ use rust_embed::RustEmbed; #[include = "fonts/**/*"] #[include = "icons/**/*"] #[include = "themes/**/*"] +#[exclude = "themes/src/*"] #[include = "sounds/**/*"] #[include = "*.md"] #[exclude = "*.DS_Store"] From c604a2e34e8b26dd3780de0a250b0e5bf8bbba7b Mon Sep 17 00:00:00 2001 From: Conrad Irwin Date: Fri, 3 Nov 2023 10:54:26 -0600 Subject: [PATCH 21/76] Add hover behaviour to tabs Co-Authored-By: Marshall Co-Authored-By: Nathan --- crates/gpui2/src/element.rs | 13 +++++++++++++ crates/gpui2/src/elements/div.rs | 8 ++++++-- crates/gpui2/src/style.rs | 11 +++++++++++ crates/gpui2/src/styled.rs | 21 +++++++++++++++++++++ crates/ui2/src/elements/icon.rs | 13 +++++++++++-- crates/workspace2/src/pane.rs | 10 +++++++++- 6 files changed, 71 insertions(+), 5 deletions(-) diff --git a/crates/gpui2/src/element.rs b/crates/gpui2/src/element.rs index a92dbd6ff9..2a0f557272 100644 --- a/crates/gpui2/src/element.rs +++ b/crates/gpui2/src/element.rs @@ -212,6 +212,19 @@ pub trait Component { { self.map(|this| if condition { then(this) } else { this }) } + + fn when_some(self, option: Option, then: impl FnOnce(Self, T) -> Self) -> Self + where + Self: Sized, + { + self.map(|this| { + if let Some(value) = option { + then(this, value) + } else { + this + } + }) + } } impl Component for AnyElement { diff --git a/crates/gpui2/src/elements/div.rs b/crates/gpui2/src/elements/div.rs index 56940efce4..bf28ec3bf5 100644 --- a/crates/gpui2/src/elements/div.rs +++ b/crates/gpui2/src/elements/div.rs @@ -3,7 +3,7 @@ use crate::{ ElementInteraction, FocusDisabled, FocusEnabled, FocusHandle, FocusListeners, Focusable, GlobalElementId, GroupBounds, InteractiveElementState, LayoutId, Overflow, ParentElement, Pixels, Point, SharedString, StatefulInteraction, StatefulInteractive, StatelessInteraction, - StatelessInteractive, Style, StyleRefinement, Styled, ViewContext, + StatelessInteractive, Style, StyleRefinement, Styled, ViewContext, Visibility, }; use refineable::Refineable; use smallvec::SmallVec; @@ -249,11 +249,15 @@ where cx: &mut ViewContext, ) { self.with_element_id(cx, |this, _global_id, cx| { + let style = this.compute_style(bounds, element_state, cx); + if style.visibility == Visibility::Hidden { + return; + } + if let Some(group) = this.group.clone() { GroupBounds::push(group, bounds, cx); } - let style = this.compute_style(bounds, element_state, cx); let z_index = style.z_index.unwrap_or(0); let mut child_min = point(Pixels::MAX, Pixels::MAX); diff --git a/crates/gpui2/src/style.rs b/crates/gpui2/src/style.rs index b30d4aa002..b3cd5c478b 100644 --- a/crates/gpui2/src/style.rs +++ b/crates/gpui2/src/style.rs @@ -19,6 +19,9 @@ pub struct Style { /// What layout strategy should be used? pub display: Display, + /// Should the element be painted on screen? + pub visibility: Visibility, + // Overflow properties /// How children overflowing their container should affect layout #[refineable] @@ -107,6 +110,13 @@ impl Styled for StyleRefinement { } } +#[derive(Default, Clone, Copy, Debug, Eq, PartialEq)] +pub enum Visibility { + #[default] + Visible, + Hidden, +} + #[derive(Clone, Debug)] pub struct BoxShadow { pub color: Hsla, @@ -297,6 +307,7 @@ impl Default for Style { fn default() -> Self { Style { display: Display::Block, + visibility: Visibility::Visible, overflow: Point { x: Overflow::Visible, y: Overflow::Visible, diff --git a/crates/gpui2/src/styled.rs b/crates/gpui2/src/styled.rs index 1eed74f096..a88a8b4d6f 100644 --- a/crates/gpui2/src/styled.rs +++ b/crates/gpui2/src/styled.rs @@ -1,6 +1,7 @@ use crate::{ self as gpui2, hsla, point, px, relative, rems, AlignItems, DefiniteLength, Display, Fill, FlexDirection, Hsla, JustifyContent, Length, Position, Rems, SharedString, StyleRefinement, + Visibility, }; use crate::{BoxShadow, TextStyleRefinement}; use smallvec::smallvec; @@ -60,6 +61,26 @@ pub trait Styled { self } + /// Sets the visibility of the element to `visible`. + /// [Docs](https://tailwindcss.com/docs/visibility) + fn visible(mut self) -> Self + where + Self: Sized, + { + self.style().visibility = Some(Visibility::Visible); + self + } + + /// Sets the visibility of the element to `hidden`. + /// [Docs](https://tailwindcss.com/docs/visibility) + fn invisible(mut self) -> Self + where + Self: Sized, + { + self.style().visibility = Some(Visibility::Hidden); + self + } + /// Sets the flex direction of the element to `column`. /// [Docs](https://tailwindcss.com/docs/flex-direction#column) fn flex_col(mut self) -> Self diff --git a/crates/ui2/src/elements/icon.rs b/crates/ui2/src/elements/icon.rs index 5885d76101..94e15ca0f1 100644 --- a/crates/ui2/src/elements/icon.rs +++ b/crates/ui2/src/elements/icon.rs @@ -159,6 +159,7 @@ impl Icon { pub struct IconElement { icon: Icon, color: IconColor, + hover_color: Option, size: IconSize, } @@ -167,6 +168,7 @@ impl IconElement { Self { icon, color: IconColor::default(), + hover_color: None, size: IconSize::default(), } } @@ -176,13 +178,17 @@ impl IconElement { self } + pub fn hover_color(mut self, hover_color: impl Into>) -> Self { + self.hover_color = hover_color.into(); + self + } + pub fn size(mut self, size: IconSize) -> Self { self.size = size; self } fn render(self, _view: &mut V, cx: &mut ViewContext) -> impl Component { - let fill = self.color.color(cx); let svg_size = match self.size { IconSize::Small => rems(0.75), IconSize::Medium => rems(0.9375), @@ -192,7 +198,10 @@ impl IconElement { .size(svg_size) .flex_none() .path(self.icon.path()) - .text_color(fill) + .text_color(self.color.color(cx)) + .when_some(self.hover_color, |this, hover_color| { + this.hover(|style| style.text_color(hover_color.color(cx))) + }) } } diff --git a/crates/workspace2/src/pane.rs b/crates/workspace2/src/pane.rs index 4c4f26fe0e..f8e3c02178 100644 --- a/crates/workspace2/src/pane.rs +++ b/crates/workspace2/src/pane.rs @@ -1361,9 +1361,16 @@ impl Pane { let label = item.tab_content(Some(detail), cx); let close_icon = || { let id = item.id(); + div() .id(item.id()) - .child(IconElement::new(Icon::Close).color(IconColor::Muted)) + .invisible() + .group_hover("", |style| style.visible()) + .child( + IconElement::new(Icon::Close) + .color(IconColor::Muted) + .hover_color(IconColor::Accent), + ) .on_click(move |pane: &mut Self, _, cx| { pane.close_item_by_id(id, SaveIntent::Close, cx) .detach_and_log_err(cx); @@ -1388,6 +1395,7 @@ impl Pane { let close_right = ItemSettings::get_global(cx).close_position.right(); div() + .group("") .id(item.id()) // .on_drag(move |pane, cx| pane.render_tab(ix, item.boxed_clone(), detail, cx)) // .drag_over::(|d| d.bg(cx.theme().colors().element_drop_target)) From d73c54f6049aeef161e6673eeabeedea2918b830 Mon Sep 17 00:00:00 2001 From: Conrad Irwin Date: Fri, 3 Nov 2023 11:30:15 -0600 Subject: [PATCH 22/76] Add PointingHand on tabs --- crates/gpui2/src/elements/div.rs | 7 +++++++ crates/gpui2/src/style.rs | 10 +++++++--- crates/gpui2/src/styled.rs | 34 +++++++++++++++++++++++++++++--- crates/gpui2/src/window.rs | 31 ++++++++++++++++++++--------- crates/workspace2/src/pane.rs | 6 ++++-- crates/zed2/src/main.rs | 1 - 6 files changed, 71 insertions(+), 18 deletions(-) diff --git a/crates/gpui2/src/elements/div.rs b/crates/gpui2/src/elements/div.rs index bf28ec3bf5..e011041bae 100644 --- a/crates/gpui2/src/elements/div.rs +++ b/crates/gpui2/src/elements/div.rs @@ -254,6 +254,13 @@ where return; } + if let Some(mouse_cursor) = style.mouse_cursor { + let hovered = bounds.contains_point(&cx.mouse_position()); + if hovered { + cx.set_cursor_style(mouse_cursor); + } + } + if let Some(group) = this.group.clone() { GroupBounds::push(group, bounds, cx); } diff --git a/crates/gpui2/src/style.rs b/crates/gpui2/src/style.rs index b3cd5c478b..d2571a3253 100644 --- a/crates/gpui2/src/style.rs +++ b/crates/gpui2/src/style.rs @@ -1,8 +1,8 @@ use crate::{ black, phi, point, rems, AbsoluteLength, BorrowAppContext, BorrowWindow, Bounds, ContentMask, - Corners, CornersRefinement, DefiniteLength, Edges, EdgesRefinement, Font, FontFeatures, - FontStyle, FontWeight, Hsla, Length, Pixels, Point, PointRefinement, Rems, Result, Rgba, - SharedString, Size, SizeRefinement, Styled, TextRun, ViewContext, WindowContext, + Corners, CornersRefinement, CursorStyle, DefiniteLength, Edges, EdgesRefinement, Font, + FontFeatures, FontStyle, FontWeight, Hsla, Length, Pixels, Point, PointRefinement, Rems, + Result, Rgba, SharedString, Size, SizeRefinement, Styled, TextRun, ViewContext, WindowContext, }; use refineable::{Cascade, Refineable}; use smallvec::SmallVec; @@ -101,6 +101,9 @@ pub struct Style { /// TEXT pub text: TextStyleRefinement, + /// The mouse cursor style shown when the mouse pointer is over an element. + pub mouse_cursor: Option, + pub z_index: Option, } @@ -339,6 +342,7 @@ impl Default for Style { corner_radii: Corners::default(), box_shadow: Default::default(), text: TextStyleRefinement::default(), + mouse_cursor: None, z_index: None, } } diff --git a/crates/gpui2/src/styled.rs b/crates/gpui2/src/styled.rs index a88a8b4d6f..4a9a5d7ecf 100644 --- a/crates/gpui2/src/styled.rs +++ b/crates/gpui2/src/styled.rs @@ -1,7 +1,7 @@ use crate::{ - self as gpui2, hsla, point, px, relative, rems, AlignItems, DefiniteLength, Display, Fill, - FlexDirection, Hsla, JustifyContent, Length, Position, Rems, SharedString, StyleRefinement, - Visibility, + self as gpui2, hsla, point, px, relative, rems, AlignItems, CursorStyle, DefiniteLength, + Display, Fill, FlexDirection, Hsla, JustifyContent, Length, Position, Rems, SharedString, + StyleRefinement, Visibility, }; use crate::{BoxShadow, TextStyleRefinement}; use smallvec::smallvec; @@ -81,6 +81,34 @@ pub trait Styled { self } + fn cursor(mut self, cursor: CursorStyle) -> Self + where + Self: Sized, + { + self.style().mouse_cursor = Some(cursor); + self + } + + /// Sets the cursor style when hovering an element to `default`. + /// [Docs](https://tailwindcss.com/docs/cursor) + fn cursor_default(mut self) -> Self + where + Self: Sized, + { + self.style().mouse_cursor = Some(CursorStyle::Arrow); + self + } + + /// Sets the cursor style when hovering an element to `pointer`. + /// [Docs](https://tailwindcss.com/docs/cursor) + fn cursor_pointer(mut self) -> Self + where + Self: Sized, + { + self.style().mouse_cursor = Some(CursorStyle::PointingHand); + self + } + /// Sets the flex direction of the element to `column`. /// [Docs](https://tailwindcss.com/docs/flex-direction#column) fn flex_col(mut self) -> Self diff --git a/crates/gpui2/src/window.rs b/crates/gpui2/src/window.rs index 2284f3ccc2..e998766bbb 100644 --- a/crates/gpui2/src/window.rs +++ b/crates/gpui2/src/window.rs @@ -1,14 +1,14 @@ use crate::{ px, size, Action, AnyBox, AnyDrag, AnyView, AppContext, AsyncWindowContext, AvailableSpace, - Bounds, BoxShadow, Context, Corners, DevicePixels, DispatchContext, DisplayId, Edges, Effect, - Entity, EntityId, EventEmitter, FileDropEvent, FocusEvent, FontId, GlobalElementId, GlyphId, - Hsla, ImageData, InputEvent, IsZero, KeyListener, KeyMatch, KeyMatcher, Keystroke, LayoutId, - Model, ModelContext, Modifiers, MonochromeSprite, MouseButton, MouseDownEvent, MouseMoveEvent, - MouseUpEvent, Path, Pixels, PlatformAtlas, PlatformDisplay, PlatformWindow, Point, - PolychromeSprite, PromptLevel, Quad, Render, RenderGlyphParams, RenderImageParams, - RenderSvgParams, ScaledPixels, SceneBuilder, Shadow, SharedString, Size, Style, SubscriberSet, - Subscription, TaffyLayoutEngine, Task, Underline, UnderlineStyle, View, VisualContext, - WeakView, WindowBounds, WindowOptions, SUBPIXEL_VARIANTS, + Bounds, BoxShadow, Context, Corners, CursorStyle, DevicePixels, DispatchContext, DisplayId, + Edges, Effect, Entity, EntityId, EventEmitter, FileDropEvent, FocusEvent, FontId, + GlobalElementId, GlyphId, Hsla, ImageData, InputEvent, IsZero, KeyListener, KeyMatch, + KeyMatcher, Keystroke, LayoutId, Model, ModelContext, Modifiers, MonochromeSprite, MouseButton, + MouseDownEvent, MouseMoveEvent, MouseUpEvent, Path, Pixels, PlatformAtlas, PlatformDisplay, + PlatformWindow, Point, PolychromeSprite, PromptLevel, Quad, Render, RenderGlyphParams, + RenderImageParams, RenderSvgParams, ScaledPixels, SceneBuilder, Shadow, SharedString, Size, + Style, SubscriberSet, Subscription, TaffyLayoutEngine, Task, Underline, UnderlineStyle, View, + VisualContext, WeakView, WindowBounds, WindowOptions, SUBPIXEL_VARIANTS, }; use anyhow::{anyhow, Result}; use collections::HashMap; @@ -190,6 +190,7 @@ pub struct Window { pub(crate) focus_handles: Arc>>, default_prevented: bool, mouse_position: Point, + requested_cursor_style: Option, scale_factor: f32, bounds: WindowBounds, bounds_observers: SubscriberSet<(), AnyObserver>, @@ -283,6 +284,7 @@ impl Window { focus_handles: Arc::new(RwLock::new(SlotMap::with_key())), default_prevented: true, mouse_position, + requested_cursor_style: None, scale_factor, bounds, bounds_observers: SubscriberSet::new(), @@ -669,6 +671,10 @@ impl<'a> WindowContext<'a> { self.window.mouse_position } + pub fn set_cursor_style(&mut self, style: CursorStyle) { + self.window.requested_cursor_style = Some(style) + } + /// Called during painting to invoke the given closure in a new stacking context. The given /// z-index is interpreted relative to the previous call to `stack`. pub fn stack(&mut self, z_index: u32, f: impl FnOnce(&mut Self) -> R) -> R { @@ -987,6 +993,13 @@ impl<'a> WindowContext<'a> { let scene = self.window.scene_builder.build(); self.window.platform_window.draw(scene); + let cursor_style = self + .window + .requested_cursor_style + .take() + .unwrap_or(CursorStyle::Arrow); + self.platform.set_cursor_style(cursor_style); + self.window.dirty = false; } diff --git a/crates/workspace2/src/pane.rs b/crates/workspace2/src/pane.rs index f8e3c02178..4d5b96ea6d 100644 --- a/crates/workspace2/src/pane.rs +++ b/crates/workspace2/src/pane.rs @@ -9,8 +9,9 @@ use crate::{ use anyhow::Result; use collections::{HashMap, HashSet, VecDeque}; use gpui::{ - AppContext, AsyncWindowContext, Component, Div, EntityId, EventEmitter, FocusHandle, Model, - PromptLevel, Render, Task, View, ViewContext, VisualContext, WeakView, WindowContext, + AppContext, AsyncWindowContext, Component, CursorStyle, Div, EntityId, EventEmitter, + FocusHandle, Model, PromptLevel, Render, Task, View, ViewContext, VisualContext, WeakView, + WindowContext, }; use parking_lot::Mutex; use project2::{Project, ProjectEntryId, ProjectPath}; @@ -1397,6 +1398,7 @@ impl Pane { div() .group("") .id(item.id()) + .cursor_pointer() // .on_drag(move |pane, cx| pane.render_tab(ix, item.boxed_clone(), detail, cx)) // .drag_over::(|d| d.bg(cx.theme().colors().element_drop_target)) // .on_drop(|_view, state: View, cx| { diff --git a/crates/zed2/src/main.rs b/crates/zed2/src/main.rs index 79ba132e4f..52eb512eb4 100644 --- a/crates/zed2/src/main.rs +++ b/crates/zed2/src/main.rs @@ -208,7 +208,6 @@ fn main() { if stdout_is_a_pty() { cx.activate(true); let urls = collect_url_args(); - dbg!(&urls); if !urls.is_empty() { listener.open_urls(urls) } From b085569b46433b04be1c3dd90cd499587c9ad220 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Tue, 31 Oct 2023 11:16:31 -0700 Subject: [PATCH 23/76] Add channel2 crate Co-authored-by: Marshall --- Cargo.lock | 37 + Cargo.toml | 1 + crates/channel2/Cargo.toml | 54 + crates/channel2/src/channel2.rs | 23 + crates/channel2/src/channel_buffer.rs | 257 +++++ crates/channel2/src/channel_chat.rs | 647 +++++++++++ crates/channel2/src/channel_store.rs | 1021 +++++++++++++++++ .../src/channel_store/channel_index.rs | 184 +++ crates/channel2/src/channel_store_tests.rs | 380 ++++++ crates/client2/src/user.rs | 33 +- crates/gpui2/src/app/test_context.rs | 19 + crates/rpc2/proto/zed.proto | 255 ++-- crates/rpc2/src/proto.rs | 192 ++-- 13 files changed, 2892 insertions(+), 211 deletions(-) create mode 100644 crates/channel2/Cargo.toml create mode 100644 crates/channel2/src/channel2.rs create mode 100644 crates/channel2/src/channel_buffer.rs create mode 100644 crates/channel2/src/channel_chat.rs create mode 100644 crates/channel2/src/channel_store.rs create mode 100644 crates/channel2/src/channel_store/channel_index.rs create mode 100644 crates/channel2/src/channel_store_tests.rs diff --git a/Cargo.lock b/Cargo.lock index d5d0493936..ff2a43d99d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1347,6 +1347,43 @@ dependencies = [ "uuid 1.4.1", ] +[[package]] +name = "channel2" +version = "0.1.0" +dependencies = [ + "anyhow", + "client2", + "clock", + "collections", + "db2", + "feature_flags2", + "futures 0.3.28", + "gpui2", + "image", + "language2", + "lazy_static", + "log", + "parking_lot 0.11.2", + "postage", + "rand 0.8.5", + "rpc2", + "schemars", + "serde", + "serde_derive", + "settings2", + "smallvec", + "smol", + "sum_tree", + "tempfile", + "text", + "thiserror", + "time", + "tiny_http", + "url", + "util", + "uuid 1.4.1", +] + [[package]] name = "chrono" version = "0.4.31" diff --git a/Cargo.toml b/Cargo.toml index 998ea081a6..772773c977 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,6 +10,7 @@ members = [ "crates/call", "crates/call2", "crates/channel", + "crates/channel2", "crates/cli", "crates/client", "crates/client2", diff --git a/crates/channel2/Cargo.toml b/crates/channel2/Cargo.toml new file mode 100644 index 0000000000..c611944b89 --- /dev/null +++ b/crates/channel2/Cargo.toml @@ -0,0 +1,54 @@ +[package] +name = "channel2" +version = "0.1.0" +edition = "2021" +publish = false + +[lib] +path = "src/channel2.rs" +doctest = false + +[features] +test-support = ["collections/test-support", "gpui2/test-support", "rpc2/test-support"] + +[dependencies] +client2 = { path = "../client2" } +collections = { path = "../collections" } +db2 = { path = "../db2" } +gpui2 = { path = "../gpui2" } +util = { path = "../util" } +rpc2 = { path = "../rpc2" } +text = { path = "../text" } +language2 = { path = "../language2" } +settings2 = { path = "../settings2" } +feature_flags2 = { path = "../feature_flags2" } +sum_tree = { path = "../sum_tree" } +clock = { path = "../clock" } + +anyhow.workspace = true +futures.workspace = true +image = "0.23" +lazy_static.workspace = true +smallvec.workspace = true +log.workspace = true +parking_lot.workspace = true +postage.workspace = true +rand.workspace = true +schemars.workspace = true +smol.workspace = true +thiserror.workspace = true +time.workspace = true +tiny_http = "0.8" +uuid.workspace = true +url = "2.2" +serde.workspace = true +serde_derive.workspace = true +tempfile = "3" + +[dev-dependencies] +collections = { path = "../collections", features = ["test-support"] } +gpui2 = { path = "../gpui2", features = ["test-support"] } +rpc2 = { path = "../rpc2", features = ["test-support"] } +client2 = { path = "../client2", features = ["test-support"] } +settings2 = { path = "../settings2", features = ["test-support"] } +util = { path = "../util", features = ["test-support"] } diff --git a/crates/channel2/src/channel2.rs b/crates/channel2/src/channel2.rs new file mode 100644 index 0000000000..d300b170af --- /dev/null +++ b/crates/channel2/src/channel2.rs @@ -0,0 +1,23 @@ +mod channel_buffer; +mod channel_chat; +mod channel_store; + +use client2::{Client, UserStore}; +use gpui2::{AppContext, Model}; +use std::sync::Arc; + +pub use channel_buffer::{ChannelBuffer, ChannelBufferEvent, ACKNOWLEDGE_DEBOUNCE_INTERVAL}; +pub use channel_chat::{ + mentions_to_proto, ChannelChat, ChannelChatEvent, ChannelMessage, ChannelMessageId, + MessageParams, +}; +pub use channel_store::{Channel, ChannelEvent, ChannelId, ChannelMembership, ChannelStore}; + +#[cfg(test)] +mod channel_store_tests; + +pub fn init(client: &Arc, user_store: Model, cx: &mut AppContext) { + channel_store::init(client, user_store, cx); + channel_buffer::init(client); + channel_chat::init(client); +} diff --git a/crates/channel2/src/channel_buffer.rs b/crates/channel2/src/channel_buffer.rs new file mode 100644 index 0000000000..115896af7c --- /dev/null +++ b/crates/channel2/src/channel_buffer.rs @@ -0,0 +1,257 @@ +use crate::{Channel, ChannelId, ChannelStore}; +use anyhow::Result; +use client2::{Client, Collaborator, UserStore}; +use collections::HashMap; +use gpui2::{AppContext, AsyncAppContext, Context, EventEmitter, Model, ModelContext, Task}; +use language2::proto::serialize_version; +use rpc2::{ + proto::{self, PeerId}, + TypedEnvelope, +}; +use std::{sync::Arc, time::Duration}; +use util::ResultExt; + +pub const ACKNOWLEDGE_DEBOUNCE_INTERVAL: Duration = Duration::from_millis(250); + +pub(crate) fn init(client: &Arc) { + client.add_model_message_handler(ChannelBuffer::handle_update_channel_buffer); + client.add_model_message_handler(ChannelBuffer::handle_update_channel_buffer_collaborators); +} + +pub struct ChannelBuffer { + pub channel_id: ChannelId, + connected: bool, + collaborators: HashMap, + user_store: Model, + channel_store: Model, + buffer: Model, + buffer_epoch: u64, + client: Arc, + subscription: Option, + acknowledge_task: Option>>, +} + +pub enum ChannelBufferEvent { + CollaboratorsChanged, + Disconnected, + BufferEdited, + ChannelChanged, +} + +impl EventEmitter for ChannelBuffer { + type Event = ChannelBufferEvent; +} + +impl ChannelBuffer { + pub(crate) async fn new( + channel: Arc, + client: Arc, + user_store: Model, + channel_store: Model, + mut cx: AsyncAppContext, + ) -> Result> { + let response = client + .request(proto::JoinChannelBuffer { + channel_id: channel.id, + }) + .await?; + + let base_text = response.base_text; + let operations = response + .operations + .into_iter() + .map(language2::proto::deserialize_operation) + .collect::, _>>()?; + + let buffer = cx.build_model(|_| { + language2::Buffer::remote(response.buffer_id, response.replica_id as u16, base_text) + })?; + buffer.update(&mut cx, |buffer, cx| buffer.apply_ops(operations, cx))??; + + let subscription = client.subscribe_to_entity(channel.id)?; + + anyhow::Ok(cx.build_model(|cx| { + cx.subscribe(&buffer, Self::on_buffer_update).detach(); + cx.on_release(Self::release).detach(); + let mut this = Self { + buffer, + buffer_epoch: response.epoch, + client, + connected: true, + collaborators: Default::default(), + acknowledge_task: None, + channel_id: channel.id, + subscription: Some(subscription.set_model(&cx.handle(), &mut cx.to_async())), + user_store, + channel_store, + }; + this.replace_collaborators(response.collaborators, cx); + this + })?) + } + + fn release(&mut self, _: &mut AppContext) { + if self.connected { + if let Some(task) = self.acknowledge_task.take() { + task.detach(); + } + self.client + .send(proto::LeaveChannelBuffer { + channel_id: self.channel_id, + }) + .log_err(); + } + } + + pub fn remote_id(&self, cx: &AppContext) -> u64 { + self.buffer.read(cx).remote_id() + } + + pub fn user_store(&self) -> &Model { + &self.user_store + } + + pub(crate) fn replace_collaborators( + &mut self, + collaborators: Vec, + cx: &mut ModelContext, + ) { + let mut new_collaborators = HashMap::default(); + for collaborator in collaborators { + if let Ok(collaborator) = Collaborator::from_proto(collaborator) { + new_collaborators.insert(collaborator.peer_id, collaborator); + } + } + + for (_, old_collaborator) in &self.collaborators { + if !new_collaborators.contains_key(&old_collaborator.peer_id) { + self.buffer.update(cx, |buffer, cx| { + buffer.remove_peer(old_collaborator.replica_id as u16, cx) + }); + } + } + self.collaborators = new_collaborators; + cx.emit(ChannelBufferEvent::CollaboratorsChanged); + cx.notify(); + } + + async fn handle_update_channel_buffer( + this: Model, + update_channel_buffer: TypedEnvelope, + _: Arc, + mut cx: AsyncAppContext, + ) -> Result<()> { + let ops = update_channel_buffer + .payload + .operations + .into_iter() + .map(language2::proto::deserialize_operation) + .collect::, _>>()?; + + this.update(&mut cx, |this, cx| { + cx.notify(); + this.buffer + .update(cx, |buffer, cx| buffer.apply_ops(ops, cx)) + })??; + + Ok(()) + } + + async fn handle_update_channel_buffer_collaborators( + this: Model, + message: TypedEnvelope, + _: Arc, + mut cx: AsyncAppContext, + ) -> Result<()> { + this.update(&mut cx, |this, cx| { + this.replace_collaborators(message.payload.collaborators, cx); + cx.emit(ChannelBufferEvent::CollaboratorsChanged); + cx.notify(); + }) + } + + fn on_buffer_update( + &mut self, + _: Model, + event: &language2::Event, + cx: &mut ModelContext, + ) { + match event { + language2::Event::Operation(operation) => { + let operation = language2::proto::serialize_operation(operation); + self.client + .send(proto::UpdateChannelBuffer { + channel_id: self.channel_id, + operations: vec![operation], + }) + .log_err(); + } + language2::Event::Edited => { + cx.emit(ChannelBufferEvent::BufferEdited); + } + _ => {} + } + } + + pub fn acknowledge_buffer_version(&mut self, cx: &mut ModelContext<'_, ChannelBuffer>) { + let buffer = self.buffer.read(cx); + let version = buffer.version(); + let buffer_id = buffer.remote_id(); + let client = self.client.clone(); + let epoch = self.epoch(); + + self.acknowledge_task = Some(cx.spawn(move |_, cx| async move { + cx.executor().timer(ACKNOWLEDGE_DEBOUNCE_INTERVAL).await; + client + .send(proto::AckBufferOperation { + buffer_id, + epoch, + version: serialize_version(&version), + }) + .ok(); + Ok(()) + })); + } + + pub fn epoch(&self) -> u64 { + self.buffer_epoch + } + + pub fn buffer(&self) -> Model { + self.buffer.clone() + } + + pub fn collaborators(&self) -> &HashMap { + &self.collaborators + } + + pub fn channel(&self, cx: &AppContext) -> Option> { + self.channel_store + .read(cx) + .channel_for_id(self.channel_id) + .cloned() + } + + pub(crate) fn disconnect(&mut self, cx: &mut ModelContext) { + log::info!("channel buffer {} disconnected", self.channel_id); + if self.connected { + self.connected = false; + self.subscription.take(); + cx.emit(ChannelBufferEvent::Disconnected); + cx.notify() + } + } + + pub(crate) fn channel_changed(&mut self, cx: &mut ModelContext) { + cx.emit(ChannelBufferEvent::ChannelChanged); + cx.notify() + } + + pub fn is_connected(&self) -> bool { + self.connected + } + + pub fn replica_id(&self, cx: &AppContext) -> u16 { + self.buffer.read(cx).replica_id() + } +} diff --git a/crates/channel2/src/channel_chat.rs b/crates/channel2/src/channel_chat.rs new file mode 100644 index 0000000000..9306d78520 --- /dev/null +++ b/crates/channel2/src/channel_chat.rs @@ -0,0 +1,647 @@ +use crate::{Channel, ChannelId, ChannelStore}; +use anyhow::{anyhow, Result}; +use client2::{ + proto, + user::{User, UserStore}, + Client, Subscription, TypedEnvelope, UserId, +}; +use futures::lock::Mutex; +use gpui2::{AppContext, AsyncAppContext, Context, EventEmitter, Model, ModelContext, Task}; +use rand::prelude::*; +use std::{ + collections::HashSet, + mem, + ops::{ControlFlow, Range}, + sync::Arc, +}; +use sum_tree::{Bias, SumTree}; +use time::OffsetDateTime; +use util::{post_inc, ResultExt as _, TryFutureExt}; + +pub struct ChannelChat { + pub channel_id: ChannelId, + messages: SumTree, + acknowledged_message_ids: HashSet, + channel_store: Model, + loaded_all_messages: bool, + last_acknowledged_id: Option, + next_pending_message_id: usize, + user_store: Model, + rpc: Arc, + outgoing_messages_lock: Arc>, + rng: StdRng, + _subscription: Subscription, +} + +#[derive(Debug, PartialEq, Eq)] +pub struct MessageParams { + pub text: String, + pub mentions: Vec<(Range, UserId)>, +} + +#[derive(Clone, Debug)] +pub struct ChannelMessage { + pub id: ChannelMessageId, + pub body: String, + pub timestamp: OffsetDateTime, + pub sender: Arc, + pub nonce: u128, + pub mentions: Vec<(Range, UserId)>, +} + +#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] +pub enum ChannelMessageId { + Saved(u64), + Pending(usize), +} + +#[derive(Clone, Debug, Default)] +pub struct ChannelMessageSummary { + max_id: ChannelMessageId, + count: usize, +} + +#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord)] +struct Count(usize); + +#[derive(Clone, Debug, PartialEq)] +pub enum ChannelChatEvent { + MessagesUpdated { + old_range: Range, + new_count: usize, + }, + NewMessage { + channel_id: ChannelId, + message_id: u64, + }, +} + +impl EventEmitter for ChannelChat { + type Event = ChannelChatEvent; +} +pub fn init(client: &Arc) { + client.add_model_message_handler(ChannelChat::handle_message_sent); + client.add_model_message_handler(ChannelChat::handle_message_removed); +} + +impl ChannelChat { + pub async fn new( + channel: Arc, + channel_store: Model, + user_store: Model, + client: Arc, + mut cx: AsyncAppContext, + ) -> Result> { + let channel_id = channel.id; + let subscription = client.subscribe_to_entity(channel_id).unwrap(); + + let response = client + .request(proto::JoinChannelChat { channel_id }) + .await?; + let messages = messages_from_proto(response.messages, &user_store, &mut cx).await?; + let loaded_all_messages = response.done; + + Ok(cx.build_model(|cx| { + cx.on_release(Self::release).detach(); + let mut this = Self { + channel_id: channel.id, + user_store, + channel_store, + rpc: client, + outgoing_messages_lock: Default::default(), + messages: Default::default(), + acknowledged_message_ids: Default::default(), + loaded_all_messages, + next_pending_message_id: 0, + last_acknowledged_id: None, + rng: StdRng::from_entropy(), + _subscription: subscription.set_model(&cx.handle(), &mut cx.to_async()), + }; + this.insert_messages(messages, cx); + this + })?) + } + + fn release(&mut self, _: &mut AppContext) { + self.rpc + .send(proto::LeaveChannelChat { + channel_id: self.channel_id, + }) + .log_err(); + } + + pub fn channel(&self, cx: &AppContext) -> Option> { + self.channel_store + .read(cx) + .channel_for_id(self.channel_id) + .cloned() + } + + pub fn client(&self) -> &Arc { + &self.rpc + } + + pub fn send_message( + &mut self, + message: MessageParams, + cx: &mut ModelContext, + ) -> Result>> { + if message.text.is_empty() { + Err(anyhow!("message body can't be empty"))?; + } + + let current_user = self + .user_store + .read(cx) + .current_user() + .ok_or_else(|| anyhow!("current_user is not present"))?; + + let channel_id = self.channel_id; + let pending_id = ChannelMessageId::Pending(post_inc(&mut self.next_pending_message_id)); + let nonce = self.rng.gen(); + self.insert_messages( + SumTree::from_item( + ChannelMessage { + id: pending_id, + body: message.text.clone(), + sender: current_user, + timestamp: OffsetDateTime::now_utc(), + mentions: message.mentions.clone(), + nonce, + }, + &(), + ), + cx, + ); + let user_store = self.user_store.clone(); + let rpc = self.rpc.clone(); + let outgoing_messages_lock = self.outgoing_messages_lock.clone(); + Ok(cx.spawn(move |this, mut cx| async move { + let outgoing_message_guard = outgoing_messages_lock.lock().await; + let request = rpc.request(proto::SendChannelMessage { + channel_id, + body: message.text, + nonce: Some(nonce.into()), + mentions: mentions_to_proto(&message.mentions), + }); + let response = request.await?; + drop(outgoing_message_guard); + let response = response.message.ok_or_else(|| anyhow!("invalid message"))?; + let id = response.id; + let message = ChannelMessage::from_proto(response, &user_store, &mut cx).await?; + this.update(&mut cx, |this, cx| { + this.insert_messages(SumTree::from_item(message, &()), cx); + })?; + Ok(id) + })) + } + + pub fn remove_message(&mut self, id: u64, cx: &mut ModelContext) -> Task> { + let response = self.rpc.request(proto::RemoveChannelMessage { + channel_id: self.channel_id, + message_id: id, + }); + cx.spawn(move |this, mut cx| async move { + response.await?; + this.update(&mut cx, |this, cx| { + this.message_removed(id, cx); + })?; + Ok(()) + }) + } + + pub fn load_more_messages(&mut self, cx: &mut ModelContext) -> Option>> { + if self.loaded_all_messages { + return None; + } + + let rpc = self.rpc.clone(); + let user_store = self.user_store.clone(); + let channel_id = self.channel_id; + let before_message_id = self.first_loaded_message_id()?; + Some(cx.spawn(move |this, mut cx| { + async move { + let response = rpc + .request(proto::GetChannelMessages { + channel_id, + before_message_id, + }) + .await?; + let loaded_all_messages = response.done; + let messages = messages_from_proto(response.messages, &user_store, &mut cx).await?; + this.update(&mut cx, |this, cx| { + this.loaded_all_messages = loaded_all_messages; + this.insert_messages(messages, cx); + })?; + anyhow::Ok(()) + } + .log_err() + })) + } + + pub fn first_loaded_message_id(&mut self) -> Option { + self.messages.first().and_then(|message| match message.id { + ChannelMessageId::Saved(id) => Some(id), + ChannelMessageId::Pending(_) => None, + }) + } + + /// Load all of the chat messages since a certain message id. + /// + /// For now, we always maintain a suffix of the channel's messages. + pub async fn load_history_since_message( + chat: Model, + message_id: u64, + mut cx: AsyncAppContext, + ) -> Option { + loop { + let step = chat + .update(&mut cx, |chat, cx| { + if let Some(first_id) = chat.first_loaded_message_id() { + if first_id <= message_id { + let mut cursor = chat.messages.cursor::<(ChannelMessageId, Count)>(); + let message_id = ChannelMessageId::Saved(message_id); + cursor.seek(&message_id, Bias::Left, &()); + return ControlFlow::Break( + if cursor + .item() + .map_or(false, |message| message.id == message_id) + { + Some(cursor.start().1 .0) + } else { + None + }, + ); + } + } + ControlFlow::Continue(chat.load_more_messages(cx)) + }) + .log_err()?; + match step { + ControlFlow::Break(ix) => return ix, + ControlFlow::Continue(task) => task?.await?, + } + } + } + + pub fn acknowledge_last_message(&mut self, cx: &mut ModelContext) { + if let ChannelMessageId::Saved(latest_message_id) = self.messages.summary().max_id { + if self + .last_acknowledged_id + .map_or(true, |acknowledged_id| acknowledged_id < latest_message_id) + { + self.rpc + .send(proto::AckChannelMessage { + channel_id: self.channel_id, + message_id: latest_message_id, + }) + .ok(); + self.last_acknowledged_id = Some(latest_message_id); + self.channel_store.update(cx, |store, cx| { + store.acknowledge_message_id(self.channel_id, latest_message_id, cx); + }); + } + } + } + + pub fn rejoin(&mut self, cx: &mut ModelContext) { + let user_store = self.user_store.clone(); + let rpc = self.rpc.clone(); + let channel_id = self.channel_id; + cx.spawn(move |this, mut cx| { + async move { + let response = rpc.request(proto::JoinChannelChat { channel_id }).await?; + let messages = messages_from_proto(response.messages, &user_store, &mut cx).await?; + let loaded_all_messages = response.done; + + let pending_messages = this.update(&mut cx, |this, cx| { + if let Some((first_new_message, last_old_message)) = + messages.first().zip(this.messages.last()) + { + if first_new_message.id > last_old_message.id { + let old_messages = mem::take(&mut this.messages); + cx.emit(ChannelChatEvent::MessagesUpdated { + old_range: 0..old_messages.summary().count, + new_count: 0, + }); + this.loaded_all_messages = loaded_all_messages; + } + } + + this.insert_messages(messages, cx); + if loaded_all_messages { + this.loaded_all_messages = loaded_all_messages; + } + + this.pending_messages().cloned().collect::>() + })?; + + for pending_message in pending_messages { + let request = rpc.request(proto::SendChannelMessage { + channel_id, + body: pending_message.body, + mentions: mentions_to_proto(&pending_message.mentions), + nonce: Some(pending_message.nonce.into()), + }); + let response = request.await?; + let message = ChannelMessage::from_proto( + response.message.ok_or_else(|| anyhow!("invalid message"))?, + &user_store, + &mut cx, + ) + .await?; + this.update(&mut cx, |this, cx| { + this.insert_messages(SumTree::from_item(message, &()), cx); + })?; + } + + anyhow::Ok(()) + } + .log_err() + }) + .detach(); + } + + pub fn message_count(&self) -> usize { + self.messages.summary().count + } + + pub fn messages(&self) -> &SumTree { + &self.messages + } + + pub fn message(&self, ix: usize) -> &ChannelMessage { + let mut cursor = self.messages.cursor::(); + cursor.seek(&Count(ix), Bias::Right, &()); + cursor.item().unwrap() + } + + pub fn acknowledge_message(&mut self, id: u64) { + if self.acknowledged_message_ids.insert(id) { + self.rpc + .send(proto::AckChannelMessage { + channel_id: self.channel_id, + message_id: id, + }) + .ok(); + } + } + + pub fn messages_in_range(&self, range: Range) -> impl Iterator { + let mut cursor = self.messages.cursor::(); + cursor.seek(&Count(range.start), Bias::Right, &()); + cursor.take(range.len()) + } + + pub fn pending_messages(&self) -> impl Iterator { + let mut cursor = self.messages.cursor::(); + cursor.seek(&ChannelMessageId::Pending(0), Bias::Left, &()); + cursor + } + + async fn handle_message_sent( + this: Model, + message: TypedEnvelope, + _: Arc, + mut cx: AsyncAppContext, + ) -> Result<()> { + let user_store = this.update(&mut cx, |this, _| this.user_store.clone())?; + let message = message + .payload + .message + .ok_or_else(|| anyhow!("empty message"))?; + let message_id = message.id; + + let message = ChannelMessage::from_proto(message, &user_store, &mut cx).await?; + this.update(&mut cx, |this, cx| { + this.insert_messages(SumTree::from_item(message, &()), cx); + cx.emit(ChannelChatEvent::NewMessage { + channel_id: this.channel_id, + message_id, + }) + })?; + + Ok(()) + } + + async fn handle_message_removed( + this: Model, + message: TypedEnvelope, + _: Arc, + mut cx: AsyncAppContext, + ) -> Result<()> { + this.update(&mut cx, |this, cx| { + this.message_removed(message.payload.message_id, cx) + })?; + Ok(()) + } + + fn insert_messages(&mut self, messages: SumTree, cx: &mut ModelContext) { + if let Some((first_message, last_message)) = messages.first().zip(messages.last()) { + let nonces = messages + .cursor::<()>() + .map(|m| m.nonce) + .collect::>(); + + let mut old_cursor = self.messages.cursor::<(ChannelMessageId, Count)>(); + let mut new_messages = old_cursor.slice(&first_message.id, Bias::Left, &()); + let start_ix = old_cursor.start().1 .0; + let removed_messages = old_cursor.slice(&last_message.id, Bias::Right, &()); + let removed_count = removed_messages.summary().count; + let new_count = messages.summary().count; + let end_ix = start_ix + removed_count; + + new_messages.append(messages, &()); + + let mut ranges = Vec::>::new(); + if new_messages.last().unwrap().is_pending() { + new_messages.append(old_cursor.suffix(&()), &()); + } else { + new_messages.append( + old_cursor.slice(&ChannelMessageId::Pending(0), Bias::Left, &()), + &(), + ); + + while let Some(message) = old_cursor.item() { + let message_ix = old_cursor.start().1 .0; + if nonces.contains(&message.nonce) { + if ranges.last().map_or(false, |r| r.end == message_ix) { + ranges.last_mut().unwrap().end += 1; + } else { + ranges.push(message_ix..message_ix + 1); + } + } else { + new_messages.push(message.clone(), &()); + } + old_cursor.next(&()); + } + } + + drop(old_cursor); + self.messages = new_messages; + + for range in ranges.into_iter().rev() { + cx.emit(ChannelChatEvent::MessagesUpdated { + old_range: range, + new_count: 0, + }); + } + cx.emit(ChannelChatEvent::MessagesUpdated { + old_range: start_ix..end_ix, + new_count, + }); + + cx.notify(); + } + } + + fn message_removed(&mut self, id: u64, cx: &mut ModelContext) { + let mut cursor = self.messages.cursor::(); + let mut messages = cursor.slice(&ChannelMessageId::Saved(id), Bias::Left, &()); + if let Some(item) = cursor.item() { + if item.id == ChannelMessageId::Saved(id) { + let ix = messages.summary().count; + cursor.next(&()); + messages.append(cursor.suffix(&()), &()); + drop(cursor); + self.messages = messages; + cx.emit(ChannelChatEvent::MessagesUpdated { + old_range: ix..ix + 1, + new_count: 0, + }); + } + } + } +} + +async fn messages_from_proto( + proto_messages: Vec, + user_store: &Model, + cx: &mut AsyncAppContext, +) -> Result> { + let messages = ChannelMessage::from_proto_vec(proto_messages, user_store, cx).await?; + let mut result = SumTree::new(); + result.extend(messages, &()); + Ok(result) +} + +impl ChannelMessage { + pub async fn from_proto( + message: proto::ChannelMessage, + user_store: &Model, + cx: &mut AsyncAppContext, + ) -> Result { + let sender = user_store + .update(cx, |user_store, cx| { + user_store.get_user(message.sender_id, cx) + })? + .await?; + Ok(ChannelMessage { + id: ChannelMessageId::Saved(message.id), + body: message.body, + mentions: message + .mentions + .into_iter() + .filter_map(|mention| { + let range = mention.range?; + Some((range.start as usize..range.end as usize, mention.user_id)) + }) + .collect(), + timestamp: OffsetDateTime::from_unix_timestamp(message.timestamp as i64)?, + sender, + nonce: message + .nonce + .ok_or_else(|| anyhow!("nonce is required"))? + .into(), + }) + } + + pub fn is_pending(&self) -> bool { + matches!(self.id, ChannelMessageId::Pending(_)) + } + + pub async fn from_proto_vec( + proto_messages: Vec, + user_store: &Model, + cx: &mut AsyncAppContext, + ) -> Result> { + let unique_user_ids = proto_messages + .iter() + .map(|m| m.sender_id) + .collect::>() + .into_iter() + .collect(); + user_store + .update(cx, |user_store, cx| { + user_store.get_users(unique_user_ids, cx) + })? + .await?; + + let mut messages = Vec::with_capacity(proto_messages.len()); + for message in proto_messages { + messages.push(ChannelMessage::from_proto(message, user_store, cx).await?); + } + Ok(messages) + } +} + +pub fn mentions_to_proto(mentions: &[(Range, UserId)]) -> Vec { + mentions + .iter() + .map(|(range, user_id)| proto::ChatMention { + range: Some(proto::Range { + start: range.start as u64, + end: range.end as u64, + }), + user_id: *user_id as u64, + }) + .collect() +} + +impl sum_tree::Item for ChannelMessage { + type Summary = ChannelMessageSummary; + + fn summary(&self) -> Self::Summary { + ChannelMessageSummary { + max_id: self.id, + count: 1, + } + } +} + +impl Default for ChannelMessageId { + fn default() -> Self { + Self::Saved(0) + } +} + +impl sum_tree::Summary for ChannelMessageSummary { + type Context = (); + + fn add_summary(&mut self, summary: &Self, _: &()) { + self.max_id = summary.max_id; + self.count += summary.count; + } +} + +impl<'a> sum_tree::Dimension<'a, ChannelMessageSummary> for ChannelMessageId { + fn add_summary(&mut self, summary: &'a ChannelMessageSummary, _: &()) { + debug_assert!(summary.max_id > *self); + *self = summary.max_id; + } +} + +impl<'a> sum_tree::Dimension<'a, ChannelMessageSummary> for Count { + fn add_summary(&mut self, summary: &'a ChannelMessageSummary, _: &()) { + self.0 += summary.count; + } +} + +impl<'a> From<&'a str> for MessageParams { + fn from(value: &'a str) -> Self { + Self { + text: value.into(), + mentions: Vec::new(), + } + } +} diff --git a/crates/channel2/src/channel_store.rs b/crates/channel2/src/channel_store.rs new file mode 100644 index 0000000000..389b96ba42 --- /dev/null +++ b/crates/channel2/src/channel_store.rs @@ -0,0 +1,1021 @@ +mod channel_index; + +use crate::{channel_buffer::ChannelBuffer, channel_chat::ChannelChat, ChannelMessage}; +use anyhow::{anyhow, Result}; +use channel_index::ChannelIndex; +use client2::{Client, Subscription, User, UserId, UserStore}; +use collections::{hash_map, HashMap, HashSet}; +use db2::RELEASE_CHANNEL; +use futures::{channel::mpsc, future::Shared, Future, FutureExt, StreamExt}; +use gpui2::{ + AppContext, AsyncAppContext, Context, EventEmitter, Model, ModelContext, Task, WeakModel, +}; +use rpc2::{ + proto::{self, ChannelVisibility}, + TypedEnvelope, +}; +use std::{mem, sync::Arc, time::Duration}; +use util::{async_maybe, ResultExt}; + +pub fn init(client: &Arc, user_store: Model, cx: &mut AppContext) { + let channel_store = + cx.build_model(|cx| ChannelStore::new(client.clone(), user_store.clone(), cx)); + cx.set_global(channel_store); +} + +pub const RECONNECT_TIMEOUT: Duration = Duration::from_secs(30); + +pub type ChannelId = u64; + +pub struct ChannelStore { + pub channel_index: ChannelIndex, + channel_invitations: Vec>, + channel_participants: HashMap>>, + outgoing_invites: HashSet<(ChannelId, UserId)>, + update_channels_tx: mpsc::UnboundedSender, + opened_buffers: HashMap>, + opened_chats: HashMap>, + client: Arc, + user_store: Model, + _rpc_subscription: Subscription, + _watch_connection_status: Task>, + disconnect_channel_buffers_task: Option>, + _update_channels: Task<()>, +} + +#[derive(Clone, Debug, PartialEq)] +pub struct Channel { + pub id: ChannelId, + pub name: String, + pub visibility: proto::ChannelVisibility, + pub role: proto::ChannelRole, + pub unseen_note_version: Option<(u64, clock::Global)>, + pub unseen_message_id: Option, + pub parent_path: Vec, +} + +impl Channel { + pub fn link(&self) -> String { + RELEASE_CHANNEL.link_prefix().to_owned() + + "channel/" + + &self.slug() + + "-" + + &self.id.to_string() + } + + pub fn slug(&self) -> String { + let slug: String = self + .name + .chars() + .map(|c| if c.is_alphanumeric() { c } else { '-' }) + .collect(); + + slug.trim_matches(|c| c == '-').to_string() + } + + pub fn can_edit_notes(&self) -> bool { + self.role == proto::ChannelRole::Member || self.role == proto::ChannelRole::Admin + } +} + +pub struct ChannelMembership { + pub user: Arc, + pub kind: proto::channel_member::Kind, + pub role: proto::ChannelRole, +} +impl ChannelMembership { + pub fn sort_key(&self) -> MembershipSortKey { + MembershipSortKey { + role_order: match self.role { + proto::ChannelRole::Admin => 0, + proto::ChannelRole::Member => 1, + proto::ChannelRole::Banned => 2, + proto::ChannelRole::Guest => 3, + }, + kind_order: match self.kind { + proto::channel_member::Kind::Member => 0, + proto::channel_member::Kind::AncestorMember => 1, + proto::channel_member::Kind::Invitee => 2, + }, + username_order: self.user.github_login.as_str(), + } + } +} + +#[derive(PartialOrd, Ord, PartialEq, Eq)] +pub struct MembershipSortKey<'a> { + role_order: u8, + kind_order: u8, + username_order: &'a str, +} + +pub enum ChannelEvent { + ChannelCreated(ChannelId), + ChannelRenamed(ChannelId), +} + +impl EventEmitter for ChannelStore { + type Event = ChannelEvent; +} + +enum OpenedModelHandle { + Open(WeakModel), + Loading(Shared, Arc>>>), +} + +impl ChannelStore { + pub fn global(cx: &AppContext) -> Model { + cx.global::>().clone() + } + + pub fn new( + client: Arc, + user_store: Model, + cx: &mut ModelContext, + ) -> Self { + let rpc_subscription = + client.add_message_handler(cx.weak_model(), Self::handle_update_channels); + + let mut connection_status = client.status(); + let (update_channels_tx, mut update_channels_rx) = mpsc::unbounded(); + let watch_connection_status = cx.spawn(|this, mut cx| async move { + while let Some(status) = connection_status.next().await { + let this = this.upgrade()?; + match status { + client2::Status::Connected { .. } => { + this.update(&mut cx, |this, cx| this.handle_connect(cx)) + .ok()? + .await + .log_err()?; + } + client2::Status::SignedOut | client2::Status::UpgradeRequired => { + this.update(&mut cx, |this, cx| this.handle_disconnect(false, cx)) + .ok(); + } + _ => { + this.update(&mut cx, |this, cx| this.handle_disconnect(true, cx)) + .ok(); + } + } + } + Some(()) + }); + + Self { + channel_invitations: Vec::default(), + channel_index: ChannelIndex::default(), + channel_participants: Default::default(), + outgoing_invites: Default::default(), + opened_buffers: Default::default(), + opened_chats: Default::default(), + update_channels_tx, + client, + user_store, + _rpc_subscription: rpc_subscription, + _watch_connection_status: watch_connection_status, + disconnect_channel_buffers_task: None, + _update_channels: cx.spawn(|this, mut cx| async move { + async_maybe!({ + while let Some(update_channels) = update_channels_rx.next().await { + if let Some(this) = this.upgrade() { + let update_task = this.update(&mut cx, |this, cx| { + this.update_channels(update_channels, cx) + })?; + if let Some(update_task) = update_task { + update_task.await.log_err(); + } + } + } + anyhow::Ok(()) + }) + .await + .log_err(); + }), + } + } + + pub fn client(&self) -> Arc { + self.client.clone() + } + + /// Returns the number of unique channels in the store + pub fn channel_count(&self) -> usize { + self.channel_index.by_id().len() + } + + /// Returns the index of a channel ID in the list of unique channels + pub fn index_of_channel(&self, channel_id: ChannelId) -> Option { + self.channel_index + .by_id() + .keys() + .position(|id| *id == channel_id) + } + + /// Returns an iterator over all unique channels + pub fn channels(&self) -> impl '_ + Iterator> { + self.channel_index.by_id().values() + } + + /// Iterate over all entries in the channel DAG + pub fn ordered_channels(&self) -> impl '_ + Iterator)> { + self.channel_index + .ordered_channels() + .iter() + .filter_map(move |id| { + let channel = self.channel_index.by_id().get(id)?; + Some((channel.parent_path.len(), channel)) + }) + } + + pub fn channel_at_index(&self, ix: usize) -> Option<&Arc> { + let channel_id = self.channel_index.ordered_channels().get(ix)?; + self.channel_index.by_id().get(channel_id) + } + + pub fn channel_at(&self, ix: usize) -> Option<&Arc> { + self.channel_index.by_id().values().nth(ix) + } + + pub fn has_channel_invitation(&self, channel_id: ChannelId) -> bool { + self.channel_invitations + .iter() + .any(|channel| channel.id == channel_id) + } + + pub fn channel_invitations(&self) -> &[Arc] { + &self.channel_invitations + } + + pub fn channel_for_id(&self, channel_id: ChannelId) -> Option<&Arc> { + self.channel_index.by_id().get(&channel_id) + } + + pub fn has_open_channel_buffer(&self, channel_id: ChannelId, _cx: &AppContext) -> bool { + if let Some(buffer) = self.opened_buffers.get(&channel_id) { + if let OpenedModelHandle::Open(buffer) = buffer { + return buffer.upgrade().is_some(); + } + } + false + } + + pub fn open_channel_buffer( + &mut self, + channel_id: ChannelId, + cx: &mut ModelContext, + ) -> Task>> { + let client = self.client.clone(); + let user_store = self.user_store.clone(); + let channel_store = cx.handle(); + self.open_channel_resource( + channel_id, + |this| &mut this.opened_buffers, + |channel, cx| ChannelBuffer::new(channel, client, user_store, channel_store, cx), + cx, + ) + } + + pub fn fetch_channel_messages( + &self, + message_ids: Vec, + cx: &mut ModelContext, + ) -> Task>> { + let request = if message_ids.is_empty() { + None + } else { + Some( + self.client + .request(proto::GetChannelMessagesById { message_ids }), + ) + }; + cx.spawn(|this, mut cx| async move { + if let Some(request) = request { + let response = request.await?; + let this = this + .upgrade() + .ok_or_else(|| anyhow!("channel store dropped"))?; + let user_store = this.update(&mut cx, |this, _| this.user_store.clone())?; + ChannelMessage::from_proto_vec(response.messages, &user_store, &mut cx).await + } else { + Ok(Vec::new()) + } + }) + } + + pub fn has_channel_buffer_changed(&self, channel_id: ChannelId) -> Option { + self.channel_index + .by_id() + .get(&channel_id) + .map(|channel| channel.unseen_note_version.is_some()) + } + + pub fn has_new_messages(&self, channel_id: ChannelId) -> Option { + self.channel_index + .by_id() + .get(&channel_id) + .map(|channel| channel.unseen_message_id.is_some()) + } + + pub fn notes_changed( + &mut self, + channel_id: ChannelId, + epoch: u64, + version: &clock::Global, + cx: &mut ModelContext, + ) { + self.channel_index.note_changed(channel_id, epoch, version); + cx.notify(); + } + + pub fn new_message( + &mut self, + channel_id: ChannelId, + message_id: u64, + cx: &mut ModelContext, + ) { + self.channel_index.new_message(channel_id, message_id); + cx.notify(); + } + + pub fn acknowledge_message_id( + &mut self, + channel_id: ChannelId, + message_id: u64, + cx: &mut ModelContext, + ) { + self.channel_index + .acknowledge_message_id(channel_id, message_id); + cx.notify(); + } + + pub fn acknowledge_notes_version( + &mut self, + channel_id: ChannelId, + epoch: u64, + version: &clock::Global, + cx: &mut ModelContext, + ) { + self.channel_index + .acknowledge_note_version(channel_id, epoch, version); + cx.notify(); + } + + pub fn open_channel_chat( + &mut self, + channel_id: ChannelId, + cx: &mut ModelContext, + ) -> Task>> { + let client = self.client.clone(); + let user_store = self.user_store.clone(); + let this = cx.handle(); + self.open_channel_resource( + channel_id, + |this| &mut this.opened_chats, + |channel, cx| ChannelChat::new(channel, this, user_store, client, cx), + cx, + ) + } + + /// Asynchronously open a given resource associated with a channel. + /// + /// Make sure that the resource is only opened once, even if this method + /// is called multiple times with the same channel id while the first task + /// is still running. + fn open_channel_resource( + &mut self, + channel_id: ChannelId, + get_map: fn(&mut Self) -> &mut HashMap>, + load: F, + cx: &mut ModelContext, + ) -> Task>> + where + F: 'static + Send + FnOnce(Arc, AsyncAppContext) -> Fut, + Fut: Send + Future>>, + T: 'static, + { + let task = loop { + match get_map(self).entry(channel_id) { + hash_map::Entry::Occupied(e) => match e.get() { + OpenedModelHandle::Open(model) => { + if let Some(model) = model.upgrade() { + break Task::ready(Ok(model)).shared(); + } else { + get_map(self).remove(&channel_id); + continue; + } + } + OpenedModelHandle::Loading(task) => { + break task.clone(); + } + }, + hash_map::Entry::Vacant(e) => { + let task = cx + .spawn(move |this, mut cx| async move { + let channel = this.update(&mut cx, |this, _| { + this.channel_for_id(channel_id).cloned().ok_or_else(|| { + Arc::new(anyhow!("no channel for id: {}", channel_id)) + }) + })??; + + load(channel, cx).await.map_err(Arc::new) + }) + .shared(); + + e.insert(OpenedModelHandle::Loading(task.clone())); + cx.spawn({ + let task = task.clone(); + move |this, mut cx| async move { + let result = task.await; + this.update(&mut cx, |this, _| match result { + Ok(model) => { + get_map(this).insert( + channel_id, + OpenedModelHandle::Open(model.downgrade()), + ); + } + Err(_) => { + get_map(this).remove(&channel_id); + } + }) + .ok(); + } + }) + .detach(); + break task; + } + } + }; + cx.executor() + .spawn(async move { task.await.map_err(|error| anyhow!("{}", error)) }) + } + + pub fn is_channel_admin(&self, channel_id: ChannelId) -> bool { + let Some(channel) = self.channel_for_id(channel_id) else { + return false; + }; + channel.role == proto::ChannelRole::Admin + } + + pub fn channel_participants(&self, channel_id: ChannelId) -> &[Arc] { + self.channel_participants + .get(&channel_id) + .map_or(&[], |v| v.as_slice()) + } + + pub fn create_channel( + &self, + name: &str, + parent_id: Option, + cx: &mut ModelContext, + ) -> Task> { + let client = self.client.clone(); + let name = name.trim_start_matches("#").to_owned(); + cx.spawn(move |this, mut cx| async move { + let response = client + .request(proto::CreateChannel { name, parent_id }) + .await?; + + let channel = response + .channel + .ok_or_else(|| anyhow!("missing channel in response"))?; + let channel_id = channel.id; + + this.update(&mut cx, |this, cx| { + let task = this.update_channels( + proto::UpdateChannels { + channels: vec![channel], + ..Default::default() + }, + cx, + ); + assert!(task.is_none()); + + // This event is emitted because the collab panel wants to clear the pending edit state + // before this frame is rendered. But we can't guarantee that the collab panel's future + // will resolve before this flush_effects finishes. Synchronously emitting this event + // ensures that the collab panel will observe this creation before the frame completes + cx.emit(ChannelEvent::ChannelCreated(channel_id)); + })?; + + Ok(channel_id) + }) + } + + pub fn move_channel( + &mut self, + channel_id: ChannelId, + to: Option, + cx: &mut ModelContext, + ) -> Task> { + let client = self.client.clone(); + cx.spawn(move |_, _| async move { + let _ = client + .request(proto::MoveChannel { channel_id, to }) + .await?; + + Ok(()) + }) + } + + pub fn set_channel_visibility( + &mut self, + channel_id: ChannelId, + visibility: ChannelVisibility, + cx: &mut ModelContext, + ) -> Task> { + let client = self.client.clone(); + cx.spawn(move |_, _| async move { + let _ = client + .request(proto::SetChannelVisibility { + channel_id, + visibility: visibility.into(), + }) + .await?; + + Ok(()) + }) + } + + pub fn invite_member( + &mut self, + channel_id: ChannelId, + user_id: UserId, + role: proto::ChannelRole, + cx: &mut ModelContext, + ) -> Task> { + if !self.outgoing_invites.insert((channel_id, user_id)) { + return Task::ready(Err(anyhow!("invite request already in progress"))); + } + + cx.notify(); + let client = self.client.clone(); + cx.spawn(move |this, mut cx| async move { + let result = client + .request(proto::InviteChannelMember { + channel_id, + user_id, + role: role.into(), + }) + .await; + + this.update(&mut cx, |this, cx| { + this.outgoing_invites.remove(&(channel_id, user_id)); + cx.notify(); + })?; + + result?; + + Ok(()) + }) + } + + pub fn remove_member( + &mut self, + channel_id: ChannelId, + user_id: u64, + cx: &mut ModelContext, + ) -> Task> { + if !self.outgoing_invites.insert((channel_id, user_id)) { + return Task::ready(Err(anyhow!("invite request already in progress"))); + } + + cx.notify(); + let client = self.client.clone(); + cx.spawn(move |this, mut cx| async move { + let result = client + .request(proto::RemoveChannelMember { + channel_id, + user_id, + }) + .await; + + this.update(&mut cx, |this, cx| { + this.outgoing_invites.remove(&(channel_id, user_id)); + cx.notify(); + })?; + result?; + Ok(()) + }) + } + + pub fn set_member_role( + &mut self, + channel_id: ChannelId, + user_id: UserId, + role: proto::ChannelRole, + cx: &mut ModelContext, + ) -> Task> { + if !self.outgoing_invites.insert((channel_id, user_id)) { + return Task::ready(Err(anyhow!("member request already in progress"))); + } + + cx.notify(); + let client = self.client.clone(); + cx.spawn(move |this, mut cx| async move { + let result = client + .request(proto::SetChannelMemberRole { + channel_id, + user_id, + role: role.into(), + }) + .await; + + this.update(&mut cx, |this, cx| { + this.outgoing_invites.remove(&(channel_id, user_id)); + cx.notify(); + })?; + + result?; + Ok(()) + }) + } + + pub fn rename( + &mut self, + channel_id: ChannelId, + new_name: &str, + cx: &mut ModelContext, + ) -> Task> { + let client = self.client.clone(); + let name = new_name.to_string(); + cx.spawn(move |this, mut cx| async move { + let channel = client + .request(proto::RenameChannel { channel_id, name }) + .await? + .channel + .ok_or_else(|| anyhow!("missing channel in response"))?; + this.update(&mut cx, |this, cx| { + let task = this.update_channels( + proto::UpdateChannels { + channels: vec![channel], + ..Default::default() + }, + cx, + ); + assert!(task.is_none()); + + // This event is emitted because the collab panel wants to clear the pending edit state + // before this frame is rendered. But we can't guarantee that the collab panel's future + // will resolve before this flush_effects finishes. Synchronously emitting this event + // ensures that the collab panel will observe this creation before the frame complete + cx.emit(ChannelEvent::ChannelRenamed(channel_id)) + })?; + Ok(()) + }) + } + + pub fn respond_to_channel_invite( + &mut self, + channel_id: ChannelId, + accept: bool, + cx: &mut ModelContext, + ) -> Task> { + let client = self.client.clone(); + cx.executor().spawn(async move { + client + .request(proto::RespondToChannelInvite { channel_id, accept }) + .await?; + Ok(()) + }) + } + + pub fn get_channel_member_details( + &self, + channel_id: ChannelId, + cx: &mut ModelContext, + ) -> Task>> { + let client = self.client.clone(); + let user_store = self.user_store.downgrade(); + cx.spawn(move |_, mut cx| async move { + let response = client + .request(proto::GetChannelMembers { channel_id }) + .await?; + + let user_ids = response.members.iter().map(|m| m.user_id).collect(); + let user_store = user_store + .upgrade() + .ok_or_else(|| anyhow!("user store dropped"))?; + let users = user_store + .update(&mut cx, |user_store, cx| user_store.get_users(user_ids, cx))? + .await?; + + Ok(users + .into_iter() + .zip(response.members) + .filter_map(|(user, member)| { + Some(ChannelMembership { + user, + role: member.role(), + kind: member.kind(), + }) + }) + .collect()) + }) + } + + pub fn remove_channel(&self, channel_id: ChannelId) -> impl Future> { + let client = self.client.clone(); + async move { + client.request(proto::DeleteChannel { channel_id }).await?; + Ok(()) + } + } + + pub fn has_pending_channel_invite_response(&self, _: &Arc) -> bool { + false + } + + pub fn has_pending_channel_invite(&self, channel_id: ChannelId, user_id: UserId) -> bool { + self.outgoing_invites.contains(&(channel_id, user_id)) + } + + async fn handle_update_channels( + this: Model, + message: TypedEnvelope, + _: Arc, + mut cx: AsyncAppContext, + ) -> Result<()> { + this.update(&mut cx, |this, _| { + this.update_channels_tx + .unbounded_send(message.payload) + .unwrap(); + })?; + Ok(()) + } + + fn handle_connect(&mut self, cx: &mut ModelContext) -> Task> { + self.channel_index.clear(); + self.channel_invitations.clear(); + self.channel_participants.clear(); + self.channel_index.clear(); + self.outgoing_invites.clear(); + self.disconnect_channel_buffers_task.take(); + + for chat in self.opened_chats.values() { + if let OpenedModelHandle::Open(chat) = chat { + if let Some(chat) = chat.upgrade() { + chat.update(cx, |chat, cx| { + chat.rejoin(cx); + }); + } + } + } + + let mut buffer_versions = Vec::new(); + for buffer in self.opened_buffers.values() { + if let OpenedModelHandle::Open(buffer) = buffer { + if let Some(buffer) = buffer.upgrade() { + let channel_buffer = buffer.read(cx); + let buffer = channel_buffer.buffer().read(cx); + buffer_versions.push(proto::ChannelBufferVersion { + channel_id: channel_buffer.channel_id, + epoch: channel_buffer.epoch(), + version: language2::proto::serialize_version(&buffer.version()), + }); + } + } + } + + if buffer_versions.is_empty() { + return Task::ready(Ok(())); + } + + let response = self.client.request(proto::RejoinChannelBuffers { + buffers: buffer_versions, + }); + + cx.spawn(|this, mut cx| async move { + let mut response = response.await?; + + this.update(&mut cx, |this, cx| { + this.opened_buffers.retain(|_, buffer| match buffer { + OpenedModelHandle::Open(channel_buffer) => { + let Some(channel_buffer) = channel_buffer.upgrade() else { + return false; + }; + + channel_buffer.update(cx, |channel_buffer, cx| { + let channel_id = channel_buffer.channel_id; + if let Some(remote_buffer) = response + .buffers + .iter_mut() + .find(|buffer| buffer.channel_id == channel_id) + { + let channel_id = channel_buffer.channel_id; + let remote_version = + language2::proto::deserialize_version(&remote_buffer.version); + + channel_buffer.replace_collaborators( + mem::take(&mut remote_buffer.collaborators), + cx, + ); + + let operations = channel_buffer + .buffer() + .update(cx, |buffer, cx| { + let outgoing_operations = + buffer.serialize_ops(Some(remote_version), cx); + let incoming_operations = + mem::take(&mut remote_buffer.operations) + .into_iter() + .map(language2::proto::deserialize_operation) + .collect::>>()?; + buffer.apply_ops(incoming_operations, cx)?; + anyhow::Ok(outgoing_operations) + }) + .log_err(); + + if let Some(operations) = operations { + let client = this.client.clone(); + cx.executor() + .spawn(async move { + let operations = operations.await; + for chunk in + language2::proto::split_operations(operations) + { + client + .send(proto::UpdateChannelBuffer { + channel_id, + operations: chunk, + }) + .ok(); + } + }) + .detach(); + return true; + } + } + + channel_buffer.disconnect(cx); + false + }) + } + OpenedModelHandle::Loading(_) => true, + }); + }) + .ok(); + anyhow::Ok(()) + }) + } + + fn handle_disconnect(&mut self, wait_for_reconnect: bool, cx: &mut ModelContext) { + cx.notify(); + + self.disconnect_channel_buffers_task.get_or_insert_with(|| { + cx.spawn(move |this, mut cx| async move { + if wait_for_reconnect { + cx.executor().timer(RECONNECT_TIMEOUT).await; + } + + if let Some(this) = this.upgrade() { + this.update(&mut cx, |this, cx| { + for (_, buffer) in this.opened_buffers.drain() { + if let OpenedModelHandle::Open(buffer) = buffer { + if let Some(buffer) = buffer.upgrade() { + buffer.update(cx, |buffer, cx| buffer.disconnect(cx)); + } + } + } + }) + .ok(); + } + }) + }); + } + + pub(crate) fn update_channels( + &mut self, + payload: proto::UpdateChannels, + cx: &mut ModelContext, + ) -> Option>> { + if !payload.remove_channel_invitations.is_empty() { + self.channel_invitations + .retain(|channel| !payload.remove_channel_invitations.contains(&channel.id)); + } + for channel in payload.channel_invitations { + match self + .channel_invitations + .binary_search_by_key(&channel.id, |c| c.id) + { + Ok(ix) => Arc::make_mut(&mut self.channel_invitations[ix]).name = channel.name, + Err(ix) => self.channel_invitations.insert( + ix, + Arc::new(Channel { + id: channel.id, + visibility: channel.visibility(), + role: channel.role(), + name: channel.name, + unseen_note_version: None, + unseen_message_id: None, + parent_path: channel.parent_path, + }), + ), + } + } + + let channels_changed = !payload.channels.is_empty() + || !payload.delete_channels.is_empty() + || !payload.unseen_channel_messages.is_empty() + || !payload.unseen_channel_buffer_changes.is_empty(); + + if channels_changed { + if !payload.delete_channels.is_empty() { + self.channel_index.delete_channels(&payload.delete_channels); + self.channel_participants + .retain(|channel_id, _| !&payload.delete_channels.contains(channel_id)); + + for channel_id in &payload.delete_channels { + let channel_id = *channel_id; + if payload + .channels + .iter() + .any(|channel| channel.id == channel_id) + { + continue; + } + if let Some(OpenedModelHandle::Open(buffer)) = + self.opened_buffers.remove(&channel_id) + { + if let Some(buffer) = buffer.upgrade() { + buffer.update(cx, ChannelBuffer::disconnect); + } + } + } + } + + let mut index = self.channel_index.bulk_insert(); + for channel in payload.channels { + let id = channel.id; + let channel_changed = index.insert(channel); + + if channel_changed { + if let Some(OpenedModelHandle::Open(buffer)) = self.opened_buffers.get(&id) { + if let Some(buffer) = buffer.upgrade() { + buffer.update(cx, ChannelBuffer::channel_changed); + } + } + } + } + + for unseen_buffer_change in payload.unseen_channel_buffer_changes { + let version = language2::proto::deserialize_version(&unseen_buffer_change.version); + index.note_changed( + unseen_buffer_change.channel_id, + unseen_buffer_change.epoch, + &version, + ); + } + + for unseen_channel_message in payload.unseen_channel_messages { + index.new_messages( + unseen_channel_message.channel_id, + unseen_channel_message.message_id, + ); + } + } + + cx.notify(); + if payload.channel_participants.is_empty() { + return None; + } + + let mut all_user_ids = Vec::new(); + let channel_participants = payload.channel_participants; + for entry in &channel_participants { + for user_id in entry.participant_user_ids.iter() { + if let Err(ix) = all_user_ids.binary_search(user_id) { + all_user_ids.insert(ix, *user_id); + } + } + } + + let users = self + .user_store + .update(cx, |user_store, cx| user_store.get_users(all_user_ids, cx)); + Some(cx.spawn(|this, mut cx| async move { + let users = users.await?; + + this.update(&mut cx, |this, cx| { + for entry in &channel_participants { + let mut participants: Vec<_> = entry + .participant_user_ids + .iter() + .filter_map(|user_id| { + users + .binary_search_by_key(&user_id, |user| &user.id) + .ok() + .map(|ix| users[ix].clone()) + }) + .collect(); + + participants.sort_by_key(|u| u.id); + + this.channel_participants + .insert(entry.channel_id, participants); + } + + cx.notify(); + }) + })) + } +} diff --git a/crates/channel2/src/channel_store/channel_index.rs b/crates/channel2/src/channel_store/channel_index.rs new file mode 100644 index 0000000000..9b8abb0c95 --- /dev/null +++ b/crates/channel2/src/channel_store/channel_index.rs @@ -0,0 +1,184 @@ +use crate::{Channel, ChannelId}; +use collections::BTreeMap; +use rpc2::proto; +use std::sync::Arc; + +#[derive(Default, Debug)] +pub struct ChannelIndex { + channels_ordered: Vec, + channels_by_id: BTreeMap>, +} + +impl ChannelIndex { + pub fn by_id(&self) -> &BTreeMap> { + &self.channels_by_id + } + + pub fn ordered_channels(&self) -> &[ChannelId] { + &self.channels_ordered + } + + pub fn clear(&mut self) { + self.channels_ordered.clear(); + self.channels_by_id.clear(); + } + + /// Delete the given channels from this index. + pub fn delete_channels(&mut self, channels: &[ChannelId]) { + self.channels_by_id + .retain(|channel_id, _| !channels.contains(channel_id)); + self.channels_ordered + .retain(|channel_id| !channels.contains(channel_id)); + } + + pub fn bulk_insert(&mut self) -> ChannelPathsInsertGuard { + ChannelPathsInsertGuard { + channels_ordered: &mut self.channels_ordered, + channels_by_id: &mut self.channels_by_id, + } + } + + pub fn acknowledge_note_version( + &mut self, + channel_id: ChannelId, + epoch: u64, + version: &clock::Global, + ) { + if let Some(channel) = self.channels_by_id.get_mut(&channel_id) { + let channel = Arc::make_mut(channel); + if let Some((unseen_epoch, unseen_version)) = &channel.unseen_note_version { + if epoch > *unseen_epoch + || epoch == *unseen_epoch && version.observed_all(unseen_version) + { + channel.unseen_note_version = None; + } + } + } + } + + pub fn acknowledge_message_id(&mut self, channel_id: ChannelId, message_id: u64) { + if let Some(channel) = self.channels_by_id.get_mut(&channel_id) { + let channel = Arc::make_mut(channel); + if let Some(unseen_message_id) = channel.unseen_message_id { + if message_id >= unseen_message_id { + channel.unseen_message_id = None; + } + } + } + } + + pub fn note_changed(&mut self, channel_id: ChannelId, epoch: u64, version: &clock::Global) { + insert_note_changed(&mut self.channels_by_id, channel_id, epoch, version); + } + + pub fn new_message(&mut self, channel_id: ChannelId, message_id: u64) { + insert_new_message(&mut self.channels_by_id, channel_id, message_id) + } +} + +/// A guard for ensuring that the paths index maintains its sort and uniqueness +/// invariants after a series of insertions +#[derive(Debug)] +pub struct ChannelPathsInsertGuard<'a> { + channels_ordered: &'a mut Vec, + channels_by_id: &'a mut BTreeMap>, +} + +impl<'a> ChannelPathsInsertGuard<'a> { + pub fn note_changed(&mut self, channel_id: ChannelId, epoch: u64, version: &clock::Global) { + insert_note_changed(&mut self.channels_by_id, channel_id, epoch, &version); + } + + pub fn new_messages(&mut self, channel_id: ChannelId, message_id: u64) { + insert_new_message(&mut self.channels_by_id, channel_id, message_id) + } + + pub fn insert(&mut self, channel_proto: proto::Channel) -> bool { + let mut ret = false; + if let Some(existing_channel) = self.channels_by_id.get_mut(&channel_proto.id) { + let existing_channel = Arc::make_mut(existing_channel); + + ret = existing_channel.visibility != channel_proto.visibility() + || existing_channel.role != channel_proto.role() + || existing_channel.name != channel_proto.name; + + existing_channel.visibility = channel_proto.visibility(); + existing_channel.role = channel_proto.role(); + existing_channel.name = channel_proto.name; + } else { + self.channels_by_id.insert( + channel_proto.id, + Arc::new(Channel { + id: channel_proto.id, + visibility: channel_proto.visibility(), + role: channel_proto.role(), + name: channel_proto.name, + unseen_note_version: None, + unseen_message_id: None, + parent_path: channel_proto.parent_path, + }), + ); + self.insert_root(channel_proto.id); + } + ret + } + + fn insert_root(&mut self, channel_id: ChannelId) { + self.channels_ordered.push(channel_id); + } +} + +impl<'a> Drop for ChannelPathsInsertGuard<'a> { + fn drop(&mut self) { + self.channels_ordered.sort_by(|a, b| { + let a = channel_path_sorting_key(*a, &self.channels_by_id); + let b = channel_path_sorting_key(*b, &self.channels_by_id); + a.cmp(b) + }); + self.channels_ordered.dedup(); + } +} + +fn channel_path_sorting_key<'a>( + id: ChannelId, + channels_by_id: &'a BTreeMap>, +) -> impl Iterator { + let (parent_path, name) = channels_by_id + .get(&id) + .map_or((&[] as &[_], None), |channel| { + (channel.parent_path.as_slice(), Some(channel.name.as_str())) + }); + parent_path + .iter() + .filter_map(|id| Some(channels_by_id.get(id)?.name.as_str())) + .chain(name) +} + +fn insert_note_changed( + channels_by_id: &mut BTreeMap>, + channel_id: u64, + epoch: u64, + version: &clock::Global, +) { + if let Some(channel) = channels_by_id.get_mut(&channel_id) { + let unseen_version = Arc::make_mut(channel) + .unseen_note_version + .get_or_insert((0, clock::Global::new())); + if epoch > unseen_version.0 { + *unseen_version = (epoch, version.clone()); + } else { + unseen_version.1.join(&version); + } + } +} + +fn insert_new_message( + channels_by_id: &mut BTreeMap>, + channel_id: u64, + message_id: u64, +) { + if let Some(channel) = channels_by_id.get_mut(&channel_id) { + let unseen_message_id = Arc::make_mut(channel).unseen_message_id.get_or_insert(0); + *unseen_message_id = message_id.max(*unseen_message_id); + } +} diff --git a/crates/channel2/src/channel_store_tests.rs b/crates/channel2/src/channel_store_tests.rs new file mode 100644 index 0000000000..036c7015ac --- /dev/null +++ b/crates/channel2/src/channel_store_tests.rs @@ -0,0 +1,380 @@ +use crate::channel_chat::ChannelChatEvent; + +use super::*; +use client2::{test::FakeServer, Client, UserStore}; +use gpui2::{AppContext, Context, Model, TestAppContext}; +use rpc2::proto::{self}; +use settings2::SettingsStore; +use util::http::FakeHttpClient; + +#[gpui2::test] +fn test_update_channels(cx: &mut AppContext) { + let channel_store = init_test(cx); + + update_channels( + &channel_store, + proto::UpdateChannels { + channels: vec![ + proto::Channel { + id: 1, + name: "b".to_string(), + visibility: proto::ChannelVisibility::Members as i32, + role: proto::ChannelRole::Admin.into(), + parent_path: Vec::new(), + }, + proto::Channel { + id: 2, + name: "a".to_string(), + visibility: proto::ChannelVisibility::Members as i32, + role: proto::ChannelRole::Member.into(), + parent_path: Vec::new(), + }, + ], + ..Default::default() + }, + cx, + ); + assert_channels( + &channel_store, + &[ + // + (0, "a".to_string(), proto::ChannelRole::Member), + (0, "b".to_string(), proto::ChannelRole::Admin), + ], + cx, + ); + + update_channels( + &channel_store, + proto::UpdateChannels { + channels: vec![ + proto::Channel { + id: 3, + name: "x".to_string(), + visibility: proto::ChannelVisibility::Members as i32, + role: proto::ChannelRole::Admin.into(), + parent_path: vec![1], + }, + proto::Channel { + id: 4, + name: "y".to_string(), + visibility: proto::ChannelVisibility::Members as i32, + role: proto::ChannelRole::Member.into(), + parent_path: vec![2], + }, + ], + ..Default::default() + }, + cx, + ); + assert_channels( + &channel_store, + &[ + (0, "a".to_string(), proto::ChannelRole::Member), + (1, "y".to_string(), proto::ChannelRole::Member), + (0, "b".to_string(), proto::ChannelRole::Admin), + (1, "x".to_string(), proto::ChannelRole::Admin), + ], + cx, + ); +} + +#[gpui2::test] +fn test_dangling_channel_paths(cx: &mut AppContext) { + let channel_store = init_test(cx); + + update_channels( + &channel_store, + proto::UpdateChannels { + channels: vec![ + proto::Channel { + id: 0, + name: "a".to_string(), + visibility: proto::ChannelVisibility::Members as i32, + role: proto::ChannelRole::Admin.into(), + parent_path: vec![], + }, + proto::Channel { + id: 1, + name: "b".to_string(), + visibility: proto::ChannelVisibility::Members as i32, + role: proto::ChannelRole::Admin.into(), + parent_path: vec![0], + }, + proto::Channel { + id: 2, + name: "c".to_string(), + visibility: proto::ChannelVisibility::Members as i32, + role: proto::ChannelRole::Admin.into(), + parent_path: vec![0, 1], + }, + ], + ..Default::default() + }, + cx, + ); + // Sanity check + assert_channels( + &channel_store, + &[ + // + (0, "a".to_string(), proto::ChannelRole::Admin), + (1, "b".to_string(), proto::ChannelRole::Admin), + (2, "c".to_string(), proto::ChannelRole::Admin), + ], + cx, + ); + + update_channels( + &channel_store, + proto::UpdateChannels { + delete_channels: vec![1, 2], + ..Default::default() + }, + cx, + ); + + // Make sure that the 1/2/3 path is gone + assert_channels( + &channel_store, + &[(0, "a".to_string(), proto::ChannelRole::Admin)], + cx, + ); +} + +#[gpui2::test] +async fn test_channel_messages(cx: &mut TestAppContext) { + let user_id = 5; + let channel_id = 5; + let channel_store = cx.update(init_test); + let client = channel_store.update(cx, |s, _| s.client()); + let server = FakeServer::for_client(user_id, &client, cx).await; + + // Get the available channels. + server.send(proto::UpdateChannels { + channels: vec![proto::Channel { + id: channel_id, + name: "the-channel".to_string(), + visibility: proto::ChannelVisibility::Members as i32, + role: proto::ChannelRole::Member.into(), + parent_path: vec![], + }], + ..Default::default() + }); + cx.executor().run_until_parked(); + cx.update(|cx| { + assert_channels( + &channel_store, + &[(0, "the-channel".to_string(), proto::ChannelRole::Member)], + cx, + ); + }); + + let get_users = server.receive::().await.unwrap(); + assert_eq!(get_users.payload.user_ids, vec![5]); + server.respond( + get_users.receipt(), + proto::UsersResponse { + users: vec![proto::User { + id: 5, + github_login: "nathansobo".into(), + avatar_url: "http://avatar.com/nathansobo".into(), + }], + }, + ); + + // Join a channel and populate its existing messages. + let channel = channel_store.update(cx, |store, cx| { + let channel_id = store.ordered_channels().next().unwrap().1.id; + store.open_channel_chat(channel_id, cx) + }); + let join_channel = server.receive::().await.unwrap(); + server.respond( + join_channel.receipt(), + proto::JoinChannelChatResponse { + messages: vec![ + proto::ChannelMessage { + id: 10, + body: "a".into(), + timestamp: 1000, + sender_id: 5, + mentions: vec![], + nonce: Some(1.into()), + }, + proto::ChannelMessage { + id: 11, + body: "b".into(), + timestamp: 1001, + sender_id: 6, + mentions: vec![], + nonce: Some(2.into()), + }, + ], + done: false, + }, + ); + + cx.executor().start_waiting(); + + // Client requests all users for the received messages + let mut get_users = server.receive::().await.unwrap(); + get_users.payload.user_ids.sort(); + assert_eq!(get_users.payload.user_ids, vec![6]); + server.respond( + get_users.receipt(), + proto::UsersResponse { + users: vec![proto::User { + id: 6, + github_login: "maxbrunsfeld".into(), + avatar_url: "http://avatar.com/maxbrunsfeld".into(), + }], + }, + ); + + let channel = channel.await.unwrap(); + channel.update(cx, |channel, _| { + assert_eq!( + channel + .messages_in_range(0..2) + .map(|message| (message.sender.github_login.clone(), message.body.clone())) + .collect::>(), + &[ + ("nathansobo".into(), "a".into()), + ("maxbrunsfeld".into(), "b".into()) + ] + ); + }); + + // Receive a new message. + server.send(proto::ChannelMessageSent { + channel_id, + message: Some(proto::ChannelMessage { + id: 12, + body: "c".into(), + timestamp: 1002, + sender_id: 7, + mentions: vec![], + nonce: Some(3.into()), + }), + }); + + // Client requests user for message since they haven't seen them yet + let get_users = server.receive::().await.unwrap(); + assert_eq!(get_users.payload.user_ids, vec![7]); + server.respond( + get_users.receipt(), + proto::UsersResponse { + users: vec![proto::User { + id: 7, + github_login: "as-cii".into(), + avatar_url: "http://avatar.com/as-cii".into(), + }], + }, + ); + + assert_eq!( + channel.next_event(cx), + ChannelChatEvent::MessagesUpdated { + old_range: 2..2, + new_count: 1, + } + ); + channel.update(cx, |channel, _| { + assert_eq!( + channel + .messages_in_range(2..3) + .map(|message| (message.sender.github_login.clone(), message.body.clone())) + .collect::>(), + &[("as-cii".into(), "c".into())] + ) + }); + + // Scroll up to view older messages. + channel.update(cx, |channel, cx| { + channel.load_more_messages(cx).unwrap().detach(); + }); + let get_messages = server.receive::().await.unwrap(); + assert_eq!(get_messages.payload.channel_id, 5); + assert_eq!(get_messages.payload.before_message_id, 10); + server.respond( + get_messages.receipt(), + proto::GetChannelMessagesResponse { + done: true, + messages: vec![ + proto::ChannelMessage { + id: 8, + body: "y".into(), + timestamp: 998, + sender_id: 5, + nonce: Some(4.into()), + mentions: vec![], + }, + proto::ChannelMessage { + id: 9, + body: "z".into(), + timestamp: 999, + sender_id: 6, + nonce: Some(5.into()), + mentions: vec![], + }, + ], + }, + ); + + assert_eq!( + channel.next_event(cx), + ChannelChatEvent::MessagesUpdated { + old_range: 0..0, + new_count: 2, + } + ); + channel.update(cx, |channel, _| { + assert_eq!( + channel + .messages_in_range(0..2) + .map(|message| (message.sender.github_login.clone(), message.body.clone())) + .collect::>(), + &[ + ("nathansobo".into(), "y".into()), + ("maxbrunsfeld".into(), "z".into()) + ] + ); + }); +} + +fn init_test(cx: &mut AppContext) -> Model { + let http = FakeHttpClient::with_404_response(); + let client = Client::new(http.clone(), cx); + let user_store = cx.build_model(|cx| UserStore::new(client.clone(), http, cx)); + + let settings_store = SettingsStore::test(cx); + cx.set_global(settings_store); + client2::init(&client, cx); + crate::init(&client, user_store, cx); + + ChannelStore::global(cx) +} + +fn update_channels( + channel_store: &Model, + message: proto::UpdateChannels, + cx: &mut AppContext, +) { + let task = channel_store.update(cx, |store, cx| store.update_channels(message, cx)); + assert!(task.is_none()); +} + +#[track_caller] +fn assert_channels( + channel_store: &Model, + expected_channels: &[(usize, String, proto::ChannelRole)], + cx: &mut AppContext, +) { + let actual = channel_store.update(cx, |store, _| { + store + .ordered_channels() + .map(|(depth, channel)| (depth, channel.name.to_string(), channel.role)) + .collect::>() + }); + assert_eq!(actual, expected_channels); +} diff --git a/crates/client2/src/user.rs b/crates/client2/src/user.rs index baf3a19dad..8ff134e6b7 100644 --- a/crates/client2/src/user.rs +++ b/crates/client2/src/user.rs @@ -292,22 +292,18 @@ impl UserStore { .upgrade() .ok_or_else(|| anyhow!("can't upgrade user store handle"))?; for contact in message.contacts { - let should_notify = contact.should_notify; - updated_contacts.push(( - Arc::new(Contact::from_proto(contact, &this, &mut cx).await?), - should_notify, + updated_contacts.push(Arc::new( + Contact::from_proto(contact, &this, &mut cx).await?, )); } let mut incoming_requests = Vec::new(); for request in message.incoming_requests { incoming_requests.push({ - let user = this - .update(&mut cx, |this, cx| { - this.get_user(request.requester_id, cx) - })? - .await?; - (user, request.should_notify) + this.update(&mut cx, |this, cx| { + this.get_user(request.requester_id, cx) + })? + .await? }); } @@ -331,13 +327,7 @@ impl UserStore { this.contacts .retain(|contact| !removed_contacts.contains(&contact.user.id)); // Update existing contacts and insert new ones - for (updated_contact, should_notify) in updated_contacts { - if should_notify { - cx.emit(Event::Contact { - user: updated_contact.user.clone(), - kind: ContactEventKind::Accepted, - }); - } + for updated_contact in updated_contacts { match this.contacts.binary_search_by_key( &&updated_contact.user.github_login, |contact| &contact.user.github_login, @@ -360,14 +350,7 @@ impl UserStore { } }); // Update existing incoming requests and insert new ones - for (user, should_notify) in incoming_requests { - if should_notify { - cx.emit(Event::Contact { - user: user.clone(), - kind: ContactEventKind::Requested, - }); - } - + for user in incoming_requests { match this .incoming_contact_requests .binary_search_by_key(&&user.github_login, |contact| { diff --git a/crates/gpui2/src/app/test_context.rs b/crates/gpui2/src/app/test_context.rs index e731dccc6e..856fce75b4 100644 --- a/crates/gpui2/src/app/test_context.rs +++ b/crates/gpui2/src/app/test_context.rs @@ -189,3 +189,22 @@ impl TestAppContext { .unwrap(); } } + +impl Model { + pub fn next_event(&self, cx: &mut TestAppContext) -> T::Event + where + T::Event: Send + Clone, + { + let (tx, mut rx) = futures::channel::mpsc::unbounded(); + let _subscription = self.update(cx, |_, cx| { + cx.subscribe(self, move |_, _, event, _| { + tx.unbounded_send(event.clone()).ok(); + }) + }); + + cx.executor().run_until_parked(); + rx.try_next() + .expect("no event received") + .expect("model was dropped") + } +} diff --git a/crates/rpc2/proto/zed.proto b/crates/rpc2/proto/zed.proto index 3501e70e6a..206777879b 100644 --- a/crates/rpc2/proto/zed.proto +++ b/crates/rpc2/proto/zed.proto @@ -89,88 +89,96 @@ message Envelope { FormatBuffersResponse format_buffers_response = 70; GetCompletions get_completions = 71; GetCompletionsResponse get_completions_response = 72; - ApplyCompletionAdditionalEdits apply_completion_additional_edits = 73; - ApplyCompletionAdditionalEditsResponse apply_completion_additional_edits_response = 74; - GetCodeActions get_code_actions = 75; - GetCodeActionsResponse get_code_actions_response = 76; - GetHover get_hover = 77; - GetHoverResponse get_hover_response = 78; - ApplyCodeAction apply_code_action = 79; - ApplyCodeActionResponse apply_code_action_response = 80; - PrepareRename prepare_rename = 81; - PrepareRenameResponse prepare_rename_response = 82; - PerformRename perform_rename = 83; - PerformRenameResponse perform_rename_response = 84; - SearchProject search_project = 85; - SearchProjectResponse search_project_response = 86; + ResolveCompletionDocumentation resolve_completion_documentation = 73; + ResolveCompletionDocumentationResponse resolve_completion_documentation_response = 74; + ApplyCompletionAdditionalEdits apply_completion_additional_edits = 75; + ApplyCompletionAdditionalEditsResponse apply_completion_additional_edits_response = 76; + GetCodeActions get_code_actions = 77; + GetCodeActionsResponse get_code_actions_response = 78; + GetHover get_hover = 79; + GetHoverResponse get_hover_response = 80; + ApplyCodeAction apply_code_action = 81; + ApplyCodeActionResponse apply_code_action_response = 82; + PrepareRename prepare_rename = 83; + PrepareRenameResponse prepare_rename_response = 84; + PerformRename perform_rename = 85; + PerformRenameResponse perform_rename_response = 86; + SearchProject search_project = 87; + SearchProjectResponse search_project_response = 88; - UpdateContacts update_contacts = 87; - UpdateInviteInfo update_invite_info = 88; - ShowContacts show_contacts = 89; + UpdateContacts update_contacts = 89; + UpdateInviteInfo update_invite_info = 90; + ShowContacts show_contacts = 91; - GetUsers get_users = 90; - FuzzySearchUsers fuzzy_search_users = 91; - UsersResponse users_response = 92; - RequestContact request_contact = 93; - RespondToContactRequest respond_to_contact_request = 94; - RemoveContact remove_contact = 95; + GetUsers get_users = 92; + FuzzySearchUsers fuzzy_search_users = 93; + UsersResponse users_response = 94; + RequestContact request_contact = 95; + RespondToContactRequest respond_to_contact_request = 96; + RemoveContact remove_contact = 97; - Follow follow = 96; - FollowResponse follow_response = 97; - UpdateFollowers update_followers = 98; - Unfollow unfollow = 99; - GetPrivateUserInfo get_private_user_info = 100; - GetPrivateUserInfoResponse get_private_user_info_response = 101; - UpdateDiffBase update_diff_base = 102; + Follow follow = 98; + FollowResponse follow_response = 99; + UpdateFollowers update_followers = 100; + Unfollow unfollow = 101; + GetPrivateUserInfo get_private_user_info = 102; + GetPrivateUserInfoResponse get_private_user_info_response = 103; + UpdateDiffBase update_diff_base = 104; - OnTypeFormatting on_type_formatting = 103; - OnTypeFormattingResponse on_type_formatting_response = 104; + OnTypeFormatting on_type_formatting = 105; + OnTypeFormattingResponse on_type_formatting_response = 106; - UpdateWorktreeSettings update_worktree_settings = 105; + UpdateWorktreeSettings update_worktree_settings = 107; - InlayHints inlay_hints = 106; - InlayHintsResponse inlay_hints_response = 107; - ResolveInlayHint resolve_inlay_hint = 108; - ResolveInlayHintResponse resolve_inlay_hint_response = 109; - RefreshInlayHints refresh_inlay_hints = 110; + InlayHints inlay_hints = 108; + InlayHintsResponse inlay_hints_response = 109; + ResolveInlayHint resolve_inlay_hint = 110; + ResolveInlayHintResponse resolve_inlay_hint_response = 111; + RefreshInlayHints refresh_inlay_hints = 112; - CreateChannel create_channel = 111; - CreateChannelResponse create_channel_response = 112; - InviteChannelMember invite_channel_member = 113; - RemoveChannelMember remove_channel_member = 114; - RespondToChannelInvite respond_to_channel_invite = 115; - UpdateChannels update_channels = 116; - JoinChannel join_channel = 117; - DeleteChannel delete_channel = 118; - GetChannelMembers get_channel_members = 119; - GetChannelMembersResponse get_channel_members_response = 120; - SetChannelMemberAdmin set_channel_member_admin = 121; - RenameChannel rename_channel = 122; - RenameChannelResponse rename_channel_response = 123; + CreateChannel create_channel = 113; + CreateChannelResponse create_channel_response = 114; + InviteChannelMember invite_channel_member = 115; + RemoveChannelMember remove_channel_member = 116; + RespondToChannelInvite respond_to_channel_invite = 117; + UpdateChannels update_channels = 118; + JoinChannel join_channel = 119; + DeleteChannel delete_channel = 120; + GetChannelMembers get_channel_members = 121; + GetChannelMembersResponse get_channel_members_response = 122; + SetChannelMemberRole set_channel_member_role = 123; + RenameChannel rename_channel = 124; + RenameChannelResponse rename_channel_response = 125; - JoinChannelBuffer join_channel_buffer = 124; - JoinChannelBufferResponse join_channel_buffer_response = 125; - UpdateChannelBuffer update_channel_buffer = 126; - LeaveChannelBuffer leave_channel_buffer = 127; - UpdateChannelBufferCollaborators update_channel_buffer_collaborators = 128; - RejoinChannelBuffers rejoin_channel_buffers = 129; - RejoinChannelBuffersResponse rejoin_channel_buffers_response = 130; - AckBufferOperation ack_buffer_operation = 143; + JoinChannelBuffer join_channel_buffer = 126; + JoinChannelBufferResponse join_channel_buffer_response = 127; + UpdateChannelBuffer update_channel_buffer = 128; + LeaveChannelBuffer leave_channel_buffer = 129; + UpdateChannelBufferCollaborators update_channel_buffer_collaborators = 130; + RejoinChannelBuffers rejoin_channel_buffers = 131; + RejoinChannelBuffersResponse rejoin_channel_buffers_response = 132; + AckBufferOperation ack_buffer_operation = 133; - JoinChannelChat join_channel_chat = 131; - JoinChannelChatResponse join_channel_chat_response = 132; - LeaveChannelChat leave_channel_chat = 133; - SendChannelMessage send_channel_message = 134; - SendChannelMessageResponse send_channel_message_response = 135; - ChannelMessageSent channel_message_sent = 136; - GetChannelMessages get_channel_messages = 137; - GetChannelMessagesResponse get_channel_messages_response = 138; - RemoveChannelMessage remove_channel_message = 139; - AckChannelMessage ack_channel_message = 144; + JoinChannelChat join_channel_chat = 134; + JoinChannelChatResponse join_channel_chat_response = 135; + LeaveChannelChat leave_channel_chat = 136; + SendChannelMessage send_channel_message = 137; + SendChannelMessageResponse send_channel_message_response = 138; + ChannelMessageSent channel_message_sent = 139; + GetChannelMessages get_channel_messages = 140; + GetChannelMessagesResponse get_channel_messages_response = 141; + RemoveChannelMessage remove_channel_message = 142; + AckChannelMessage ack_channel_message = 143; + GetChannelMessagesById get_channel_messages_by_id = 144; - LinkChannel link_channel = 140; - UnlinkChannel unlink_channel = 141; - MoveChannel move_channel = 142; // current max: 144 + MoveChannel move_channel = 147; + SetChannelVisibility set_channel_visibility = 148; + + AddNotification add_notification = 149; + GetNotifications get_notifications = 150; + GetNotificationsResponse get_notifications_response = 151; + DeleteNotification delete_notification = 152; + MarkNotificationRead mark_notification_read = 153; // Current max } } @@ -332,6 +340,7 @@ message RoomUpdated { message LiveKitConnectionInfo { string server_url = 1; string token = 2; + bool can_publish = 3; } message ShareProject { @@ -832,6 +841,17 @@ message ResolveState { } } +message ResolveCompletionDocumentation { + uint64 project_id = 1; + uint64 language_server_id = 2; + bytes lsp_completion = 3; +} + +message ResolveCompletionDocumentationResponse { + string text = 1; + bool is_markdown = 2; +} + message ResolveInlayHint { uint64 project_id = 1; uint64 buffer_id = 2; @@ -950,13 +970,10 @@ message LspDiskBasedDiagnosticsUpdated {} message UpdateChannels { repeated Channel channels = 1; - repeated ChannelEdge insert_edge = 2; - repeated ChannelEdge delete_edge = 3; repeated uint64 delete_channels = 4; repeated Channel channel_invitations = 5; repeated uint64 remove_channel_invitations = 6; repeated ChannelParticipants channel_participants = 7; - repeated ChannelPermission channel_permissions = 8; repeated UnseenChannelMessage unseen_channel_messages = 9; repeated UnseenChannelBufferChange unseen_channel_buffer_changes = 10; } @@ -972,14 +989,9 @@ message UnseenChannelBufferChange { repeated VectorClockEntry version = 3; } -message ChannelEdge { - uint64 channel_id = 1; - uint64 parent_id = 2; -} - message ChannelPermission { uint64 channel_id = 1; - bool is_admin = 2; + ChannelRole role = 3; } message ChannelParticipants { @@ -1005,8 +1017,8 @@ message GetChannelMembersResponse { message ChannelMember { uint64 user_id = 1; - bool admin = 2; Kind kind = 3; + ChannelRole role = 4; enum Kind { Member = 0; @@ -1028,7 +1040,7 @@ message CreateChannelResponse { message InviteChannelMember { uint64 channel_id = 1; uint64 user_id = 2; - bool admin = 3; + ChannelRole role = 4; } message RemoveChannelMember { @@ -1036,10 +1048,22 @@ message RemoveChannelMember { uint64 user_id = 2; } -message SetChannelMemberAdmin { +enum ChannelRole { + Admin = 0; + Member = 1; + Guest = 2; + Banned = 3; +} + +message SetChannelMemberRole { uint64 channel_id = 1; uint64 user_id = 2; - bool admin = 3; + ChannelRole role = 3; +} + +message SetChannelVisibility { + uint64 channel_id = 1; + ChannelVisibility visibility = 2; } message RenameChannel { @@ -1068,6 +1092,7 @@ message SendChannelMessage { uint64 channel_id = 1; string body = 2; Nonce nonce = 3; + repeated ChatMention mentions = 4; } message RemoveChannelMessage { @@ -1099,20 +1124,13 @@ message GetChannelMessagesResponse { bool done = 2; } -message LinkChannel { - uint64 channel_id = 1; - uint64 to = 2; -} - -message UnlinkChannel { - uint64 channel_id = 1; - uint64 from = 2; +message GetChannelMessagesById { + repeated uint64 message_ids = 1; } message MoveChannel { uint64 channel_id = 1; - uint64 from = 2; - uint64 to = 3; + optional uint64 to = 2; } message JoinChannelBuffer { @@ -1125,6 +1143,12 @@ message ChannelMessage { uint64 timestamp = 3; uint64 sender_id = 4; Nonce nonce = 5; + repeated ChatMention mentions = 6; +} + +message ChatMention { + Range range = 1; + uint64 user_id = 2; } message RejoinChannelBuffers { @@ -1216,7 +1240,6 @@ message ShowContacts {} message IncomingContactRequest { uint64 requester_id = 1; - bool should_notify = 2; } message UpdateDiagnostics { @@ -1533,16 +1556,23 @@ message Nonce { uint64 lower_half = 2; } +enum ChannelVisibility { + Public = 0; + Members = 1; +} + message Channel { uint64 id = 1; string name = 2; + ChannelVisibility visibility = 3; + ChannelRole role = 4; + repeated uint64 parent_path = 5; } message Contact { uint64 user_id = 1; bool online = 2; bool busy = 3; - bool should_notify = 4; } message WorktreeMetadata { @@ -1557,3 +1587,34 @@ message UpdateDiffBase { uint64 buffer_id = 2; optional string diff_base = 3; } + +message GetNotifications { + optional uint64 before_id = 1; +} + +message AddNotification { + Notification notification = 1; +} + +message GetNotificationsResponse { + repeated Notification notifications = 1; + bool done = 2; +} + +message DeleteNotification { + uint64 notification_id = 1; +} + +message MarkNotificationRead { + uint64 notification_id = 1; +} + +message Notification { + uint64 id = 1; + uint64 timestamp = 2; + string kind = 3; + optional uint64 entity_id = 4; + string content = 5; + bool is_read = 6; + optional bool response = 7; +} diff --git a/crates/rpc2/src/proto.rs b/crates/rpc2/src/proto.rs index f0d7937f6f..77a69122c2 100644 --- a/crates/rpc2/src/proto.rs +++ b/crates/rpc2/src/proto.rs @@ -133,6 +133,9 @@ impl fmt::Display for PeerId { messages!( (Ack, Foreground), + (AckBufferOperation, Background), + (AckChannelMessage, Background), + (AddNotification, Foreground), (AddProjectCollaborator, Foreground), (ApplyCodeAction, Background), (ApplyCodeActionResponse, Background), @@ -143,57 +146,74 @@ messages!( (Call, Foreground), (CallCanceled, Foreground), (CancelCall, Foreground), + (ChannelMessageSent, Foreground), (CopyProjectEntry, Foreground), (CreateBufferForPeer, Foreground), (CreateChannel, Foreground), (CreateChannelResponse, Foreground), - (ChannelMessageSent, Foreground), (CreateProjectEntry, Foreground), (CreateRoom, Foreground), (CreateRoomResponse, Foreground), (DeclineCall, Foreground), + (DeleteChannel, Foreground), + (DeleteNotification, Foreground), (DeleteProjectEntry, Foreground), (Error, Foreground), (ExpandProjectEntry, Foreground), + (ExpandProjectEntryResponse, Foreground), (Follow, Foreground), (FollowResponse, Foreground), (FormatBuffers, Foreground), (FormatBuffersResponse, Foreground), (FuzzySearchUsers, Foreground), + (GetChannelMembers, Foreground), + (GetChannelMembersResponse, Foreground), + (GetChannelMessages, Background), + (GetChannelMessagesById, Background), + (GetChannelMessagesResponse, Background), (GetCodeActions, Background), (GetCodeActionsResponse, Background), - (GetHover, Background), - (GetHoverResponse, Background), - (GetChannelMessages, Background), - (GetChannelMessagesResponse, Background), - (SendChannelMessage, Background), - (SendChannelMessageResponse, Background), (GetCompletions, Background), (GetCompletionsResponse, Background), (GetDefinition, Background), (GetDefinitionResponse, Background), - (GetTypeDefinition, Background), - (GetTypeDefinitionResponse, Background), (GetDocumentHighlights, Background), (GetDocumentHighlightsResponse, Background), - (GetReferences, Background), - (GetReferencesResponse, Background), + (GetHover, Background), + (GetHoverResponse, Background), + (GetNotifications, Foreground), + (GetNotificationsResponse, Foreground), + (GetPrivateUserInfo, Foreground), + (GetPrivateUserInfoResponse, Foreground), (GetProjectSymbols, Background), (GetProjectSymbolsResponse, Background), + (GetReferences, Background), + (GetReferencesResponse, Background), + (GetTypeDefinition, Background), + (GetTypeDefinitionResponse, Background), (GetUsers, Foreground), (Hello, Foreground), (IncomingCall, Foreground), + (InlayHints, Background), + (InlayHintsResponse, Background), (InviteChannelMember, Foreground), - (UsersResponse, Foreground), + (JoinChannel, Foreground), + (JoinChannelBuffer, Foreground), + (JoinChannelBufferResponse, Foreground), + (JoinChannelChat, Foreground), + (JoinChannelChatResponse, Foreground), (JoinProject, Foreground), (JoinProjectResponse, Foreground), (JoinRoom, Foreground), (JoinRoomResponse, Foreground), - (JoinChannelChat, Foreground), - (JoinChannelChatResponse, Foreground), + (LeaveChannelBuffer, Background), (LeaveChannelChat, Foreground), (LeaveProject, Foreground), (LeaveRoom, Foreground), + (MarkNotificationRead, Foreground), + (MoveChannel, Foreground), + (OnTypeFormatting, Background), + (OnTypeFormattingResponse, Background), (OpenBufferById, Background), (OpenBufferByPath, Background), (OpenBufferForSymbol, Background), @@ -201,58 +221,56 @@ messages!( (OpenBufferResponse, Background), (PerformRename, Background), (PerformRenameResponse, Background), - (OnTypeFormatting, Background), - (OnTypeFormattingResponse, Background), - (InlayHints, Background), - (InlayHintsResponse, Background), - (ResolveInlayHint, Background), - (ResolveInlayHintResponse, Background), - (RefreshInlayHints, Foreground), (Ping, Foreground), (PrepareRename, Background), (PrepareRenameResponse, Background), - (ExpandProjectEntryResponse, Foreground), (ProjectEntryResponse, Foreground), + (RefreshInlayHints, Foreground), + (RejoinChannelBuffers, Foreground), + (RejoinChannelBuffersResponse, Foreground), (RejoinRoom, Foreground), (RejoinRoomResponse, Foreground), - (RemoveContact, Foreground), - (RemoveChannelMember, Foreground), - (RemoveChannelMessage, Foreground), (ReloadBuffers, Foreground), (ReloadBuffersResponse, Foreground), + (RemoveChannelMember, Foreground), + (RemoveChannelMessage, Foreground), + (RemoveContact, Foreground), (RemoveProjectCollaborator, Foreground), - (RenameProjectEntry, Foreground), - (RequestContact, Foreground), - (RespondToContactRequest, Foreground), - (RespondToChannelInvite, Foreground), - (JoinChannel, Foreground), - (RoomUpdated, Foreground), - (SaveBuffer, Foreground), (RenameChannel, Foreground), (RenameChannelResponse, Foreground), - (SetChannelMemberAdmin, Foreground), + (RenameProjectEntry, Foreground), + (RequestContact, Foreground), + (ResolveCompletionDocumentation, Background), + (ResolveCompletionDocumentationResponse, Background), + (ResolveInlayHint, Background), + (ResolveInlayHintResponse, Background), + (RespondToChannelInvite, Foreground), + (RespondToContactRequest, Foreground), + (RoomUpdated, Foreground), + (SaveBuffer, Foreground), + (SetChannelMemberRole, Foreground), + (SetChannelVisibility, Foreground), (SearchProject, Background), (SearchProjectResponse, Background), + (SendChannelMessage, Background), + (SendChannelMessageResponse, Background), (ShareProject, Foreground), (ShareProjectResponse, Foreground), (ShowContacts, Foreground), (StartLanguageServer, Foreground), (SynchronizeBuffers, Foreground), (SynchronizeBuffersResponse, Foreground), - (RejoinChannelBuffers, Foreground), - (RejoinChannelBuffersResponse, Foreground), (Test, Foreground), (Unfollow, Foreground), (UnshareProject, Foreground), (UpdateBuffer, Foreground), (UpdateBufferFile, Foreground), - (UpdateContacts, Foreground), - (DeleteChannel, Foreground), - (MoveChannel, Foreground), - (LinkChannel, Foreground), - (UnlinkChannel, Foreground), + (UpdateChannelBuffer, Foreground), + (UpdateChannelBufferCollaborators, Foreground), (UpdateChannels, Foreground), + (UpdateContacts, Foreground), (UpdateDiagnosticSummary, Foreground), + (UpdateDiffBase, Foreground), (UpdateFollowers, Foreground), (UpdateInviteInfo, Foreground), (UpdateLanguageServer, Foreground), @@ -261,18 +279,7 @@ messages!( (UpdateProjectCollaborator, Foreground), (UpdateWorktree, Foreground), (UpdateWorktreeSettings, Foreground), - (UpdateDiffBase, Foreground), - (GetPrivateUserInfo, Foreground), - (GetPrivateUserInfoResponse, Foreground), - (GetChannelMembers, Foreground), - (GetChannelMembersResponse, Foreground), - (JoinChannelBuffer, Foreground), - (JoinChannelBufferResponse, Foreground), - (LeaveChannelBuffer, Background), - (UpdateChannelBuffer, Foreground), - (UpdateChannelBufferCollaborators, Foreground), - (AckBufferOperation, Background), - (AckChannelMessage, Background), + (UsersResponse, Foreground), ); request_messages!( @@ -284,72 +291,78 @@ request_messages!( (Call, Ack), (CancelCall, Ack), (CopyProjectEntry, ProjectEntryResponse), + (CreateChannel, CreateChannelResponse), (CreateProjectEntry, ProjectEntryResponse), (CreateRoom, CreateRoomResponse), - (CreateChannel, CreateChannelResponse), (DeclineCall, Ack), + (DeleteChannel, Ack), (DeleteProjectEntry, ProjectEntryResponse), (ExpandProjectEntry, ExpandProjectEntryResponse), (Follow, FollowResponse), (FormatBuffers, FormatBuffersResponse), + (FuzzySearchUsers, UsersResponse), + (GetChannelMembers, GetChannelMembersResponse), + (GetChannelMessages, GetChannelMessagesResponse), + (GetChannelMessagesById, GetChannelMessagesResponse), (GetCodeActions, GetCodeActionsResponse), - (GetHover, GetHoverResponse), (GetCompletions, GetCompletionsResponse), (GetDefinition, GetDefinitionResponse), - (GetTypeDefinition, GetTypeDefinitionResponse), (GetDocumentHighlights, GetDocumentHighlightsResponse), - (GetReferences, GetReferencesResponse), + (GetHover, GetHoverResponse), + (GetNotifications, GetNotificationsResponse), (GetPrivateUserInfo, GetPrivateUserInfoResponse), (GetProjectSymbols, GetProjectSymbolsResponse), - (FuzzySearchUsers, UsersResponse), + (GetReferences, GetReferencesResponse), + (GetTypeDefinition, GetTypeDefinitionResponse), (GetUsers, UsersResponse), + (IncomingCall, Ack), + (InlayHints, InlayHintsResponse), (InviteChannelMember, Ack), + (JoinChannel, JoinRoomResponse), + (JoinChannelBuffer, JoinChannelBufferResponse), + (JoinChannelChat, JoinChannelChatResponse), (JoinProject, JoinProjectResponse), (JoinRoom, JoinRoomResponse), - (JoinChannelChat, JoinChannelChatResponse), + (LeaveChannelBuffer, Ack), (LeaveRoom, Ack), - (RejoinRoom, RejoinRoomResponse), - (IncomingCall, Ack), + (MarkNotificationRead, Ack), + (MoveChannel, Ack), + (OnTypeFormatting, OnTypeFormattingResponse), (OpenBufferById, OpenBufferResponse), (OpenBufferByPath, OpenBufferResponse), (OpenBufferForSymbol, OpenBufferForSymbolResponse), - (Ping, Ack), (PerformRename, PerformRenameResponse), + (Ping, Ack), (PrepareRename, PrepareRenameResponse), - (OnTypeFormatting, OnTypeFormattingResponse), - (InlayHints, InlayHintsResponse), - (ResolveInlayHint, ResolveInlayHintResponse), (RefreshInlayHints, Ack), + (RejoinChannelBuffers, RejoinChannelBuffersResponse), + (RejoinRoom, RejoinRoomResponse), (ReloadBuffers, ReloadBuffersResponse), - (RequestContact, Ack), (RemoveChannelMember, Ack), - (RemoveContact, Ack), - (RespondToContactRequest, Ack), - (RespondToChannelInvite, Ack), - (SetChannelMemberAdmin, Ack), - (SendChannelMessage, SendChannelMessageResponse), - (GetChannelMessages, GetChannelMessagesResponse), - (GetChannelMembers, GetChannelMembersResponse), - (JoinChannel, JoinRoomResponse), (RemoveChannelMessage, Ack), - (DeleteChannel, Ack), - (RenameProjectEntry, ProjectEntryResponse), + (RemoveContact, Ack), (RenameChannel, RenameChannelResponse), - (LinkChannel, Ack), - (UnlinkChannel, Ack), - (MoveChannel, Ack), + (RenameProjectEntry, ProjectEntryResponse), + (RequestContact, Ack), + ( + ResolveCompletionDocumentation, + ResolveCompletionDocumentationResponse + ), + (ResolveInlayHint, ResolveInlayHintResponse), + (RespondToChannelInvite, Ack), + (RespondToContactRequest, Ack), (SaveBuffer, BufferSaved), (SearchProject, SearchProjectResponse), + (SendChannelMessage, SendChannelMessageResponse), + (SetChannelMemberRole, Ack), + (SetChannelVisibility, Ack), (ShareProject, ShareProjectResponse), (SynchronizeBuffers, SynchronizeBuffersResponse), - (RejoinChannelBuffers, RejoinChannelBuffersResponse), (Test, Test), (UpdateBuffer, Ack), (UpdateParticipantLocation, Ack), (UpdateProject, Ack), (UpdateWorktree, Ack), - (JoinChannelBuffer, JoinChannelBufferResponse), - (LeaveChannelBuffer, Ack) ); entity_messages!( @@ -368,25 +381,26 @@ entity_messages!( GetCodeActions, GetCompletions, GetDefinition, - GetTypeDefinition, GetDocumentHighlights, GetHover, - GetReferences, GetProjectSymbols, + GetReferences, + GetTypeDefinition, + InlayHints, JoinProject, LeaveProject, + OnTypeFormatting, OpenBufferById, OpenBufferByPath, OpenBufferForSymbol, PerformRename, - OnTypeFormatting, - InlayHints, - ResolveInlayHint, - RefreshInlayHints, PrepareRename, + RefreshInlayHints, ReloadBuffers, RemoveProjectCollaborator, RenameProjectEntry, + ResolveCompletionDocumentation, + ResolveInlayHint, SaveBuffer, SearchProject, StartLanguageServer, @@ -395,19 +409,19 @@ entity_messages!( UpdateBuffer, UpdateBufferFile, UpdateDiagnosticSummary, + UpdateDiffBase, UpdateLanguageServer, UpdateProject, UpdateProjectCollaborator, UpdateWorktree, UpdateWorktreeSettings, - UpdateDiffBase ); entity_messages!( channel_id, ChannelMessageSent, - UpdateChannelBuffer, RemoveChannelMessage, + UpdateChannelBuffer, UpdateChannelBufferCollaborators, ); From 6a1fb18334410e4465ee084426c80da41bb22830 Mon Sep 17 00:00:00 2001 From: Mikayla Date: Fri, 3 Nov 2023 10:46:47 -0700 Subject: [PATCH 24/76] Update to latest patterns for porting work --- crates/channel2/Cargo.toml | 24 ++++++------- crates/channel2/src/channel2.rs | 4 +-- crates/channel2/src/channel_buffer.rs | 34 ++++++++++--------- crates/channel2/src/channel_chat.rs | 4 +-- crates/channel2/src/channel_store.rs | 34 +++++++++---------- .../src/channel_store/channel_index.rs | 2 +- crates/channel2/src/channel_store_tests.rs | 16 ++++----- 7 files changed, 60 insertions(+), 58 deletions(-) diff --git a/crates/channel2/Cargo.toml b/crates/channel2/Cargo.toml index c611944b89..c292d4e8dd 100644 --- a/crates/channel2/Cargo.toml +++ b/crates/channel2/Cargo.toml @@ -9,19 +9,19 @@ path = "src/channel2.rs" doctest = false [features] -test-support = ["collections/test-support", "gpui2/test-support", "rpc2/test-support"] +test-support = ["collections/test-support", "gpui/test-support", "rpc/test-support"] [dependencies] -client2 = { path = "../client2" } +client = { package = "client2", path = "../client2" } collections = { path = "../collections" } -db2 = { path = "../db2" } -gpui2 = { path = "../gpui2" } +db = { package = "db2", path = "../db2" } +gpui = { package = "gpui2", path = "../gpui2" } util = { path = "../util" } -rpc2 = { path = "../rpc2" } +rpc = { package = "rpc2", path = "../rpc2" } text = { path = "../text" } -language2 = { path = "../language2" } -settings2 = { path = "../settings2" } -feature_flags2 = { path = "../feature_flags2" } +language = { package = "language2", path = "../language2" } +settings = { package = "settings2", path = "../settings2" } +feature_flags = { package = "feature_flags2", path = "../feature_flags2" } sum_tree = { path = "../sum_tree" } clock = { path = "../clock" } @@ -47,8 +47,8 @@ tempfile = "3" [dev-dependencies] collections = { path = "../collections", features = ["test-support"] } -gpui2 = { path = "../gpui2", features = ["test-support"] } -rpc2 = { path = "../rpc2", features = ["test-support"] } -client2 = { path = "../client2", features = ["test-support"] } -settings2 = { path = "../settings2", features = ["test-support"] } +gpui = { package = "gpui2", path = "../gpui2", features = ["test-support"] } +rpc = { package = "rpc2", path = "../rpc2", features = ["test-support"] } +client = { package = "client2", path = "../client2", features = ["test-support"] } +settings = { package = "settings2", path = "../settings2", features = ["test-support"] } util = { path = "../util", features = ["test-support"] } diff --git a/crates/channel2/src/channel2.rs b/crates/channel2/src/channel2.rs index d300b170af..f38ae4078a 100644 --- a/crates/channel2/src/channel2.rs +++ b/crates/channel2/src/channel2.rs @@ -2,8 +2,8 @@ mod channel_buffer; mod channel_chat; mod channel_store; -use client2::{Client, UserStore}; -use gpui2::{AppContext, Model}; +use client::{Client, UserStore}; +use gpui::{AppContext, Model}; use std::sync::Arc; pub use channel_buffer::{ChannelBuffer, ChannelBufferEvent, ACKNOWLEDGE_DEBOUNCE_INTERVAL}; diff --git a/crates/channel2/src/channel_buffer.rs b/crates/channel2/src/channel_buffer.rs index 115896af7c..4c321a8fbc 100644 --- a/crates/channel2/src/channel_buffer.rs +++ b/crates/channel2/src/channel_buffer.rs @@ -1,10 +1,10 @@ use crate::{Channel, ChannelId, ChannelStore}; use anyhow::Result; -use client2::{Client, Collaborator, UserStore}; +use client::{Client, Collaborator, UserStore}; use collections::HashMap; -use gpui2::{AppContext, AsyncAppContext, Context, EventEmitter, Model, ModelContext, Task}; -use language2::proto::serialize_version; -use rpc2::{ +use gpui::{AppContext, AsyncAppContext, Context, EventEmitter, Model, ModelContext, Task}; +use language::proto::serialize_version; +use rpc::{ proto::{self, PeerId}, TypedEnvelope, }; @@ -24,10 +24,10 @@ pub struct ChannelBuffer { collaborators: HashMap, user_store: Model, channel_store: Model, - buffer: Model, + buffer: Model, buffer_epoch: u64, client: Arc, - subscription: Option, + subscription: Option, acknowledge_task: Option>>, } @@ -60,11 +60,11 @@ impl ChannelBuffer { let operations = response .operations .into_iter() - .map(language2::proto::deserialize_operation) + .map(language::proto::deserialize_operation) .collect::, _>>()?; let buffer = cx.build_model(|_| { - language2::Buffer::remote(response.buffer_id, response.replica_id as u16, base_text) + language::Buffer::remote(response.buffer_id, response.replica_id as u16, base_text) })?; buffer.update(&mut cx, |buffer, cx| buffer.apply_ops(operations, cx))??; @@ -145,7 +145,7 @@ impl ChannelBuffer { .payload .operations .into_iter() - .map(language2::proto::deserialize_operation) + .map(language::proto::deserialize_operation) .collect::, _>>()?; this.update(&mut cx, |this, cx| { @@ -172,13 +172,13 @@ impl ChannelBuffer { fn on_buffer_update( &mut self, - _: Model, - event: &language2::Event, + _: Model, + event: &language::Event, cx: &mut ModelContext, ) { match event { - language2::Event::Operation(operation) => { - let operation = language2::proto::serialize_operation(operation); + language::Event::Operation(operation) => { + let operation = language::proto::serialize_operation(operation); self.client .send(proto::UpdateChannelBuffer { channel_id: self.channel_id, @@ -186,7 +186,7 @@ impl ChannelBuffer { }) .log_err(); } - language2::Event::Edited => { + language::Event::Edited => { cx.emit(ChannelBufferEvent::BufferEdited); } _ => {} @@ -201,7 +201,9 @@ impl ChannelBuffer { let epoch = self.epoch(); self.acknowledge_task = Some(cx.spawn(move |_, cx| async move { - cx.executor().timer(ACKNOWLEDGE_DEBOUNCE_INTERVAL).await; + cx.background_executor() + .timer(ACKNOWLEDGE_DEBOUNCE_INTERVAL) + .await; client .send(proto::AckBufferOperation { buffer_id, @@ -217,7 +219,7 @@ impl ChannelBuffer { self.buffer_epoch } - pub fn buffer(&self) -> Model { + pub fn buffer(&self) -> Model { self.buffer.clone() } diff --git a/crates/channel2/src/channel_chat.rs b/crates/channel2/src/channel_chat.rs index 9306d78520..a5b5249853 100644 --- a/crates/channel2/src/channel_chat.rs +++ b/crates/channel2/src/channel_chat.rs @@ -1,12 +1,12 @@ use crate::{Channel, ChannelId, ChannelStore}; use anyhow::{anyhow, Result}; -use client2::{ +use client::{ proto, user::{User, UserStore}, Client, Subscription, TypedEnvelope, UserId, }; use futures::lock::Mutex; -use gpui2::{AppContext, AsyncAppContext, Context, EventEmitter, Model, ModelContext, Task}; +use gpui::{AppContext, AsyncAppContext, Context, EventEmitter, Model, ModelContext, Task}; use rand::prelude::*; use std::{ collections::HashSet, diff --git a/crates/channel2/src/channel_store.rs b/crates/channel2/src/channel_store.rs index 389b96ba42..3c9abd59e2 100644 --- a/crates/channel2/src/channel_store.rs +++ b/crates/channel2/src/channel_store.rs @@ -3,14 +3,14 @@ mod channel_index; use crate::{channel_buffer::ChannelBuffer, channel_chat::ChannelChat, ChannelMessage}; use anyhow::{anyhow, Result}; use channel_index::ChannelIndex; -use client2::{Client, Subscription, User, UserId, UserStore}; +use client::{Client, Subscription, User, UserId, UserStore}; use collections::{hash_map, HashMap, HashSet}; -use db2::RELEASE_CHANNEL; +use db::RELEASE_CHANNEL; use futures::{channel::mpsc, future::Shared, Future, FutureExt, StreamExt}; -use gpui2::{ +use gpui::{ AppContext, AsyncAppContext, Context, EventEmitter, Model, ModelContext, Task, WeakModel, }; -use rpc2::{ +use rpc::{ proto::{self, ChannelVisibility}, TypedEnvelope, }; @@ -142,13 +142,13 @@ impl ChannelStore { while let Some(status) = connection_status.next().await { let this = this.upgrade()?; match status { - client2::Status::Connected { .. } => { + client::Status::Connected { .. } => { this.update(&mut cx, |this, cx| this.handle_connect(cx)) .ok()? .await .log_err()?; } - client2::Status::SignedOut | client2::Status::UpgradeRequired => { + client::Status::SignedOut | client::Status::UpgradeRequired => { this.update(&mut cx, |this, cx| this.handle_disconnect(false, cx)) .ok(); } @@ -389,8 +389,8 @@ impl ChannelStore { cx: &mut ModelContext, ) -> Task>> where - F: 'static + Send + FnOnce(Arc, AsyncAppContext) -> Fut, - Fut: Send + Future>>, + F: 'static + FnOnce(Arc, AsyncAppContext) -> Fut, + Fut: Future>>, T: 'static, { let task = loop { @@ -445,7 +445,7 @@ impl ChannelStore { } } }; - cx.executor() + cx.background_executor() .spawn(async move { task.await.map_err(|error| anyhow!("{}", error)) }) } @@ -671,7 +671,7 @@ impl ChannelStore { cx: &mut ModelContext, ) -> Task> { let client = self.client.clone(); - cx.executor().spawn(async move { + cx.background_executor().spawn(async move { client .request(proto::RespondToChannelInvite { channel_id, accept }) .await?; @@ -770,7 +770,7 @@ impl ChannelStore { buffer_versions.push(proto::ChannelBufferVersion { channel_id: channel_buffer.channel_id, epoch: channel_buffer.epoch(), - version: language2::proto::serialize_version(&buffer.version()), + version: language::proto::serialize_version(&buffer.version()), }); } } @@ -803,7 +803,7 @@ impl ChannelStore { { let channel_id = channel_buffer.channel_id; let remote_version = - language2::proto::deserialize_version(&remote_buffer.version); + language::proto::deserialize_version(&remote_buffer.version); channel_buffer.replace_collaborators( mem::take(&mut remote_buffer.collaborators), @@ -818,7 +818,7 @@ impl ChannelStore { let incoming_operations = mem::take(&mut remote_buffer.operations) .into_iter() - .map(language2::proto::deserialize_operation) + .map(language::proto::deserialize_operation) .collect::>>()?; buffer.apply_ops(incoming_operations, cx)?; anyhow::Ok(outgoing_operations) @@ -827,11 +827,11 @@ impl ChannelStore { if let Some(operations) = operations { let client = this.client.clone(); - cx.executor() + cx.background_executor() .spawn(async move { let operations = operations.await; for chunk in - language2::proto::split_operations(operations) + language::proto::split_operations(operations) { client .send(proto::UpdateChannelBuffer { @@ -864,7 +864,7 @@ impl ChannelStore { self.disconnect_channel_buffers_task.get_or_insert_with(|| { cx.spawn(move |this, mut cx| async move { if wait_for_reconnect { - cx.executor().timer(RECONNECT_TIMEOUT).await; + cx.background_executor().timer(RECONNECT_TIMEOUT).await; } if let Some(this) = this.upgrade() { @@ -958,7 +958,7 @@ impl ChannelStore { } for unseen_buffer_change in payload.unseen_channel_buffer_changes { - let version = language2::proto::deserialize_version(&unseen_buffer_change.version); + let version = language::proto::deserialize_version(&unseen_buffer_change.version); index.note_changed( unseen_buffer_change.channel_id, unseen_buffer_change.epoch, diff --git a/crates/channel2/src/channel_store/channel_index.rs b/crates/channel2/src/channel_store/channel_index.rs index 9b8abb0c95..97b2ab6318 100644 --- a/crates/channel2/src/channel_store/channel_index.rs +++ b/crates/channel2/src/channel_store/channel_index.rs @@ -1,6 +1,6 @@ use crate::{Channel, ChannelId}; use collections::BTreeMap; -use rpc2::proto; +use rpc::proto; use std::sync::Arc; #[derive(Default, Debug)] diff --git a/crates/channel2/src/channel_store_tests.rs b/crates/channel2/src/channel_store_tests.rs index 036c7015ac..e193917b76 100644 --- a/crates/channel2/src/channel_store_tests.rs +++ b/crates/channel2/src/channel_store_tests.rs @@ -1,13 +1,13 @@ use crate::channel_chat::ChannelChatEvent; use super::*; -use client2::{test::FakeServer, Client, UserStore}; -use gpui2::{AppContext, Context, Model, TestAppContext}; -use rpc2::proto::{self}; -use settings2::SettingsStore; +use client::{test::FakeServer, Client, UserStore}; +use gpui::{AppContext, Context, Model, TestAppContext}; +use rpc::proto::{self}; +use settings::SettingsStore; use util::http::FakeHttpClient; -#[gpui2::test] +#[gpui::test] fn test_update_channels(cx: &mut AppContext) { let channel_store = init_test(cx); @@ -79,7 +79,7 @@ fn test_update_channels(cx: &mut AppContext) { ); } -#[gpui2::test] +#[gpui::test] fn test_dangling_channel_paths(cx: &mut AppContext) { let channel_store = init_test(cx); @@ -142,7 +142,7 @@ fn test_dangling_channel_paths(cx: &mut AppContext) { ); } -#[gpui2::test] +#[gpui::test] async fn test_channel_messages(cx: &mut TestAppContext) { let user_id = 5; let channel_id = 5; @@ -349,7 +349,7 @@ fn init_test(cx: &mut AppContext) -> Model { let settings_store = SettingsStore::test(cx); cx.set_global(settings_store); - client2::init(&client, cx); + client::init(&client, cx); crate::init(&client, user_store, cx); ChannelStore::global(cx) From 26e64fb84385bc1d6f3f531a60fc1472b51989d4 Mon Sep 17 00:00:00 2001 From: Conrad Irwin Date: Fri, 3 Nov 2023 12:51:38 -0600 Subject: [PATCH 25/76] gpui2: Add on_hover events --- crates/gpui2/src/interactive.rs | 60 +++++++++++++++++++++++++++++++++ crates/workspace2/src/pane.rs | 4 +++ 2 files changed, 64 insertions(+) diff --git a/crates/gpui2/src/interactive.rs b/crates/gpui2/src/interactive.rs index 020cb82cd2..7966b68e12 100644 --- a/crates/gpui2/src/interactive.rs +++ b/crates/gpui2/src/interactive.rs @@ -333,6 +333,37 @@ pub trait StatefulInteractive: StatelessInteractive { })); self } + + fn on_hover(mut self, listener: impl 'static + Fn(&mut V, bool, &mut ViewContext)) -> Self + where + Self: Sized, + { + debug_assert!( + self.stateful_interaction().hover_listener.is_none(), + "calling on_hover more than once on the same element is not supported" + ); + self.stateful_interaction().hover_listener = Some(Box::new(listener)); + self + } + + fn tooltip( + mut self, + build_tooltip: impl Fn(&mut V, &mut ViewContext) -> View + 'static, + ) -> Self + where + Self: Sized, + W: 'static + Render, + { + debug_assert!( + self.stateful_interaction().tooltip_builder.is_none(), + "calling tooltip more than once on the same element is not supported" + ); + self.stateful_interaction().tooltip_builder = Some(Box::new(move |view_state, cx| { + build_tooltip(view_state, cx).into() + })); + + self + } } pub trait ElementInteraction: 'static { @@ -568,6 +599,24 @@ pub trait ElementInteraction: 'static { } } + if let Some(hover_listener) = stateful.hover_listener.take() { + let was_hovered = element_state.hover_state.clone(); + let has_mouse_down = element_state.pending_mouse_down.lock().is_some(); + cx.on_mouse_event(move |view_state, event: &MouseMoveEvent, phase, cx| { + if phase != DispatchPhase::Bubble { + return; + } + let is_hovered = bounds.contains_point(&event.position) && !has_mouse_down; + let mut was_hovered = was_hovered.lock(); + + if is_hovered != was_hovered.clone() { + *was_hovered = is_hovered; + drop(was_hovered); + hover_listener(view_state, is_hovered, cx); + } + }); + } + let active_state = element_state.active_state.clone(); if active_state.lock().is_none() { let active_group_bounds = stateful @@ -639,6 +688,8 @@ pub struct StatefulInteraction { active_style: StyleRefinement, group_active_style: Option, drag_listener: Option>, + hover_listener: Option>, + tooltip_builder: Option>, } impl ElementInteraction for StatefulInteraction { @@ -666,6 +717,8 @@ impl From for StatefulInteraction { stateless: StatelessInteraction::default(), click_listeners: SmallVec::new(), drag_listener: None, + hover_listener: None, + tooltip_builder: None, active_style: StyleRefinement::default(), group_active_style: None, } @@ -695,6 +748,8 @@ impl StatelessInteraction { stateless: self, click_listeners: SmallVec::new(), drag_listener: None, + hover_listener: None, + tooltip_builder: None, active_style: StyleRefinement::default(), group_active_style: None, } @@ -746,6 +801,7 @@ impl ActiveState { #[derive(Default)] pub struct InteractiveElementState { active_state: Arc>, + hover_state: Arc>, pending_mouse_down: Arc>>, scroll_offset: Option>>>, } @@ -1097,6 +1153,10 @@ pub type ClickListener = Box) pub(crate) type DragListener = Box, &mut ViewContext) -> AnyDrag + 'static>; +pub(crate) type HoverListener = Box) + 'static>; + +pub(crate) type TooltipBuilder = Box) -> AnyView + 'static>; + pub type KeyListener = Box< dyn Fn( &mut V, diff --git a/crates/workspace2/src/pane.rs b/crates/workspace2/src/pane.rs index 4d5b96ea6d..acda04c5a4 100644 --- a/crates/workspace2/src/pane.rs +++ b/crates/workspace2/src/pane.rs @@ -1399,6 +1399,10 @@ impl Pane { .group("") .id(item.id()) .cursor_pointer() + .on_hover(|_, hovered, _| { + dbg!(hovered); + }) + // .tooltip(|pane, cx| cx.create_view( tooltip.child("Hovering the tab")) // .on_drag(move |pane, cx| pane.render_tab(ix, item.boxed_clone(), detail, cx)) // .drag_over::(|d| d.bg(cx.theme().colors().element_drop_target)) // .on_drop(|_view, state: View, cx| { From 2b883bf32e85269887ec8b282878d85b9489ba87 Mon Sep 17 00:00:00 2001 From: Mikayla Date: Fri, 3 Nov 2023 12:04:24 -0700 Subject: [PATCH 26/76] WIP --- crates/gpui2/src/app.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/crates/gpui2/src/app.rs b/crates/gpui2/src/app.rs index 9ec76a86d4..bec18601f1 100644 --- a/crates/gpui2/src/app.rs +++ b/crates/gpui2/src/app.rs @@ -46,13 +46,17 @@ pub struct AppCell { } impl AppCell { + #[track_caller] pub fn borrow(&self) -> AppRef { + let thread_id = std::thread::current().id(); + eprintln!("borrowed {thread_id:?}"); AppRef(self.app.borrow()) } + #[track_caller] pub fn borrow_mut(&self) -> AppRefMut { - // let thread_id = std::thread::current().id(); - // dbg!("borrowed {thread_id:?}"); + let thread_id = std::thread::current().id(); + eprintln!("borrowed {thread_id:?}"); AppRefMut(self.app.borrow_mut()) } } From 66499f60ee94210dee293ec51f9aac61d3c36dfb Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Fri, 3 Nov 2023 12:10:11 -0700 Subject: [PATCH 27/76] Fix double borrow in synchronous tests that take AppContext Co-authored-by: Mikayla Co-authored-by: Antonio --- crates/gpui2_macros/src/test.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/crates/gpui2_macros/src/test.rs b/crates/gpui2_macros/src/test.rs index acaaee597b..05d2c1f63a 100644 --- a/crates/gpui2_macros/src/test.rs +++ b/crates/gpui2_macros/src/test.rs @@ -175,6 +175,7 @@ pub fn test(args: TokenStream, function: TokenStream) -> TokenStream { inner_fn_args.extend(quote!(&mut #cx_varname_lock,)); cx_teardowns.extend(quote!( #cx_varname_lock.quit(); + drop(#cx_varname_lock); dispatcher.run_until_parked(); )); continue; From fa7d6c0e7022991d85cd2d1abede88e9e9aa342d Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 3 Nov 2023 20:40:50 +0100 Subject: [PATCH 28/76] Remove `Default` impl` for `ThemeColors` (#3226) This PR removes the `Default` impl for `ThemeColors`. Since we need default light and dark variants for `ThemeColors`, we can't use a single `Default` impl. Release Notes: - N/A --- crates/theme2/src/colors.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/crates/theme2/src/colors.rs b/crates/theme2/src/colors.rs index 422e33e4f8..38ae1325a0 100644 --- a/crates/theme2/src/colors.rs +++ b/crates/theme2/src/colors.rs @@ -48,7 +48,7 @@ pub struct GitStatusColors { pub renamed: Hsla, } -#[derive(Refineable, Clone, Debug, Default)] +#[derive(Refineable, Clone, Debug)] #[refineable(debug)] pub struct ThemeColors { pub border: Hsla, @@ -94,6 +94,8 @@ pub struct ThemeColors { #[derive(Refineable, Clone)] pub struct ThemeStyles { pub system: SystemColors, + + #[refineable] pub colors: ThemeColors, pub status: StatusColors, pub git: GitStatusColors, From 9cb8ce172d90248c3c50cd2fba64c528c7dbcf7c Mon Sep 17 00:00:00 2001 From: Kirill Bulatov Date: Fri, 3 Nov 2023 18:33:17 +0200 Subject: [PATCH 29/76] Refresh diagnostics inside the tab --- Cargo.lock | 1 + crates/diagnostics/Cargo.toml | 1 + crates/diagnostics/src/diagnostics.rs | 5 +++++ crates/editor/src/editor_tests.rs | 2 +- crates/editor/src/items.rs | 4 ++-- 5 files changed, 10 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ff2a43d99d..e33edf29f0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2461,6 +2461,7 @@ dependencies = [ "editor", "gpui", "language", + "log", "lsp", "postage", "project", diff --git a/crates/diagnostics/Cargo.toml b/crates/diagnostics/Cargo.toml index b0b2450f05..26a2a82999 100644 --- a/crates/diagnostics/Cargo.toml +++ b/crates/diagnostics/Cargo.toml @@ -20,6 +20,7 @@ theme = { path = "../theme" } util = { path = "../util" } workspace = { path = "../workspace" } +log.workspace = true anyhow.workspace = true schemars.workspace = true serde.workspace = true diff --git a/crates/diagnostics/src/diagnostics.rs b/crates/diagnostics/src/diagnostics.rs index 0b1c6f8470..865704275b 100644 --- a/crates/diagnostics/src/diagnostics.rs +++ b/crates/diagnostics/src/diagnostics.rs @@ -151,6 +151,7 @@ impl ProjectDiagnosticsEditor { ) -> Self { cx.subscribe(&project_handle, |this, _, event, cx| match event { project::Event::DiskBasedDiagnosticsFinished { language_server_id } => { + log::debug!("Disk based diagnostics finished for server {language_server_id}"); this.update_excerpts(Some(*language_server_id), cx); this.update_title(cx); } @@ -158,8 +159,11 @@ impl ProjectDiagnosticsEditor { language_server_id, path, } => { + log::debug!("Adding path {path:?} to update for server {language_server_id}"); this.paths_to_update .insert((path.clone(), *language_server_id)); + this.update_excerpts(Some(*language_server_id), cx); + this.update_title(cx); } _ => {} }) @@ -229,6 +233,7 @@ impl ProjectDiagnosticsEditor { language_server_id: Option, cx: &mut ViewContext, ) { + log::debug!("Updating excerpts for server {language_server_id:?}"); let mut paths = Vec::new(); self.paths_to_update.retain(|(path, server_id)| { if language_server_id diff --git a/crates/editor/src/editor_tests.rs b/crates/editor/src/editor_tests.rs index feca741737..fc16e52a1b 100644 --- a/crates/editor/src/editor_tests.rs +++ b/crates/editor/src/editor_tests.rs @@ -34,7 +34,7 @@ use util::{ test::{marked_text_ranges, marked_text_ranges_by, sample_text, TextRangeMarker}, }; use workspace::{ - item::{FollowableItem, Item, ItemHandle}, + item::{FollowableItem, Item}, NavigationEntry, ViewId, }; diff --git a/crates/editor/src/items.rs b/crates/editor/src/items.rs index c87606070e..1b922848e0 100644 --- a/crates/editor/src/items.rs +++ b/crates/editor/src/items.rs @@ -33,9 +33,9 @@ use util::{ paths::{PathExt, FILE_ROW_COLUMN_DELIMITER}, ResultExt, TryFutureExt, }; -use workspace::item::{BreadcrumbText, FollowableItemHandle}; +use workspace::item::{BreadcrumbText, FollowableItemHandle, ItemHandle}; use workspace::{ - item::{FollowableItem, Item, ItemEvent, ItemHandle, ProjectItem}, + item::{FollowableItem, Item, ItemEvent, ProjectItem}, searchable::{Direction, SearchEvent, SearchableItem, SearchableItemHandle}, ItemId, ItemNavHistory, Pane, StatusItemView, ToolbarItemLocation, ViewId, Workspace, WorkspaceId, From 6f8947a3d343a3cb8cc178fa7a95aef7ace6652b Mon Sep 17 00:00:00 2001 From: Kirill Bulatov Date: Fri, 3 Nov 2023 18:42:37 +0200 Subject: [PATCH 30/76] Fix a compilation error --- crates/editor/src/editor_tests.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/editor/src/editor_tests.rs b/crates/editor/src/editor_tests.rs index fc16e52a1b..feca741737 100644 --- a/crates/editor/src/editor_tests.rs +++ b/crates/editor/src/editor_tests.rs @@ -34,7 +34,7 @@ use util::{ test::{marked_text_ranges, marked_text_ranges_by, sample_text, TextRangeMarker}, }; use workspace::{ - item::{FollowableItem, Item}, + item::{FollowableItem, Item, ItemHandle}, NavigationEntry, ViewId, }; From 918d123284c71fc8f1989e862f7a96a41447fd24 Mon Sep 17 00:00:00 2001 From: Kirill Bulatov Date: Fri, 3 Nov 2023 21:51:04 +0200 Subject: [PATCH 31/76] Fix the test --- crates/diagnostics/src/diagnostics.rs | 38 +++++++++++++-------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/crates/diagnostics/src/diagnostics.rs b/crates/diagnostics/src/diagnostics.rs index 865704275b..a3d779531b 100644 --- a/crates/diagnostics/src/diagnostics.rs +++ b/crates/diagnostics/src/diagnostics.rs @@ -1306,25 +1306,6 @@ mod tests { cx, ) .unwrap(); - project - .update_diagnostic_entries( - server_id_2, - PathBuf::from("/test/main.js"), - None, - vec![DiagnosticEntry { - range: Unclipped(PointUtf16::new(1, 0))..Unclipped(PointUtf16::new(1, 1)), - diagnostic: Diagnostic { - message: "warning 1".to_string(), - severity: DiagnosticSeverity::ERROR, - is_primary: true, - is_disk_based: true, - group_id: 2, - ..Default::default() - }, - }], - cx, - ) - .unwrap(); }); // The first language server finishes @@ -1358,6 +1339,25 @@ mod tests { // The second language server finishes project.update(cx, |project, cx| { + project + .update_diagnostic_entries( + server_id_2, + PathBuf::from("/test/main.js"), + None, + vec![DiagnosticEntry { + range: Unclipped(PointUtf16::new(1, 0))..Unclipped(PointUtf16::new(1, 1)), + diagnostic: Diagnostic { + message: "warning 1".to_string(), + severity: DiagnosticSeverity::ERROR, + is_primary: true, + is_disk_based: true, + group_id: 2, + ..Default::default() + }, + }], + cx, + ) + .unwrap(); project.disk_based_diagnostics_finished(server_id_2, cx); }); From 33245d119e24063ed2732d138e58c296cd5518ca Mon Sep 17 00:00:00 2001 From: Conrad Irwin Date: Fri, 3 Nov 2023 14:02:46 -0600 Subject: [PATCH 32/76] Tooltip on tabs Co-Authored-By: Julia --- crates/gpui2/src/app.rs | 2 ++ crates/gpui2/src/interactive.rs | 24 +++++++++++++++++-- crates/gpui2/src/window.rs | 8 +++++++ crates/ui2/src/components.rs | 2 ++ crates/ui2/src/components/tooltip.rs | 36 ++++++++++++++++++++++++++++ crates/workspace2/src/pane.rs | 12 ++++++---- 6 files changed, 77 insertions(+), 7 deletions(-) create mode 100644 crates/ui2/src/components/tooltip.rs diff --git a/crates/gpui2/src/app.rs b/crates/gpui2/src/app.rs index 9ec76a86d4..974395e897 100644 --- a/crates/gpui2/src/app.rs +++ b/crates/gpui2/src/app.rs @@ -157,6 +157,7 @@ pub struct AppContext { flushing_effects: bool, pending_updates: usize, pub(crate) active_drag: Option, + pub(crate) active_tooltip: Option, pub(crate) next_frame_callbacks: HashMap>, pub(crate) frame_consumers: HashMap>, pub(crate) background_executor: BackgroundExecutor, @@ -215,6 +216,7 @@ impl AppContext { flushing_effects: false, pending_updates: 0, active_drag: None, + active_tooltip: None, next_frame_callbacks: HashMap::default(), frame_consumers: HashMap::default(), background_executor: executor, diff --git a/crates/gpui2/src/interactive.rs b/crates/gpui2/src/interactive.rs index 7966b68e12..def7315a7c 100644 --- a/crates/gpui2/src/interactive.rs +++ b/crates/gpui2/src/interactive.rs @@ -358,7 +358,7 @@ pub trait StatefulInteractive: StatelessInteractive { self.stateful_interaction().tooltip_builder.is_none(), "calling tooltip more than once on the same element is not supported" ); - self.stateful_interaction().tooltip_builder = Some(Box::new(move |view_state, cx| { + self.stateful_interaction().tooltip_builder = Some(Arc::new(move |view_state, cx| { build_tooltip(view_state, cx).into() })); @@ -602,6 +602,10 @@ pub trait ElementInteraction: 'static { if let Some(hover_listener) = stateful.hover_listener.take() { let was_hovered = element_state.hover_state.clone(); let has_mouse_down = element_state.pending_mouse_down.lock().is_some(); + + let active_tooltip = element_state.active_tooltip.clone(); + let tooltip_builder = stateful.tooltip_builder.clone(); + cx.on_mouse_event(move |view_state, event: &MouseMoveEvent, phase, cx| { if phase != DispatchPhase::Bubble { return; @@ -612,11 +616,26 @@ pub trait ElementInteraction: 'static { if is_hovered != was_hovered.clone() { *was_hovered = is_hovered; drop(was_hovered); + if let Some(tooltip_builder) = &tooltip_builder { + let mut active_tooltip = active_tooltip.lock(); + if is_hovered && active_tooltip.is_none() { + *active_tooltip = Some(tooltip_builder(view_state, cx)); + } else if !is_hovered { + active_tooltip.take(); + } + } + hover_listener(view_state, is_hovered, cx); } }); } + if let Some(active_tooltip) = element_state.active_tooltip.lock().as_ref() { + if *element_state.hover_state.lock() { + cx.active_tooltip = Some(active_tooltip.clone()); + } + } + let active_state = element_state.active_state.clone(); if active_state.lock().is_none() { let active_group_bounds = stateful @@ -804,6 +823,7 @@ pub struct InteractiveElementState { hover_state: Arc>, pending_mouse_down: Arc>>, scroll_offset: Option>>>, + active_tooltip: Arc>>, } impl InteractiveElementState { @@ -1155,7 +1175,7 @@ pub(crate) type DragListener = pub(crate) type HoverListener = Box) + 'static>; -pub(crate) type TooltipBuilder = Box) -> AnyView + 'static>; +pub(crate) type TooltipBuilder = Arc) -> AnyView + 'static>; pub type KeyListener = Box< dyn Fn( diff --git a/crates/gpui2/src/window.rs b/crates/gpui2/src/window.rs index e998766bbb..46ac30592b 100644 --- a/crates/gpui2/src/window.rs +++ b/crates/gpui2/src/window.rs @@ -987,6 +987,14 @@ impl<'a> WindowContext<'a> { cx.active_drag = Some(active_drag); }); }); + } else if let Some(active_tooltip) = self.app.active_tooltip.take() { + self.stack(1, |cx| { + cx.with_element_offset(Some(cx.mouse_position()), |cx| { + let available_space = + size(AvailableSpace::MinContent, AvailableSpace::MinContent); + active_tooltip.draw(available_space, cx); + }); + }); } self.window.root_view = Some(root_view); diff --git a/crates/ui2/src/components.rs b/crates/ui2/src/components.rs index 7a9cac01ca..f10f8cee8d 100644 --- a/crates/ui2/src/components.rs +++ b/crates/ui2/src/components.rs @@ -31,6 +31,7 @@ mod theme_selector; mod title_bar; mod toast; mod toolbar; +mod tooltip; mod traffic_lights; mod workspace; @@ -67,5 +68,6 @@ pub use theme_selector::*; pub use title_bar::*; pub use toast::*; pub use toolbar::*; +pub use tooltip::*; pub use traffic_lights::*; pub use workspace::*; diff --git a/crates/ui2/src/components/tooltip.rs b/crates/ui2/src/components/tooltip.rs new file mode 100644 index 0000000000..eb53b506eb --- /dev/null +++ b/crates/ui2/src/components/tooltip.rs @@ -0,0 +1,36 @@ +use gpui2::{ + div, px, Div, ParentElement, Render, SharedString, Styled, View, ViewContext, VisualContext, +}; +use theme2::ActiveTheme; + +#[derive(Clone, Debug)] +pub struct TextTooltip { + title: SharedString, +} + +impl TextTooltip { + pub fn new(str: SharedString) -> Self { + Self { title: str } + } + + pub fn build_view(str: SharedString, cx: &mut C) -> C::Result> { + cx.build_view(|cx| TextTooltip::new(str)) + } +} + +impl Render for TextTooltip { + type Element = Div; + + fn render(&mut self, cx: &mut ViewContext) -> Self::Element { + let theme = cx.theme(); + div() + .bg(theme.colors().background) + .rounded(px(8.)) + .border() + .border_color(theme.colors().border) + .text_color(theme.colors().text) + .pl_2() + .pr_2() + .child(self.title.clone()) + } +} diff --git a/crates/workspace2/src/pane.rs b/crates/workspace2/src/pane.rs index acda04c5a4..a1ec168488 100644 --- a/crates/workspace2/src/pane.rs +++ b/crates/workspace2/src/pane.rs @@ -9,9 +9,8 @@ use crate::{ use anyhow::Result; use collections::{HashMap, HashSet, VecDeque}; use gpui::{ - AppContext, AsyncWindowContext, Component, CursorStyle, Div, EntityId, EventEmitter, - FocusHandle, Model, PromptLevel, Render, Task, View, ViewContext, VisualContext, WeakView, - WindowContext, + AnyView, AppContext, AsyncWindowContext, Component, Div, EntityId, EventEmitter, FocusHandle, + Model, PromptLevel, Render, Task, View, ViewContext, VisualContext, WeakView, WindowContext, }; use parking_lot::Mutex; use project2::{Project, ProjectEntryId, ProjectPath}; @@ -27,7 +26,7 @@ use std::{ }, }; use ui::v_stack; -use ui::{prelude::*, Icon, IconButton, IconColor, IconElement}; +use ui::{prelude::*, Icon, IconButton, IconColor, IconElement, TextTooltip}; use util::truncate_and_remove_front; #[derive(PartialEq, Clone, Copy, Deserialize, Debug)] @@ -1402,7 +1401,10 @@ impl Pane { .on_hover(|_, hovered, _| { dbg!(hovered); }) - // .tooltip(|pane, cx| cx.create_view( tooltip.child("Hovering the tab")) + .when_some(item.tab_tooltip_text(cx), |div, text| { + div.tooltip(move |_, cx| TextTooltip::build_view(text.clone(), cx)) + }) + // .tooltip(|pane, cx| cx.build_view(|cx| div().child(title))) // .on_drag(move |pane, cx| pane.render_tab(ix, item.boxed_clone(), detail, cx)) // .drag_over::(|d| d.bg(cx.theme().colors().element_drop_target)) // .on_drop(|_view, state: View, cx| { From f97046b86fae67d9cbf8ccf4e7b86781f9d2f7a9 Mon Sep 17 00:00:00 2001 From: Conrad Irwin Date: Fri, 3 Nov 2023 14:15:32 -0600 Subject: [PATCH 33/76] MOAR TOOLTIPS --- crates/gpui2/src/interactive.rs | 51 ++++++++++++++++++++++----------- 1 file changed, 35 insertions(+), 16 deletions(-) diff --git a/crates/gpui2/src/interactive.rs b/crates/gpui2/src/interactive.rs index def7315a7c..4a6185f737 100644 --- a/crates/gpui2/src/interactive.rs +++ b/crates/gpui2/src/interactive.rs @@ -17,6 +17,7 @@ use std::{ ops::Deref, path::PathBuf, sync::Arc, + time::{Duration, Instant}, }; const DRAG_THRESHOLD: f64 = 2.; @@ -603,9 +604,6 @@ pub trait ElementInteraction: 'static { let was_hovered = element_state.hover_state.clone(); let has_mouse_down = element_state.pending_mouse_down.lock().is_some(); - let active_tooltip = element_state.active_tooltip.clone(); - let tooltip_builder = stateful.tooltip_builder.clone(); - cx.on_mouse_event(move |view_state, event: &MouseMoveEvent, phase, cx| { if phase != DispatchPhase::Bubble { return; @@ -616,23 +614,39 @@ pub trait ElementInteraction: 'static { if is_hovered != was_hovered.clone() { *was_hovered = is_hovered; drop(was_hovered); - if let Some(tooltip_builder) = &tooltip_builder { - let mut active_tooltip = active_tooltip.lock(); - if is_hovered && active_tooltip.is_none() { - *active_tooltip = Some(tooltip_builder(view_state, cx)); - } else if !is_hovered { - active_tooltip.take(); - } - } hover_listener(view_state, is_hovered, cx); } }); } - if let Some(active_tooltip) = element_state.active_tooltip.lock().as_ref() { - if *element_state.hover_state.lock() { - cx.active_tooltip = Some(active_tooltip.clone()); + // if we're hovered: + // if no timer, start timer + // if timer hits 1s, call tooltip_builder() + // + + if let Some(tooltip_builder) = &stateful.tooltip_builder { + let mut active_tooltip = element_state.active_tooltip.lock(); + let is_hovered = bounds.contains_point(&cx.mouse_position()) + && !element_state.pending_mouse_down.lock().is_some(); + + if is_hovered { + if let Some(active_tooltip) = active_tooltip { + active_tooltip.view = Some(tooltip_builder(cx)) + } else { + *active_tooltip = Some(ActiveTooltip { + hover_start: Instant::now(), + view: None, + }); + } + } else { + active_tooltip.take(); + } + + if let Some(active_tooltip) = element_state.active_tooltip.lock().as_ref() { + if *element_state.hover_state.lock() { + cx.active_tooltip = Some(active_tooltip.clone()); + } } } @@ -823,7 +837,12 @@ pub struct InteractiveElementState { hover_state: Arc>, pending_mouse_down: Arc>>, scroll_offset: Option>>>, - active_tooltip: Arc>>, + active_tooltip: Arc>>, +} + +pub struct ActiveTooltip { + hover_start: Instant, + view: Option, } impl InteractiveElementState { @@ -1175,7 +1194,7 @@ pub(crate) type DragListener = pub(crate) type HoverListener = Box) + 'static>; -pub(crate) type TooltipBuilder = Arc) -> AnyView + 'static>; +pub(crate) type TooltipBuilder = Arc) -> AnyView + 'static>; pub type KeyListener = Box< dyn Fn( From 740e2cc5bfbf0e3b7b3796f70657dec28445727e Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Fri, 3 Nov 2023 16:28:54 -0400 Subject: [PATCH 34/76] Start on ui root doc Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com> --- crates/ui2/src/lib.rs | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/crates/ui2/src/lib.rs b/crates/ui2/src/lib.rs index 5d0a57c6d9..fb25d21bf0 100644 --- a/crates/ui2/src/lib.rs +++ b/crates/ui2/src/lib.rs @@ -9,6 +9,37 @@ //! //! Expect some inconsistencies from component to component as we work out the best way to build these components. //! +//! ## Getting Started +//! +//! This is a quick primer to get you started using the UI components. +//! +//! You shouldn't need to construct an element from scratch very often. If you find +//! yourself manually styling things like hover, text colors, etc, you should +//! probably check that there isn't already a base component for whatever you are building. +//! +//! Here is an into to some of the most common elements: +//! +//! ### Text +//! +//! For generic UI text most frequently you will use a [`Label`] component. +//! +//! ```rust +//! use ui2::prelude::*; +//! use ui2::{Label, LabelColor}; +//! +//! pub fn render_some_ui_text() -> impl Component { +//! div().p_2().child( +//! Label::new("Hello World") +//! .color(LabelColor::Muted) +//! ) +//! } +//! ``` +//! +//! ### Interactive Elements +//! +//! - Icon: To make an icon interactive, use [`IconButton`]. +//! - Button: To make a button interactive, use [`Button`]. +//! //! ## Design Philosophy //! //! Work in Progress! From 1361b617082bf730dfbd4aaa57bf8bbe4226e08f Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 3 Nov 2023 16:36:02 -0400 Subject: [PATCH 35/76] Use an `IconButton` for the tab close button --- crates/ui2/src/elements/icon.rs | 10 ---------- crates/workspace2/src/pane.rs | 19 ++++++++----------- 2 files changed, 8 insertions(+), 21 deletions(-) diff --git a/crates/ui2/src/elements/icon.rs b/crates/ui2/src/elements/icon.rs index 94e15ca0f1..9c056d68d1 100644 --- a/crates/ui2/src/elements/icon.rs +++ b/crates/ui2/src/elements/icon.rs @@ -159,7 +159,6 @@ impl Icon { pub struct IconElement { icon: Icon, color: IconColor, - hover_color: Option, size: IconSize, } @@ -168,7 +167,6 @@ impl IconElement { Self { icon, color: IconColor::default(), - hover_color: None, size: IconSize::default(), } } @@ -178,11 +176,6 @@ impl IconElement { self } - pub fn hover_color(mut self, hover_color: impl Into>) -> Self { - self.hover_color = hover_color.into(); - self - } - pub fn size(mut self, size: IconSize) -> Self { self.size = size; self @@ -199,9 +192,6 @@ impl IconElement { .flex_none() .path(self.icon.path()) .text_color(self.color.color(cx)) - .when_some(self.hover_color, |this, hover_color| { - this.hover(|style| style.text_color(hover_color.color(cx))) - }) } } diff --git a/crates/workspace2/src/pane.rs b/crates/workspace2/src/pane.rs index a1ec168488..0c2ee5f46e 100644 --- a/crates/workspace2/src/pane.rs +++ b/crates/workspace2/src/pane.rs @@ -9,8 +9,8 @@ use crate::{ use anyhow::Result; use collections::{HashMap, HashSet, VecDeque}; use gpui::{ - AnyView, AppContext, AsyncWindowContext, Component, Div, EntityId, EventEmitter, FocusHandle, - Model, PromptLevel, Render, Task, View, ViewContext, VisualContext, WeakView, WindowContext, + AppContext, AsyncWindowContext, Component, Div, EntityId, EventEmitter, FocusHandle, Model, + PromptLevel, Render, Task, View, ViewContext, VisualContext, WeakView, WindowContext, }; use parking_lot::Mutex; use project2::{Project, ProjectEntryId, ProjectPath}; @@ -1366,15 +1366,12 @@ impl Pane { .id(item.id()) .invisible() .group_hover("", |style| style.visible()) - .child( - IconElement::new(Icon::Close) - .color(IconColor::Muted) - .hover_color(IconColor::Accent), - ) - .on_click(move |pane: &mut Self, _, cx| { - pane.close_item_by_id(id, SaveIntent::Close, cx) - .detach_and_log_err(cx); - }) + .child(IconButton::::new("close_tab", Icon::Close).on_click( + move |pane: &mut Self, cx| { + pane.close_item_by_id(id, SaveIntent::Close, cx) + .detach_and_log_err(cx); + }, + )) }; let (text_color, tab_bg, tab_hover_bg, tab_active_bg) = match ix == self.active_item_index { From d500b01aed009a872e35f4abeed68c91f2d6973d Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Fri, 3 Nov 2023 16:37:22 -0400 Subject: [PATCH 36/76] Add docs burndown list Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com> --- crates/ui2/src/lib.rs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/crates/ui2/src/lib.rs b/crates/ui2/src/lib.rs index fb25d21bf0..d53469638a 100644 --- a/crates/ui2/src/lib.rs +++ b/crates/ui2/src/lib.rs @@ -1,3 +1,29 @@ +// TODO: +// Document these: +// - [ ] - label +// - [ ] - button +// - [ ] - icon_button +// - [ ] - icon +// - [ ] - list +// - [ ] - avatar +// - [ ] - panel +// - [ ] - modal +// - [ ] - palette +// - [ ] - input +// - [ ] - facepile +// - [ ] - player +// - [ ] - stacks +// - [ ] - context menu +// - [ ] - input +// - [ ] - textarea (not built) +// - [ ] - indicator +// - [ ] - public actor +// - [ ] - keybinding +// - [ ] - tab +// - [ ] - toast +// - [ ] - status_toast (maybe not built?) +// - [ ] - notification_toast + //! # UI – Zed UI Primitives & Components //! //! This crate provides a set of UI primitives and components that are used to build all of the elements in Zed's UI. From b5224bdafd5417619f5652458bcc0b38d896c0d5 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 3 Nov 2023 16:40:46 -0400 Subject: [PATCH 37/76] Remove unneeded type qualification --- crates/workspace2/src/pane.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/workspace2/src/pane.rs b/crates/workspace2/src/pane.rs index 0c2ee5f46e..3cc9a8b5f2 100644 --- a/crates/workspace2/src/pane.rs +++ b/crates/workspace2/src/pane.rs @@ -1366,7 +1366,7 @@ impl Pane { .id(item.id()) .invisible() .group_hover("", |style| style.visible()) - .child(IconButton::::new("close_tab", Icon::Close).on_click( + .child(IconButton::new("close_tab", Icon::Close).on_click( move |pane: &mut Self, cx| { pane.close_item_by_id(id, SaveIntent::Close, cx) .detach_and_log_err(cx); From 287ea0a6e466e5bc620b628ffe39771d4e819970 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 3 Nov 2023 22:21:00 +0100 Subject: [PATCH 38/76] Allow deriving `Serialize` and `Deserialize` on generated refinement (#3227) This PR adds support for deriving `Serialize` and `Deserialize` on the refinement type generated by `#[derive(Refineable)]`. Release Notes: - N/A --- .../src/derive_refineable.rs | 44 +++++++++++++++++-- crates/theme2/src/colors.rs | 16 ++++++- 2 files changed, 56 insertions(+), 4 deletions(-) diff --git a/crates/refineable/derive_refineable/src/derive_refineable.rs b/crates/refineable/derive_refineable/src/derive_refineable.rs index ed233e1b0d..c2d001b287 100644 --- a/crates/refineable/derive_refineable/src/derive_refineable.rs +++ b/crates/refineable/derive_refineable/src/derive_refineable.rs @@ -16,9 +16,33 @@ pub fn derive_refineable(input: TokenStream) -> TokenStream { .. } = parse_macro_input!(input); - let impl_debug_on_refinement = attrs - .iter() - .any(|attr| attr.path.is_ident("refineable") && attr.tokens.to_string().contains("debug")); + let refineable_attr = attrs.iter().find(|attr| attr.path.is_ident("refineable")); + + let mut impl_debug_on_refinement = false; + let mut derive_serialize_on_refinement = false; + let mut derive_deserialize_on_refinement = false; + + if let Some(refineable_attr) = refineable_attr { + if let Ok(syn::Meta::List(meta_list)) = refineable_attr.parse_meta() { + for nested in meta_list.nested { + let syn::NestedMeta::Meta(syn::Meta::Path(path)) = nested else { + continue; + }; + + if path.is_ident("debug") { + impl_debug_on_refinement = true; + } + + if path.is_ident("serialize") { + derive_serialize_on_refinement = true; + } + + if path.is_ident("deserialize") { + derive_deserialize_on_refinement = true; + } + } + } + } let refinement_ident = format_ident!("{}Refinement", ident); let (impl_generics, ty_generics, where_clause) = generics.split_for_impl(); @@ -235,8 +259,22 @@ pub fn derive_refineable(input: TokenStream) -> TokenStream { quote! {} }; + let derive_serialize = if derive_serialize_on_refinement { + quote! { #[derive(serde::Serialize)]} + } else { + quote! {} + }; + + let derive_deserialize = if derive_deserialize_on_refinement { + quote! { #[derive(serde::Deserialize)]} + } else { + quote! {} + }; + let gen = quote! { #[derive(Clone)] + #derive_serialize + #derive_deserialize pub struct #refinement_ident #impl_generics { #( #field_visibilities #field_names: #wrapped_types ),* } diff --git a/crates/theme2/src/colors.rs b/crates/theme2/src/colors.rs index 38ae1325a0..b02a9c14df 100644 --- a/crates/theme2/src/colors.rs +++ b/crates/theme2/src/colors.rs @@ -49,7 +49,7 @@ pub struct GitStatusColors { } #[derive(Refineable, Clone, Debug)] -#[refineable(debug)] +#[refineable(debug, deserialize)] pub struct ThemeColors { pub border: Hsla, pub border_variant: Hsla, @@ -105,6 +105,8 @@ pub struct ThemeStyles { #[cfg(test)] mod tests { + use serde_json::json; + use super::*; #[test] @@ -146,4 +148,16 @@ mod tests { assert_eq!(colors.text, magenta); assert_eq!(colors.background, green); } + + #[test] + fn deserialize_theme_colors_refinement_from_json() { + let colors: ThemeColorsRefinement = serde_json::from_value(json!({ + "background": "#ff00ff", + "text": "#ff0000" + })) + .unwrap(); + + assert_eq!(colors.background, Some(gpui::rgb(0xff00ff))); + assert_eq!(colors.text, Some(gpui::rgb(0xff0000))); + } } From 76db100d119c381e29eaeed0f57e5e144d9fa48c Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 3 Nov 2023 22:34:11 +0100 Subject: [PATCH 39/76] ui2: Reorganize components (#3228) This PR reorganizes the components in the `ui2` crate. The distinction between "elements" and "components" is now gone, with all of the reusable components living under `components/`. The components that we built while prototyping but will eventually live in other crates currently reside in the `to_extract/` module. Release Notes: - N/A --- crates/storybook2/src/stories/kitchen_sink.rs | 10 +-- crates/storybook2/src/story_selector.rs | 81 +++++++------------ crates/ui2/src/components.rs | 66 +++++---------- .../src/{elements => components}/avatar.rs | 0 .../src/{elements => components}/button.rs | 0 .../src/{elements => components}/details.rs | 0 .../ui2/src/{elements => components}/icon.rs | 0 .../src/{elements => components}/indicator.rs | 0 .../ui2/src/{elements => components}/input.rs | 0 .../ui2/src/{elements => components}/label.rs | 0 .../src/{elements => components}/player.rs | 0 .../ui2/src/{elements => components}/stack.rs | 0 .../{elements => components}/tool_divider.rs | 0 crates/ui2/src/elements.rs | 21 ----- crates/ui2/src/lib.rs | 4 +- crates/ui2/src/to_extract.rs | 47 +++++++++++ .../assistant_panel.rs | 0 .../{components => to_extract}/breadcrumb.rs | 0 .../src/{components => to_extract}/buffer.rs | 0 .../buffer_search.rs | 0 .../{components => to_extract}/chat_panel.rs | 0 .../collab_panel.rs | 0 .../command_palette.rs | 0 .../src/{components => to_extract}/copilot.rs | 0 .../{components => to_extract}/editor_pane.rs | 0 .../language_selector.rs | 0 .../multi_buffer.rs | 0 .../notifications_panel.rs | 0 .../src/{components => to_extract}/panes.rs | 0 .../project_panel.rs | 0 .../recent_projects.rs | 0 .../{components => to_extract}/status_bar.rs | 0 .../src/{components => to_extract}/tab_bar.rs | 0 .../{components => to_extract}/terminal.rs | 0 .../theme_selector.rs | 0 .../{components => to_extract}/title_bar.rs | 0 .../src/{components => to_extract}/toolbar.rs | 0 .../traffic_lights.rs | 0 .../{components => to_extract}/workspace.rs | 0 39 files changed, 99 insertions(+), 130 deletions(-) rename crates/ui2/src/{elements => components}/avatar.rs (100%) rename crates/ui2/src/{elements => components}/button.rs (100%) rename crates/ui2/src/{elements => components}/details.rs (100%) rename crates/ui2/src/{elements => components}/icon.rs (100%) rename crates/ui2/src/{elements => components}/indicator.rs (100%) rename crates/ui2/src/{elements => components}/input.rs (100%) rename crates/ui2/src/{elements => components}/label.rs (100%) rename crates/ui2/src/{elements => components}/player.rs (100%) rename crates/ui2/src/{elements => components}/stack.rs (100%) rename crates/ui2/src/{elements => components}/tool_divider.rs (100%) delete mode 100644 crates/ui2/src/elements.rs create mode 100644 crates/ui2/src/to_extract.rs rename crates/ui2/src/{components => to_extract}/assistant_panel.rs (100%) rename crates/ui2/src/{components => to_extract}/breadcrumb.rs (100%) rename crates/ui2/src/{components => to_extract}/buffer.rs (100%) rename crates/ui2/src/{components => to_extract}/buffer_search.rs (100%) rename crates/ui2/src/{components => to_extract}/chat_panel.rs (100%) rename crates/ui2/src/{components => to_extract}/collab_panel.rs (100%) rename crates/ui2/src/{components => to_extract}/command_palette.rs (100%) rename crates/ui2/src/{components => to_extract}/copilot.rs (100%) rename crates/ui2/src/{components => to_extract}/editor_pane.rs (100%) rename crates/ui2/src/{components => to_extract}/language_selector.rs (100%) rename crates/ui2/src/{components => to_extract}/multi_buffer.rs (100%) rename crates/ui2/src/{components => to_extract}/notifications_panel.rs (100%) rename crates/ui2/src/{components => to_extract}/panes.rs (100%) rename crates/ui2/src/{components => to_extract}/project_panel.rs (100%) rename crates/ui2/src/{components => to_extract}/recent_projects.rs (100%) rename crates/ui2/src/{components => to_extract}/status_bar.rs (100%) rename crates/ui2/src/{components => to_extract}/tab_bar.rs (100%) rename crates/ui2/src/{components => to_extract}/terminal.rs (100%) rename crates/ui2/src/{components => to_extract}/theme_selector.rs (100%) rename crates/ui2/src/{components => to_extract}/title_bar.rs (100%) rename crates/ui2/src/{components => to_extract}/toolbar.rs (100%) rename crates/ui2/src/{components => to_extract}/traffic_lights.rs (100%) rename crates/ui2/src/{components => to_extract}/workspace.rs (100%) diff --git a/crates/storybook2/src/stories/kitchen_sink.rs b/crates/storybook2/src/stories/kitchen_sink.rs index cfa91417b6..cf8277c4f4 100644 --- a/crates/storybook2/src/stories/kitchen_sink.rs +++ b/crates/storybook2/src/stories/kitchen_sink.rs @@ -1,7 +1,4 @@ -use crate::{ - story::Story, - story_selector::{ComponentStory, ElementStory}, -}; +use crate::{story::Story, story_selector::ComponentStory}; use gpui2::{Div, Render, StatefulInteraction, View, VisualContext}; use strum::IntoEnumIterator; use ui::prelude::*; @@ -18,9 +15,6 @@ impl Render for KitchenSinkStory { type Element = Div>; fn render(&mut self, cx: &mut ViewContext) -> Self::Element { - let element_stories = ElementStory::iter() - .map(|selector| selector.story(cx)) - .collect::>(); let component_stories = ComponentStory::iter() .map(|selector| selector.story(cx)) .collect::>(); @@ -29,8 +23,6 @@ impl Render for KitchenSinkStory { .id("kitchen-sink") .overflow_y_scroll() .child(Story::title(cx, "Kitchen Sink")) - .child(Story::label(cx, "Elements")) - .child(div().flex().flex_col().children(element_stories)) .child(Story::label(cx, "Components")) .child(div().flex().flex_col().children(component_stories)) // Add a bit of space at the bottom of the kitchen sink so elements diff --git a/crates/storybook2/src/story_selector.rs b/crates/storybook2/src/story_selector.rs index 968309bd8a..a78705c7bb 100644 --- a/crates/storybook2/src/story_selector.rs +++ b/crates/storybook2/src/story_selector.rs @@ -7,55 +7,30 @@ use clap::builder::PossibleValue; use clap::ValueEnum; use gpui2::{AnyView, VisualContext}; use strum::{EnumIter, EnumString, IntoEnumIterator}; -use ui::{prelude::*, AvatarStory, ButtonStory, DetailsStory, IconStory, InputStory, LabelStory}; - -#[derive(Debug, PartialEq, Eq, Clone, Copy, strum::Display, EnumString, EnumIter)] -#[strum(serialize_all = "snake_case")] -pub enum ElementStory { - Avatar, - Button, - Colors, - Details, - Focus, - Icon, - Input, - Label, - Scroll, - Text, - ZIndex, -} - -impl ElementStory { - pub fn story(&self, cx: &mut WindowContext) -> AnyView { - match self { - Self::Colors => cx.build_view(|_| ColorsStory).into(), - Self::Avatar => cx.build_view(|_| AvatarStory).into(), - Self::Button => cx.build_view(|_| ButtonStory).into(), - Self::Details => cx.build_view(|_| DetailsStory).into(), - Self::Focus => FocusStory::view(cx).into(), - Self::Icon => cx.build_view(|_| IconStory).into(), - Self::Input => cx.build_view(|_| InputStory).into(), - Self::Label => cx.build_view(|_| LabelStory).into(), - Self::Scroll => ScrollStory::view(cx).into(), - Self::Text => TextStory::view(cx).into(), - Self::ZIndex => cx.build_view(|_| ZIndexStory).into(), - } - } -} +use ui::prelude::*; +use ui::{AvatarStory, ButtonStory, DetailsStory, IconStory, InputStory, LabelStory}; #[derive(Debug, PartialEq, Eq, Clone, Copy, strum::Display, EnumString, EnumIter)] #[strum(serialize_all = "snake_case")] pub enum ComponentStory { AssistantPanel, + Avatar, Breadcrumb, Buffer, + Button, ChatPanel, CollabPanel, + Colors, CommandPalette, - Copilot, ContextMenu, + Copilot, + Details, Facepile, + Focus, + Icon, + Input, Keybinding, + Label, LanguageSelector, MultiBuffer, NotificationsPanel, @@ -63,29 +38,41 @@ pub enum ComponentStory { Panel, ProjectPanel, RecentProjects, + Scroll, Tab, TabBar, Terminal, + Text, ThemeSelector, TitleBar, Toast, Toolbar, TrafficLights, Workspace, + ZIndex, } impl ComponentStory { pub fn story(&self, cx: &mut WindowContext) -> AnyView { match self { Self::AssistantPanel => cx.build_view(|_| ui::AssistantPanelStory).into(), - Self::Buffer => cx.build_view(|_| ui::BufferStory).into(), + Self::Avatar => cx.build_view(|_| AvatarStory).into(), Self::Breadcrumb => cx.build_view(|_| ui::BreadcrumbStory).into(), + Self::Buffer => cx.build_view(|_| ui::BufferStory).into(), + Self::Button => cx.build_view(|_| ButtonStory).into(), Self::ChatPanel => cx.build_view(|_| ui::ChatPanelStory).into(), Self::CollabPanel => cx.build_view(|_| ui::CollabPanelStory).into(), + Self::Colors => cx.build_view(|_| ColorsStory).into(), Self::CommandPalette => cx.build_view(|_| ui::CommandPaletteStory).into(), Self::ContextMenu => cx.build_view(|_| ui::ContextMenuStory).into(), + Self::Copilot => cx.build_view(|_| ui::CopilotModalStory).into(), + Self::Details => cx.build_view(|_| DetailsStory).into(), Self::Facepile => cx.build_view(|_| ui::FacepileStory).into(), + Self::Focus => FocusStory::view(cx).into(), + Self::Icon => cx.build_view(|_| IconStory).into(), + Self::Input => cx.build_view(|_| InputStory).into(), Self::Keybinding => cx.build_view(|_| ui::KeybindingStory).into(), + Self::Label => cx.build_view(|_| LabelStory).into(), Self::LanguageSelector => cx.build_view(|_| ui::LanguageSelectorStory).into(), Self::MultiBuffer => cx.build_view(|_| ui::MultiBufferStory).into(), Self::NotificationsPanel => cx.build_view(|cx| ui::NotificationsPanelStory).into(), @@ -93,23 +80,24 @@ impl ComponentStory { Self::Panel => cx.build_view(|cx| ui::PanelStory).into(), Self::ProjectPanel => cx.build_view(|_| ui::ProjectPanelStory).into(), Self::RecentProjects => cx.build_view(|_| ui::RecentProjectsStory).into(), + Self::Scroll => ScrollStory::view(cx).into(), Self::Tab => cx.build_view(|_| ui::TabStory).into(), Self::TabBar => cx.build_view(|_| ui::TabBarStory).into(), Self::Terminal => cx.build_view(|_| ui::TerminalStory).into(), + Self::Text => TextStory::view(cx).into(), Self::ThemeSelector => cx.build_view(|_| ui::ThemeSelectorStory).into(), + Self::TitleBar => ui::TitleBarStory::view(cx).into(), Self::Toast => cx.build_view(|_| ui::ToastStory).into(), Self::Toolbar => cx.build_view(|_| ui::ToolbarStory).into(), Self::TrafficLights => cx.build_view(|_| ui::TrafficLightsStory).into(), - Self::Copilot => cx.build_view(|_| ui::CopilotModalStory).into(), - Self::TitleBar => ui::TitleBarStory::view(cx).into(), Self::Workspace => ui::WorkspaceStory::view(cx).into(), + Self::ZIndex => cx.build_view(|_| ZIndexStory).into(), } } } #[derive(Debug, PartialEq, Eq, Clone, Copy)] pub enum StorySelector { - Element(ElementStory), Component(ComponentStory), KitchenSink, } @@ -126,13 +114,6 @@ impl FromStr for StorySelector { return Ok(Self::KitchenSink); } - if let Some((_, story)) = story.split_once("elements/") { - let element_story = ElementStory::from_str(story) - .with_context(|| format!("story not found for element '{story}'"))?; - - return Ok(Self::Element(element_story)); - } - if let Some((_, story)) = story.split_once("components/") { let component_story = ComponentStory::from_str(story) .with_context(|| format!("story not found for component '{story}'"))?; @@ -147,7 +128,6 @@ impl FromStr for StorySelector { impl StorySelector { pub fn story(&self, cx: &mut WindowContext) -> AnyView { match self { - Self::Element(element_story) => element_story.story(cx), Self::Component(component_story) => component_story.story(cx), Self::KitchenSink => KitchenSinkStory::view(cx).into(), } @@ -160,11 +140,9 @@ static ALL_STORY_SELECTORS: OnceLock> = OnceLock::new(); impl ValueEnum for StorySelector { fn value_variants<'a>() -> &'a [Self] { let stories = ALL_STORY_SELECTORS.get_or_init(|| { - let element_stories = ElementStory::iter().map(StorySelector::Element); let component_stories = ComponentStory::iter().map(StorySelector::Component); - element_stories - .chain(component_stories) + component_stories .chain(std::iter::once(StorySelector::KitchenSink)) .collect::>() }); @@ -174,7 +152,6 @@ impl ValueEnum for StorySelector { fn to_possible_value(&self) -> Option { let value = match self { - Self::Element(story) => format!("elements/{story}"), Self::Component(story) => format!("components/{story}"), Self::KitchenSink => "kitchen_sink".to_string(), }; diff --git a/crates/ui2/src/components.rs b/crates/ui2/src/components.rs index 7a9cac01ca..f7674c2bd4 100644 --- a/crates/ui2/src/components.rs +++ b/crates/ui2/src/components.rs @@ -1,71 +1,45 @@ -mod assistant_panel; -mod breadcrumb; -mod buffer; -mod buffer_search; -mod chat_panel; -mod collab_panel; -mod command_palette; +mod avatar; +mod button; mod context_menu; -mod copilot; -mod editor_pane; +mod details; mod facepile; +mod icon; mod icon_button; +mod indicator; +mod input; mod keybinding; -mod language_selector; +mod label; mod list; mod modal; -mod multi_buffer; mod notification_toast; -mod notifications_panel; mod palette; mod panel; -mod panes; +mod player; mod player_stack; -mod project_panel; -mod recent_projects; -mod status_bar; +mod stack; mod tab; -mod tab_bar; -mod terminal; -mod theme_selector; -mod title_bar; mod toast; -mod toolbar; -mod traffic_lights; -mod workspace; +mod tool_divider; -pub use assistant_panel::*; -pub use breadcrumb::*; -pub use buffer::*; -pub use buffer_search::*; -pub use chat_panel::*; -pub use collab_panel::*; -pub use command_palette::*; +pub use avatar::*; +pub use button::*; pub use context_menu::*; -pub use copilot::*; -pub use editor_pane::*; +pub use details::*; pub use facepile::*; +pub use icon::*; pub use icon_button::*; +pub use indicator::*; +pub use input::*; pub use keybinding::*; -pub use language_selector::*; +pub use label::*; pub use list::*; pub use modal::*; -pub use multi_buffer::*; pub use notification_toast::*; -pub use notifications_panel::*; pub use palette::*; pub use panel::*; -pub use panes::*; +pub use player::*; pub use player_stack::*; -pub use project_panel::*; -pub use recent_projects::*; -pub use status_bar::*; +pub use stack::*; pub use tab::*; -pub use tab_bar::*; -pub use terminal::*; -pub use theme_selector::*; -pub use title_bar::*; pub use toast::*; -pub use toolbar::*; -pub use traffic_lights::*; -pub use workspace::*; +pub use tool_divider::*; diff --git a/crates/ui2/src/elements/avatar.rs b/crates/ui2/src/components/avatar.rs similarity index 100% rename from crates/ui2/src/elements/avatar.rs rename to crates/ui2/src/components/avatar.rs diff --git a/crates/ui2/src/elements/button.rs b/crates/ui2/src/components/button.rs similarity index 100% rename from crates/ui2/src/elements/button.rs rename to crates/ui2/src/components/button.rs diff --git a/crates/ui2/src/elements/details.rs b/crates/ui2/src/components/details.rs similarity index 100% rename from crates/ui2/src/elements/details.rs rename to crates/ui2/src/components/details.rs diff --git a/crates/ui2/src/elements/icon.rs b/crates/ui2/src/components/icon.rs similarity index 100% rename from crates/ui2/src/elements/icon.rs rename to crates/ui2/src/components/icon.rs diff --git a/crates/ui2/src/elements/indicator.rs b/crates/ui2/src/components/indicator.rs similarity index 100% rename from crates/ui2/src/elements/indicator.rs rename to crates/ui2/src/components/indicator.rs diff --git a/crates/ui2/src/elements/input.rs b/crates/ui2/src/components/input.rs similarity index 100% rename from crates/ui2/src/elements/input.rs rename to crates/ui2/src/components/input.rs diff --git a/crates/ui2/src/elements/label.rs b/crates/ui2/src/components/label.rs similarity index 100% rename from crates/ui2/src/elements/label.rs rename to crates/ui2/src/components/label.rs diff --git a/crates/ui2/src/elements/player.rs b/crates/ui2/src/components/player.rs similarity index 100% rename from crates/ui2/src/elements/player.rs rename to crates/ui2/src/components/player.rs diff --git a/crates/ui2/src/elements/stack.rs b/crates/ui2/src/components/stack.rs similarity index 100% rename from crates/ui2/src/elements/stack.rs rename to crates/ui2/src/components/stack.rs diff --git a/crates/ui2/src/elements/tool_divider.rs b/crates/ui2/src/components/tool_divider.rs similarity index 100% rename from crates/ui2/src/elements/tool_divider.rs rename to crates/ui2/src/components/tool_divider.rs diff --git a/crates/ui2/src/elements.rs b/crates/ui2/src/elements.rs deleted file mode 100644 index dfff2761a7..0000000000 --- a/crates/ui2/src/elements.rs +++ /dev/null @@ -1,21 +0,0 @@ -mod avatar; -mod button; -mod details; -mod icon; -mod indicator; -mod input; -mod label; -mod player; -mod stack; -mod tool_divider; - -pub use avatar::*; -pub use button::*; -pub use details::*; -pub use icon::*; -pub use indicator::*; -pub use input::*; -pub use label::*; -pub use player::*; -pub use stack::*; -pub use tool_divider::*; diff --git a/crates/ui2/src/lib.rs b/crates/ui2/src/lib.rs index 5d0a57c6d9..0fd6eee0db 100644 --- a/crates/ui2/src/lib.rs +++ b/crates/ui2/src/lib.rs @@ -18,17 +18,17 @@ #![allow(dead_code, unused_variables)] mod components; -mod elements; mod elevation; pub mod prelude; pub mod settings; mod static_data; +mod to_extract; pub mod utils; pub use components::*; -pub use elements::*; pub use prelude::*; pub use static_data::*; +pub use to_extract::*; // This needs to be fully qualified with `crate::` otherwise we get a panic // at: diff --git a/crates/ui2/src/to_extract.rs b/crates/ui2/src/to_extract.rs new file mode 100644 index 0000000000..e786dd0f7e --- /dev/null +++ b/crates/ui2/src/to_extract.rs @@ -0,0 +1,47 @@ +mod assistant_panel; +mod breadcrumb; +mod buffer; +mod buffer_search; +mod chat_panel; +mod collab_panel; +mod command_palette; +mod copilot; +mod editor_pane; +mod language_selector; +mod multi_buffer; +mod notifications_panel; +mod panes; +mod project_panel; +mod recent_projects; +mod status_bar; +mod tab_bar; +mod terminal; +mod theme_selector; +mod title_bar; +mod toolbar; +mod traffic_lights; +mod workspace; + +pub use assistant_panel::*; +pub use breadcrumb::*; +pub use buffer::*; +pub use buffer_search::*; +pub use chat_panel::*; +pub use collab_panel::*; +pub use command_palette::*; +pub use copilot::*; +pub use editor_pane::*; +pub use language_selector::*; +pub use multi_buffer::*; +pub use notifications_panel::*; +pub use panes::*; +pub use project_panel::*; +pub use recent_projects::*; +pub use status_bar::*; +pub use tab_bar::*; +pub use terminal::*; +pub use theme_selector::*; +pub use title_bar::*; +pub use toolbar::*; +pub use traffic_lights::*; +pub use workspace::*; diff --git a/crates/ui2/src/components/assistant_panel.rs b/crates/ui2/src/to_extract/assistant_panel.rs similarity index 100% rename from crates/ui2/src/components/assistant_panel.rs rename to crates/ui2/src/to_extract/assistant_panel.rs diff --git a/crates/ui2/src/components/breadcrumb.rs b/crates/ui2/src/to_extract/breadcrumb.rs similarity index 100% rename from crates/ui2/src/components/breadcrumb.rs rename to crates/ui2/src/to_extract/breadcrumb.rs diff --git a/crates/ui2/src/components/buffer.rs b/crates/ui2/src/to_extract/buffer.rs similarity index 100% rename from crates/ui2/src/components/buffer.rs rename to crates/ui2/src/to_extract/buffer.rs diff --git a/crates/ui2/src/components/buffer_search.rs b/crates/ui2/src/to_extract/buffer_search.rs similarity index 100% rename from crates/ui2/src/components/buffer_search.rs rename to crates/ui2/src/to_extract/buffer_search.rs diff --git a/crates/ui2/src/components/chat_panel.rs b/crates/ui2/src/to_extract/chat_panel.rs similarity index 100% rename from crates/ui2/src/components/chat_panel.rs rename to crates/ui2/src/to_extract/chat_panel.rs diff --git a/crates/ui2/src/components/collab_panel.rs b/crates/ui2/src/to_extract/collab_panel.rs similarity index 100% rename from crates/ui2/src/components/collab_panel.rs rename to crates/ui2/src/to_extract/collab_panel.rs diff --git a/crates/ui2/src/components/command_palette.rs b/crates/ui2/src/to_extract/command_palette.rs similarity index 100% rename from crates/ui2/src/components/command_palette.rs rename to crates/ui2/src/to_extract/command_palette.rs diff --git a/crates/ui2/src/components/copilot.rs b/crates/ui2/src/to_extract/copilot.rs similarity index 100% rename from crates/ui2/src/components/copilot.rs rename to crates/ui2/src/to_extract/copilot.rs diff --git a/crates/ui2/src/components/editor_pane.rs b/crates/ui2/src/to_extract/editor_pane.rs similarity index 100% rename from crates/ui2/src/components/editor_pane.rs rename to crates/ui2/src/to_extract/editor_pane.rs diff --git a/crates/ui2/src/components/language_selector.rs b/crates/ui2/src/to_extract/language_selector.rs similarity index 100% rename from crates/ui2/src/components/language_selector.rs rename to crates/ui2/src/to_extract/language_selector.rs diff --git a/crates/ui2/src/components/multi_buffer.rs b/crates/ui2/src/to_extract/multi_buffer.rs similarity index 100% rename from crates/ui2/src/components/multi_buffer.rs rename to crates/ui2/src/to_extract/multi_buffer.rs diff --git a/crates/ui2/src/components/notifications_panel.rs b/crates/ui2/src/to_extract/notifications_panel.rs similarity index 100% rename from crates/ui2/src/components/notifications_panel.rs rename to crates/ui2/src/to_extract/notifications_panel.rs diff --git a/crates/ui2/src/components/panes.rs b/crates/ui2/src/to_extract/panes.rs similarity index 100% rename from crates/ui2/src/components/panes.rs rename to crates/ui2/src/to_extract/panes.rs diff --git a/crates/ui2/src/components/project_panel.rs b/crates/ui2/src/to_extract/project_panel.rs similarity index 100% rename from crates/ui2/src/components/project_panel.rs rename to crates/ui2/src/to_extract/project_panel.rs diff --git a/crates/ui2/src/components/recent_projects.rs b/crates/ui2/src/to_extract/recent_projects.rs similarity index 100% rename from crates/ui2/src/components/recent_projects.rs rename to crates/ui2/src/to_extract/recent_projects.rs diff --git a/crates/ui2/src/components/status_bar.rs b/crates/ui2/src/to_extract/status_bar.rs similarity index 100% rename from crates/ui2/src/components/status_bar.rs rename to crates/ui2/src/to_extract/status_bar.rs diff --git a/crates/ui2/src/components/tab_bar.rs b/crates/ui2/src/to_extract/tab_bar.rs similarity index 100% rename from crates/ui2/src/components/tab_bar.rs rename to crates/ui2/src/to_extract/tab_bar.rs diff --git a/crates/ui2/src/components/terminal.rs b/crates/ui2/src/to_extract/terminal.rs similarity index 100% rename from crates/ui2/src/components/terminal.rs rename to crates/ui2/src/to_extract/terminal.rs diff --git a/crates/ui2/src/components/theme_selector.rs b/crates/ui2/src/to_extract/theme_selector.rs similarity index 100% rename from crates/ui2/src/components/theme_selector.rs rename to crates/ui2/src/to_extract/theme_selector.rs diff --git a/crates/ui2/src/components/title_bar.rs b/crates/ui2/src/to_extract/title_bar.rs similarity index 100% rename from crates/ui2/src/components/title_bar.rs rename to crates/ui2/src/to_extract/title_bar.rs diff --git a/crates/ui2/src/components/toolbar.rs b/crates/ui2/src/to_extract/toolbar.rs similarity index 100% rename from crates/ui2/src/components/toolbar.rs rename to crates/ui2/src/to_extract/toolbar.rs diff --git a/crates/ui2/src/components/traffic_lights.rs b/crates/ui2/src/to_extract/traffic_lights.rs similarity index 100% rename from crates/ui2/src/components/traffic_lights.rs rename to crates/ui2/src/to_extract/traffic_lights.rs diff --git a/crates/ui2/src/components/workspace.rs b/crates/ui2/src/to_extract/workspace.rs similarity index 100% rename from crates/ui2/src/components/workspace.rs rename to crates/ui2/src/to_extract/workspace.rs From 6abdab7735f223462ff4bc0a607c7cd640e88e21 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 3 Nov 2023 17:52:19 -0400 Subject: [PATCH 40/76] Remove `theme.txt` --- theme.txt | 254 ------------------------------------------------------ 1 file changed, 254 deletions(-) delete mode 100644 theme.txt diff --git a/theme.txt b/theme.txt deleted file mode 100644 index 626d6b9fa9..0000000000 --- a/theme.txt +++ /dev/null @@ -1,254 +0,0 @@ - Finished dev [unoptimized + debuginfo] target(s) in 0.39s - Running `target/debug/storybook` -[crates/ui2/src/components/workspace.rs:182] color = [crates/ui2/src/color.rs:162] "ThemeColor debug" = "ThemeColor debug" -ThemeColor { - transparent: "rgba(0x00000000).into()", - mac_os_traffic_light_red: "rgba(0xec695eff).into()", - mac_os_traffic_light_yellow: "rgba(0xf4bf4eff).into()", - mac_os_traffic_light_green: "rgba(0x61c553ff).into()", - border: "rgba(0x464b57ff).into()", - border_variant: "rgba(0x464b57ff).into()", - border_focused: "rgba(0x293b5bff).into()", - border_transparent: "rgba(0x00000000).into()", - elevated_surface: "rgba(0x3b414dff).into()", - surface: "rgba(0x2f343eff).into()", - background: "rgba(0x3b414dff).into()", - filled_element: "rgba(0x3b414dff).into()", - filled_element_hover: "rgba(0xffffff1e).into()", - filled_element_active: "rgba(0xffffff28).into()", - filled_element_selected: "rgba(0x18243dff).into()", - filled_element_disabled: "rgba(0x00000000).into()", - ghost_element: "rgba(0x00000000).into()", - ghost_element_hover: "rgba(0xffffff14).into()", - ghost_element_active: "rgba(0xffffff1e).into()", - ghost_element_selected: "rgba(0x18243dff).into()", - ghost_element_disabled: "rgba(0x00000000).into()", - text: "rgba(0xc8ccd4ff).into()", - text_muted: "rgba(0x838994ff).into()", - text_placeholder: "rgba(0xd07277ff).into()", - text_disabled: "rgba(0x555a63ff).into()", - text_accent: "rgba(0x74ade8ff).into()", - icon_muted: "rgba(0x838994ff).into()", - syntax: SyntaxColor { - comment: "rgba(0x5d636fff).into()", - string: "rgba(0xa1c181ff).into()", - function: "rgba(0x73ade9ff).into()", - keyword: "rgba(0xb477cfff).into()", - }, - status_bar: "rgba(0x3b414dff).into()", - title_bar: "rgba(0x3b414dff).into()", - toolbar: "rgba(0x282c33ff).into()", - tab_bar: "rgba(0x2f343eff).into()", - editor_subheader: "rgba(0x2f343eff).into()", - editor_active_line: "rgba(0x2f343eff).into()", - terminal: "rgba(0x282c33ff).into()", - image_fallback_background: "rgba(0x3b414dff).into()", - git_created: "rgba(0xa1c181ff).into()", - git_modified: "rgba(0x74ade8ff).into()", - git_deleted: "rgba(0xd07277ff).into()", - git_conflict: "rgba(0xdec184ff).into()", - git_ignored: "rgba(0x555a63ff).into()", - git_renamed: "rgba(0xdec184ff).into()", - player: [ - PlayerThemeColors { - cursor: "rgba(0x74ade8ff).into()", - selection: "rgba(0x74ade83d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xa1c181ff).into()", - selection: "rgba(0xa1c1813d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xbe5046ff).into()", - selection: "rgba(0xbe50463d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xbf956aff).into()", - selection: "rgba(0xbf956a3d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xb477cfff).into()", - selection: "rgba(0xb477cf3d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0x6eb4bfff).into()", - selection: "rgba(0x6eb4bf3d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xd07277ff).into()", - selection: "rgba(0xd072773d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xdec184ff).into()", - selection: "rgba(0xdec1843d).into()", - }, - ], -} -[crates/ui2/src/components/workspace.rs:182] color = [crates/ui2/src/color.rs:162] "ThemeColor debug" = "ThemeColor debug" -ThemeColor { - transparent: "rgba(0x00000000).into()", - mac_os_traffic_light_red: "rgba(0xec695eff).into()", - mac_os_traffic_light_yellow: "rgba(0xf4bf4eff).into()", - mac_os_traffic_light_green: "rgba(0x61c553ff).into()", - border: "rgba(0x464b57ff).into()", - border_variant: "rgba(0x464b57ff).into()", - border_focused: "rgba(0x293b5bff).into()", - border_transparent: "rgba(0x00000000).into()", - elevated_surface: "rgba(0x3b414dff).into()", - surface: "rgba(0x2f343eff).into()", - background: "rgba(0x3b414dff).into()", - filled_element: "rgba(0x3b414dff).into()", - filled_element_hover: "rgba(0xffffff1e).into()", - filled_element_active: "rgba(0xffffff28).into()", - filled_element_selected: "rgba(0x18243dff).into()", - filled_element_disabled: "rgba(0x00000000).into()", - ghost_element: "rgba(0x00000000).into()", - ghost_element_hover: "rgba(0xffffff14).into()", - ghost_element_active: "rgba(0xffffff1e).into()", - ghost_element_selected: "rgba(0x18243dff).into()", - ghost_element_disabled: "rgba(0x00000000).into()", - text: "rgba(0xc8ccd4ff).into()", - text_muted: "rgba(0x838994ff).into()", - text_placeholder: "rgba(0xd07277ff).into()", - text_disabled: "rgba(0x555a63ff).into()", - text_accent: "rgba(0x74ade8ff).into()", - icon_muted: "rgba(0x838994ff).into()", - syntax: SyntaxColor { - comment: "rgba(0x5d636fff).into()", - string: "rgba(0xa1c181ff).into()", - function: "rgba(0x73ade9ff).into()", - keyword: "rgba(0xb477cfff).into()", - }, - status_bar: "rgba(0x3b414dff).into()", - title_bar: "rgba(0x3b414dff).into()", - toolbar: "rgba(0x282c33ff).into()", - tab_bar: "rgba(0x2f343eff).into()", - editor_subheader: "rgba(0x2f343eff).into()", - editor_active_line: "rgba(0x2f343eff).into()", - terminal: "rgba(0x282c33ff).into()", - image_fallback_background: "rgba(0x3b414dff).into()", - git_created: "rgba(0xa1c181ff).into()", - git_modified: "rgba(0x74ade8ff).into()", - git_deleted: "rgba(0xd07277ff).into()", - git_conflict: "rgba(0xdec184ff).into()", - git_ignored: "rgba(0x555a63ff).into()", - git_renamed: "rgba(0xdec184ff).into()", - player: [ - PlayerThemeColors { - cursor: "rgba(0x74ade8ff).into()", - selection: "rgba(0x74ade83d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xa1c181ff).into()", - selection: "rgba(0xa1c1813d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xbe5046ff).into()", - selection: "rgba(0xbe50463d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xbf956aff).into()", - selection: "rgba(0xbf956a3d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xb477cfff).into()", - selection: "rgba(0xb477cf3d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0x6eb4bfff).into()", - selection: "rgba(0x6eb4bf3d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xd07277ff).into()", - selection: "rgba(0xd072773d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xdec184ff).into()", - selection: "rgba(0xdec1843d).into()", - }, - ], -} -[crates/ui2/src/components/workspace.rs:182] color = [crates/ui2/src/color.rs:162] "ThemeColor debug" = "ThemeColor debug" -ThemeColor { - transparent: "rgba(0x00000000).into()", - mac_os_traffic_light_red: "rgba(0xec695eff).into()", - mac_os_traffic_light_yellow: "rgba(0xf4bf4eff).into()", - mac_os_traffic_light_green: "rgba(0x61c553ff).into()", - border: "rgba(0x464b57ff).into()", - border_variant: "rgba(0x464b57ff).into()", - border_focused: "rgba(0x293b5bff).into()", - border_transparent: "rgba(0x00000000).into()", - elevated_surface: "rgba(0x3b414dff).into()", - surface: "rgba(0x2f343eff).into()", - background: "rgba(0x3b414dff).into()", - filled_element: "rgba(0x3b414dff).into()", - filled_element_hover: "rgba(0xffffff1e).into()", - filled_element_active: "rgba(0xffffff28).into()", - filled_element_selected: "rgba(0x18243dff).into()", - filled_element_disabled: "rgba(0x00000000).into()", - ghost_element: "rgba(0x00000000).into()", - ghost_element_hover: "rgba(0xffffff14).into()", - ghost_element_active: "rgba(0xffffff1e).into()", - ghost_element_selected: "rgba(0x18243dff).into()", - ghost_element_disabled: "rgba(0x00000000).into()", - text: "rgba(0xc8ccd4ff).into()", - text_muted: "rgba(0x838994ff).into()", - text_placeholder: "rgba(0xd07277ff).into()", - text_disabled: "rgba(0x555a63ff).into()", - text_accent: "rgba(0x74ade8ff).into()", - icon_muted: "rgba(0x838994ff).into()", - syntax: SyntaxColor { - comment: "rgba(0x5d636fff).into()", - string: "rgba(0xa1c181ff).into()", - function: "rgba(0x73ade9ff).into()", - keyword: "rgba(0xb477cfff).into()", - }, - status_bar: "rgba(0x3b414dff).into()", - title_bar: "rgba(0x3b414dff).into()", - toolbar: "rgba(0x282c33ff).into()", - tab_bar: "rgba(0x2f343eff).into()", - editor_subheader: "rgba(0x2f343eff).into()", - editor_active_line: "rgba(0x2f343eff).into()", - terminal: "rgba(0x282c33ff).into()", - image_fallback_background: "rgba(0x3b414dff).into()", - git_created: "rgba(0xa1c181ff).into()", - git_modified: "rgba(0x74ade8ff).into()", - git_deleted: "rgba(0xd07277ff).into()", - git_conflict: "rgba(0xdec184ff).into()", - git_ignored: "rgba(0x555a63ff).into()", - git_renamed: "rgba(0xdec184ff).into()", - player: [ - PlayerThemeColors { - cursor: "rgba(0x74ade8ff).into()", - selection: "rgba(0x74ade83d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xa1c181ff).into()", - selection: "rgba(0xa1c1813d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xbe5046ff).into()", - selection: "rgba(0xbe50463d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xbf956aff).into()", - selection: "rgba(0xbf956a3d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xb477cfff).into()", - selection: "rgba(0xb477cf3d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0x6eb4bfff).into()", - selection: "rgba(0x6eb4bf3d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xd07277ff).into()", - selection: "rgba(0xd072773d).into()", - }, - PlayerThemeColors { - cursor: "rgba(0xdec184ff).into()", - selection: "rgba(0xdec1843d).into()", - }, - ], -} From 3834e26f7150215502754eae999f7fc35ca11008 Mon Sep 17 00:00:00 2001 From: Julia Date: Fri, 3 Nov 2023 18:02:58 -0400 Subject: [PATCH 41/76] Tooltips in mouse event handler & fix executor timer Co-Authored-By: Conrad Irwin --- crates/gpui2/build.rs | 1 + crates/gpui2/src/interactive.rs | 56 +++++++++------------ crates/gpui2/src/platform/mac/dispatcher.rs | 14 +----- crates/gpui2/src/window.rs | 13 +++-- crates/ui2/src/components/tooltip.rs | 34 +++++++++++-- crates/workspace2/src/pane.rs | 8 +-- 6 files changed, 67 insertions(+), 59 deletions(-) diff --git a/crates/gpui2/build.rs b/crates/gpui2/build.rs index c9abfaa6bb..6e8a0868b9 100644 --- a/crates/gpui2/build.rs +++ b/crates/gpui2/build.rs @@ -20,6 +20,7 @@ fn generate_dispatch_bindings() { .header("src/platform/mac/dispatch.h") .allowlist_var("_dispatch_main_q") .allowlist_var("DISPATCH_QUEUE_PRIORITY_DEFAULT") + .allowlist_var("DISPATCH_TIME_NOW") .allowlist_function("dispatch_get_global_queue") .allowlist_function("dispatch_async_f") .allowlist_function("dispatch_after_f") diff --git a/crates/gpui2/src/interactive.rs b/crates/gpui2/src/interactive.rs index 4a6185f737..f7a8f033c4 100644 --- a/crates/gpui2/src/interactive.rs +++ b/crates/gpui2/src/interactive.rs @@ -17,7 +17,6 @@ use std::{ ops::Deref, path::PathBuf, sync::Arc, - time::{Duration, Instant}, }; const DRAG_THRESHOLD: f64 = 2.; @@ -602,13 +601,14 @@ pub trait ElementInteraction: 'static { if let Some(hover_listener) = stateful.hover_listener.take() { let was_hovered = element_state.hover_state.clone(); - let has_mouse_down = element_state.pending_mouse_down.lock().is_some(); + let has_mouse_down = element_state.pending_mouse_down.clone(); cx.on_mouse_event(move |view_state, event: &MouseMoveEvent, phase, cx| { if phase != DispatchPhase::Bubble { return; } - let is_hovered = bounds.contains_point(&event.position) && !has_mouse_down; + let is_hovered = + bounds.contains_point(&event.position) && has_mouse_down.lock().is_none(); let mut was_hovered = was_hovered.lock(); if is_hovered != was_hovered.clone() { @@ -620,33 +620,30 @@ pub trait ElementInteraction: 'static { }); } - // if we're hovered: - // if no timer, start timer - // if timer hits 1s, call tooltip_builder() - // + if let Some(tooltip_builder) = stateful.tooltip_builder.take() { + let tooltip_view = element_state.tooltip_view.clone(); + let pending_mouse_down = element_state.pending_mouse_down.clone(); - if let Some(tooltip_builder) = &stateful.tooltip_builder { - let mut active_tooltip = element_state.active_tooltip.lock(); - let is_hovered = bounds.contains_point(&cx.mouse_position()) - && !element_state.pending_mouse_down.lock().is_some(); + cx.on_mouse_event(move |view_state, event: &MouseMoveEvent, phase, cx| { + if phase != DispatchPhase::Bubble { + return; + } - if is_hovered { - if let Some(active_tooltip) = active_tooltip { - active_tooltip.view = Some(tooltip_builder(cx)) + let is_hovered = bounds.contains_point(&event.position) + && pending_mouse_down.lock().is_none(); + let mut tooltip_view = tooltip_view.lock(); + + if is_hovered { + if tooltip_view.is_none() { + *tooltip_view = Some(tooltip_builder(view_state, cx)); + } } else { - *active_tooltip = Some(ActiveTooltip { - hover_start: Instant::now(), - view: None, - }); + tooltip_view.take(); } - } else { - active_tooltip.take(); - } + }); - if let Some(active_tooltip) = element_state.active_tooltip.lock().as_ref() { - if *element_state.hover_state.lock() { - cx.active_tooltip = Some(active_tooltip.clone()); - } + if let Some(active_tooltip) = element_state.tooltip_view.lock().as_ref() { + cx.active_tooltip = Some(active_tooltip.clone()); } } @@ -837,12 +834,7 @@ pub struct InteractiveElementState { hover_state: Arc>, pending_mouse_down: Arc>>, scroll_offset: Option>>>, - active_tooltip: Arc>>, -} - -pub struct ActiveTooltip { - hover_start: Instant, - view: Option, + tooltip_view: Arc>>, } impl InteractiveElementState { @@ -1194,7 +1186,7 @@ pub(crate) type DragListener = pub(crate) type HoverListener = Box) + 'static>; -pub(crate) type TooltipBuilder = Arc) -> AnyView + 'static>; +pub(crate) type TooltipBuilder = Arc) -> AnyView + 'static>; pub type KeyListener = Box< dyn Fn( diff --git a/crates/gpui2/src/platform/mac/dispatcher.rs b/crates/gpui2/src/platform/mac/dispatcher.rs index f5334912c6..68c0e3b4f5 100644 --- a/crates/gpui2/src/platform/mac/dispatcher.rs +++ b/crates/gpui2/src/platform/mac/dispatcher.rs @@ -11,11 +11,7 @@ use objc::{ }; use parking::{Parker, Unparker}; use parking_lot::Mutex; -use std::{ - ffi::c_void, - sync::Arc, - time::{Duration, SystemTime}, -}; +use std::{ffi::c_void, sync::Arc, time::Duration}; include!(concat!(env!("OUT_DIR"), "/dispatch_sys.rs")); @@ -62,16 +58,10 @@ impl PlatformDispatcher for MacDispatcher { } fn dispatch_after(&self, duration: Duration, runnable: Runnable) { - let now = SystemTime::now(); - let after_duration = now - .duration_since(SystemTime::UNIX_EPOCH) - .unwrap() - .as_nanos() as u64 - + duration.as_nanos() as u64; unsafe { let queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT.try_into().unwrap(), 0); - let when = dispatch_time(0, after_duration as i64); + let when = dispatch_time(DISPATCH_TIME_NOW as u64, duration.as_nanos() as i64); dispatch_after_f( when, queue, diff --git a/crates/gpui2/src/window.rs b/crates/gpui2/src/window.rs index 46ac30592b..fe6f516e43 100644 --- a/crates/gpui2/src/window.rs +++ b/crates/gpui2/src/window.rs @@ -989,11 +989,14 @@ impl<'a> WindowContext<'a> { }); } else if let Some(active_tooltip) = self.app.active_tooltip.take() { self.stack(1, |cx| { - cx.with_element_offset(Some(cx.mouse_position()), |cx| { - let available_space = - size(AvailableSpace::MinContent, AvailableSpace::MinContent); - active_tooltip.draw(available_space, cx); - }); + cx.with_element_offset( + Some(cx.mouse_position() + Point::new(px(8.0), px(8.0))), + |cx| { + let available_space = + size(AvailableSpace::MinContent, AvailableSpace::MinContent); + active_tooltip.draw(available_space, cx); + }, + ); }); } diff --git a/crates/ui2/src/components/tooltip.rs b/crates/ui2/src/components/tooltip.rs index eb53b506eb..f94518224d 100644 --- a/crates/ui2/src/components/tooltip.rs +++ b/crates/ui2/src/components/tooltip.rs @@ -1,20 +1,44 @@ +use std::time::Duration; + use gpui2::{ - div, px, Div, ParentElement, Render, SharedString, Styled, View, ViewContext, VisualContext, + div, px, Component, Div, ParentElement, Render, SharedString, Styled, View, ViewContext, + VisualContext, WindowContext, }; use theme2::ActiveTheme; +const DELAY: Duration = Duration::from_millis(500); + #[derive(Clone, Debug)] pub struct TextTooltip { title: SharedString, + visible: bool, } impl TextTooltip { pub fn new(str: SharedString) -> Self { - Self { title: str } + Self { + title: str, + visible: false, + } } - pub fn build_view(str: SharedString, cx: &mut C) -> C::Result> { - cx.build_view(|cx| TextTooltip::new(str)) + pub fn build_view(str: SharedString, cx: &mut WindowContext) -> View { + let view = cx.build_view(|cx| TextTooltip::new(str)); + + let handle = view.downgrade(); + cx.spawn(|mut cx| async move { + cx.background_executor().timer(DELAY).await; + + handle + .update(&mut cx, |this, cx| { + this.visible = true; + cx.notify(); + }) + .ok(); + }) + .detach(); + + view } } @@ -24,9 +48,11 @@ impl Render for TextTooltip { fn render(&mut self, cx: &mut ViewContext) -> Self::Element { let theme = cx.theme(); div() + .when(!self.visible, |this| this.invisible()) .bg(theme.colors().background) .rounded(px(8.)) .border() + .font("Zed Sans") .border_color(theme.colors().border) .text_color(theme.colors().text) .pl_2() diff --git a/crates/workspace2/src/pane.rs b/crates/workspace2/src/pane.rs index a1ec168488..64b995b538 100644 --- a/crates/workspace2/src/pane.rs +++ b/crates/workspace2/src/pane.rs @@ -9,8 +9,8 @@ use crate::{ use anyhow::Result; use collections::{HashMap, HashSet, VecDeque}; use gpui::{ - AnyView, AppContext, AsyncWindowContext, Component, Div, EntityId, EventEmitter, FocusHandle, - Model, PromptLevel, Render, Task, View, ViewContext, VisualContext, WeakView, WindowContext, + AppContext, AsyncWindowContext, Component, Div, EntityId, EventEmitter, FocusHandle, Model, + PromptLevel, Render, Task, View, ViewContext, VisualContext, WeakView, WindowContext, }; use parking_lot::Mutex; use project2::{Project, ProjectEntryId, ProjectPath}; @@ -1398,13 +1398,9 @@ impl Pane { .group("") .id(item.id()) .cursor_pointer() - .on_hover(|_, hovered, _| { - dbg!(hovered); - }) .when_some(item.tab_tooltip_text(cx), |div, text| { div.tooltip(move |_, cx| TextTooltip::build_view(text.clone(), cx)) }) - // .tooltip(|pane, cx| cx.build_view(|cx| div().child(title))) // .on_drag(move |pane, cx| pane.render_tab(ix, item.boxed_clone(), detail, cx)) // .drag_over::(|d| d.bg(cx.theme().colors().element_drop_target)) // .on_drop(|_view, state: View, cx| { From 5d36331942634031a44146fb99e4d84d8c2b8590 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 3 Nov 2023 23:12:21 +0100 Subject: [PATCH 42/76] storybook2: Remove unreferenced `components` module (#3229) This PR removes the `components` module from `storybook2` as it was dead, unreferenced code. Release Notes: - N/A --- crates/storybook2/src/components.rs | 97 ----------------------------- 1 file changed, 97 deletions(-) delete mode 100644 crates/storybook2/src/components.rs diff --git a/crates/storybook2/src/components.rs b/crates/storybook2/src/components.rs deleted file mode 100644 index a3dca51adc..0000000000 --- a/crates/storybook2/src/components.rs +++ /dev/null @@ -1,97 +0,0 @@ -use gpui2::{ - div, ArcCow, Element, EventContext, Interactive, IntoElement, MouseButton, ParentElement, - StyleHelpers, ViewContext, -}; -use std::{marker::PhantomData, rc::Rc}; - -struct ButtonHandlers { - click: Option)>>, -} - -impl Default for ButtonHandlers { - fn default() -> Self { - Self { click: None } - } -} - -#[derive(Component)] -pub struct Button { - handlers: ButtonHandlers, - label: Option>, - icon: Option>, - data: Rc, - view_type: PhantomData, -} - -// Impl block for buttons without data. -// See below for an impl block for any button. -impl Button { - fn new() -> Self { - Self { - handlers: ButtonHandlers::default(), - label: None, - icon: None, - data: Rc::new(()), - view_type: PhantomData, - } - } - - pub fn data(self, data: D) -> Button { - Button { - handlers: ButtonHandlers::default(), - label: self.label, - icon: self.icon, - data: Rc::new(data), - view_type: PhantomData, - } - } -} - -// Impl block for button regardless of its data type. -impl Button { - pub fn label(mut self, label: impl Into>) -> Self { - self.label = Some(label.into()); - self - } - - pub fn icon(mut self, icon: impl Into>) -> Self { - self.icon = Some(icon.into()); - self - } - - pub fn on_click( - mut self, - handler: impl Fn(&mut V, &D, &mut EventContext) + 'static, - ) -> Self { - self.handlers.click = Some(Rc::new(handler)); - self - } -} - -pub fn button() -> Button { - Button::new() -} - -impl Button { - fn render( - &mut self, - view: &mut V, - cx: &mut ViewContext, - ) -> impl IntoElement + Interactive { - // let colors = &cx.theme::().colors; - - let button = div() - // .fill(colors.error(0.5)) - .h_4() - .children(self.label.clone()); - - if let Some(handler) = self.handlers.click.clone() { - let data = self.data.clone(); - button.on_mouse_down(MouseButton::Left, move |view, event, cx| { - handler(view, data.as_ref(), cx) - }) - } else { - button - } - } -} From 9ce7199d2dea638e18916d53fa6680db84371a77 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Fri, 3 Nov 2023 18:19:54 -0400 Subject: [PATCH 43/76] Add some initial docs --- crates/ui2/docs/building-ui.md | 39 ++++++++ crates/ui2/docs/elevation.md | 57 ------------ crates/ui2/docs/hello-world.md | 160 +++++++++++++++++++++++++++++++++ crates/ui2/docs/todo.md | 25 ++++++ crates/ui2/src/lib.rs | 66 +------------- 5 files changed, 227 insertions(+), 120 deletions(-) create mode 100644 crates/ui2/docs/building-ui.md delete mode 100644 crates/ui2/docs/elevation.md create mode 100644 crates/ui2/docs/hello-world.md create mode 100644 crates/ui2/docs/todo.md diff --git a/crates/ui2/docs/building-ui.md b/crates/ui2/docs/building-ui.md new file mode 100644 index 0000000000..a2a3ff697b --- /dev/null +++ b/crates/ui2/docs/building-ui.md @@ -0,0 +1,39 @@ +# Building UI with GPUI + +## Common patterns + +### Using the Label Component to Create UI Text + +The `Label` component helps in displaying text on user interfaces. It creates an interface where specific parameters such as label color, line height style, and strikethrough can be set. + +Firstly, to create a `Label` instance, use the `Label::new()` function. This function takes a string that will be displayed as text in the interface. + +```rust +Label::new("Hello, world!"); +``` + +Now let's dive a bit deeper into how to customize `Label` instances: + +- **Setting Color:** To set the color of the label using various predefined color options such as `Default`, `Muted`, `Created`, `Modified`, `Deleted`, etc, the `color()` function is called on the `Label` instance: + + ```rust + Label::new("Hello, world!").color(LabelColor::Default); + ``` + +- **Setting Line Height Style:** To set the line height style, the `line_height_style()` function is utilized: + + ```rust + Label::new("Hello, world!").line_height_style(LineHeightStyle::TextLabel); + ``` + +- **Adding a Strikethrough:** To add a strikethrough in a `Label`, the `set_strikethrough()` function is used: + + ```rust + Label::new("Hello, world!").set_strikethrough(true); + ``` + +That's it! Now you can use the `Label` component to create and customize text on your application's interface. + +## Building a new component + +TODO diff --git a/crates/ui2/docs/elevation.md b/crates/ui2/docs/elevation.md deleted file mode 100644 index bd34de3396..0000000000 --- a/crates/ui2/docs/elevation.md +++ /dev/null @@ -1,57 +0,0 @@ -# Elevation - -Elevation in Zed applies to all surfaces and components. Elevation is categorized into levels. - -Elevation accomplishes the following: -- Allows surfaces to move in front of or behind others, such as content scrolling beneath app top bars. -- Reflects spatial relationships, for instance, how a floating action button’s shadow intimates its disconnection from a collection of cards. -- Directs attention to structures at the highest elevation, like a temporary dialog arising in front of other surfaces. - -Elevations are the initial elevation values assigned to components by default. - -Components may transition to a higher elevation in some cases, like user interations. - -On such occasions, components transition to predetermined dynamic elevation offsets. These are the typical elevations to which components move when they are not at rest. - -## Understanding Elevation - -Elevation can be thought of as the physical closeness of an element to the user. Elements with lower elevations are physically further away from the user on the z-axis and appear to be underneath elements with higher elevations. - -Material Design 3 has a some great visualizations of elevation that may be helpful to understanding the mental modal of elevation. [Material Design – Elevation](https://m3.material.io/styles/elevation/overview) - -## Elevation Levels - -Zed integrates six unique elevation levels in its design system. The elevation of a surface is expressed as a whole number ranging from 0 to 5, both numbers inclusive. A component’s elevation is ascertained by combining the component’s resting elevation with any dynamic elevation offsets. - -The levels are detailed as follows: - -0. App Background -1. UI Surface -2. Elevated Elements -3. Wash -4. Focused Element -5. Dragged Element - -### 0. App Background - -The app background constitutes the lowest elevation layer, appearing behind all other surfaces and components. It is predominantly used for the background color of the app. - -### 1. UI Surface - -The UI Surface is the standard elevation for components and is placed above the app background. It is generally used for the background color of the app bar, card, and sheet. - -### 2. Elevated Elements - -Elevated elements appear above the UI surface layer surfaces and components. Elevated elements are predominantly used for creating popovers, context menus, and tooltips. - -### 3. Wash - -Wash denotes a distinct elevation reserved to isolate app UI layers from high elevation components such as modals, notifications, and overlaid panels. The wash may not consistently be visible when these components are active. This layer is often referred to as a scrim or overlay and the background color of the wash is typically deployed in its design. - -### 4. Focused Element - -Focused elements obtain a higher elevation above surfaces and components at wash elevation. They are often used for modals, notifications, and overlaid panels and indicate that they are the sole element the user is interacting with at the moment. - -### 5. Dragged Element - -Dragged elements gain the highest elevation, thus appearing above surfaces and components at the elevation of focused elements. These are typically used for elements that are being dragged, following the cursor diff --git a/crates/ui2/docs/hello-world.md b/crates/ui2/docs/hello-world.md new file mode 100644 index 0000000000..c6ded9ce34 --- /dev/null +++ b/crates/ui2/docs/hello-world.md @@ -0,0 +1,160 @@ +# Hello World + +Let's work through the prototypical "Build a todo app" example to showcase how we might build a simple component from scratch. + +## Setup + +We'll create a headline, a list of todo items, and a form to add new items. + +~~~rust +struct TodoList { + headline: SharedString, + items: Vec, + submit_form: ClickHandler +} + +struct TodoItem { + text: SharedString, + completed: bool, + delete: ClickHandler +} + +impl TodoList { + pub fn new( + // Here we impl Into + headline: impl Into, + items: Vec, + submit_form: ClickHandler + ) -> Self { + Self { + // and here we call .into() so we can simply pass a string + // when creating the headline. This pattern is used throughout + // outr components + headline: headline.into(), + items: Vec::new(), + submit_form, + } + } +} +~~~ + +All of this is relatively straightforward. + +We use [gpui2::SharedString] in components instead of [std::string::String]. This allows us to [TODO: someone who actually knows please explain why we use SharedString]. + +When we want to pass an action we pass a `ClickHandler`. Whenever we want to add an action, the struct it belongs to needs to be generic over the view type `V`. + +~~~rust +use gpui2::hsla + +impl TodoList { + // ... + fn render(self, _view: &mut V, cx: &mut ViewContext) -> impl Component { + div().size_4().bg(hsla(50.0/360.0, 1.0, 0.5, 1.0)) + } +} +~~~ + +Every component needs a render method, and it should return `impl Component`. This basic component will render a 16x16px yellow square on the screen. + +A couple of questions might come to mind: + +**Why is `size_4()` 16px, not 4px?** + +gpui's style system is based on conventions created by [Tailwind CSS](https://tailwindcss.com/). Here is an example of the list of sizes for `width`: [Width - TailwindCSS Docs](https://tailwindcss.com/docs/width). + +I'll quote from the Tailwind [Core Concepts](https://tailwindcss.com/docs/utility-first) docs here: + +> Now I know what you’re thinking, “this is an atrocity, what a horrible mess!” +> and you’re right, it’s kind of ugly. In fact it’s just about impossible to +> think this is a good idea the first time you see it — +> you have to actually try it. + +As you start using the Tailwind-style conventions you will be surprised how quick it makes it to build out UIs. + +**Why `50.0/360.0` in `hsla()`?** + +gpui [gpui2::Hsla] use `0.0-1.0` for all it's values, but it is common for tools to use `0-360` for hue. + +This may change in the future, but this is a little trick that let's you use familiar looking values. + +## Building out the container + +Let's grab our [theme2::colors::ThemeColors] from the theme and start building out a basic container. + +We can access the current theme's colors like this: + +~~~rust +impl TodoList { + // ... + fn render(self, _view: &mut V, cx: &mut ViewContext) -> impl Component { + let color = cx.theme().colors() + + div().size_4().hsla(50.0/360.0, 1.0, 0.5, 1.0) + } +} +~~~ + +Now we have access to the complete set of colors defined in the theme. + +~~~rust +use gpui2::hsla + +impl TodoList { + // ... + fn render(self, _view: &mut V, cx: &mut ViewContext) -> impl Component { + let color = cx.theme().colors() + + div().size_4().bg(color.surface) + } +} +~~~ + +Let's finish up some basic styles for the container then move on to adding the other elements. + +~~~rust +use gpui2::hsla + +impl TodoList { + // ... + fn render(self, _view: &mut V, cx: &mut ViewContext) -> impl Component { + let color = cx.theme().colors() + + div() + // Flex properties + .flex() + .flex_col() // Stack elements vertically + .gap_2() // Add 8px of space between elements + // Size properties + .w_96() // Set width to 384px + .p_4() // Add 16px of padding on all sides + // Color properties + .bg(color.surface) // Set background color + .text_color(color.text) // Set text color + // Border properties + .rounded_md() // Add 4px of border radius + .border() // Add a 1px border + .border_color(color.border) + .child( + "Hello, world!" + ) + } +} +~~~ + +### Headline + +TODO + +### List of todo items + +TODO + +### Input + +TODO + + +### End result + +TODO diff --git a/crates/ui2/docs/todo.md b/crates/ui2/docs/todo.md new file mode 100644 index 0000000000..e7a053ecf4 --- /dev/null +++ b/crates/ui2/docs/todo.md @@ -0,0 +1,25 @@ +## Documentation priorities: + +These are the priorities to get documented, in a rough stack rank order: + +- [ ] label +- [ ] button +- [ ] icon_button +- [ ] icon +- [ ] list +- [ ] avatar +- [ ] panel +- [ ] modal +- [ ] palette +- [ ] input +- [ ] facepile +- [ ] player +- [ ] stacks +- [ ] context menu +- [ ] input +- [ ] textarea/multiline input (not built - not an editor) +- [ ] indicator +- [ ] public actor +- [ ] keybinding +- [ ] tab +- [ ] toast diff --git a/crates/ui2/src/lib.rs b/crates/ui2/src/lib.rs index d53469638a..61551a198e 100644 --- a/crates/ui2/src/lib.rs +++ b/crates/ui2/src/lib.rs @@ -1,29 +1,3 @@ -// TODO: -// Document these: -// - [ ] - label -// - [ ] - button -// - [ ] - icon_button -// - [ ] - icon -// - [ ] - list -// - [ ] - avatar -// - [ ] - panel -// - [ ] - modal -// - [ ] - palette -// - [ ] - input -// - [ ] - facepile -// - [ ] - player -// - [ ] - stacks -// - [ ] - context menu -// - [ ] - input -// - [ ] - textarea (not built) -// - [ ] - indicator -// - [ ] - public actor -// - [ ] - keybinding -// - [ ] - tab -// - [ ] - toast -// - [ ] - status_toast (maybe not built?) -// - [ ] - notification_toast - //! # UI – Zed UI Primitives & Components //! //! This crate provides a set of UI primitives and components that are used to build all of the elements in Zed's UI. @@ -33,44 +7,10 @@ //! This crate is still a work in progress. The initial primitives and components are built for getting all the UI on the screen, //! much of the state and functionality is mocked or hard codeded, and performance has not been a focus. //! -//! Expect some inconsistencies from component to component as we work out the best way to build these components. -//! -//! ## Getting Started -//! -//! This is a quick primer to get you started using the UI components. -//! -//! You shouldn't need to construct an element from scratch very often. If you find -//! yourself manually styling things like hover, text colors, etc, you should -//! probably check that there isn't already a base component for whatever you are building. -//! -//! Here is an into to some of the most common elements: -//! -//! ### Text -//! -//! For generic UI text most frequently you will use a [`Label`] component. -//! -//! ```rust -//! use ui2::prelude::*; -//! use ui2::{Label, LabelColor}; -//! -//! pub fn render_some_ui_text() -> impl Component { -//! div().p_2().child( -//! Label::new("Hello World") -//! .color(LabelColor::Muted) -//! ) -//! } -//! ``` -//! -//! ### Interactive Elements -//! -//! - Icon: To make an icon interactive, use [`IconButton`]. -//! - Button: To make a button interactive, use [`Button`]. -//! -//! ## Design Philosophy -//! -//! Work in Progress! -//! +#![doc = include_str!("../docs/hello-world.md")] +#![doc = include_str!("../docs/building-ui.md")] +#![doc = include_str!("../docs/todo.md")] // TODO: Fix warnings instead of supressing. #![allow(dead_code, unused_variables)] From 4725cd2cd6b396c5adf19c0a27d87a1750598cf3 Mon Sep 17 00:00:00 2001 From: Julia Date: Fri, 3 Nov 2023 18:37:15 -0400 Subject: [PATCH 44/76] Move more tooltip logic into gpui2 & fix tooltip moving on paint Co-Authored-By: Conrad Irwin --- crates/gpui2/src/app.rs | 7 +++- crates/gpui2/src/geometry.rs | 2 +- crates/gpui2/src/interactive.rs | 58 ++++++++++++++++++++++------ crates/gpui2/src/window.rs | 13 +++---- crates/ui2/src/components/tooltip.rs | 33 +--------------- crates/workspace2/src/pane.rs | 2 +- 6 files changed, 61 insertions(+), 54 deletions(-) diff --git a/crates/gpui2/src/app.rs b/crates/gpui2/src/app.rs index 974395e897..9e454dc652 100644 --- a/crates/gpui2/src/app.rs +++ b/crates/gpui2/src/app.rs @@ -157,7 +157,7 @@ pub struct AppContext { flushing_effects: bool, pending_updates: usize, pub(crate) active_drag: Option, - pub(crate) active_tooltip: Option, + pub(crate) active_tooltip: Option, pub(crate) next_frame_callbacks: HashMap>, pub(crate) frame_consumers: HashMap>, pub(crate) background_executor: BackgroundExecutor, @@ -898,3 +898,8 @@ pub(crate) struct AnyDrag { pub view: AnyView, pub cursor_offset: Point, } + +pub(crate) struct AnyTooltip { + pub view: AnyView, + pub cursor_offset: Point, +} diff --git a/crates/gpui2/src/geometry.rs b/crates/gpui2/src/geometry.rs index 081b11aae0..d6755a5397 100644 --- a/crates/gpui2/src/geometry.rs +++ b/crates/gpui2/src/geometry.rs @@ -21,7 +21,7 @@ pub fn point(x: T, y: T) -> Point { } impl Point { - pub fn new(x: T, y: T) -> Self { + pub const fn new(x: T, y: T) -> Self { Self { x, y } } diff --git a/crates/gpui2/src/interactive.rs b/crates/gpui2/src/interactive.rs index f7a8f033c4..dd09ad512b 100644 --- a/crates/gpui2/src/interactive.rs +++ b/crates/gpui2/src/interactive.rs @@ -1,8 +1,8 @@ use crate::{ - div, point, px, Action, AnyDrag, AnyView, AppContext, BorrowWindow, Bounds, Component, - DispatchContext, DispatchPhase, Div, Element, ElementId, FocusHandle, KeyMatch, Keystroke, - Modifiers, Overflow, Pixels, Point, Render, SharedString, Size, Style, StyleRefinement, View, - ViewContext, + div, point, px, Action, AnyDrag, AnyTooltip, AnyView, AppContext, BorrowWindow, Bounds, + Component, DispatchContext, DispatchPhase, Div, Element, ElementId, FocusHandle, KeyMatch, + Keystroke, Modifiers, Overflow, Pixels, Point, Render, SharedString, Size, Style, + StyleRefinement, View, ViewContext, }; use collections::HashMap; use derive_more::{Deref, DerefMut}; @@ -17,9 +17,12 @@ use std::{ ops::Deref, path::PathBuf, sync::Arc, + time::Duration, }; const DRAG_THRESHOLD: f64 = 2.; +const TOOLTIP_DELAY: Duration = Duration::from_millis(500); +const TOOLTIP_OFFSET: Point = Point::new(px(10.0), px(8.0)); pub trait StatelessInteractive: Element { fn stateless_interaction(&mut self) -> &mut StatelessInteraction; @@ -621,7 +624,7 @@ pub trait ElementInteraction: 'static { } if let Some(tooltip_builder) = stateful.tooltip_builder.take() { - let tooltip_view = element_state.tooltip_view.clone(); + let active_tooltip = element_state.active_tooltip.clone(); let pending_mouse_down = element_state.pending_mouse_down.clone(); cx.on_mouse_event(move |view_state, event: &MouseMoveEvent, phase, cx| { @@ -631,19 +634,44 @@ pub trait ElementInteraction: 'static { let is_hovered = bounds.contains_point(&event.position) && pending_mouse_down.lock().is_none(); - let mut tooltip_view = tooltip_view.lock(); + let mut tooltip_lock = active_tooltip.lock(); if is_hovered { - if tooltip_view.is_none() { - *tooltip_view = Some(tooltip_builder(view_state, cx)); + if tooltip_lock.is_none() { + *tooltip_lock = Some(ActiveTooltip { + view: tooltip_builder(view_state, cx), + visible: false, + coordinates: event.position, + }); + + let active_tooltip = active_tooltip.clone(); + cx.spawn(move |view, mut cx| async move { + cx.background_executor().timer(TOOLTIP_DELAY).await; + + view.update(&mut cx, |_, cx| { + if let Some(active_tooltip) = active_tooltip.lock().as_mut() { + active_tooltip.visible = true; + active_tooltip.coordinates = + cx.mouse_position() + TOOLTIP_OFFSET; + } + cx.notify(); + }) + .ok() + }) + .detach(); } } else { - tooltip_view.take(); + tooltip_lock.take(); } }); - if let Some(active_tooltip) = element_state.tooltip_view.lock().as_ref() { - cx.active_tooltip = Some(active_tooltip.clone()); + if let Some(active_tooltip) = element_state.active_tooltip.lock().as_ref() { + if active_tooltip.visible { + cx.active_tooltip = Some(AnyTooltip { + view: active_tooltip.view.clone(), + cursor_offset: active_tooltip.coordinates, + }); + } } } @@ -834,7 +862,13 @@ pub struct InteractiveElementState { hover_state: Arc>, pending_mouse_down: Arc>>, scroll_offset: Option>>>, - tooltip_view: Arc>>, + active_tooltip: Arc>>, +} + +struct ActiveTooltip { + view: AnyView, + visible: bool, + coordinates: Point, } impl InteractiveElementState { diff --git a/crates/gpui2/src/window.rs b/crates/gpui2/src/window.rs index fe6f516e43..9cab40082b 100644 --- a/crates/gpui2/src/window.rs +++ b/crates/gpui2/src/window.rs @@ -989,14 +989,11 @@ impl<'a> WindowContext<'a> { }); } else if let Some(active_tooltip) = self.app.active_tooltip.take() { self.stack(1, |cx| { - cx.with_element_offset( - Some(cx.mouse_position() + Point::new(px(8.0), px(8.0))), - |cx| { - let available_space = - size(AvailableSpace::MinContent, AvailableSpace::MinContent); - active_tooltip.draw(available_space, cx); - }, - ); + cx.with_element_offset(Some(active_tooltip.cursor_offset), |cx| { + let available_space = + size(AvailableSpace::MinContent, AvailableSpace::MinContent); + active_tooltip.view.draw(available_space, cx); + }); }); } diff --git a/crates/ui2/src/components/tooltip.rs b/crates/ui2/src/components/tooltip.rs index f94518224d..0bc00a9be1 100644 --- a/crates/ui2/src/components/tooltip.rs +++ b/crates/ui2/src/components/tooltip.rs @@ -1,44 +1,16 @@ use std::time::Duration; -use gpui2::{ - div, px, Component, Div, ParentElement, Render, SharedString, Styled, View, ViewContext, - VisualContext, WindowContext, -}; +use gpui2::{div, px, Div, ParentElement, Render, SharedString, Styled, ViewContext}; use theme2::ActiveTheme; -const DELAY: Duration = Duration::from_millis(500); - #[derive(Clone, Debug)] pub struct TextTooltip { title: SharedString, - visible: bool, } impl TextTooltip { pub fn new(str: SharedString) -> Self { - Self { - title: str, - visible: false, - } - } - - pub fn build_view(str: SharedString, cx: &mut WindowContext) -> View { - let view = cx.build_view(|cx| TextTooltip::new(str)); - - let handle = view.downgrade(); - cx.spawn(|mut cx| async move { - cx.background_executor().timer(DELAY).await; - - handle - .update(&mut cx, |this, cx| { - this.visible = true; - cx.notify(); - }) - .ok(); - }) - .detach(); - - view + Self { title: str } } } @@ -48,7 +20,6 @@ impl Render for TextTooltip { fn render(&mut self, cx: &mut ViewContext) -> Self::Element { let theme = cx.theme(); div() - .when(!self.visible, |this| this.invisible()) .bg(theme.colors().background) .rounded(px(8.)) .border() diff --git a/crates/workspace2/src/pane.rs b/crates/workspace2/src/pane.rs index 64b995b538..131a3e977b 100644 --- a/crates/workspace2/src/pane.rs +++ b/crates/workspace2/src/pane.rs @@ -1399,7 +1399,7 @@ impl Pane { .id(item.id()) .cursor_pointer() .when_some(item.tab_tooltip_text(cx), |div, text| { - div.tooltip(move |_, cx| TextTooltip::build_view(text.clone(), cx)) + div.tooltip(move |_, cx| cx.build_view(|cx| TextTooltip::new(text.clone()))) }) // .on_drag(move |pane, cx| pane.render_tab(ix, item.boxed_clone(), detail, cx)) // .drag_over::(|d| d.bg(cx.theme().colors().element_drop_target)) From 2dd32dbe870fcd09e89172d87983be8feeef9473 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Fri, 3 Nov 2023 15:53:54 -0700 Subject: [PATCH 45/76] Allow language injection in markdown code blocks in channel notes --- crates/collab_ui/src/channel_view.rs | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/crates/collab_ui/src/channel_view.rs b/crates/collab_ui/src/channel_view.rs index 1bdcebd018..fe46f3bb3e 100644 --- a/crates/collab_ui/src/channel_view.rs +++ b/crates/collab_ui/src/channel_view.rs @@ -75,23 +75,23 @@ impl ChannelView { let workspace = workspace.read(cx); let project = workspace.project().to_owned(); let channel_store = ChannelStore::global(cx); - let markdown = workspace - .app_state() - .languages - .language_for_name("Markdown"); + let language_registry = workspace.app_state().languages.clone(); + let markdown = language_registry.language_for_name("Markdown"); let channel_buffer = channel_store.update(cx, |store, cx| store.open_channel_buffer(channel_id, cx)); cx.spawn(|mut cx| async move { let channel_buffer = channel_buffer.await?; + let markdown = markdown.await.log_err(); - if let Some(markdown) = markdown.await.log_err() { - channel_buffer.update(&mut cx, |buffer, cx| { - buffer.buffer().update(cx, |buffer, cx| { + channel_buffer.update(&mut cx, |buffer, cx| { + buffer.buffer().update(cx, |buffer, cx| { + buffer.set_language_registry(language_registry); + if let Some(markdown) = markdown { buffer.set_language(Some(markdown), cx); - }) - }); - } + } + }) + }); pane.update(&mut cx, |pane, cx| { let buffer_id = channel_buffer.read(cx).remote_id(cx); From de5458cfe0f419324a7258647b887c0eb8db5c71 Mon Sep 17 00:00:00 2001 From: Conrad Irwin Date: Fri, 3 Nov 2023 21:40:28 -0600 Subject: [PATCH 46/76] Update tooltip code a bit This fixes a tiny UX bug where the tooltip would appear to move if you hovered over an element, then moved your mouse out and back within 500ms. The fix is to retain the task, so we can drop it to cancel it when the mouse leaves. Also changes the time we construct the tooltip to the time it first shows. --- crates/gpui2/src/app.rs | 1 + crates/gpui2/src/interactive.rs | 64 ++++++++++++++-------------- crates/ui2/src/components/tooltip.rs | 2 - 3 files changed, 32 insertions(+), 35 deletions(-) diff --git a/crates/gpui2/src/app.rs b/crates/gpui2/src/app.rs index 9e454dc652..bc9101fa0c 100644 --- a/crates/gpui2/src/app.rs +++ b/crates/gpui2/src/app.rs @@ -899,6 +899,7 @@ pub(crate) struct AnyDrag { pub cursor_offset: Point, } +#[derive(Clone)] pub(crate) struct AnyTooltip { pub view: AnyView, pub cursor_offset: Point, diff --git a/crates/gpui2/src/interactive.rs b/crates/gpui2/src/interactive.rs index dd09ad512b..da208b3813 100644 --- a/crates/gpui2/src/interactive.rs +++ b/crates/gpui2/src/interactive.rs @@ -2,7 +2,7 @@ use crate::{ div, point, px, Action, AnyDrag, AnyTooltip, AnyView, AppContext, BorrowWindow, Bounds, Component, DispatchContext, DispatchPhase, Div, Element, ElementId, FocusHandle, KeyMatch, Keystroke, Modifiers, Overflow, Pixels, Point, Render, SharedString, Size, Style, - StyleRefinement, View, ViewContext, + StyleRefinement, Task, View, ViewContext, }; use collections::HashMap; use derive_more::{Deref, DerefMut}; @@ -627,50 +627,48 @@ pub trait ElementInteraction: 'static { let active_tooltip = element_state.active_tooltip.clone(); let pending_mouse_down = element_state.pending_mouse_down.clone(); - cx.on_mouse_event(move |view_state, event: &MouseMoveEvent, phase, cx| { + cx.on_mouse_event(move |_, event: &MouseMoveEvent, phase, cx| { if phase != DispatchPhase::Bubble { return; } let is_hovered = bounds.contains_point(&event.position) && pending_mouse_down.lock().is_none(); - let mut tooltip_lock = active_tooltip.lock(); - - if is_hovered { - if tooltip_lock.is_none() { - *tooltip_lock = Some(ActiveTooltip { - view: tooltip_builder(view_state, cx), - visible: false, - coordinates: event.position, - }); + if !is_hovered { + active_tooltip.lock().take(); + return; + } + if active_tooltip.lock().is_none() { + let task = cx.spawn({ let active_tooltip = active_tooltip.clone(); - cx.spawn(move |view, mut cx| async move { - cx.background_executor().timer(TOOLTIP_DELAY).await; + let tooltip_builder = tooltip_builder.clone(); - view.update(&mut cx, |_, cx| { - if let Some(active_tooltip) = active_tooltip.lock().as_mut() { - active_tooltip.visible = true; - active_tooltip.coordinates = - cx.mouse_position() + TOOLTIP_OFFSET; - } + move |view, mut cx| async move { + cx.background_executor().timer(TOOLTIP_DELAY).await; + view.update(&mut cx, move |view_state, cx| { + active_tooltip.lock().replace(ActiveTooltip { + waiting: None, + tooltip: Some(AnyTooltip { + view: tooltip_builder(view_state, cx), + cursor_offset: cx.mouse_position() + TOOLTIP_OFFSET, + }), + }); cx.notify(); }) - .ok() - }) - .detach(); - } - } else { - tooltip_lock.take(); + .ok(); + } + }); + active_tooltip.lock().replace(ActiveTooltip { + waiting: Some(task), + tooltip: None, + }); } }); if let Some(active_tooltip) = element_state.active_tooltip.lock().as_ref() { - if active_tooltip.visible { - cx.active_tooltip = Some(AnyTooltip { - view: active_tooltip.view.clone(), - cursor_offset: active_tooltip.coordinates, - }); + if active_tooltip.tooltip.is_some() { + cx.active_tooltip = active_tooltip.tooltip.clone() } } } @@ -866,9 +864,9 @@ pub struct InteractiveElementState { } struct ActiveTooltip { - view: AnyView, - visible: bool, - coordinates: Point, + #[allow(unused)] // used to drop the task + waiting: Option>, + tooltip: Option, } impl InteractiveElementState { diff --git a/crates/ui2/src/components/tooltip.rs b/crates/ui2/src/components/tooltip.rs index 0bc00a9be1..c05214eea4 100644 --- a/crates/ui2/src/components/tooltip.rs +++ b/crates/ui2/src/components/tooltip.rs @@ -1,5 +1,3 @@ -use std::time::Duration; - use gpui2::{div, px, Div, ParentElement, Render, SharedString, Styled, ViewContext}; use theme2::ActiveTheme; From 9f40a5c53f29e6a5c2902cab4a62af3d9154d2d9 Mon Sep 17 00:00:00 2001 From: Kirill Bulatov Date: Sat, 4 Nov 2023 13:54:34 +0200 Subject: [PATCH 47/76] Suppress unused vars warning generated by gpui macro --- crates/gpui_macros/src/gpui_macros.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/crates/gpui_macros/src/gpui_macros.rs b/crates/gpui_macros/src/gpui_macros.rs index aa55c27eaa..62fba3b612 100644 --- a/crates/gpui_macros/src/gpui_macros.rs +++ b/crates/gpui_macros/src/gpui_macros.rs @@ -170,6 +170,8 @@ pub fn test(args: TokenStream, function: TokenStream) -> TokenStream { #max_retries, #detect_nondeterminism, &mut |cx, foreground_platform, deterministic, seed| { + // some of the macro contents do not use all variables, silence the warnings + let _ = (&cx, &foreground_platform, &deterministic, &seed); #cx_vars cx.foreground().run(#inner_fn_name(#inner_fn_args)); #cx_teardowns @@ -247,6 +249,8 @@ pub fn test(args: TokenStream, function: TokenStream) -> TokenStream { #max_retries, #detect_nondeterminism, &mut |cx, foreground_platform, deterministic, seed| { + // some of the macro contents do not use all variables, silence the warnings + let _ = (&cx, &foreground_platform, &deterministic, &seed); #cx_vars #inner_fn_name(#inner_fn_args); #cx_teardowns From b125cc279f5cbcb2042d7383322119fcddc2e00c Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Sat, 4 Nov 2023 11:24:31 -0400 Subject: [PATCH 48/76] Simplify toggle, do some reorganization --- crates/ui2/src/components.rs | 4 + crates/ui2/src/components/button.rs | 21 +- crates/ui2/src/components/context_menu.rs | 17 +- crates/ui2/src/components/list.rs | 324 +++--------------- crates/ui2/src/components/player.rs | 18 + crates/ui2/src/components/slot.rs | 14 + crates/ui2/src/components/toggle.rs | 61 ++++ crates/ui2/src/prelude.rs | 76 ---- crates/ui2/src/static_data.rs | 125 ++----- crates/ui2/src/to_extract/collab_panel.rs | 21 +- .../ui2/src/to_extract/notifications_panel.rs | 29 +- crates/ui2/src/to_extract/project_panel.rs | 13 +- 12 files changed, 224 insertions(+), 499 deletions(-) create mode 100644 crates/ui2/src/components/slot.rs create mode 100644 crates/ui2/src/components/toggle.rs diff --git a/crates/ui2/src/components.rs b/crates/ui2/src/components.rs index f7674c2bd4..692cd55e8e 100644 --- a/crates/ui2/src/components.rs +++ b/crates/ui2/src/components.rs @@ -16,9 +16,11 @@ mod palette; mod panel; mod player; mod player_stack; +mod slot; mod stack; mod tab; mod toast; +mod toggle; mod tool_divider; pub use avatar::*; @@ -39,7 +41,9 @@ pub use palette::*; pub use panel::*; pub use player::*; pub use player_stack::*; +pub use slot::*; pub use stack::*; pub use tab::*; pub use toast::*; +pub use toggle::*; pub use tool_divider::*; diff --git a/crates/ui2/src/components/button.rs b/crates/ui2/src/components/button.rs index 073bcdbb45..381db20a83 100644 --- a/crates/ui2/src/components/button.rs +++ b/crates/ui2/src/components/button.rs @@ -2,8 +2,27 @@ use std::sync::Arc; use gpui2::{div, rems, DefiniteLength, Hsla, MouseButton, WindowContext}; -use crate::prelude::*; use crate::{h_stack, Icon, IconColor, IconElement, Label, LabelColor, LineHeightStyle}; +use crate::{prelude::*, IconButton}; + +/// Provides the flexibility to use either a standard +/// button or an icon button in a given context. +pub enum ButtonOrIconButton { + Button(Button), + IconButton(IconButton), +} + +impl From> for ButtonOrIconButton { + fn from(value: Button) -> Self { + Self::Button(value) + } +} + +impl From> for ButtonOrIconButton { + fn from(value: IconButton) -> Self { + Self::IconButton(value) + } +} #[derive(Default, PartialEq, Clone, Copy)] pub enum IconPosition { diff --git a/crates/ui2/src/components/context_menu.rs b/crates/ui2/src/components/context_menu.rs index 8345be1b35..4f265a376d 100644 --- a/crates/ui2/src/components/context_menu.rs +++ b/crates/ui2/src/components/context_menu.rs @@ -8,7 +8,7 @@ pub enum ContextMenuItem { } impl ContextMenuItem { - fn to_list_item(self) -> ListItem { + fn to_list_item(self) -> ListItem { match self { ContextMenuItem::Header(label) => ListSubHeader::new(label).into(), ContextMenuItem::Entry(label) => { @@ -49,15 +49,12 @@ impl ContextMenu { .bg(cx.theme().colors().elevated_surface) .border() .border_color(cx.theme().colors().border) - .child( - List::new( - self.items - .into_iter() - .map(ContextMenuItem::to_list_item) - .collect(), - ) - .toggle(ToggleState::Toggled), - ) + .child(List::new( + self.items + .into_iter() + .map(ContextMenuItem::to_list_item::) + .collect(), + )) } } diff --git a/crates/ui2/src/components/list.rs b/crates/ui2/src/components/list.rs index 50a86ff256..543432a893 100644 --- a/crates/ui2/src/components/list.rs +++ b/crates/ui2/src/components/list.rs @@ -1,11 +1,11 @@ -use gpui2::{div, px, relative, Div}; +use gpui2::div; use crate::settings::user_settings; use crate::{ - h_stack, v_stack, Avatar, ClickHandler, Icon, IconColor, IconElement, IconSize, Label, - LabelColor, + disclosure_control, h_stack, v_stack, Avatar, Icon, IconColor, IconElement, IconSize, Label, + LabelColor, Toggle, }; -use crate::{prelude::*, Button}; +use crate::{prelude::*, GraphicSlot}; #[derive(Clone, Copy, Default, Debug, PartialEq)] pub enum ListItemVariant { @@ -29,7 +29,7 @@ pub struct ListHeader { left_icon: Option, meta: Option, variant: ListItemVariant, - toggleable: Toggleable, + toggle: Toggle, } impl ListHeader { @@ -39,17 +39,12 @@ impl ListHeader { left_icon: None, meta: None, variant: ListItemVariant::default(), - toggleable: Toggleable::NotToggleable, + toggle: Toggle::NotToggleable, } } - pub fn toggle(mut self, toggle: ToggleState) -> Self { - self.toggleable = toggle.into(); - self - } - - pub fn toggleable(mut self, toggleable: Toggleable) -> Self { - self.toggleable = toggleable; + pub fn toggle(mut self, toggle: Toggle) -> Self { + self.toggle = toggle; self } @@ -63,30 +58,8 @@ impl ListHeader { self } - fn disclosure_control(&self) -> Div { - let is_toggleable = self.toggleable != Toggleable::NotToggleable; - let is_toggled = Toggleable::is_toggled(&self.toggleable); - - match (is_toggleable, is_toggled) { - (false, _) => div(), - (_, true) => div().child( - IconElement::new(Icon::ChevronDown) - .color(IconColor::Muted) - .size(IconSize::Small), - ), - (_, false) => div().child( - IconElement::new(Icon::ChevronRight) - .color(IconColor::Muted) - .size(IconSize::Small), - ), - } - } - fn render(self, _view: &mut V, cx: &mut ViewContext) -> impl Component { - let is_toggleable = self.toggleable != Toggleable::NotToggleable; - let is_toggled = self.toggleable.is_toggled(); - - let disclosure_control = self.disclosure_control(); + let disclosure_control = disclosure_control(self.toggle); let meta = match self.meta { Some(ListHeaderMeta::Tools(icons)) => div().child( @@ -193,12 +166,6 @@ impl ListSubHeader { } } -#[derive(Clone)] -pub enum LeftContent { - Icon(Icon), - Avatar(SharedString), -} - #[derive(Default, PartialEq, Copy, Clone)] pub enum ListEntrySize { #[default] @@ -207,44 +174,36 @@ pub enum ListEntrySize { } #[derive(Component)] -pub enum ListItem { +pub enum ListItem { Entry(ListEntry), - Details(ListDetailsEntry), Separator(ListSeparator), Header(ListSubHeader), } -impl From for ListItem { +impl From for ListItem { fn from(entry: ListEntry) -> Self { Self::Entry(entry) } } -impl From> for ListItem { - fn from(entry: ListDetailsEntry) -> Self { - Self::Details(entry) - } -} - -impl From for ListItem { +impl From for ListItem { fn from(entry: ListSeparator) -> Self { Self::Separator(entry) } } -impl From for ListItem { +impl From for ListItem { fn from(entry: ListSubHeader) -> Self { Self::Header(entry) } } -impl ListItem { - fn render(self, view: &mut V, cx: &mut ViewContext) -> impl Component { +impl ListItem { + fn render(self, view: &mut V, cx: &mut ViewContext) -> impl Component { match self { ListItem::Entry(entry) => div().child(entry.render(view, cx)), ListItem::Separator(separator) => div().child(separator.render(view, cx)), ListItem::Header(header) => div().child(header.render(view, cx)), - ListItem::Details(details) => div().child(details.render(view, cx)), } } @@ -263,31 +222,29 @@ impl ListItem { #[derive(Component)] pub struct ListEntry { - disclosure_control_style: DisclosureControlVisibility, + disabled: bool, + // TODO: Reintroduce this + // disclosure_control_style: DisclosureControlVisibility, indent_level: u32, label: Label, - left_content: Option, - variant: ListItemVariant, - size: ListEntrySize, - state: InteractionState, - toggle: Option, + left_slot: Option, overflow: OverflowStyle, + size: ListEntrySize, + toggle: Toggle, + variant: ListItemVariant, } impl ListEntry { pub fn new(label: Label) -> Self { Self { - disclosure_control_style: DisclosureControlVisibility::default(), + disabled: false, indent_level: 0, label, - variant: ListItemVariant::default(), - left_content: None, - size: ListEntrySize::default(), - state: InteractionState::default(), - // TODO: Should use Toggleable::NotToggleable - // or remove Toggleable::NotToggleable from the system - toggle: None, + left_slot: None, overflow: OverflowStyle::Hidden, + size: ListEntrySize::default(), + toggle: Toggle::NotToggleable, + variant: ListItemVariant::default(), } } @@ -301,28 +258,23 @@ impl ListEntry { self } - pub fn toggle(mut self, toggle: ToggleState) -> Self { - self.toggle = Some(toggle); + pub fn toggle(mut self, toggle: Toggle) -> Self { + self.toggle = toggle; self } - pub fn left_content(mut self, left_content: LeftContent) -> Self { - self.left_content = Some(left_content); + pub fn left_content(mut self, left_content: GraphicSlot) -> Self { + self.left_slot = Some(left_content); self } pub fn left_icon(mut self, left_icon: Icon) -> Self { - self.left_content = Some(LeftContent::Icon(left_icon)); + self.left_slot = Some(GraphicSlot::Icon(left_icon)); self } pub fn left_avatar(mut self, left_avatar: impl Into) -> Self { - self.left_content = Some(LeftContent::Avatar(left_avatar.into())); - self - } - - pub fn state(mut self, state: InteractionState) -> Self { - self.state = state; + self.left_slot = Some(GraphicSlot::Avatar(left_avatar.into())); self } @@ -331,63 +283,19 @@ impl ListEntry { self } - pub fn disclosure_control_style( - mut self, - disclosure_control_style: DisclosureControlVisibility, - ) -> Self { - self.disclosure_control_style = disclosure_control_style; - self - } - - fn label_color(&self) -> LabelColor { - match self.state { - InteractionState::Disabled => LabelColor::Disabled, - _ => Default::default(), - } - } - - fn icon_color(&self) -> IconColor { - match self.state { - InteractionState::Disabled => IconColor::Disabled, - _ => Default::default(), - } - } - - fn disclosure_control( - &mut self, - cx: &mut ViewContext, - ) -> Option> { - let disclosure_control_icon = if let Some(ToggleState::Toggled) = self.toggle { - IconElement::new(Icon::ChevronDown) - } else { - IconElement::new(Icon::ChevronRight) - } - .color(IconColor::Muted) - .size(IconSize::Small); - - match (self.toggle, self.disclosure_control_style) { - (Some(_), DisclosureControlVisibility::OnHover) => { - Some(div().absolute().neg_left_5().child(disclosure_control_icon)) - } - (Some(_), DisclosureControlVisibility::Always) => { - Some(div().child(disclosure_control_icon)) - } - (None, _) => None, - } - } - - fn render(mut self, _view: &mut V, cx: &mut ViewContext) -> impl Component { + fn render(self, _view: &mut V, cx: &mut ViewContext) -> impl Component { let settings = user_settings(cx); - let left_content = match self.left_content.clone() { - Some(LeftContent::Icon(i)) => Some( + let left_content = match self.left_slot.clone() { + Some(GraphicSlot::Icon(i)) => Some( h_stack().child( IconElement::new(i) .size(IconSize::Small) .color(IconColor::Muted), ), ), - Some(LeftContent::Avatar(src)) => Some(h_stack().child(Avatar::new(src))), + Some(GraphicSlot::Avatar(src)) => Some(h_stack().child(Avatar::new(src))), + Some(GraphicSlot::PublicActor(src)) => Some(h_stack().child(Avatar::new(src))), None => None, }; @@ -400,10 +308,7 @@ impl ListEntry { .relative() .group("") .bg(cx.theme().colors().surface) - .when(self.state == InteractionState::Focused, |this| { - this.border() - .border_color(cx.theme().colors().border_focused) - }) + // TODO: Add focus state .child( sized_item .when(self.variant == ListItemVariant::Inset, |this| this.px_2()) @@ -425,131 +330,13 @@ impl ListEntry { .gap_1() .items_center() .relative() - .children(self.disclosure_control(cx)) + .child(disclosure_control(self.toggle)) .children(left_content) .child(self.label), ) } } -struct ListDetailsEntryHandlers { - click: Option>, -} - -impl Default for ListDetailsEntryHandlers { - fn default() -> Self { - Self { click: None } - } -} - -#[derive(Component)] -pub struct ListDetailsEntry { - label: SharedString, - meta: Option, - left_content: Option, - handlers: ListDetailsEntryHandlers, - actions: Option>>, - // TODO: make this more generic instead of - // specifically for notifications - seen: bool, -} - -impl ListDetailsEntry { - pub fn new(label: impl Into) -> Self { - Self { - label: label.into(), - meta: None, - left_content: None, - handlers: ListDetailsEntryHandlers::default(), - actions: None, - seen: false, - } - } - - pub fn meta(mut self, meta: impl Into) -> Self { - self.meta = Some(meta.into()); - self - } - - pub fn seen(mut self, seen: bool) -> Self { - self.seen = seen; - self - } - - pub fn on_click(mut self, handler: ClickHandler) -> Self { - self.handlers.click = Some(handler); - self - } - - pub fn actions(mut self, actions: Vec>) -> Self { - self.actions = Some(actions); - self - } - - fn render(self, _view: &mut V, cx: &mut ViewContext) -> impl Component { - let settings = user_settings(cx); - - let (item_bg, item_bg_hover, item_bg_active) = ( - cx.theme().colors().ghost_element, - cx.theme().colors().ghost_element_hover, - cx.theme().colors().ghost_element_active, - ); - - let label_color = match self.seen { - true => LabelColor::Muted, - false => LabelColor::Default, - }; - - div() - .relative() - .group("") - .bg(item_bg) - .px_2() - .py_1p5() - .w_full() - .z_index(1) - .when(!self.seen, |this| { - this.child( - div() - .absolute() - .left(px(3.0)) - .top_3() - .rounded_full() - .border_2() - .border_color(cx.theme().colors().surface) - .w(px(9.0)) - .h(px(9.0)) - .z_index(2) - .bg(cx.theme().status().info), - ) - }) - .child( - v_stack() - .w_full() - .line_height(relative(1.2)) - .gap_1() - .child( - div() - .w_5() - .h_5() - .rounded_full() - .bg(cx.theme().colors().icon_accent), - ) - .child(Label::new(self.label.clone()).color(label_color)) - .children( - self.meta - .map(|meta| Label::new(meta).color(LabelColor::Muted)), - ) - .child( - h_stack() - .gap_1() - .justify_end() - .children(self.actions.unwrap_or_default()), - ), - ) - } -} - #[derive(Clone, Component)] pub struct ListSeparator; @@ -564,20 +351,22 @@ impl ListSeparator { } #[derive(Component)] -pub struct List { - items: Vec>, +pub struct List { + items: Vec, + /// Message to display when the list is empty + /// Defaults to "No items" empty_message: SharedString, header: Option, - toggleable: Toggleable, + toggle: Toggle, } -impl List { - pub fn new(items: Vec>) -> Self { +impl List { + pub fn new(items: Vec) -> Self { Self { items, empty_message: "No items".into(), header: None, - toggleable: Toggleable::default(), + toggle: Toggle::NotToggleable, } } @@ -591,19 +380,16 @@ impl List { self } - pub fn toggle(mut self, toggle: ToggleState) -> Self { - self.toggleable = toggle.into(); + pub fn toggle(mut self, toggle: Toggle) -> Self { + self.toggle = toggle; self } - fn render(self, _view: &mut V, cx: &mut ViewContext) -> impl Component { - let is_toggleable = self.toggleable != Toggleable::NotToggleable; - let is_toggled = Toggleable::is_toggled(&self.toggleable); - - let list_content = match (self.items.is_empty(), is_toggled) { + fn render(self, _view: &mut V, cx: &mut ViewContext) -> impl Component { + let list_content = match (self.items.is_empty(), self.toggle) { (false, _) => div().children(self.items), - (true, false) => div(), - (true, true) => { + (true, Toggle::Toggled(false)) => div(), + (true, _) => { div().child(Label::new(self.empty_message.clone()).color(LabelColor::Muted)) } }; @@ -611,7 +397,7 @@ impl List { v_stack() .w_full() .py_1() - .children(self.header.map(|header| header.toggleable(self.toggleable))) + .children(self.header.map(|header| header)) .child(list_content) } } diff --git a/crates/ui2/src/components/player.rs b/crates/ui2/src/components/player.rs index c7b7ade1c1..b6c80400cf 100644 --- a/crates/ui2/src/components/player.rs +++ b/crates/ui2/src/components/player.rs @@ -2,6 +2,24 @@ use gpui2::{Hsla, ViewContext}; use crate::prelude::*; +/// Represents a person with a Zed account's public profile. +/// All data in this struct should be considered public. +pub struct PublicPlayer { + pub username: SharedString, + pub avatar: SharedString, + pub is_contact: bool, +} + +impl PublicPlayer { + pub fn new(username: impl Into, avatar: impl Into) -> Self { + Self { + username: username.into(), + avatar: avatar.into(), + is_contact: false, + } + } +} + #[derive(Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash, Clone, Copy)] pub enum PlayerStatus { #[default] diff --git a/crates/ui2/src/components/slot.rs b/crates/ui2/src/components/slot.rs new file mode 100644 index 0000000000..f980e2fbda --- /dev/null +++ b/crates/ui2/src/components/slot.rs @@ -0,0 +1,14 @@ +use gpui2::SharedString; + +use crate::Icon; + +#[derive(Debug, Clone)] +/// A slot utility that provides a way to to pass either +/// an icon or an image to a component. +/// +/// Can be filled with a [] +pub enum GraphicSlot { + Icon(Icon), + Avatar(SharedString), + PublicActor(SharedString), +} diff --git a/crates/ui2/src/components/toggle.rs b/crates/ui2/src/components/toggle.rs new file mode 100644 index 0000000000..adde367581 --- /dev/null +++ b/crates/ui2/src/components/toggle.rs @@ -0,0 +1,61 @@ +use gpui2::{div, Component, ParentElement}; + +use crate::{Icon, IconColor, IconElement, IconSize}; + +/// Whether the entry is toggleable, and if so, whether it is currently toggled. +/// +/// To make an element toggleable, simply add a `Toggle::Toggled(_)` and handle it's cases. +/// +/// You can check if an element is toggleable with `.is_toggleable()` +/// +/// Possible values: +/// - `Toggle::NotToggleable` - The entry is not toggleable +/// - `Toggle::Toggled(true)` - The entry is toggleable and toggled +/// - `Toggle::Toggled(false)` - The entry is toggleable and not toggled +#[derive(Debug, Copy, Clone, PartialEq, Eq)] +pub enum Toggle { + NotToggleable, + Toggled(bool), +} + +impl Toggle { + /// Returns true if the entry is toggled (or is not toggleable.) + /// + /// As element that isn't toggleable is always "expanded" or "enabled" + /// returning true in that case makes sense. + pub fn is_toggled(&self) -> bool { + match self { + Self::Toggled(false) => false, + _ => true, + } + } + + pub fn is_toggleable(&self) -> bool { + match self { + Self::Toggled(_) => true, + _ => false, + } + } +} + +impl From for Toggle { + fn from(toggled: bool) -> Self { + Toggle::Toggled(toggled) + } +} + +pub fn disclosure_control(toggle: Toggle) -> impl Component { + match (toggle.is_toggleable(), toggle.is_toggled()) { + (false, _) => div(), + (_, true) => div().child( + IconElement::new(Icon::ChevronDown) + .color(IconColor::Muted) + .size(IconSize::Small), + ), + (_, false) => div().child( + IconElement::new(Icon::ChevronRight) + .color(IconColor::Muted) + .size(IconSize::Small), + ), + } +} diff --git a/crates/ui2/src/prelude.rs b/crates/ui2/src/prelude.rs index fbb7ccc528..8ba74cce95 100644 --- a/crates/ui2/src/prelude.rs +++ b/crates/ui2/src/prelude.rs @@ -10,24 +10,6 @@ pub use theme2::ActiveTheme; use gpui2::Hsla; use strum::EnumIter; -/// Represents a person with a Zed account's public profile. -/// All data in this struct should be considered public. -pub struct PublicActor { - pub username: SharedString, - pub avatar: SharedString, - pub is_contact: bool, -} - -impl PublicActor { - pub fn new(username: impl Into, avatar: impl Into) -> Self { - Self { - username: username.into(), - avatar: avatar.into(), - is_contact: false, - } - } -} - #[derive(Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash, Clone, Copy, EnumIter)] pub enum FileSystemStatus { #[default] @@ -179,61 +161,3 @@ pub enum SelectedState { PartiallySelected, Selected, } - -#[derive(Default, Debug, Copy, Clone, PartialEq, Eq)] -pub enum Toggleable { - Toggleable(ToggleState), - #[default] - NotToggleable, -} - -impl Toggleable { - pub fn is_toggled(&self) -> bool { - match self { - Self::Toggleable(ToggleState::Toggled) => true, - _ => false, - } - } -} - -impl From for Toggleable { - fn from(state: ToggleState) -> Self { - Self::Toggleable(state) - } -} - -#[derive(Default, Debug, Copy, Clone, PartialEq, Eq)] -pub enum ToggleState { - /// The "on" state of a toggleable element. - /// - /// Example: - /// - A collasable list that is currently expanded - /// - A toggle button that is currently on. - Toggled, - /// The "off" state of a toggleable element. - /// - /// Example: - /// - A collasable list that is currently collapsed - /// - A toggle button that is currently off. - #[default] - NotToggled, -} - -impl From for ToggleState { - fn from(toggleable: Toggleable) -> Self { - match toggleable { - Toggleable::Toggleable(state) => state, - Toggleable::NotToggleable => ToggleState::NotToggled, - } - } -} - -impl From for ToggleState { - fn from(toggled: bool) -> Self { - if toggled { - ToggleState::Toggled - } else { - ToggleState::NotToggled - } - } -} diff --git a/crates/ui2/src/static_data.rs b/crates/ui2/src/static_data.rs index 68f625c75d..5342e1fb16 100644 --- a/crates/ui2/src/static_data.rs +++ b/crates/ui2/src/static_data.rs @@ -7,13 +7,13 @@ use gpui2::{AppContext, ViewContext}; use rand::Rng; use theme2::ActiveTheme; +use crate::HighlightedText; use crate::{ Buffer, BufferRow, BufferRows, Button, EditorPane, FileSystemStatus, GitStatus, - HighlightedLine, Icon, Keybinding, Label, LabelColor, ListEntry, ListEntrySize, ListSubHeader, - Livestream, MicStatus, ModifierKeys, Notification, PaletteItem, Player, PlayerCallStatus, - PlayerWithCallStatus, PublicActor, ScreenShareStatus, Symbol, Tab, ToggleState, VideoStatus, + HighlightedLine, Icon, Keybinding, Label, LabelColor, ListEntry, ListEntrySize, Livestream, + MicStatus, ModifierKeys, Notification, PaletteItem, Player, PlayerCallStatus, + PlayerWithCallStatus, PublicPlayer, ScreenShareStatus, Symbol, Tab, Toggle, VideoStatus, }; -use crate::{HighlightedText, ListDetailsEntry}; use crate::{ListItem, NotificationAction}; pub fn static_tabs_example() -> Vec { @@ -345,7 +345,7 @@ pub fn static_new_notification_items_2() -> Vec> { DateTime::parse_from_rfc3339("2023-11-02T12:09:07Z") .unwrap() .naive_local(), - PublicActor::new("as-cii", "http://github.com/as-cii.png?s=50"), + PublicPlayer::new("as-cii", "http://github.com/as-cii.png?s=50"), [ NotificationAction::new( Button::new("Decline"), @@ -374,7 +374,7 @@ pub fn static_new_notification_items_2() -> Vec> { DateTime::parse_from_rfc3339("2023-11-01T12:09:07Z") .unwrap() .naive_local(), - PublicActor::new("as-cii", "http://github.com/as-cii.png?s=50"), + PublicPlayer::new("as-cii", "http://github.com/as-cii.png?s=50"), [ NotificationAction::new( Button::new("Decline"), @@ -403,7 +403,7 @@ pub fn static_new_notification_items_2() -> Vec> { DateTime::parse_from_rfc3339("2022-10-25T12:09:07Z") .unwrap() .naive_local(), - PublicActor::new("as-cii", "http://github.com/as-cii.png?s=50"), + PublicPlayer::new("as-cii", "http://github.com/as-cii.png?s=50"), [ NotificationAction::new( Button::new("Decline"), @@ -432,7 +432,7 @@ pub fn static_new_notification_items_2() -> Vec> { DateTime::parse_from_rfc3339("2021-10-12T12:09:07Z") .unwrap() .naive_local(), - PublicActor::new("as-cii", "http://github.com/as-cii.png?s=50"), + PublicPlayer::new("as-cii", "http://github.com/as-cii.png?s=50"), [ NotificationAction::new( Button::new("Decline"), @@ -461,7 +461,7 @@ pub fn static_new_notification_items_2() -> Vec> { DateTime::parse_from_rfc3339("1969-07-20T00:00:00Z") .unwrap() .naive_local(), - PublicActor::new("as-cii", "http://github.com/as-cii.png?s=50"), + PublicPlayer::new("as-cii", "http://github.com/as-cii.png?s=50"), [ NotificationAction::new( Button::new("Decline"), @@ -478,89 +478,12 @@ pub fn static_new_notification_items_2() -> Vec> { ] } -pub fn static_new_notification_items() -> Vec> { - vec![ - ListItem::Header(ListSubHeader::new("New")), - ListItem::Details( - ListDetailsEntry::new("maxdeviant invited you to join a stream in #design.") - .meta("4 people in stream."), - ), - ListItem::Details(ListDetailsEntry::new( - "nathansobo accepted your contact request.", - )), - ListItem::Header(ListSubHeader::new("Earlier")), - ListItem::Details( - ListDetailsEntry::new("mikaylamaki added you as a contact.").actions(vec![ - Button::new("Decline"), - Button::new("Accept").variant(crate::ButtonVariant::Filled), - ]), - ), - ListItem::Details( - ListDetailsEntry::new("maxdeviant invited you to a stream in #design.") - .seen(true) - .meta("This stream has ended."), - ), - ListItem::Details(ListDetailsEntry::new( - "as-cii accepted your contact request.", - )), - ListItem::Details( - ListDetailsEntry::new("You were added as an admin on the #gpui2 channel.").seen(true), - ), - ListItem::Details(ListDetailsEntry::new( - "osiewicz accepted your contact request.", - )), - ListItem::Details(ListDetailsEntry::new( - "ConradIrwin accepted your contact request.", - )), - ListItem::Details( - ListDetailsEntry::new("nathansobo invited you to a stream in #gpui2.") - .seen(true) - .meta("This stream has ended."), - ), - ListItem::Details(ListDetailsEntry::new( - "nathansobo accepted your contact request.", - )), - ListItem::Header(ListSubHeader::new("Earlier")), - ListItem::Details( - ListDetailsEntry::new("mikaylamaki added you as a contact.").actions(vec![ - Button::new("Decline"), - Button::new("Accept").variant(crate::ButtonVariant::Filled), - ]), - ), - ListItem::Details( - ListDetailsEntry::new("maxdeviant invited you to a stream in #design.") - .seen(true) - .meta("This stream has ended."), - ), - ListItem::Details(ListDetailsEntry::new( - "as-cii accepted your contact request.", - )), - ListItem::Details( - ListDetailsEntry::new("You were added as an admin on the #gpui2 channel.").seen(true), - ), - ListItem::Details(ListDetailsEntry::new( - "osiewicz accepted your contact request.", - )), - ListItem::Details(ListDetailsEntry::new( - "ConradIrwin accepted your contact request.", - )), - ListItem::Details( - ListDetailsEntry::new("nathansobo invited you to a stream in #gpui2.") - .seen(true) - .meta("This stream has ended."), - ), - ] - .into_iter() - .map(From::from) - .collect() -} - -pub fn static_project_panel_project_items() -> Vec> { +pub fn static_project_panel_project_items() -> Vec { vec![ ListEntry::new(Label::new("zed")) .left_icon(Icon::FolderOpen.into()) .indent_level(0) - .toggle(ToggleState::Toggled), + .toggle(Toggle::Toggled(true)), ListEntry::new(Label::new(".cargo")) .left_icon(Icon::Folder.into()) .indent_level(1), @@ -579,14 +502,14 @@ pub fn static_project_panel_project_items() -> Vec> { ListEntry::new(Label::new("assets")) .left_icon(Icon::Folder.into()) .indent_level(1) - .toggle(ToggleState::Toggled), + .toggle(Toggle::Toggled(true)), ListEntry::new(Label::new("cargo-target").color(LabelColor::Hidden)) .left_icon(Icon::Folder.into()) .indent_level(1), ListEntry::new(Label::new("crates")) .left_icon(Icon::FolderOpen.into()) .indent_level(1) - .toggle(ToggleState::Toggled), + .toggle(Toggle::Toggled(true)), ListEntry::new(Label::new("activity_indicator")) .left_icon(Icon::Folder.into()) .indent_level(2), @@ -608,38 +531,38 @@ pub fn static_project_panel_project_items() -> Vec> { ListEntry::new(Label::new("sqlez").color(LabelColor::Modified)) .left_icon(Icon::Folder.into()) .indent_level(2) - .toggle(ToggleState::NotToggled), + .toggle(Toggle::Toggled(false)), ListEntry::new(Label::new("gpui2")) .left_icon(Icon::FolderOpen.into()) .indent_level(2) - .toggle(ToggleState::Toggled), + .toggle(Toggle::Toggled(true)), ListEntry::new(Label::new("src")) .left_icon(Icon::FolderOpen.into()) .indent_level(3) - .toggle(ToggleState::Toggled), + .toggle(Toggle::Toggled(true)), ListEntry::new(Label::new("derive_element.rs")) .left_icon(Icon::FileRust.into()) .indent_level(4), ListEntry::new(Label::new("storybook").color(LabelColor::Modified)) .left_icon(Icon::FolderOpen.into()) .indent_level(1) - .toggle(ToggleState::Toggled), + .toggle(Toggle::Toggled(true)), ListEntry::new(Label::new("docs").color(LabelColor::Default)) .left_icon(Icon::Folder.into()) .indent_level(2) - .toggle(ToggleState::Toggled), + .toggle(Toggle::Toggled(true)), ListEntry::new(Label::new("src").color(LabelColor::Modified)) .left_icon(Icon::FolderOpen.into()) .indent_level(3) - .toggle(ToggleState::Toggled), + .toggle(Toggle::Toggled(true)), ListEntry::new(Label::new("ui").color(LabelColor::Modified)) .left_icon(Icon::FolderOpen.into()) .indent_level(4) - .toggle(ToggleState::Toggled), + .toggle(Toggle::Toggled(true)), ListEntry::new(Label::new("component").color(LabelColor::Created)) .left_icon(Icon::FolderOpen.into()) .indent_level(5) - .toggle(ToggleState::Toggled), + .toggle(Toggle::Toggled(true)), ListEntry::new(Label::new("facepile.rs").color(LabelColor::Default)) .left_icon(Icon::FileRust.into()) .indent_level(6), @@ -682,7 +605,7 @@ pub fn static_project_panel_project_items() -> Vec> { .collect() } -pub fn static_project_panel_single_items() -> Vec> { +pub fn static_project_panel_single_items() -> Vec { vec![ ListEntry::new(Label::new("todo.md")) .left_icon(Icon::FileDoc.into()) @@ -699,7 +622,7 @@ pub fn static_project_panel_single_items() -> Vec> { .collect() } -pub fn static_collab_panel_current_call() -> Vec> { +pub fn static_collab_panel_current_call() -> Vec { vec![ ListEntry::new(Label::new("as-cii")).left_avatar("http://github.com/as-cii.png?s=50"), ListEntry::new(Label::new("nathansobo")) @@ -712,7 +635,7 @@ pub fn static_collab_panel_current_call() -> Vec> { .collect() } -pub fn static_collab_panel_channels() -> Vec> { +pub fn static_collab_panel_channels() -> Vec { vec![ ListEntry::new(Label::new("zed")) .left_icon(Icon::Hash.into()) diff --git a/crates/ui2/src/to_extract/collab_panel.rs b/crates/ui2/src/to_extract/collab_panel.rs index a0e3b55f63..9019456dd1 100644 --- a/crates/ui2/src/to_extract/collab_panel.rs +++ b/crates/ui2/src/to_extract/collab_panel.rs @@ -1,7 +1,6 @@ -use crate::prelude::*; +use crate::{prelude::*, Toggle}; use crate::{ - static_collab_panel_channels, static_collab_panel_current_call, v_stack, Icon, List, - ListHeader, ToggleState, + static_collab_panel_channels, static_collab_panel_current_call, v_stack, Icon, List, ListHeader, }; #[derive(Component)] @@ -34,17 +33,17 @@ impl CollabPanel { .header( ListHeader::new("CRDB") .left_icon(Icon::Hash.into()) - .toggle(ToggleState::Toggled), + .toggle(Toggle::Toggled(true)), ) - .toggle(ToggleState::Toggled), + .toggle(Toggle::Toggled(true)), ), ) .child( v_stack().id("channels").py_1().child( List::new(static_collab_panel_channels()) - .header(ListHeader::new("CHANNELS").toggle(ToggleState::Toggled)) + .header(ListHeader::new("CHANNELS").toggle(Toggle::Toggled(true))) .empty_message("No channels yet. Add a channel to get started.") - .toggle(ToggleState::Toggled), + .toggle(Toggle::Toggled(true)), ), ) .child( @@ -52,9 +51,9 @@ impl CollabPanel { List::new(static_collab_panel_current_call()) .header( ListHeader::new("CONTACTS – ONLINE") - .toggle(ToggleState::Toggled), + .toggle(Toggle::Toggled(true)), ) - .toggle(ToggleState::Toggled), + .toggle(Toggle::Toggled(true)), ), ) .child( @@ -62,9 +61,9 @@ impl CollabPanel { List::new(static_collab_panel_current_call()) .header( ListHeader::new("CONTACTS – OFFLINE") - .toggle(ToggleState::NotToggled), + .toggle(Toggle::Toggled(false)), ) - .toggle(ToggleState::NotToggled), + .toggle(Toggle::Toggled(false)), ), ), ) diff --git a/crates/ui2/src/to_extract/notifications_panel.rs b/crates/ui2/src/to_extract/notifications_panel.rs index 74f015ac06..789aa2b0aa 100644 --- a/crates/ui2/src/to_extract/notifications_panel.rs +++ b/crates/ui2/src/to_extract/notifications_panel.rs @@ -1,8 +1,8 @@ use crate::utils::naive_format_distance_from_now; use crate::{ - h_stack, prelude::*, static_new_notification_items_2, v_stack, Avatar, Button, Icon, - IconButton, IconElement, Label, LabelColor, LineHeightStyle, ListHeaderMeta, ListSeparator, - UnreadIndicator, + h_stack, prelude::*, static_new_notification_items_2, v_stack, Avatar, ButtonOrIconButton, + Icon, IconElement, Label, LabelColor, LineHeightStyle, ListHeaderMeta, ListSeparator, + PublicPlayer, UnreadIndicator, }; use crate::{ClickHandler, ListHeader}; @@ -57,23 +57,6 @@ impl NotificationsPanel { } } -pub enum ButtonOrIconButton { - Button(Button), - IconButton(IconButton), -} - -impl From> for ButtonOrIconButton { - fn from(value: Button) -> Self { - Self::Button(value) - } -} - -impl From> for ButtonOrIconButton { - fn from(value: IconButton) -> Self { - Self::IconButton(value) - } -} - pub struct NotificationAction { button: ButtonOrIconButton, tooltip: SharedString, @@ -102,7 +85,7 @@ impl NotificationAction { } pub enum ActorOrIcon { - Actor(PublicActor), + Actor(PublicPlayer), Icon(Icon), } @@ -171,7 +154,7 @@ impl Notification { id: impl Into, message: impl Into, date_received: NaiveDateTime, - actor: PublicActor, + actor: PublicPlayer, click_action: ClickHandler, ) -> Self { Self::new( @@ -210,7 +193,7 @@ impl Notification { id: impl Into, message: impl Into, date_received: NaiveDateTime, - actor: PublicActor, + actor: PublicPlayer, actions: [NotificationAction; 2], ) -> Self { Self::new( diff --git a/crates/ui2/src/to_extract/project_panel.rs b/crates/ui2/src/to_extract/project_panel.rs index 76fa50d338..807768427b 100644 --- a/crates/ui2/src/to_extract/project_panel.rs +++ b/crates/ui2/src/to_extract/project_panel.rs @@ -18,8 +18,7 @@ impl ProjectPanel { .id(self.id.clone()) .flex() .flex_col() - .w_full() - .h_full() + .size_full() .bg(cx.theme().colors().surface) .child( div() @@ -30,15 +29,13 @@ impl ProjectPanel { .overflow_y_scroll() .child( List::new(static_project_panel_single_items()) - .header(ListHeader::new("FILES").toggle(ToggleState::Toggled)) - .empty_message("No files in directory") - .toggle(ToggleState::Toggled), + .header(ListHeader::new("FILES")) + .empty_message("No files in directory"), ) .child( List::new(static_project_panel_project_items()) - .header(ListHeader::new("PROJECT").toggle(ToggleState::Toggled)) - .empty_message("No folders in directory") - .toggle(ToggleState::Toggled), + .header(ListHeader::new("PROJECT")) + .empty_message("No folders in directory"), ), ) .child( From 1bce5dcc69b4b89b9be06142ac7fe843c4bcdf06 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Sun, 5 Nov 2023 01:06:41 -0500 Subject: [PATCH 49/76] Add checkboxes and their stories --- assets/icons/dash.svg | 1 + crates/storybook2/src/story_selector.rs | 2 + crates/theme2/src/colors.rs | 2 + crates/theme2/src/default_colors.rs | 4 + crates/ui2/docs/building-ui.md | 10 ++ crates/ui2/src/components.rs | 2 + crates/ui2/src/components/checkbox.rs | 217 ++++++++++++++++++++++++ crates/ui2/src/components/icon.rs | 4 + crates/ui2/src/prelude.rs | 6 +- 9 files changed, 245 insertions(+), 3 deletions(-) create mode 100644 assets/icons/dash.svg create mode 100644 crates/ui2/src/components/checkbox.rs diff --git a/assets/icons/dash.svg b/assets/icons/dash.svg new file mode 100644 index 0000000000..efff9eab5e --- /dev/null +++ b/assets/icons/dash.svg @@ -0,0 +1 @@ + diff --git a/crates/storybook2/src/story_selector.rs b/crates/storybook2/src/story_selector.rs index a78705c7bb..2adf2956d3 100644 --- a/crates/storybook2/src/story_selector.rs +++ b/crates/storybook2/src/story_selector.rs @@ -19,6 +19,7 @@ pub enum ComponentStory { Buffer, Button, ChatPanel, + Checkbox, CollabPanel, Colors, CommandPalette, @@ -61,6 +62,7 @@ impl ComponentStory { Self::Buffer => cx.build_view(|_| ui::BufferStory).into(), Self::Button => cx.build_view(|_| ButtonStory).into(), Self::ChatPanel => cx.build_view(|_| ui::ChatPanelStory).into(), + Self::Checkbox => cx.build_view(|_| ui::CheckboxStory).into(), Self::CollabPanel => cx.build_view(|_| ui::CollabPanelStory).into(), Self::Colors => cx.build_view(|_| ColorsStory).into(), Self::CommandPalette => cx.build_view(|_| ui::CommandPaletteStory).into(), diff --git a/crates/theme2/src/colors.rs b/crates/theme2/src/colors.rs index b02a9c14df..b9f8804205 100644 --- a/crates/theme2/src/colors.rs +++ b/crates/theme2/src/colors.rs @@ -54,7 +54,9 @@ pub struct ThemeColors { pub border: Hsla, pub border_variant: Hsla, pub border_focused: Hsla, + pub border_selected: Hsla, pub border_transparent: Hsla, + pub border_disabled: Hsla, pub elevated_surface: Hsla, pub surface: Hsla, pub background: Hsla, diff --git a/crates/theme2/src/default_colors.rs b/crates/theme2/src/default_colors.rs index 802392d296..4ecae43b15 100644 --- a/crates/theme2/src/default_colors.rs +++ b/crates/theme2/src/default_colors.rs @@ -205,6 +205,8 @@ impl ThemeColors { border: neutral().light().step_6(), border_variant: neutral().light().step_5(), border_focused: blue().light().step_5(), + border_disabled: neutral().light().step_3(), + border_selected: blue().light().step_5(), border_transparent: system.transparent, elevated_surface: neutral().light().step_2(), surface: neutral().light().step_2(), @@ -250,6 +252,8 @@ impl ThemeColors { border: neutral().dark().step_6(), border_variant: neutral().dark().step_5(), border_focused: blue().dark().step_5(), + border_disabled: neutral().dark().step_3(), + border_selected: blue().dark().step_5(), border_transparent: system.transparent, elevated_surface: neutral().dark().step_2(), surface: neutral().dark().step_2(), diff --git a/crates/ui2/docs/building-ui.md b/crates/ui2/docs/building-ui.md index a2a3ff697b..e0160e336e 100644 --- a/crates/ui2/docs/building-ui.md +++ b/crates/ui2/docs/building-ui.md @@ -2,6 +2,16 @@ ## Common patterns +### Method ordering + +- id +- Flex properties +- Position properties +- Size properties +- Style properties +- Handlers +- State properties + ### Using the Label Component to Create UI Text The `Label` component helps in displaying text on user interfaces. It creates an interface where specific parameters such as label color, line height style, and strikethrough can be set. diff --git a/crates/ui2/src/components.rs b/crates/ui2/src/components.rs index 692cd55e8e..a8a7ddfd46 100644 --- a/crates/ui2/src/components.rs +++ b/crates/ui2/src/components.rs @@ -1,5 +1,6 @@ mod avatar; mod button; +mod checkbox; mod context_menu; mod details; mod facepile; @@ -25,6 +26,7 @@ mod tool_divider; pub use avatar::*; pub use button::*; +pub use checkbox::*; pub use context_menu::*; pub use details::*; pub use facepile::*; diff --git a/crates/ui2/src/components/checkbox.rs b/crates/ui2/src/components/checkbox.rs new file mode 100644 index 0000000000..3add6cebac --- /dev/null +++ b/crates/ui2/src/components/checkbox.rs @@ -0,0 +1,217 @@ +///! # Checkbox +///! +///! Checkboxes are used for multiple choices, not for mutually exclusive choices. +///! Each checkbox works independently from other checkboxes in the list, +///! therefore checking an additional box does not affect any other selections. +use gpui2::{ + div, Component, ParentElement, SharedString, StatelessInteractive, Styled, ViewContext, +}; +use theme2::ActiveTheme; + +use crate::{Icon, IconColor, IconElement, Selected}; + +#[derive(Component)] +pub struct Checkbox { + id: SharedString, + checked: Selected, + disabled: bool, +} + +impl Checkbox { + pub fn new(id: impl Into) -> Self { + Self { + id: id.into(), + checked: Selected::Unselected, + disabled: false, + } + } + + pub fn toggle(mut self) -> Self { + self.checked = match self.checked { + Selected::Selected => Selected::Unselected, + Selected::Unselected => Selected::Selected, + Selected::Indeterminate => Selected::Selected, + }; + self + } + + pub fn set_indeterminate(mut self) -> Self { + self.checked = Selected::Indeterminate; + self + } + + pub fn set_disabled(mut self, disabled: bool) -> Self { + self.disabled = disabled; + self + } + + pub fn render(self, _view: &mut V, cx: &mut ViewContext) -> impl Component { + let group_id = format!("checkbox_group_{}", self.id); + + // The icon is different depending on the state of the checkbox. + // + // We need the match to return all the same type, + // so we wrap the eatch result in a div. + // + // We are still exploring the best way to handle this. + let icon = match self.checked { + // When selected, we show a checkmark. + Selected::Selected => { + div().child( + IconElement::new(Icon::Check) + .size(crate::IconSize::Small) + .color( + // If the checkbox is disabled we change the color of the icon. + if self.disabled { + IconColor::Disabled + } else { + IconColor::Selected + }, + ), + ) + } + // In an indeterminate state, we show a dash. + Selected::Indeterminate => { + div().child( + IconElement::new(Icon::Dash) + .size(crate::IconSize::Small) + .color( + // If the checkbox is disabled we change the color of the icon. + if self.disabled { + IconColor::Disabled + } else { + IconColor::Selected + }, + ), + ) + } + // When unselected, we show nothing. + Selected::Unselected => div(), + }; + + // A checkbox could be in an indeterminate state, + // for example the indeterminate state could represent: + // - a group of options of which only some are selected + // - an enabled option that is no longer available + // - a previously agreed to license that has been updated + // + // For the sake of styles we treat the indeterminate state as selected, + // but it's icon will be different. + let selected = + self.checked == Selected::Selected || self.checked == Selected::Indeterminate; + + // We could use something like this to make the checkbox background when selected: + // + // ~~~rust + // ... + // .when(selected, |this| { + // this.bg(cx.theme().colors().element_selected) + // }) + // ~~~ + // + // But we use a match instead here because the checkbox might be disabled, + // and it could be disabled _while_ it is selected, as well as while it is not selected. + let (bg_color, border_color) = match (self.disabled, selected) { + (true, _) => ( + cx.theme().colors().ghost_element_disabled, + cx.theme().colors().border_disabled, + ), + (false, true) => ( + cx.theme().colors().element_selected, + cx.theme().colors().border, + ), + (false, false) => (cx.theme().colors().element, cx.theme().colors().border), + }; + + div() + // Rather than adding `px_1()` to add some space around the checkbox, + // we use a larger parent element to create a slightly larger + // click area for the checkbox. + .size_5() + // Because we've enlarged the click area, we need to create a + // `group` to pass down interaction events to the checkbox. + .group(group_id.clone()) + .child( + div() + .flex() + // This prevent the flex element from growing + // or shrinking in response to any size changes + .flex_none() + // The combo of `justify_center()` and `items_center()` + // is used frequently to center elements in a flex container. + // + // We use this to center the icon in the checkbox. + .justify_center() + .items_center() + .m_1() + .size_4() + .rounded_sm() + .bg(bg_color) + .border() + .border_color(border_color) + // We only want the interaction states to fire when we + // are in a checkbox that isn't disabled. + .when(!self.disabled, |this| { + // Here instead of `hover()` we use `group_hover()` + // to pass it the group id. + this.group_hover(group_id.clone(), |el| { + el.bg(cx.theme().colors().element_hover) + }) + }) + .child(icon), + ) + } +} + +#[cfg(feature = "stories")] +pub use stories::*; + +#[cfg(feature = "stories")] +mod stories { + use super::*; + use crate::{h_stack, Story}; + use gpui2::{Div, Render}; + + pub struct CheckboxStory; + + impl Render for CheckboxStory { + type Element = Div; + + fn render(&mut self, cx: &mut ViewContext) -> Self::Element { + Story::container(cx) + .child(Story::title_for::<_, Checkbox>(cx)) + .child(Story::label(cx, "Default")) + .child( + h_stack() + .p_2() + .gap_2() + .rounded_md() + .border() + .border_color(cx.theme().colors().border) + .child(Checkbox::new("checkbox-enabled")) + .child(Checkbox::new("checkbox-intermediate").set_indeterminate()) + .child(Checkbox::new("checkbox-selected").toggle()), + ) + .child(Story::label(cx, "Disabled")) + .child( + h_stack() + .p_2() + .gap_2() + .rounded_md() + .border() + .border_color(cx.theme().colors().border) + .child(Checkbox::new("checkbox-disabled").set_disabled(true)) + .child( + Checkbox::new("checkbox-disabled-intermediate") + .set_disabled(true) + .set_indeterminate(), + ) + .child( + Checkbox::new("checkbox-disabled-selected") + .set_disabled(true) + .toggle(), + ), + ) + } + } +} diff --git a/crates/ui2/src/components/icon.rs b/crates/ui2/src/components/icon.rs index 5885d76101..8075352b30 100644 --- a/crates/ui2/src/components/icon.rs +++ b/crates/ui2/src/components/icon.rs @@ -22,6 +22,7 @@ pub enum IconColor { Warning, Success, Info, + Selected, } impl IconColor { @@ -36,6 +37,7 @@ impl IconColor { IconColor::Warning => cx.theme().status().warning, IconColor::Success => cx.theme().status().success, IconColor::Info => cx.theme().status().info, + IconColor::Selected => cx.theme().colors().icon_accent, } } } @@ -55,6 +57,7 @@ pub enum Icon { ChevronRight, ChevronUp, Close, + Dash, Exit, ExclamationTriangle, File, @@ -112,6 +115,7 @@ impl Icon { Icon::ChevronRight => "icons/chevron_right.svg", Icon::ChevronUp => "icons/chevron_up.svg", Icon::Close => "icons/x.svg", + Icon::Dash => "icons/dash.svg", Icon::Exit => "icons/exit.svg", Icon::ExclamationTriangle => "icons/warning.svg", Icon::File => "icons/file.svg", diff --git a/crates/ui2/src/prelude.rs b/crates/ui2/src/prelude.rs index 8ba74cce95..072ed00060 100644 --- a/crates/ui2/src/prelude.rs +++ b/crates/ui2/src/prelude.rs @@ -154,10 +154,10 @@ impl InteractionState { } } -#[derive(Default, PartialEq)] -pub enum SelectedState { +#[derive(Debug, Default, PartialEq, Eq, Hash, Clone, Copy)] +pub enum Selected { #[default] Unselected, - PartiallySelected, + Indeterminate, Selected, } From 660c3371e4fbaceb2d9916b4e988a75999bc8763 Mon Sep 17 00:00:00 2001 From: Kirill Bulatov Date: Sun, 5 Nov 2023 14:43:54 +0200 Subject: [PATCH 50/76] Refresh all possibly stale diagnostics pat --- crates/diagnostics/src/diagnostics.rs | 134 ++++++++++++++++---------- 1 file changed, 81 insertions(+), 53 deletions(-) diff --git a/crates/diagnostics/src/diagnostics.rs b/crates/diagnostics/src/diagnostics.rs index a3d779531b..dc3dc0e061 100644 --- a/crates/diagnostics/src/diagnostics.rs +++ b/crates/diagnostics/src/diagnostics.rs @@ -3,7 +3,7 @@ mod project_diagnostics_settings; mod toolbar_controls; use anyhow::Result; -use collections::{BTreeSet, HashSet}; +use collections::{BTreeSet, HashMap, HashSet}; use editor::{ diagnostic_block_renderer, display_map::{BlockDisposition, BlockId, BlockProperties, BlockStyle, RenderBlock}, @@ -13,7 +13,7 @@ use editor::{ }; use gpui::{ actions, elements::*, fonts::TextStyle, serde_json, AnyViewHandle, AppContext, Entity, - ModelHandle, Task, View, ViewContext, ViewHandle, WeakViewHandle, + ModelHandle, Subscription, Task, View, ViewContext, ViewHandle, WeakViewHandle, }; use language::{ Anchor, Bias, Buffer, Diagnostic, DiagnosticEntry, DiagnosticSeverity, Point, Selection, @@ -28,6 +28,7 @@ use std::{ any::{Any, TypeId}, borrow::Cow, cmp::Ordering, + mem, ops::Range, path::PathBuf, sync::Arc, @@ -61,7 +62,9 @@ struct ProjectDiagnosticsEditor { excerpts: ModelHandle, path_states: Vec, paths_to_update: BTreeSet<(ProjectPath, LanguageServerId)>, + current_diagnostics: HashMap>, include_warnings: bool, + _subscriptions: Vec, } struct PathState { @@ -149,25 +152,22 @@ impl ProjectDiagnosticsEditor { workspace: WeakViewHandle, cx: &mut ViewContext, ) -> Self { - cx.subscribe(&project_handle, |this, _, event, cx| match event { - project::Event::DiskBasedDiagnosticsFinished { language_server_id } => { - log::debug!("Disk based diagnostics finished for server {language_server_id}"); - this.update_excerpts(Some(*language_server_id), cx); - this.update_title(cx); - } - project::Event::DiagnosticsUpdated { - language_server_id, - path, - } => { - log::debug!("Adding path {path:?} to update for server {language_server_id}"); - this.paths_to_update - .insert((path.clone(), *language_server_id)); - this.update_excerpts(Some(*language_server_id), cx); - this.update_title(cx); - } - _ => {} - }) - .detach(); + let project_event_subscription = + cx.subscribe(&project_handle, |this, _, event, cx| match event { + project::Event::DiskBasedDiagnosticsFinished { language_server_id } => { + log::debug!("Disk based diagnostics finished for server {language_server_id}"); + this.update_excerpts(Some(*language_server_id), cx); + } + project::Event::DiagnosticsUpdated { + language_server_id, + path, + } => { + log::debug!("Adding path {path:?} to update for server {language_server_id}"); + this.paths_to_update + .insert((path.clone(), *language_server_id)); + } + _ => {} + }); let excerpts = cx.add_model(|cx| MultiBuffer::new(project_handle.read(cx).replica_id())); let editor = cx.add_view(|cx| { @@ -176,19 +176,14 @@ impl ProjectDiagnosticsEditor { editor.set_vertical_scroll_margin(5, cx); editor }); - cx.subscribe(&editor, |this, _, event, cx| { + let editor_event_subscription = cx.subscribe(&editor, |this, _, event, cx| { cx.emit(event.clone()); if event == &editor::Event::Focused && this.path_states.is_empty() { cx.focus_self() } - }) - .detach(); + }); let project = project_handle.read(cx); - let paths_to_update = project - .diagnostic_summaries(cx) - .map(|(path, server_id, _)| (path, server_id)) - .collect(); let summary = project.diagnostic_summary(cx); let mut this = Self { project: project_handle, @@ -197,8 +192,10 @@ impl ProjectDiagnosticsEditor { excerpts, editor, path_states: Default::default(), - paths_to_update, + paths_to_update: BTreeSet::new(), include_warnings: settings::get::(cx).include_warnings, + current_diagnostics: HashMap::default(), + _subscriptions: vec![project_event_subscription, editor_event_subscription], }; this.update_excerpts(None, cx); this @@ -218,12 +215,6 @@ impl ProjectDiagnosticsEditor { fn toggle_warnings(&mut self, _: &ToggleWarnings, cx: &mut ViewContext) { self.include_warnings = !self.include_warnings; - self.paths_to_update = self - .project - .read(cx) - .diagnostic_summaries(cx) - .map(|(path, server_id, _)| (path, server_id)) - .collect(); self.update_excerpts(None, cx); cx.notify(); } @@ -234,29 +225,71 @@ impl ProjectDiagnosticsEditor { cx: &mut ViewContext, ) { log::debug!("Updating excerpts for server {language_server_id:?}"); - let mut paths = Vec::new(); - self.paths_to_update.retain(|(path, server_id)| { - if language_server_id - .map_or(true, |language_server_id| language_server_id == *server_id) - { - paths.push(path.clone()); - false - } else { - true + let mut paths_to_recheck = HashSet::default(); + let mut new_summaries: HashMap> = self + .project + .read(cx) + .diagnostic_summaries(cx) + .fold(HashMap::default(), |mut summaries, (path, server_id, _)| { + summaries.entry(server_id).or_default().insert(path); + summaries + }); + let mut old_diagnostics = + mem::replace(&mut self.current_diagnostics, new_summaries.clone()); + if let Some(language_server_id) = language_server_id { + new_summaries.retain(|server_id, _| server_id == &language_server_id); + old_diagnostics.retain(|server_id, _| server_id == &language_server_id); + self.paths_to_update.retain(|(path, server_id)| { + if server_id == &language_server_id { + paths_to_recheck.insert(path.clone()); + false + } else { + true + } + }); + } else { + paths_to_recheck.extend( + mem::replace(&mut self.paths_to_update, BTreeSet::new()) + .into_iter() + .map(|(path, _)| path), + ); + } + + for (server_id, new_paths) in new_summaries { + match old_diagnostics.remove(&server_id) { + Some(mut old_paths) => { + paths_to_recheck.extend( + new_paths + .into_iter() + .filter(|new_path| !old_paths.remove(new_path)), + ); + paths_to_recheck.extend(old_paths); + } + None => paths_to_recheck.extend(new_paths), } - }); + } + paths_to_recheck.extend(old_diagnostics.into_iter().flat_map(|(_, paths)| paths)); + let project = self.project.clone(); cx.spawn(|this, mut cx| { async move { - for path in paths { + let mut changed = false; + for path in paths_to_recheck { let buffer = project .update(&mut cx, |project, cx| project.open_buffer(path.clone(), cx)) .await?; this.update(&mut cx, |this, cx| { - this.populate_excerpts(path, language_server_id, buffer, cx) + this.populate_excerpts(path, language_server_id, buffer, cx); + changed = true; })?; } - Result::<_, anyhow::Error>::Ok(()) + if changed { + this.update(&mut cx, |this, cx| { + this.summary = this.project.read(cx).diagnostic_summary(cx); + cx.emit(Event::TitleChanged); + })?; + } + anyhow::Ok(()) } .log_err() }) @@ -559,11 +592,6 @@ impl ProjectDiagnosticsEditor { } cx.notify(); } - - fn update_title(&mut self, cx: &mut ViewContext) { - self.summary = self.project.read(cx).diagnostic_summary(cx); - cx.emit(Event::TitleChanged); - } } impl Item for ProjectDiagnosticsEditor { From 7145fabb6d3f727fd260eb33be0220d9cc848c63 Mon Sep 17 00:00:00 2001 From: Kirill Bulatov Date: Sun, 5 Nov 2023 14:44:22 +0200 Subject: [PATCH 51/76] Eagerly refresh diagnostics that do not intercept with user input --- crates/diagnostics/src/diagnostics.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/crates/diagnostics/src/diagnostics.rs b/crates/diagnostics/src/diagnostics.rs index dc3dc0e061..4f66513f0f 100644 --- a/crates/diagnostics/src/diagnostics.rs +++ b/crates/diagnostics/src/diagnostics.rs @@ -165,6 +165,12 @@ impl ProjectDiagnosticsEditor { log::debug!("Adding path {path:?} to update for server {language_server_id}"); this.paths_to_update .insert((path.clone(), *language_server_id)); + let no_multiselections = this.editor.update(cx, |editor, cx| { + editor.selections.all::(cx).len() <= 1 + }); + if no_multiselections && !this.is_dirty(cx) { + this.update_excerpts(Some(*language_server_id), cx); + } } _ => {} }); From ff1d692e4602df3e0459330e793e6ee744a0c544 Mon Sep 17 00:00:00 2001 From: Kirill Bulatov Date: Sun, 5 Nov 2023 14:53:13 +0200 Subject: [PATCH 52/76] Restructure inner path data --- crates/diagnostics/src/diagnostics.rs | 29 ++++++++++++++------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/crates/diagnostics/src/diagnostics.rs b/crates/diagnostics/src/diagnostics.rs index 4f66513f0f..a3d4bc9589 100644 --- a/crates/diagnostics/src/diagnostics.rs +++ b/crates/diagnostics/src/diagnostics.rs @@ -3,7 +3,7 @@ mod project_diagnostics_settings; mod toolbar_controls; use anyhow::Result; -use collections::{BTreeSet, HashMap, HashSet}; +use collections::{HashMap, HashSet}; use editor::{ diagnostic_block_renderer, display_map::{BlockDisposition, BlockId, BlockProperties, BlockStyle, RenderBlock}, @@ -61,7 +61,7 @@ struct ProjectDiagnosticsEditor { summary: DiagnosticSummary, excerpts: ModelHandle, path_states: Vec, - paths_to_update: BTreeSet<(ProjectPath, LanguageServerId)>, + paths_to_update: HashMap>, current_diagnostics: HashMap>, include_warnings: bool, _subscriptions: Vec, @@ -128,9 +128,12 @@ impl View for ProjectDiagnosticsEditor { "summary": project.diagnostic_summary(cx), }), "summary": self.summary, - "paths_to_update": self.paths_to_update.iter().map(|(path, server_id)| - (path.path.to_string_lossy(), server_id.0) - ).collect::>(), + "paths_to_update": self.paths_to_update.iter().map(|(server_id, paths)| + (server_id.0, paths.into_iter().map(|path| path.path.to_string_lossy()).collect::>()) + ).collect::>(), + "current_diagnostics": self.current_diagnostics.iter().map(|(server_id, paths)| + (server_id.0, paths.into_iter().map(|path| path.path.to_string_lossy()).collect::>()) + ).collect::>(), "paths_states": self.path_states.iter().map(|state| json!({ "path": state.path.path.to_string_lossy(), @@ -164,7 +167,9 @@ impl ProjectDiagnosticsEditor { } => { log::debug!("Adding path {path:?} to update for server {language_server_id}"); this.paths_to_update - .insert((path.clone(), *language_server_id)); + .entry(*language_server_id) + .or_default() + .insert(path.clone()); let no_multiselections = this.editor.update(cx, |editor, cx| { editor.selections.all::(cx).len() <= 1 }); @@ -198,7 +203,7 @@ impl ProjectDiagnosticsEditor { excerpts, editor, path_states: Default::default(), - paths_to_update: BTreeSet::new(), + paths_to_update: HashMap::default(), include_warnings: settings::get::(cx).include_warnings, current_diagnostics: HashMap::default(), _subscriptions: vec![project_event_subscription, editor_event_subscription], @@ -245,20 +250,16 @@ impl ProjectDiagnosticsEditor { if let Some(language_server_id) = language_server_id { new_summaries.retain(|server_id, _| server_id == &language_server_id); old_diagnostics.retain(|server_id, _| server_id == &language_server_id); - self.paths_to_update.retain(|(path, server_id)| { + self.paths_to_update.retain(|server_id, paths| { if server_id == &language_server_id { - paths_to_recheck.insert(path.clone()); + paths_to_recheck.extend(paths.drain()); false } else { true } }); } else { - paths_to_recheck.extend( - mem::replace(&mut self.paths_to_update, BTreeSet::new()) - .into_iter() - .map(|(path, _)| path), - ); + paths_to_recheck.extend(self.paths_to_update.drain().flat_map(|(_, paths)| paths)); } for (server_id, new_paths) in new_summaries { From fdcb907644e598716c061c1c20edcab19ea79b51 Mon Sep 17 00:00:00 2001 From: Kirill Bulatov Date: Sun, 5 Nov 2023 15:06:39 +0200 Subject: [PATCH 53/76] Parallelize diagnostics filling, add more logs --- Cargo.lock | 1 + crates/diagnostics/Cargo.toml | 1 + crates/diagnostics/src/diagnostics.rs | 50 ++++++++++++++++++--------- 3 files changed, 35 insertions(+), 17 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e33edf29f0..b63c46ce98 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2459,6 +2459,7 @@ dependencies = [ "client", "collections", "editor", + "futures 0.3.28", "gpui", "language", "log", diff --git a/crates/diagnostics/Cargo.toml b/crates/diagnostics/Cargo.toml index 26a2a82999..0f9d108831 100644 --- a/crates/diagnostics/Cargo.toml +++ b/crates/diagnostics/Cargo.toml @@ -22,6 +22,7 @@ workspace = { path = "../workspace" } log.workspace = true anyhow.workspace = true +futures.workspace = true schemars.workspace = true serde.workspace = true serde_derive.workspace = true diff --git a/crates/diagnostics/src/diagnostics.rs b/crates/diagnostics/src/diagnostics.rs index a3d4bc9589..dec26f12c4 100644 --- a/crates/diagnostics/src/diagnostics.rs +++ b/crates/diagnostics/src/diagnostics.rs @@ -2,7 +2,7 @@ pub mod items; mod project_diagnostics_settings; mod toolbar_controls; -use anyhow::Result; +use anyhow::{Context, Result}; use collections::{HashMap, HashSet}; use editor::{ diagnostic_block_renderer, @@ -11,6 +11,7 @@ use editor::{ scroll::autoscroll::Autoscroll, Editor, ExcerptId, ExcerptRange, MultiBuffer, ToOffset, }; +use futures::future::try_join_all; use gpui::{ actions, elements::*, fonts::TextStyle, serde_json, AnyViewHandle, AppContext, Entity, ModelHandle, Subscription, Task, View, ViewContext, ViewHandle, WeakViewHandle, @@ -277,25 +278,40 @@ impl ProjectDiagnosticsEditor { } paths_to_recheck.extend(old_diagnostics.into_iter().flat_map(|(_, paths)| paths)); + if paths_to_recheck.is_empty() { + log::debug!("No paths to recheck for language server {language_server_id:?}"); + return; + } + + log::debug!( + "Rechecking {} paths for language server {:?}", + paths_to_recheck.len(), + language_server_id + ); let project = self.project.clone(); cx.spawn(|this, mut cx| { async move { - let mut changed = false; - for path in paths_to_recheck { - let buffer = project - .update(&mut cx, |project, cx| project.open_buffer(path.clone(), cx)) - .await?; - this.update(&mut cx, |this, cx| { - this.populate_excerpts(path, language_server_id, buffer, cx); - changed = true; - })?; - } - if changed { - this.update(&mut cx, |this, cx| { - this.summary = this.project.read(cx).diagnostic_summary(cx); - cx.emit(Event::TitleChanged); - })?; - } + let _ = try_join_all(paths_to_recheck.into_iter().map(|path| { + let mut cx = cx.clone(); + let project = project.clone(); + async move { + let buffer = project + .update(&mut cx, |project, cx| project.open_buffer(path.clone(), cx)) + .await + .with_context(|| format!("opening buffer for path {path:?}"))?; + this.update(&mut cx, |this, cx| { + this.populate_excerpts(path, language_server_id, buffer, cx); + }) + .context("missing project")?; + anyhow::Ok(()) + } + })) + .await?; + + this.update(&mut cx, |this, cx| { + this.summary = this.project.read(cx).diagnostic_summary(cx); + cx.emit(Event::TitleChanged); + })?; anyhow::Ok(()) } .log_err() From ad93d9132f03ad398018332f450c541142ba0a75 Mon Sep 17 00:00:00 2001 From: Kirill Bulatov Date: Sun, 5 Nov 2023 15:37:11 +0200 Subject: [PATCH 54/76] Correctly update old diagnostics --- crates/diagnostics/src/diagnostics.rs | 29 ++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/crates/diagnostics/src/diagnostics.rs b/crates/diagnostics/src/diagnostics.rs index dec26f12c4..1ec4105fbd 100644 --- a/crates/diagnostics/src/diagnostics.rs +++ b/crates/diagnostics/src/diagnostics.rs @@ -246,11 +246,8 @@ impl ProjectDiagnosticsEditor { summaries.entry(server_id).or_default().insert(path); summaries }); - let mut old_diagnostics = - mem::replace(&mut self.current_diagnostics, new_summaries.clone()); - if let Some(language_server_id) = language_server_id { + let mut old_diagnostics = if let Some(language_server_id) = language_server_id { new_summaries.retain(|server_id, _| server_id == &language_server_id); - old_diagnostics.retain(|server_id, _| server_id == &language_server_id); self.paths_to_update.retain(|server_id, paths| { if server_id == &language_server_id { paths_to_recheck.extend(paths.drain()); @@ -259,10 +256,24 @@ impl ProjectDiagnosticsEditor { true } }); + let mut old_diagnostics = HashMap::default(); + if let Some(new_paths) = new_summaries.get(&language_server_id) { + if let Some(old_paths) = self + .current_diagnostics + .insert(language_server_id, new_paths.clone()) + { + old_diagnostics.insert(language_server_id, old_paths); + } + } else { + if let Some(old_paths) = self.current_diagnostics.remove(&language_server_id) { + old_diagnostics.insert(language_server_id, old_paths); + } + } + old_diagnostics } else { paths_to_recheck.extend(self.paths_to_update.drain().flat_map(|(_, paths)| paths)); - } - + mem::replace(&mut self.current_diagnostics, new_summaries.clone()) + }; for (server_id, new_paths) in new_summaries { match old_diagnostics.remove(&server_id) { Some(mut old_paths) => { @@ -282,7 +293,6 @@ impl ProjectDiagnosticsEditor { log::debug!("No paths to recheck for language server {language_server_id:?}"); return; } - log::debug!( "Rechecking {} paths for language server {:?}", paths_to_recheck.len(), @@ -291,7 +301,7 @@ impl ProjectDiagnosticsEditor { let project = self.project.clone(); cx.spawn(|this, mut cx| { async move { - let _ = try_join_all(paths_to_recheck.into_iter().map(|path| { + let _: Vec<()> = try_join_all(paths_to_recheck.into_iter().map(|path| { let mut cx = cx.clone(); let project = project.clone(); async move { @@ -306,7 +316,8 @@ impl ProjectDiagnosticsEditor { anyhow::Ok(()) } })) - .await?; + .await + .context("rechecking diagnostics for paths")?; this.update(&mut cx, |this, cx| { this.summary = this.project.read(cx).diagnostic_summary(cx); From 7374ca999bbb792d72f76c69b63979d92026afc3 Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Sun, 5 Nov 2023 22:56:35 +0100 Subject: [PATCH 55/76] chore: Update vue.js parser (fixes wonky HTML parsing) Vue.js defined a bunch of symbols in it's scanner that collided with those defined in HTML Tree-sitter grammar. I simply removed them as they were meant for consumption by the external parties interested in HTML parser with Vue support - since we handle that ourselves this is not really necessary to preserve anymore. cc was firing up a bunch of warnings about unused symbols, so yeah. --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e33edf29f0..5c0b98c6e4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9728,7 +9728,7 @@ dependencies = [ [[package]] name = "tree-sitter-vue" version = "0.0.1" -source = "git+https://github.com/zed-industries/tree-sitter-vue?rev=95b2890#95b28908d90e928c308866f7631e73ef6e1d4b5f" +source = "git+https://github.com/zed-industries/tree-sitter-vue?rev=9b6cb221ccb8d0b956fcb17e9a1efac2feefeb58#9b6cb221ccb8d0b956fcb17e9a1efac2feefeb58" dependencies = [ "cc", "tree-sitter", diff --git a/Cargo.toml b/Cargo.toml index 772773c977..6245889530 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -176,7 +176,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 = "95b2890"} +tree-sitter-vue = {git = "https://github.com/zed-industries/tree-sitter-vue", rev = "9b6cb221ccb8d0b956fcb17e9a1efac2feefeb58"} [patch.crates-io] tree-sitter = { git = "https://github.com/tree-sitter/tree-sitter", rev = "35a6052fbcafc5e5fc0f9415b8652be7dcaf7222" } async-task = { git = "https://github.com/zed-industries/async-task", rev = "341b57d6de98cdfd7b418567b8de2022ca993a6e" } From b9d8e081655d75992715aaa56de912379266fb83 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Mon, 6 Nov 2023 10:57:15 -0500 Subject: [PATCH 56/76] Add Andromeda source theme --- assets/themes/src/vscode/andromeda/LICENSE | 7 + .../vscode/andromeda/andromeda-bordered.json | 369 ++++++++++++++++++ .../src/vscode/andromeda/andromeda.json | 367 +++++++++++++++++ .../themes/src/vscode/andromeda/family.json | 16 + 4 files changed, 759 insertions(+) create mode 100644 assets/themes/src/vscode/andromeda/LICENSE create mode 100644 assets/themes/src/vscode/andromeda/andromeda-bordered.json create mode 100644 assets/themes/src/vscode/andromeda/andromeda.json create mode 100644 assets/themes/src/vscode/andromeda/family.json diff --git a/assets/themes/src/vscode/andromeda/LICENSE b/assets/themes/src/vscode/andromeda/LICENSE new file mode 100644 index 0000000000..82d25d5061 --- /dev/null +++ b/assets/themes/src/vscode/andromeda/LICENSE @@ -0,0 +1,7 @@ +Copyright (c) 2017 eliverlara@gmail.com + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/assets/themes/src/vscode/andromeda/andromeda-bordered.json b/assets/themes/src/vscode/andromeda/andromeda-bordered.json new file mode 100644 index 0000000000..c59ece1ee1 --- /dev/null +++ b/assets/themes/src/vscode/andromeda/andromeda-bordered.json @@ -0,0 +1,369 @@ +{ + "name": "Andromeda Bordered", + "type": "dark", + "colors": { + "focusBorder": "#746f77", + "foreground": "#D5CED9", + "widget.shadow": "#14151A", + "selection.background": "#746f77", + "errorForeground": "#FC644D", + + "button.background": "#00e8c5cc", + "button.hoverBackground": "#07d4b6cc", + + "dropdown.background": "#2b303b", + "dropdown.border": "#363c49", + + "input.background": "#2b303b", + "input.placeholderForeground": "#746f77", + "inputOption.activeBorder": "#C668BA", + "inputValidation.errorBackground": "#D65343", + "inputValidation.errorBorder": "#D65343", + "inputValidation.infoBackground": "#3A6395", + "inputValidation.infoBorder": "#3A6395", + "inputValidation.warningBackground": "#DE9237", + "inputValidation.warningBorder": "#DE9237", + + "scrollbar.shadow": "#23262E", + "scrollbarSlider.activeBackground": "#3A3F4CCC", + "scrollbarSlider.background": "#3A3F4C77", + "scrollbarSlider.hoverBackground": "#3A3F4CAA", + + "badge.background": "#00b0ff", + "badge.foreground": "#20232B", + + "progressBar.background": "#C668BA", + + "list.activeSelectionBackground": "#23262E", + "list.activeSelectionForeground": "#00e8c6", + "list.dropBackground": "#3a404e", + "list.focusBackground": "#282b35", + "list.focusForeground": "#eee", + "list.hoverBackground": "#23262E", + "list.hoverForeground": "#eee", + "list.inactiveSelectionBackground": "#23262E", + "list.inactiveSelectionForeground": "#00e8c6", + + "activityBar.background": "#20232B", + "activityBar.dropBackground": "#3a404e", + "activityBar.foreground": "#BAAFC0", + "activityBarBadge.background": "#00b0ff", + "activityBarBadge.foreground": "#20232B", + "activityBar.border": "#1B1D23", + + "sideBar.background": "#23262E", + "sideBarSectionHeader.background": "#23262E", + "sideBarTitle.foreground": "#00e8c6", + "sideBar.foreground": "#999999", + "sideBar.border": "#1B1D23", + + "editorGroup.background": "#23262E", + "editorGroup.dropBackground": "#495061d7", + "editorGroupHeader.tabsBackground": "#23262E", + "tab.activeBackground": "#262A33", + "tab.inactiveBackground": "#23262E", + "tab.activeForeground": "#00e8c6", + "tab.inactiveForeground": "#746f77", + + "editor.background": "#262A33", + "editor.foreground": "#D5CED9", + "editorLineNumber.foreground": "#746f77", + "editorCursor.foreground": "#FFF", + "editor.selectionBackground": "#3D4352", + "editor.selectionHighlightBackground": "#4F435580", + "editor.wordHighlightBackground": "#4F4355", + "editor.wordHighlightStrongBackground": "#db45a280", + "editor.findMatchBackground": "#f39d1256", + "editor.findMatchHighlightBackground": "#59b8b377", + "editor.findMatchBorder": "#f39d12b6", + "editor.hoverHighlightBackground": "#373941", + "editor.lineHighlightBackground": "#2e323d", + "editor.lineHighlightBorder": "#2e323d", + "editorLink.activeForeground": "#3B79C7", + "editor.rangeHighlightBackground": "#372F3C", + "editorWhitespace.foreground": "#333844", + "editorIndentGuide.background": "#333844", + "editorIndentGuide.activeBackground": "#585C66", + "editorRuler.foreground": "#4F4355", + "editorCodeLens.foreground": "#746f77", + "editorBracketMatch.background": "#746f77", + "editorBracketMatch.border": "#746f77", + "editorOverviewRuler.border": "#1B1D23", + "editorError.foreground": "#FC644D", + "editorWarning.foreground": "#FF9F2E", + "editorGutter.modifiedBackground": "#5BC0EBBB", + "editorGutter.addedBackground": "#9BC53DBB", + "editorGutter.deletedBackground": "#FC644DBB", + + "diffEditor.insertedTextBackground": "#29BF1220", + "diffEditor.removedTextBackground": "#F21B3F20", + + "editorWidget.background": "#20232A", + "editorSuggestWidget.background": "#20232A", + "editorSuggestWidget.border": "#372F3C", + "editorSuggestWidget.selectedBackground": "#373941", + "editorHoverWidget.background": "#373941", + "editorHoverWidget.border": "#00e8c5cc", + "debugExceptionWidget.background": "#FF9F2E60", + "debugExceptionWidget.border": "#FF9F2E60", + + "minimapSlider.background": "#58607460", + "minimapSlider.hoverBackground": "#60698060", + "minimapSlider.activeBackground": "#60698060", + + "peekView.border": "#23262E", + "peekViewEditor.background": "#1A1C22", + "peekViewEditor.matchHighlightBackground": "#FF9F2E60", + "peekViewResult.background": "#1A1C22", + "peekViewResult.matchHighlightBackground": "#FF9F2E60", + "peekViewResult.selectionBackground": "#23262E", + "peekViewTitle.background": "#1A1C22", + "peekViewTitleDescription.foreground": "#746f77", + + "merge.currentHeaderBackground": "#F92672", + "merge.currentContentBackground": "#F9267240", + "merge.incomingHeaderBackground": "#3B79C7BB", + "merge.incomingContentBackground": "#3B79C740", + + "panel.background": "#23262E", + "panel.border": "#1B1D23", + "panelTitle.activeBorder": "#23262E", + "panelTitle.inactiveForeground": "#746f77", + + "statusBar.background": "#23262E", + "statusBar.debuggingBackground": "#FC644D", + "statusBar.noFolderBackground": "#23262E", + "statusBarItem.activeBackground": "#00e8c5cc", + "statusBarItem.hoverBackground": "#07d4b5b0", + "statusBarItem.prominentBackground": "#07d4b5b0", + "statusBarItem.prominentHoverBackground": "#00e8c5cc", + + "terminal.ansiRed":"#ee5d43", + "terminal.ansiGreen":"#96E072", + "terminal.ansiYellow":"#FFE66D", + "terminal.ansiBlue":"#7cb7ff", + "terminal.ansiMagenta":"#ff00aa", + "terminal.ansiCyan":"#00e8c6", + "terminal.ansiBrightRed":"#ee5d43", + "terminal.ansiBrightGreen":"#96E072", + "terminal.ansiBrightYellow":"#FFE66D", + "terminal.ansiBrightBlue":"#7cb7ff", + "terminal.ansiBrightMagenta":"#ff00aa", + "terminal.ansiBrightCyan":"#00e8c6", + "terminalCursor.background": "#23262E", + "terminalCursor.foreground": "#FFE66D", + + "titleBar.activeBackground": "#23262E", + + "notification.background": "#2d313b", + "notification.buttonBackground": "#00e8c5cc", + "notification.buttonHoverBackground": "#07d4b5b0", + "notification.infoBackground": "#00b0ff", + "notification.warningBackground": "#FF9F2E", + "notification.errorBackground": "#FC644D", + + "extensionButton.prominentBackground": "#07d4b6cc", + "extensionButton.prominentHoverBackground": "#07d4b5b0", + + "pickerGroup.border": "#4F4355", + "pickerGroup.foreground": "#746f77", + + "debugToolBar.background": "#20232A", + + "walkThrough.embeddedEditorBackground": "#23262E", + + "gitDecoration.ignoredResourceForeground": "#555555" + + }, + "tokenColors": [ + { + "settings": { + "foreground": "#D5CED9", + "background": "#23262E" + } + }, + { + "name": "Comment color", + "scope": [ + "comment", + "markup.quote.markdown", + "meta.diff", + "meta.diff.header" + ], + "settings": { + "foreground": "#A0A1A7cc" + } + }, + { + "name": "Text Color", + "scope": [ + "meta.template.expression.js", + "constant.name.attribute.tag.jade", + "punctuation.definition.metadata.markdown", + "punctuation.definition.string.end.markdown", + "punctuation.definition.string.begin.markdown" + ], + "settings": { + "foreground": "#D5CED9" + } + }, + { + "name": "Cyan", + "scope": [ + "variable", + "support.variable", + "entity.name.tag.yaml", + "constant.character.entity.html", + "source.css entity.name.tag.reference", + "beginning.punctuation.definition.list.markdown", + "source.css entity.other.attribute-name.parent-selector", + "meta.structure.dictionary.json support.type.property-name" + ], + "settings": { + "foreground": "#00e8c6" + } + }, + { + "name": "Orange", + "scope": [ + "markup.bold", + "constant.numeric", + "meta.group.regexp", + "constant.other.php", + "support.constant.ext.php", + "constant.other.class.php", + "support.constant.core.php", + "fenced_code.block.language", + "constant.other.caps.python", + "entity.other.attribute-name", + "support.type.exception.python", + "source.css keyword.other.unit", + "variable.other.object.property.js.jsx", "variable.other.object.js" + ], + "settings": { + "foreground": "#f39c12" + } + }, + { + "name": "Yellow", + "scope": [ + "markup.list", + "text.xml string", + "entity.name.type", + "support.function", + "entity.other.attribute-name", + "meta.at-rule.extend", + "entity.name.function", + "entity.other.inherited-class", + "entity.other.keyframe-offset.css", + "text.html.markdown string.quoted", + "meta.function-call.generic.python", + "meta.at-rule.extend support.constant", + "entity.other.attribute-name.class.jade", + "source.css entity.other.attribute-name", + "text.xml punctuation.definition.string" + + ], + "settings": { + "foreground": "#FFE66D" + } + }, + { + "name": "Pink", + "scope": [ + "markup.heading", + "variable.language.this.js", + "variable.language.special.self.python" + ], + "settings": { + "foreground": "#ff00aa" + } + }, + { + "name": "Hot Pink", + "scope": [ + "punctuation.definition.interpolation", + "punctuation.section.embedded.end.php", + "punctuation.section.embedded.end.ruby", + "punctuation.section.embedded.begin.php", + "punctuation.section.embedded.begin.ruby", + "punctuation.definition.template-expression", + "entity.name.tag" + ], + "settings": { + "foreground": "#f92672" + } + }, + { + "name": "Purple", + "scope": [ + "storage", + "keyword", + "meta.link", + "meta.image", + "markup.italic", + "source.js support.type" + + ], + "settings": { + "foreground": "#c74ded" + } + }, + { + "name": "Blue", + "scope": [ + "string.regexp", + "markup.changed" + ], + "settings": { + "foreground": "#7cb7ff" + } + }, + { + "name": "Red", + "scope": [ + "constant", + "support.class", + "keyword.operator", + "support.constant", + "text.html.markdown string", + "source.css support.function", + "source.php support.function", + "support.function.magic.python", + "entity.other.attribute-name.id", + "markup.deleted" + ], + "settings": { + "foreground": "#ee5d43" + } + }, + { + "name": "Green", + "scope": [ + "string", + "text.html.php string", + "markup.inline.raw", + "markup.inserted", + "punctuation.definition.string", + "punctuation.definition.markdown", + "text.html meta.embedded source.js string", + "text.html.php punctuation.definition.string", + "text.html meta.embedded source.js punctuation.definition.string", + "text.html punctuation.definition.string", + "text.html string" + ], + "settings": { + "foreground": "#96E072" + } + }, + { + "name": "Font Underline", + "scope": [ + "entity.other.inherited-class" + ], + "settings": { + "fontStyle": "underline" + } + } + ] +} diff --git a/assets/themes/src/vscode/andromeda/andromeda.json b/assets/themes/src/vscode/andromeda/andromeda.json new file mode 100644 index 0000000000..235eb8f003 --- /dev/null +++ b/assets/themes/src/vscode/andromeda/andromeda.json @@ -0,0 +1,367 @@ +{ + "name": "Andromeda", + "type": "dark", + "colors": { + "focusBorder": "#746f77", + "foreground": "#D5CED9", + "widget.shadow": "#14151A", + "selection.background": "#746f77", + "errorForeground": "#FC644D", + + "button.background": "#00e8c5cc", + "button.hoverBackground": "#07d4b6cc", + + "dropdown.background": "#2b303b", + "dropdown.border": "#363c49", + + "input.background": "#2b303b", + "input.placeholderForeground": "#746f77", + "inputOption.activeBorder": "#C668BA", + "inputValidation.errorBackground": "#D65343", + "inputValidation.errorBorder": "#D65343", + "inputValidation.infoBackground": "#3A6395", + "inputValidation.infoBorder": "#3A6395", + "inputValidation.warningBackground": "#DE9237", + "inputValidation.warningBorder": "#DE9237", + + "scrollbar.shadow": "#23262E", + "scrollbarSlider.activeBackground": "#3A3F4CCC", + "scrollbarSlider.background": "#3A3F4C77", + "scrollbarSlider.hoverBackground": "#3A3F4CAA", + + "badge.background": "#00b0ff", + "badge.foreground": "#20232B", + + "progressBar.background": "#C668BA", + + "list.activeSelectionBackground": "#23262E", + "list.activeSelectionForeground": "#00e8c6", + "list.dropBackground": "#3a404e", + "list.focusBackground": "#282b35", + "list.focusForeground": "#eee", + "list.hoverBackground": "#23262E", + "list.hoverForeground": "#eee", + "list.inactiveSelectionBackground": "#23262E", + "list.inactiveSelectionForeground": "#00e8c6", + + "activityBar.background": "#23262E", + "activityBar.dropBackground": "#3a404e", + "activityBar.foreground": "#BAAFC0", + "activityBarBadge.background": "#00b0ff", + "activityBarBadge.foreground": "#20232B", + + "sideBar.background": "#23262E", + "sideBarSectionHeader.background": "#23262E", + "sideBarTitle.foreground": "#00e8c6", + "sideBar.foreground": "#999999", + + "editorGroup.background": "#23262E", + "editorGroup.dropBackground": "#495061d7", + "editorGroupHeader.tabsBackground": "#23262E", + "tab.activeBackground": "#23262e", + "tab.inactiveBackground": "#23262E", + "tab.activeForeground": "#00e8c6", + "tab.inactiveForeground": "#746f77", + + "editor.background": "#23262E", + "editor.foreground": "#D5CED9", + "editorLineNumber.foreground": "#746f77", + "editorCursor.foreground": "#FFF", + "editor.selectionBackground": "#3D4352", + "editor.selectionHighlightBackground": "#4F435580", + "editor.wordHighlightBackground": "#4F4355", + "editor.wordHighlightStrongBackground": "#db45a280", + "editor.findMatchBackground": "#f39d1256", + "editor.findMatchHighlightBackground": "#59b8b377", + "editor.findMatchBorder": "#f39d12b6", + "editor.hoverHighlightBackground": "#373941", + "editor.lineHighlightBackground": "#2e323d", + "editor.lineHighlightBorder": "#2e323d", + "editorLink.activeForeground": "#3B79C7", + "editor.rangeHighlightBackground": "#372F3C", + "editorWhitespace.foreground": "#333844", + "editorIndentGuide.background": "#333844", + "editorIndentGuide.activeBackground": "#585C66", + "editorRuler.foreground": "#4F4355", + "editorCodeLens.foreground": "#746f77", + "editorBracketMatch.background": "#746f77", + "editorBracketMatch.border": "#746f77", + "editorOverviewRuler.border": "#1B1D23", + "editorError.foreground": "#FC644D", + "editorWarning.foreground": "#FF9F2E", + "editorGutter.modifiedBackground": "#5BC0EBBB", + "editorGutter.addedBackground": "#9BC53DBB", + "editorGutter.deletedBackground": "#FC644DBB", + + "diffEditor.insertedTextBackground": "#29BF1220", + "diffEditor.removedTextBackground": "#F21B3F20", + + "editorWidget.background": "#20232A", + "editorSuggestWidget.background": "#20232A", + "editorSuggestWidget.border": "#372F3C", + "editorSuggestWidget.selectedBackground": "#373941", + "editorHoverWidget.background": "#373941", + "editorHoverWidget.border": "#00e8c5cc", + "debugExceptionWidget.background": "#FF9F2E60", + "debugExceptionWidget.border": "#FF9F2E60", + + "minimapSlider.background": "#58607460", + "minimapSlider.hoverBackground": "#60698060", + "minimapSlider.activeBackground": "#60698060", + + "peekView.border": "#23262E", + "peekViewEditor.background": "#1A1C22", + "peekViewEditor.matchHighlightBackground": "#FF9F2E60", + "peekViewResult.background": "#1A1C22", + "peekViewResult.matchHighlightBackground": "#FF9F2E60", + "peekViewResult.selectionBackground": "#23262E", + "peekViewTitle.background": "#1A1C22", + "peekViewTitleDescription.foreground": "#746f77", + + "merge.currentHeaderBackground": "#F92672", + "merge.currentContentBackground": "#F9267240", + "merge.incomingHeaderBackground": "#3B79C7BB", + "merge.incomingContentBackground": "#3B79C740", + + "panel.background": "#23262E", + "panel.border": "#1B1D23", + "panelTitle.activeBorder": "#23262E", + "panelTitle.inactiveForeground": "#746f77", + + "statusBar.background": "#23262E", + "statusBar.debuggingBackground": "#FC644D", + "statusBar.noFolderBackground": "#23262E", + "statusBarItem.activeBackground": "#00e8c5cc", + "statusBarItem.hoverBackground": "#07d4b5b0", + "statusBarItem.prominentBackground": "#07d4b5b0", + "statusBarItem.prominentHoverBackground": "#00e8c5cc", + + "terminal.ansiRed":"#ee5d43", + "terminal.ansiGreen":"#96E072", + "terminal.ansiYellow":"#FFE66D", + "terminal.ansiBlue":"#7cb7ff", + "terminal.ansiMagenta":"#ff00aa", + "terminal.ansiCyan":"#00e8c6", + "terminal.ansiBrightRed":"#ee5d43", + "terminal.ansiBrightGreen":"#96E072", + "terminal.ansiBrightYellow":"#FFE66D", + "terminal.ansiBrightBlue":"#7cb7ff", + "terminal.ansiBrightMagenta":"#ff00aa", + "terminal.ansiBrightCyan":"#00e8c6", + "terminalCursor.background": "#23262E", + "terminalCursor.foreground": "#FFE66D", + + "titleBar.activeBackground": "#23262E", + + "notification.background": "#2d313b", + "notification.buttonBackground": "#00e8c5cc", + "notification.buttonHoverBackground": "#07d4b5b0", + "notification.infoBackground": "#00b0ff", + "notification.warningBackground": "#FF9F2E", + "notification.errorBackground": "#FC644D", + + "extensionButton.prominentBackground": "#07d4b6cc", + "extensionButton.prominentHoverBackground": "#07d4b5b0", + + "pickerGroup.border": "#4F4355", + "pickerGroup.foreground": "#746f77", + + "debugToolBar.background": "#20232A", + + "walkThrough.embeddedEditorBackground": "#23262E", + + "gitDecoration.ignoredResourceForeground": "#555555" + + }, + "tokenColors": [ + { + "settings": { + "foreground": "#D5CED9", + "background": "#23262E" + } + }, + { + "name": "Comment color", + "scope": [ + "comment", + "markup.quote.markdown", + "meta.diff", + "meta.diff.header" + ], + "settings": { + "foreground": "#A0A1A7cc" + } + }, + { + "name": "Text Color", + "scope": [ + "meta.template.expression.js", + "constant.name.attribute.tag.jade", + "punctuation.definition.metadata.markdown", + "punctuation.definition.string.end.markdown", + "punctuation.definition.string.begin.markdown" + ], + "settings": { + "foreground": "#D5CED9" + } + }, + { + "name": "Cyan", + "scope": [ + "variable", + "support.variable", + "entity.name.tag.yaml", + "constant.character.entity.html", + "source.css entity.name.tag.reference", + "beginning.punctuation.definition.list.markdown", + "source.css entity.other.attribute-name.parent-selector", + "meta.structure.dictionary.json support.type.property-name" + ], + "settings": { + "foreground": "#00e8c6" + } + }, + { + "name": "Orange", + "scope": [ + "markup.bold", + "constant.numeric", + "meta.group.regexp", + "constant.other.php", + "support.constant.ext.php", + "constant.other.class.php", + "support.constant.core.php", + "fenced_code.block.language", + "constant.other.caps.python", + "entity.other.attribute-name", + "support.type.exception.python", + "source.css keyword.other.unit", + "variable.other.object.property.js.jsx", "variable.other.object.js" + ], + "settings": { + "foreground": "#f39c12" + } + }, + { + "name": "Yellow", + "scope": [ + "markup.list", + "text.xml string", + "entity.name.type", + "support.function", + "entity.other.attribute-name", + "meta.at-rule.extend", + "entity.name.function", + "entity.other.inherited-class", + "entity.other.keyframe-offset.css", + "text.html.markdown string.quoted", + "meta.function-call.generic.python", + "meta.at-rule.extend support.constant", + "entity.other.attribute-name.class.jade", + "source.css entity.other.attribute-name", + "text.xml punctuation.definition.string" + + ], + "settings": { + "foreground": "#FFE66D" + } + }, + { + "name": "Pink", + "scope": [ + "markup.heading", + "variable.language.this.js", + "variable.language.special.self.python" + ], + "settings": { + "foreground": "#ff00aa" + } + }, + { + "name": "Hot Pink", + "scope": [ + "punctuation.definition.interpolation", + "punctuation.section.embedded.end.php", + "punctuation.section.embedded.end.ruby", + "punctuation.section.embedded.begin.php", + "punctuation.section.embedded.begin.ruby", + "punctuation.definition.template-expression", + "entity.name.tag" + ], + "settings": { + "foreground": "#f92672" + } + }, + { + "name": "Purple", + "scope": [ + "storage", + "keyword", + "meta.link", + "meta.image", + "markup.italic", + "source.js support.type" + + ], + "settings": { + "foreground": "#c74ded" + } + }, + { + "name": "Blue", + "scope": [ + "string.regexp", + "markup.changed" + ], + "settings": { + "foreground": "#7cb7ff" + } + }, + { + "name": "Red", + "scope": [ + "constant", + "support.class", + "keyword.operator", + "support.constant", + "text.html.markdown string", + "source.css support.function", + "source.php support.function", + "support.function.magic.python", + "entity.other.attribute-name.id", + "markup.deleted" + ], + "settings": { + "foreground": "#ee5d43" + } + }, + { + "name": "Green", + "scope": [ + "string", + "text.html.php string", + "markup.inline.raw", + "markup.inserted", + "punctuation.definition.string", + "punctuation.definition.markdown", + "text.html meta.embedded source.js string", + "text.html.php punctuation.definition.string", + "text.html meta.embedded source.js punctuation.definition.string", + "text.html punctuation.definition.string", + "text.html string" + ], + "settings": { + "foreground": "#96E072" + } + }, + { + "name": "Font Underline", + "scope": [ + "entity.other.inherited-class" + ], + "settings": { + "fontStyle": "underline" + } + } + ] +} diff --git a/assets/themes/src/vscode/andromeda/family.json b/assets/themes/src/vscode/andromeda/family.json new file mode 100644 index 0000000000..cbdc038a55 --- /dev/null +++ b/assets/themes/src/vscode/andromeda/family.json @@ -0,0 +1,16 @@ +{ + "name": "Andromeda", + "author": "Eliver Lara (EliverLara)", + "themes": [ + { + "name": "Andromeda", + "file_name": "andromeda.json", + "appearance": "dark" + }, + { + "name": "Andromeda Bordered", + "file_name": "andromeda-bordered.json", + "appearance": "dark" + } + ] +} From 5c24c931c5ca90ad369f9b843b84bf9f7f6b42ca Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Mon, 6 Nov 2023 10:57:25 -0500 Subject: [PATCH 57/76] Remove unused file --- crates/theme_importer/src/temp.rs | 393 ------------------------------ 1 file changed, 393 deletions(-) delete mode 100644 crates/theme_importer/src/temp.rs diff --git a/crates/theme_importer/src/temp.rs b/crates/theme_importer/src/temp.rs deleted file mode 100644 index 5536a1984b..0000000000 --- a/crates/theme_importer/src/temp.rs +++ /dev/null @@ -1,393 +0,0 @@ -#[derive(Debug, Deserialize)] -struct VSCodeColorsOld { - #[serde(rename = "vsc_terminal_background")] - terminal_background: String, - #[serde(rename = "vsc_terminal_foreground")] - terminal_foreground: String, - #[serde(rename = "vsc_terminal_ansi_bright_black")] - terminal_ansi_bright_black: String, - #[serde(rename = "vsc_terminal_ansi_bright_red")] - terminal_ansi_bright_red: String, - #[serde(rename = "vsc_terminal_ansi_bright_green")] - terminal_ansi_bright_green: String, - #[serde(rename = "vsc_terminal_ansi_bright_yellow")] - terminal_ansi_bright_yellow: String, - #[serde(rename = "vsc_terminal_ansi_bright_blue")] - terminal_ansi_bright_blue: String, - #[serde(rename = "vsc_terminal_ansi_bright_magenta")] - terminal_ansi_bright_magenta: String, - #[serde(rename = "vsc_terminal_ansi_bright_cyan")] - terminal_ansi_bright_cyan: String, - #[serde(rename = "vsc_terminal_ansi_bright_white")] - terminal_ansi_bright_white: String, - #[serde(rename = "vsc_terminal_ansi_black")] - terminal_ansi_black: String, - #[serde(rename = "vsc_terminal_ansi_red")] - terminal_ansi_red: String, - #[serde(rename = "vsc_terminal_ansi_green")] - terminal_ansi_green: String, - #[serde(rename = "vsc_terminal_ansi_yellow")] - terminal_ansi_yellow: String, - #[serde(rename = "vsc_terminal_ansi_blue")] - terminal_ansi_blue: String, - #[serde(rename = "vsc_terminal_ansi_magenta")] - terminal_ansi_magenta: String, - #[serde(rename = "vsc_terminal_ansi_cyan")] - terminal_ansi_cyan: String, - #[serde(rename = "vsc_terminal_ansi_white")] - terminal_ansi_white: String, - #[serde(rename = "vsc_focus_border")] - focus_border: String, - #[serde(rename = "vsc_foreground")] - foreground: String, - #[serde(rename = "vsc_selection_background")] - selection_background: String, - #[serde(rename = "vsc_error_foreground")] - error_foreground: String, - #[serde(rename = "vsc_button_background")] - button_background: String, - #[serde(rename = "vsc_button_foreground")] - button_foreground: String, - #[serde(rename = "vsc_button_secondary_background")] - button_secondary_background: String, - #[serde(rename = "vsc_button_secondary_foreground")] - button_secondary_foreground: String, - #[serde(rename = "vsc_button_secondary_hover_background")] - button_secondary_hover_background: String, - #[serde(rename = "vsc_dropdown_background")] - dropdown_background: String, - #[serde(rename = "vsc_dropdown_border")] - dropdown_border: String, - #[serde(rename = "vsc_dropdown_foreground")] - dropdown_foreground: String, - #[serde(rename = "vsc_input_background")] - input_background: String, - #[serde(rename = "vsc_input_foreground")] - input_foreground: String, - #[serde(rename = "vsc_input_border")] - input_border: String, - #[serde(rename = "vsc_input_placeholder_foreground")] - input_placeholder_foreground: String, - #[serde(rename = "vsc_input_option_active_border")] - input_option_active_border: String, - #[serde(rename = "vsc_input_validation_info_border")] - input_validation_info_border: String, - #[serde(rename = "vsc_input_validation_warning_border")] - input_validation_warning_border: String, - #[serde(rename = "vsc_input_validation_error_border")] - input_validation_error_border: String, - #[serde(rename = "vsc_badge_foreground")] - badge_foreground: String, - #[serde(rename = "vsc_badge_background")] - badge_background: String, - #[serde(rename = "vsc_progress_bar_background")] - progress_bar_background: String, - #[serde(rename = "vsc_list_active_selection_background")] - list_active_selection_background: String, - #[serde(rename = "vsc_list_active_selection_foreground")] - list_active_selection_foreground: String, - #[serde(rename = "vsc_list_drop_background")] - list_drop_background: String, - #[serde(rename = "vsc_list_focus_background")] - list_focus_background: String, - #[serde(rename = "vsc_list_highlight_foreground")] - list_highlight_foreground: String, - #[serde(rename = "vsc_list_hover_background")] - list_hover_background: String, - #[serde(rename = "vsc_list_inactive_selection_background")] - list_inactive_selection_background: String, - #[serde(rename = "vsc_list_warning_foreground")] - list_warning_foreground: String, - #[serde(rename = "vsc_list_error_foreground")] - list_error_foreground: String, - #[serde(rename = "vsc_activity_bar_background")] - activity_bar_background: String, - #[serde(rename = "vsc_activity_bar_inactive_foreground")] - activity_bar_inactive_foreground: String, - #[serde(rename = "vsc_activity_bar_foreground")] - activity_bar_foreground: String, - #[serde(rename = "vsc_activity_bar_active_border")] - activity_bar_active_border: String, - #[serde(rename = "vsc_activity_bar_active_background")] - activity_bar_active_background: String, - #[serde(rename = "vsc_activity_bar_badge_background")] - activity_bar_badge_background: String, - #[serde(rename = "vsc_activity_bar_badge_foreground")] - activity_bar_badge_foreground: String, - #[serde(rename = "vsc_side_bar_background")] - side_bar_background: String, - #[serde(rename = "vsc_side_bar_title_foreground")] - side_bar_title_foreground: String, - #[serde(rename = "vsc_side_bar_section_header_background")] - side_bar_section_header_background: String, - #[serde(rename = "vsc_side_bar_section_header_border")] - side_bar_section_header_border: String, - #[serde(rename = "vsc_editor_group_border")] - editor_group_border: String, - #[serde(rename = "vsc_editor_group_drop_background")] - editor_group_drop_background: String, - #[serde(rename = "vsc_editor_group_header_tabs_background")] - editor_group_header_tabs_background: String, - #[serde(rename = "vsc_tab_active_background")] - tab_active_background: String, - #[serde(rename = "vsc_tab_active_foreground")] - tab_active_foreground: String, - #[serde(rename = "vsc_tab_border")] - tab_border: String, - #[serde(rename = "vsc_tab_active_border_top")] - tab_active_border_top: String, - #[serde(rename = "vsc_tab_inactive_background")] - tab_inactive_background: String, - #[serde(rename = "vsc_tab_inactive_foreground")] - tab_inactive_foreground: String, - #[serde(rename = "vsc_editor_foreground")] - editor_foreground: String, - #[serde(rename = "vsc_editor_background")] - editor_background: String, - #[serde(rename = "vsc_editor_line_number_foreground")] - editor_line_number_foreground: String, - #[serde(rename = "vsc_editor_selection_background")] - editor_selection_background: String, - #[serde(rename = "vsc_editor_selection_highlight_background")] - editor_selection_highlight_background: String, - #[serde(rename = "vsc_editor_fold_background")] - editor_fold_background: String, - #[serde(rename = "vsc_editor_word_highlight_background")] - editor_word_highlight_background: String, - #[serde(rename = "vsc_editor_word_highlight_strong_background")] - editor_word_highlight_strong_background: String, - #[serde(rename = "vsc_editor_find_match_background")] - editor_find_match_background: String, - #[serde(rename = "vsc_editor_find_match_highlight_background")] - editor_find_match_highlight_background: String, - #[serde(rename = "vsc_editor_find_range_highlight_background")] - editor_find_range_highlight_background: String, - #[serde(rename = "vsc_editor_hover_highlight_background")] - editor_hover_highlight_background: String, - #[serde(rename = "vsc_editor_line_highlight_border")] - editor_line_highlight_border: String, - #[serde(rename = "vsc_editor_link_active_foreground")] - editor_link_active_foreground: String, - #[serde(rename = "vsc_editor_range_highlight_background")] - editor_range_highlight_background: String, - #[serde(rename = "vsc_editor_snippet_tabstop_highlight_background")] - editor_snippet_tabstop_highlight_background: String, - #[serde(rename = "vsc_editor_snippet_tabstop_highlight_border")] - editor_snippet_tabstop_highlight_border: String, - #[serde(rename = "vsc_editor_snippet_final_tabstop_highlight_background")] - editor_snippet_final_tabstop_highlight_background: String, - #[serde(rename = "vsc_editor_snippet_final_tabstop_highlight_border")] - editor_snippet_final_tabstop_highlight_border: String, - #[serde(rename = "vsc_editor_whitespace_foreground")] - editor_whitespace_foreground: String, - #[serde(rename = "vsc_editor_indent_guide_background")] - editor_indent_guide_background: String, - #[serde(rename = "vsc_editor_indent_guide_active_background")] - editor_indent_guide_active_background: String, - #[serde(rename = "vsc_editor_ruler_foreground")] - editor_ruler_foreground: String, - #[serde(rename = "vsc_editor_code_lens_foreground")] - editor_code_lens_foreground: String, - #[serde(rename = "vsc_editor_bracket_highlight_foreground1")] - editor_bracket_highlight_foreground1: String, - #[serde(rename = "vsc_editor_bracket_highlight_foreground2")] - editor_bracket_highlight_foreground2: String, - #[serde(rename = "vsc_editor_bracket_highlight_foreground3")] - editor_bracket_highlight_foreground3: String, - #[serde(rename = "vsc_editor_bracket_highlight_foreground4")] - editor_bracket_highlight_foreground4: String, - #[serde(rename = "vsc_editor_bracket_highlight_foreground5")] - editor_bracket_highlight_foreground5: String, - #[serde(rename = "vsc_editor_bracket_highlight_foreground6")] - editor_bracket_highlight_foreground6: String, - #[serde(rename = "vsc_editor_bracket_highlight_unexpected_bracket_foreground")] - editor_bracket_highlight_unexpected_bracket_foreground: String, - #[serde(rename = "vsc_editor_overview_ruler_border")] - editor_overview_ruler_border: String, - #[serde(rename = "vsc_editor_overview_ruler_selection_highlight_foreground")] - editor_overview_ruler_selection_highlight_foreground: String, - #[serde(rename = "vsc_editor_overview_ruler_word_highlight_foreground")] - editor_overview_ruler_word_highlight_foreground: String, - #[serde(rename = "vsc_editor_overview_ruler_word_highlight_strong_foreground")] - editor_overview_ruler_word_highlight_strong_foreground: String, - #[serde(rename = "vsc_editor_overview_ruler_modified_foreground")] - editor_overview_ruler_modified_foreground: String, - #[serde(rename = "vsc_editor_overview_ruler_added_foreground")] - editor_overview_ruler_added_foreground: String, - #[serde(rename = "vsc_editor_overview_ruler_deleted_foreground")] - editor_overview_ruler_deleted_foreground: String, - #[serde(rename = "vsc_editor_overview_ruler_error_foreground")] - editor_overview_ruler_error_foreground: String, - #[serde(rename = "vsc_editor_overview_ruler_warning_foreground")] - editor_overview_ruler_warning_foreground: String, - #[serde(rename = "vsc_editor_overview_ruler_info_foreground")] - editor_overview_ruler_info_foreground: String, - #[serde(rename = "vsc_editor_error_foreground")] - editor_error_foreground: String, - #[serde(rename = "vsc_editor_warning_foreground")] - editor_warning_foreground: String, - #[serde(rename = "vsc_editor_gutter_modified_background")] - editor_gutter_modified_background: String, - #[serde(rename = "vsc_editor_gutter_added_background")] - editor_gutter_added_background: String, - #[serde(rename = "vsc_editor_gutter_deleted_background")] - editor_gutter_deleted_background: String, - #[serde(rename = "vsc_git_decoration_modified_resource_foreground")] - git_decoration_modified_resource_foreground: String, - #[serde(rename = "vsc_git_decoration_deleted_resource_foreground")] - git_decoration_deleted_resource_foreground: String, - #[serde(rename = "vsc_git_decoration_untracked_resource_foreground")] - git_decoration_untracked_resource_foreground: String, - #[serde(rename = "vsc_git_decoration_ignored_resource_foreground")] - git_decoration_ignored_resource_foreground: String, - #[serde(rename = "vsc_git_decoration_conflicting_resource_foreground")] - git_decoration_conflicting_resource_foreground: String, - #[serde(rename = "vsc_diff_editor_inserted_text_background")] - diff_editor_inserted_text_background: String, - #[serde(rename = "vsc_diff_editor_removed_text_background")] - diff_editor_removed_text_background: String, - #[serde(rename = "vsc_inline_chat_region_highlight")] - inline_chat_region_highlight: String, - #[serde(rename = "vsc_editor_widget_background")] - editor_widget_background: String, - #[serde(rename = "vsc_editor_suggest_widget_background")] - editor_suggest_widget_background: String, - #[serde(rename = "vsc_editor_suggest_widget_foreground")] - editor_suggest_widget_foreground: String, - #[serde(rename = "vsc_editor_suggest_widget_selected_background")] - editor_suggest_widget_selected_background: String, - #[serde(rename = "vsc_editor_hover_widget_background")] - editor_hover_widget_background: String, - #[serde(rename = "vsc_editor_hover_widget_border")] - editor_hover_widget_border: String, - #[serde(rename = "vsc_editor_marker_navigation_background")] - editor_marker_navigation_background: String, - #[serde(rename = "vsc_peek_view_border")] - peek_view_border: String, - #[serde(rename = "vsc_peek_view_editor_background")] - peek_view_editor_background: String, - #[serde(rename = "vsc_peek_view_editor_match_highlight_background")] - peek_view_editor_match_highlight_background: String, - #[serde(rename = "vsc_peek_view_result_background")] - peek_view_result_background: String, - #[serde(rename = "vsc_peek_view_result_file_foreground")] - peek_view_result_file_foreground: String, - #[serde(rename = "vsc_peek_view_result_line_foreground")] - peek_view_result_line_foreground: String, - #[serde(rename = "vsc_peek_view_result_match_highlight_background")] - peek_view_result_match_highlight_background: String, - #[serde(rename = "vsc_peek_view_result_selection_background")] - peek_view_result_selection_background: String, - #[serde(rename = "vsc_peek_view_result_selection_foreground")] - peek_view_result_selection_foreground: String, - #[serde(rename = "vsc_peek_view_title_background")] - peek_view_title_background: String, - #[serde(rename = "vsc_peek_view_title_description_foreground")] - peek_view_title_description_foreground: String, - #[serde(rename = "vsc_peek_view_title_label_foreground")] - peek_view_title_label_foreground: String, - #[serde(rename = "vsc_merge_current_header_background")] - merge_current_header_background: String, - #[serde(rename = "vsc_merge_incoming_header_background")] - merge_incoming_header_background: String, - #[serde(rename = "vsc_editor_overview_ruler_current_content_foreground")] - editor_overview_ruler_current_content_foreground: String, - #[serde(rename = "vsc_editor_overview_ruler_incoming_content_foreground")] - editor_overview_ruler_incoming_content_foreground: String, - #[serde(rename = "vsc_panel_background")] - panel_background: String, - #[serde(rename = "vsc_panel_border")] - panel_border: String, - #[serde(rename = "vsc_panel_title_active_border")] - panel_title_active_border: String, - #[serde(rename = "vsc_panel_title_active_foreground")] - panel_title_active_foreground: String, - #[serde(rename = "vsc_panel_title_inactive_foreground")] - panel_title_inactive_foreground: String, - #[serde(rename = "vsc_status_bar_background")] - status_bar_background: String, - #[serde(rename = "vsc_status_bar_foreground")] - status_bar_foreground: String, - #[serde(rename = "vsc_status_bar_debugging_background")] - status_bar_debugging_background: String, - #[serde(rename = "vsc_status_bar_debugging_foreground")] - status_bar_debugging_foreground: String, - #[serde(rename = "vsc_status_bar_no_folder_background")] - status_bar_no_folder_background: String, - #[serde(rename = "vsc_status_bar_no_folder_foreground")] - status_bar_no_folder_foreground: String, - #[serde(rename = "vsc_status_bar_item_prominent_background")] - status_bar_item_prominent_background: String, - #[serde(rename = "vsc_status_bar_item_prominent_hover_background")] - status_bar_item_prominent_hover_background: String, - #[serde(rename = "vsc_status_bar_item_remote_foreground")] - status_bar_item_remote_foreground: String, - #[serde(rename = "vsc_status_bar_item_remote_background")] - status_bar_item_remote_background: String, - #[serde(rename = "vsc_title_bar_active_background")] - title_bar_active_background: String, - #[serde(rename = "vsc_title_bar_active_foreground")] - title_bar_active_foreground: String, - #[serde(rename = "vsc_title_bar_inactive_background")] - title_bar_inactive_background: String, - #[serde(rename = "vsc_title_bar_inactive_foreground")] - title_bar_inactive_foreground: String, - #[serde(rename = "vsc_extension_button_prominent_foreground")] - extension_button_prominent_foreground: String, - #[serde(rename = "vsc_extension_button_prominent_background")] - extension_button_prominent_background: String, - #[serde(rename = "vsc_extension_button_prominent_hover_background")] - extension_button_prominent_hover_background: String, - #[serde(rename = "vsc_picker_group_border")] - picker_group_border: String, - #[serde(rename = "vsc_picker_group_foreground")] - picker_group_foreground: String, - #[serde(rename = "vsc_debug_tool_bar_background")] - debug_tool_bar_background: String, - #[serde(rename = "vsc_walk_through_embedded_editor_background")] - walk_through_embedded_editor_background: String, - #[serde(rename = "vsc_settings_header_foreground")] - settings_header_foreground: String, - #[serde(rename = "vsc_settings_modified_item_indicator")] - settings_modified_item_indicator: String, - #[serde(rename = "vsc_settings_dropdown_background")] - settings_dropdown_background: String, - #[serde(rename = "vsc_settings_dropdown_foreground")] - settings_dropdown_foreground: String, - #[serde(rename = "vsc_settings_dropdown_border")] - settings_dropdown_border: String, - #[serde(rename = "vsc_settings_checkbox_background")] - settings_checkbox_background: String, - #[serde(rename = "vsc_settings_checkbox_foreground")] - settings_checkbox_foreground: String, - #[serde(rename = "vsc_settings_checkbox_border")] - settings_checkbox_border: String, - #[serde(rename = "vsc_settings_text_input_background")] - settings_text_input_background: String, - #[serde(rename = "vsc_settings_text_input_foreground")] - settings_text_input_foreground: String, - #[serde(rename = "vsc_settings_text_input_border")] - settings_text_input_border: String, - #[serde(rename = "vsc_settings_number_input_background")] - settings_number_input_background: String, - #[serde(rename = "vsc_settings_number_input_foreground")] - settings_number_input_foreground: String, - #[serde(rename = "vsc_settings_number_input_border")] - settings_number_input_border: String, - #[serde(rename = "vsc_breadcrumb_foreground")] - breadcrumb_foreground: String, - #[serde(rename = "vsc_breadcrumb_background")] - breadcrumb_background: String, - #[serde(rename = "vsc_breadcrumb_focus_foreground")] - breadcrumb_focus_foreground: String, - #[serde(rename = "vsc_breadcrumb_active_selection_foreground")] - breadcrumb_active_selection_foreground: String, - #[serde(rename = "vsc_breadcrumb_picker_background")] - breadcrumb_picker_background: String, - #[serde(rename = "vsc_list_filter_widget_background")] - list_filter_widget_background: String, - #[serde(rename = "vsc_list_filter_widget_outline")] - list_filter_widget_outline: String, - #[serde(rename = "vsc_list_filter_widget_no_matches_outline")] - list_filter_widget_no_matches_outline: String, -} From 5d90396b5137cf0a7d3394af8144a24ce3dd1a62 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Mon, 6 Nov 2023 10:59:00 -0500 Subject: [PATCH 58/76] Ignore generated themes --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 2d8807a4b0..6231dd2f60 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,5 @@ DerivedData/ .netrc .swiftpm **/*.db +**/src/themes/*.rs +!**/src/themes/.gitkeep From 8192a52bd0a75a9fcbc763b386b2db6ebb1e9348 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Mon, 6 Nov 2023 11:03:17 -0500 Subject: [PATCH 59/76] Skip `.DS_Store` files when scanning themes folder --- crates/theme_importer/src/main.rs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/crates/theme_importer/src/main.rs b/crates/theme_importer/src/main.rs index 882ab85c33..e2436b1129 100644 --- a/crates/theme_importer/src/main.rs +++ b/crates/theme_importer/src/main.rs @@ -49,12 +49,6 @@ pub struct ThemeMetadata { pub appearance: ThemeAppearanceJson, } -// Load a vscode theme from json -// Load it's LICENSE from the same folder -// Create a ThemeFamily for the theme -// Create a ThemeVariant or Variants for the theme -// Output a rust file with the ThemeFamily and ThemeVariant(s) in it - fn main() -> Result<()> { SimpleLogger::init(LevelFilter::Info, Default::default()).expect("could not initialize logger"); @@ -65,6 +59,10 @@ fn main() -> Result<()> { for theme_family_dir in fs::read_dir(&vscode_themes_path)? { let theme_family_dir = theme_family_dir?; + if theme_family_dir.file_name().to_str() == Some(".DS_Store") { + continue; + } + let theme_family_slug = theme_family_dir .path() .file_stem() From 230edeb5f83d3081b14b7b73baad7f9257b26f0f Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Mon, 6 Nov 2023 11:16:09 -0500 Subject: [PATCH 60/76] Add gruvbox source theme, strip comments --- assets/themes/src/vscode/gruvbox/LICENSE | 1 + assets/themes/src/vscode/gruvbox/family.json | 36 + .../src/vscode/gruvbox/gruvbox-dark-hard.json | 1074 +++++++++++++++++ .../vscode/gruvbox/gruvbox-dark-medium.json | 1074 +++++++++++++++++ .../src/vscode/gruvbox/gruvbox-dark-soft.json | 1074 +++++++++++++++++ .../vscode/gruvbox/gruvbox-light-hard.json | 1073 ++++++++++++++++ .../vscode/gruvbox/gruvbox-light-medium.json | 1073 ++++++++++++++++ .../vscode/gruvbox/gruvbox-light-soft.json | 1073 ++++++++++++++++ 8 files changed, 6478 insertions(+) create mode 100644 assets/themes/src/vscode/gruvbox/LICENSE create mode 100644 assets/themes/src/vscode/gruvbox/family.json create mode 100644 assets/themes/src/vscode/gruvbox/gruvbox-dark-hard.json create mode 100644 assets/themes/src/vscode/gruvbox/gruvbox-dark-medium.json create mode 100644 assets/themes/src/vscode/gruvbox/gruvbox-dark-soft.json create mode 100644 assets/themes/src/vscode/gruvbox/gruvbox-light-hard.json create mode 100644 assets/themes/src/vscode/gruvbox/gruvbox-light-medium.json create mode 100644 assets/themes/src/vscode/gruvbox/gruvbox-light-soft.json diff --git a/assets/themes/src/vscode/gruvbox/LICENSE b/assets/themes/src/vscode/gruvbox/LICENSE new file mode 100644 index 0000000000..01085fd817 --- /dev/null +++ b/assets/themes/src/vscode/gruvbox/LICENSE @@ -0,0 +1 @@ +MIT/X11 diff --git a/assets/themes/src/vscode/gruvbox/family.json b/assets/themes/src/vscode/gruvbox/family.json new file mode 100644 index 0000000000..4d3d4d6651 --- /dev/null +++ b/assets/themes/src/vscode/gruvbox/family.json @@ -0,0 +1,36 @@ +{ + "name": "Andromeda", + "author": "morhetz", + "themes": [ + { + "name": "Gruvbox Dark Hard", + "file_name": "gruvbox-dark-hard.json", + "appearance": "dark" + }, + { + "name": "Gruvbox Dark Medium", + "file_name": "gruvbox-dark-medium.json", + "appearance": "dark" + }, + { + "name": "Gruvbox Dark Soft", + "file_name": "gruvbox-dark-soft.json", + "appearance": "dark" + }, + { + "name": "Gruvbox Light Hard", + "file_name": "gruvbox-light-hard.json", + "appearance": "light" + }, + { + "name": "Gruvbox Light Medium", + "file_name": "gruvbox-light-medium.json", + "appearance": "light" + }, + { + "name": "Gruvbox Light Soft", + "file_name": "gruvbox-light-soft.json", + "appearance": "light" + } + ] +} diff --git a/assets/themes/src/vscode/gruvbox/gruvbox-dark-hard.json b/assets/themes/src/vscode/gruvbox/gruvbox-dark-hard.json new file mode 100644 index 0000000000..4c1a7c9e8a --- /dev/null +++ b/assets/themes/src/vscode/gruvbox/gruvbox-dark-hard.json @@ -0,0 +1,1074 @@ +{ + "$schema": "vscode://schemas/color-theme", + "name": "Gruvbox Dark Hard", + "type": "dark", + "semanticHighlighting": true, + "tokenColors": [ + { + "settings": { + "foreground": "#ebdbb2" + } + }, + { + "scope": "emphasis", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "strong", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "header", + "settings": { + "foreground": "#458588" + } + }, + { + "scope": ["comment", "punctuation.definition.comment"], + "settings": { + "foreground": "#928374", + "fontStyle": "italic" + } + }, + { + "scope": ["constant", "support.constant", "variable.arguments"], + "settings": { + "foreground": "#d3869b" + } + }, + { + "scope": "constant.rgb-value", + "settings": { + "foreground": "#ebdbb2" + } + }, + { + "scope": "entity.name.selector", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#fabd2f" + } + }, + { + "scope": ["entity.name.tag", "punctuation.tag"], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": ["invalid", "invalid.illegal"], + "settings": { + "foreground": "#cc241d" + } + }, + { + "scope": "invalid.deprecated", + "settings": { + "foreground": "#b16286" + } + }, + { + "scope": "meta.selector", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "meta.preprocessor", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "meta.preprocessor.string", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "meta.preprocessor.numeric", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "meta.header.diff", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "storage", + "settings": { + "foreground": "#fb4934" + } + }, + { + "scope": ["storage.type", "storage.modifier"], + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "string", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "string.tag", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "string.value", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "string.regexp", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "string.escape", + "settings": { + "foreground": "#fb4934" + } + }, + { + "scope": "string.quasi", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "string.entity", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "object", + "settings": { + "foreground": "#ebdbb2" + } + }, + { + "scope": "module.node", + "settings": { + "foreground": "#83a598" + } + }, + { + "scope": "support.type.property-name", + "settings": { + "foreground": "#689d6a" + } + }, + { + "scope": "keyword", + "settings": { + "foreground": "#fb4934" + } + }, + { + "scope": "keyword.control", + "settings": { + "foreground": "#fb4934" + } + }, + { + "scope": "keyword.control.module", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "keyword.control.less", + "settings": { + "foreground": "#d79921" + } + }, + { + "scope": "keyword.operator", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "keyword.operator.new", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "keyword.other.unit", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "metatag.php", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "support.function.git-rebase", + "settings": { + "foreground": "#689d6a" + } + }, + { + "scope": "constant.sha.git-rebase", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "name": "Types declaration and references", + "scope": [ + "meta.type.name", + "meta.return.type", + "meta.return-type", + "meta.cast", + "meta.type.annotation", + "support.type", + "storage.type.cs", + "variable.class" + ], + "settings": { + "foreground": "#fabd2f" + } + }, + { + "scope": ["variable.this", "support.variable"], + "settings": { + "foreground": "#d3869b" + } + }, + { + "scope": [ + "entity.name", + "entity.static", + "entity.name.class.static.function", + "entity.name.function", + "entity.name.class", + "entity.name.type" + ], + "settings": { + "foreground": "#fabd2f" + } + }, + { + "name": "Function declarations", + "scope": ["entity.function", "entity.name.function.static"], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "entity.name.function.function-call", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "support.function.builtin", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": [ + "entity.name.method", + "entity.name.method.function-call", + "entity.name.static.function-call" + ], + "settings": { + "foreground": "#689d6a" + } + }, + { + "scope": "brace", + "settings": { + "foreground": "#d5c4a1" + } + }, + { + "name": "variables", + "scope": [ + "meta.parameter.type.variable", + "variable.parameter", + "variable.name", + "variable.other", + "variable", + "string.constant.other.placeholder" + ], + "settings": { + "foreground": "#83a598" + } + }, + { + "scope": "prototype", + "settings": { + "foreground": "#d3869b" + } + }, + { + "scope": ["punctuation"], + "settings": { + "foreground": "#a89984" + } + }, + { + "scope": "punctuation.quoted", + "settings": { + "foreground": "#ebdbb2" + } + }, + { + "scope": "punctuation.quasi", + "settings": { + "foreground": "#fb4934" + } + }, + { + "name": "URL", + "scope": ["*url*", "*link*", "*uri*"], + "settings": { + "fontStyle": "underline" + } + }, + + { + "name": "Python function", + "scope": ["meta.function.python", "entity.name.function.python"], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "name": "Python Function and Class definition keywords", + "scope": [ + "storage.type.function.python", + "storage.modifier.declaration", + "storage.type.class.python", + "storage.type.string.python" + ], + "settings": { + "foreground": "#fb4934" + } + }, + { + "name": "Async keyword", + "scope": ["storage.type.function.async.python"], + "settings": { + "foreground": "#fb4934" + } + }, + { + "name": "Python Function Call", + "scope": "meta.function-call.generic", + "settings": { + "foreground": "#83a598" + } + }, + { + "name": "Python Function Arguments", + "scope": "meta.function-call.arguments", + "settings": { + "foreground": "#d5c4a1" + } + }, + { + "name": "Python Function decorator", + "scope": "entity.name.function.decorator", + "settings": { + "foreground": "#fabd2f", + "fontStyle": "bold" + } + }, + { + "name": "Python ALL CAPS", + "scope": "constant.other.caps", + "settings": { + "fontStyle": "bold" + } + }, + + { + "scope": "keyword.operator.logical", + "settings": { + "foreground": "#fb4934" + } + }, + { + "scope": "punctuation.definition.logical-expression", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": ["string.interpolated.dollar.shell", "string.interpolated.backtick.shell"], + "settings": { + "foreground": "#8ec07c" + } + }, + + { + "scope": "keyword.control.directive", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "support.function.C99", + "settings": { + "foreground": "#fabd2f" + } + }, + + { + "name": "C# functions & namespace", + "scope": [ + "meta.function.cs", + "entity.name.function.cs", + "entity.name.type.namespace.cs" + ], + "settings": { + "foreground": "#b8bb26" + } + }, + { + "name": "C# Variables", + "scope": [ + "keyword.other.using.cs", + "entity.name.variable.field.cs", + "entity.name.variable.local.cs", + "variable.other.readwrite.cs" + ], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "name": "C# This", + "scope": ["keyword.other.this.cs", "keyword.other.base.cs"], + "settings": { + "foreground": "#d3869b" + } + }, + + { + "scope": "meta.scope.prerequisites", + "settings": { + "foreground": "#fabd2f" + } + }, + { + "scope": "entity.name.function.target", + "settings": { + "foreground": "#b8bb26", + "fontStyle": "bold" + } + }, + + { + "name": "coloring of the Java import and package identifiers", + "scope": ["storage.modifier.import.java", "storage.modifier.package.java"], + "settings": { + "foreground": "#bdae93" + } + }, + { + "scope": ["keyword.other.import.java", "keyword.other.package.java"], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "storage.type.java", + "settings": { + "foreground": "#fabd2f" + } + }, + { + "scope": "storage.type.annotation", + "settings": { + "foreground": "#83a598", + "fontStyle": "bold" + } + }, + { + "scope": "keyword.other.documentation.javadoc", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "comment.block.javadoc variable.parameter.java", + "settings": { + "foreground": "#b8bb26", + "fontStyle": "bold" + } + }, + { + "scope": [ + "source.java variable.other.object", + "source.java variable.other.definition.java" + ], + "settings": { + "foreground": "#ebdbb2" + } + }, + + { + "name": "Lisp optional function parameters", + "scope": "meta.function-parameters.lisp", + "settings": { + "foreground": "#fabd2f" + } + }, + + { + "scope": "markup.underline", + "settings": { + "fontStyle": "underline" + } + }, + { + "scope": "string.other.link.title.markdown", + "settings": { + "foreground": "#928374", + "fontStyle": "underline" + } + }, + { + "scope": "markup.underline.link", + "settings": { + "foreground": "#d3869b" + } + }, + { + "scope": "markup.bold", + "settings": { + "fontStyle": "bold", + "foreground": "#fe8019" + } + }, + { + "scope": "markup.heading", + "settings": { + "fontStyle": "bold", + "foreground": "#fe8019" + } + }, + { + "scope": "markup.italic", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "markup.inserted", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "markup.deleted", + "settings": { + "foreground": "#d65d0e" + } + }, + { + "scope": "markup.changed", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "markup.punctuation.quote.beginning", + "settings": { + "foreground": "#98971a" + } + }, + { + "scope": "markup.punctuation.list.beginning", + "settings": { + "foreground": "#83a598" + } + }, + { + "scope": ["markup.inline.raw", "markup.fenced_code.block"], + "settings": { + "foreground": "#8ec07c" + } + }, + + { + "scope": "string.quoted.double.json", + "settings": { + "foreground": "#83a598" + } + }, + { + "name": "JSON Level 0", + "scope": ["source.json meta.structure.dictionary.json support.type.property-name.json"], + "settings": { + "foreground": "#b8bb26" + } + }, + { + "name": "JSON Level 1", + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "name": "JSON Level 2", + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#d3869b" + } + }, + { + "name": "JSON Level 3", + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#b8bb26" + } + }, + + { + "scope": "entity.other.attribute-name.css", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "source.css meta.selector", + "settings": { + "foreground": "#ebdbb2" + } + }, + { + "scope": "support.type.property-name.css", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "entity.other.attribute-name.class", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": [ + "source.css support.function.transform", + "source.css support.function.timing-function", + "source.css support.function.misc" + ], + "settings": { + "foreground": "#fb4934" + } + }, + { + "name": "CSS property value", + "scope": [ + "support.property-value", + "constant.rgb-value", + "support.property-value.scss", + "constant.rgb-value.scss" + ], + "settings": { + "foreground": "#d65d0e" + } + }, + { + "scope": ["entity.name.tag.css"], + "settings": { + "fontStyle": "" + } + }, + + { + "scope": ["punctuation.definition.tag"], + "settings": { + "foreground": "#83a598" + } + }, + { + "scope": ["text.html entity.name.tag", "text.html punctuation.tag"], + "settings": { + "foreground": "#8ec07c", + "fontStyle": "bold" + } + }, + + { + "scope": ["source.js variable.language"], + "settings": { + "foreground": "#fe8019" + } + }, + + { + "scope": ["source.ts variable.language"], + "settings": { + "foreground": "#fe8019" + } + }, + + { + "scope": ["source.go storage.type"], + "settings": { + "foreground": "#fabd2f" + } + }, + { + "scope": ["source.go entity.name.import"], + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": ["source.go keyword.package", "source.go keyword.import"], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": ["source.go keyword.interface", "source.go keyword.struct"], + "settings": { + "foreground": "#83a598" + } + }, + { + "scope": ["source.go entity.name.type"], + "settings": { + "foreground": "#ebdbb2" + } + }, + { + "scope": ["source.go entity.name.function"], + "settings": { + "foreground": "#d3869b" + } + }, + + { + "scope": ["keyword.control.cucumber.table"], + "settings": { + "foreground": "#83a598" + } + }, + + { + "name": "ReasonML String", + "scope": ["source.reason string.double", "source.reason string.regexp"], + "settings": { + "foreground": "#b8bb26" + } + }, + { + "name": "ReasonML equals sign", + "scope": ["source.reason keyword.control.less"], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "name": "ReasonML variable", + "scope": ["source.reason entity.name.function"], + "settings": { + "foreground": "#83a598" + } + }, + { + "name": "ReasonML property", + "scope": ["source.reason support.property-value", "source.reason entity.name.filename"], + "settings": { + "foreground": "#fe8019" + } + }, + + { + "name": "Powershell member", + "scope": ["source.powershell variable.other.member.powershell"], + "settings": { + "foreground": "#fe8019" + } + }, + { + "name": "Powershell function", + "scope": ["source.powershell support.function.powershell"], + "settings": { + "foreground": "#fabd2f" + } + }, + { + "name": "Powershell function attribute", + "scope": ["source.powershell support.function.attribute.powershell"], + "settings": { + "foreground": "#bdae93" + } + }, + { + "name": "Powershell hashtable member", + "scope": [ + "source.powershell meta.hashtable.assignment.powershell variable.other.readwrite.powershell" + ], + "settings": { + "foreground": "#fe8019" + } + } + ], + "colors": { + "focusBorder": "#3c3836", + "foreground": "#ebdbb2", + "widget.shadow": "#1d202130", + "selection.background": "#689d6a80", + "errorForeground": "#fb4934", + + "button.background": "#45858880", + "button.foreground": "#ebdbb2", + "button.hoverBackground": "#45858860", + + "dropdown.background": "#1d2021", + "dropdown.border": "#3c3836", + "dropdown.foreground": "#ebdbb2", + + "input.background": "#ebdbb205", + "input.border": "#3c3836", + "input.foreground": "#ebdbb2", + "input.placeholderForeground": "#ebdbb260", + "inputValidation.errorBorder": "#fb4934", + "inputValidation.errorBackground": "#cc241d80", + "inputValidation.infoBorder": "#83a598", + "inputValidation.infoBackground": "#45858880", + "inputValidation.warningBorder": "#fabd2f", + "inputValidation.warningBackground": "#d7992180", + "inputOption.activeBorder": "#ebdbb260", + + "scrollbar.shadow": "#1d2021", + "scrollbarSlider.activeBackground": "#689d6a", + "scrollbarSlider.hoverBackground": "#665c54", + "scrollbarSlider.background": "#50494599", + + "badge.background": "#d3869b", + "badge.foreground": "#1d2021", + + "progressBar.background": "#689d6a", + + "list.activeSelectionBackground": "#3c383680", + "list.activeSelectionForeground": "#8ec07c", + "list.hoverBackground": "#3c383680", + "list.hoverForeground": "#d5c4a1", + "list.focusBackground": "#3c3836", + "list.focusForeground": "#ebdbb2", + "list.inactiveSelectionForeground": "#689d6a", + "list.inactiveSelectionBackground": "#3c383680", + "list.dropBackground": "#3c3836", + "list.highlightForeground": "#689d6a", + + "sideBar.background": "#1d2021", + "sideBar.foreground": "#d5c4a1", + "sideBar.border": "#3c3836", + "sideBarTitle.foreground": "#ebdbb2", + "sideBarSectionHeader.background": "#1d202100", + "sideBarSectionHeader.foreground": "#ebdbb2", + + "activityBar.background": "#1d2021", + "activityBar.foreground": "#ebdbb2", + "activityBar.border": "#3c3836", + "activityBarBadge.background": "#458588", + "activityBarBadge.foreground": "#ebdbb2", + + "editorGroup.border": "#3c3836", + "editorGroup.dropBackground": "#3c383660", + "editorGroupHeader.noTabsBackground": "#3c3836", + "editorGroupHeader.tabsBackground": "#1d2021", + "editorGroupHeader.tabsBorder": "#3c3836", + + "tab.border": "#1d202100", + "tab.activeBorder": "#689d6a", + "tab.activeBackground": "#32302f", + "tab.activeForeground": "#ebdbb2", + "tab.inactiveForeground": "#a89984", + "tab.inactiveBackground": "#1d2021", + "tab.unfocusedActiveForeground": "#a89984", + "tab.unfocusedActiveBorder": "#1d202100", + "tab.unfocusedInactiveForeground": "#928374", + + "editor.background": "#1d2021", + "editor.foreground": "#ebdbb2", + "editorLineNumber.foreground": "#665c54", + "editorCursor.foreground": "#ebdbb2", + "editor.selectionBackground": "#689d6a40", + "editor.selectionHighlightBackground": "#fabd2f40", + "editor.hoverHighlightBackground": "#689d6a50", + "editorLink.activeForeground": "#ebdbb2", + "editor.findMatchBackground": "#83a59870", + "editor.findMatchHighlightBackground": "#fe801930", + "editor.findRangeHighlightBackground": "#83a59870", + "editor.lineHighlightBackground": "#3c383660", + "editor.lineHighlightBorder": "#3c383600", + "editorWhitespace.foreground": "#a8998420", + "editorRuler.foreground": "#a8998440", + "editorCodeLens.foreground": "#a8998490", + "editorBracketMatch.border": "#1d202100", + "editorBracketMatch.background": "#92837480", + "editorHoverWidget.background": "#1d2021", + "editorHoverWidget.border": "#3c3836", + "editorOverviewRuler.border": "#1d202100", + "editorOverviewRuler.findMatchForeground": "#bdae93", + "editorOverviewRuler.rangeHighlightForeground": "#bdae93", + "editorOverviewRuler.selectionHighlightForeground": "#665c54", + "editorOverviewRuler.wordHighlightForeground": "#665c54", + "editorOverviewRuler.wordHighlightStrongForeground": "#665c54", + "editorOverviewRuler.modifiedForeground": "#83a598", + "editorOverviewRuler.addedForeground": "#83a598", + "editorOverviewRuler.deletedForeground": "#83a598", + "editorOverviewRuler.errorForeground": "#fb4934", + "editorOverviewRuler.warningForeground": "#d79921", + "editorOverviewRuler.infoForeground": "#d3869b", + "editorGutter.background": "#1d202100", + "editorGutter.modifiedBackground": "#83a598", + "editorGutter.addedBackground": "#b8bb26", + "editorGutter.deletedBackground": "#fb4934", + "editorError.foreground": "#cc241d", + "editorWarning.foreground": "#d79921", + "editorInfo.foreground": "#458588", + + "editorBracketHighlight.foreground1": "#b16286", + "editorBracketHighlight.foreground2": "#458588", + "editorBracketHighlight.foreground3": "#689d6a", + "editorBracketHighlight.foreground4": "#98971a", + "editorBracketHighlight.foreground5": "#d79921", + "editorBracketHighlight.foreground6": "#d65d0e", + "editorBracketHighlight.unexpectedBracket.foreground": "#cc241d", + + "diffEditor.insertedTextBackground": "#b8bb2630", + "diffEditor.removedTextBackground": "#fb493430", + + "editorWidget.background": "#1d2021", + "editorWidget.border": "#3c3836", + "editorSuggestWidget.background": "#1d2021", + "editorSuggestWidget.foreground": "#ebdbb2", + "editorSuggestWidget.highlightForeground": "#689d6a", + "editorSuggestWidget.selectedBackground": "#3c383660", + "editorSuggestWidget.border": "#3c3836", + + "peekView.border": "#3c3836", + "peekViewEditor.background": "#3c383670", + "peekViewEditor.matchHighlightBackground": "#504945", + "peekViewEditorGutter.background": "#3c383670", + "peekViewResult.background": "#3c383670", + "peekViewResult.fileForeground": "#ebdbb2", + "peekViewResult.selectionBackground": "#45858820", + "peekViewResult.selectionForeground": "#ebdbb2", + "peekViewResult.lineForeground": "#ebdbb2", + "peekViewResult.matchHighlightBackground": "#504945", + "peekViewTitle.background": "#3c383670", + "peekViewTitleDescription.foreground": "#bdae93", + "peekViewTitleLabel.foreground": "#ebdbb2", + + "merge.currentHeaderBackground": "#45858840", + "merge.currentContentBackground": "#45858820", + "merge.incomingHeaderBackground": "#689d6a40", + "merge.incomingContentBackground": "#689d6a20", + "merge.border": "#1d202100", + "editorOverviewRuler.currentContentForeground": "#458588", + "editorOverviewRuler.incomingContentForeground": "#689d6a", + "editorOverviewRuler.commonContentForeground": "#928374", + + "panel.border": "#3c3836", + "panelTitle.activeForeground": "#ebdbb2", + + "statusBar.background": "#1d2021", + "statusBar.border": "#3c3836", + "statusBar.foreground": "#ebdbb2", + "statusBar.debuggingBackground": "#fe8019", + "statusBar.debuggingForeground": "#1d2021", + "statusBar.debuggingBorder": "#1d202100", + "statusBar.noFolderBackground": "#1d2021", + "statusBar.noFolderBorder": "#1d202100", + + "terminal.ansiBlack": "#3c3836", + "terminal.ansiBrightBlack": "#928374", + "terminal.ansiRed": "#cc241d", + "terminal.ansiBrightRed": "#fb4934", + "terminal.ansiGreen": "#98971a", + "terminal.ansiBrightGreen": "#b8bb26", + "terminal.ansiYellow": "#d79921", + "terminal.ansiBrightYellow": "#fabd2f", + "terminal.ansiBlue": "#458588", + "terminal.ansiBrightBlue": "#83a598", + "terminal.ansiMagenta": "#b16286", + "terminal.ansiBrightMagenta": "#d3869b", + "terminal.ansiCyan": "#689d6a", + "terminal.ansiBrightCyan": "#8ec07c", + "terminal.ansiWhite": "#a89984", + "terminal.ansiBrightWhite": "#ebdbb2", + "terminal.foreground": "#ebdbb2", + "terminal.background": "#1d2021", + + "titleBar.activeBackground": "#1d2021", + "titleBar.activeForeground": "#ebdbb2", + "titleBar.inactiveBackground": "#1d2021", + + "gitDecoration.modifiedResourceForeground": "#d79921", + "gitDecoration.deletedResourceForeground": "#cc241d", + "gitDecoration.untrackedResourceForeground": "#98971a", + "gitDecoration.ignoredResourceForeground": "#7c6f64", + "gitDecoration.conflictingResourceForeground": "#b16286", + + "menu.border": "#3c3836", + "menu.separatorBackground": "#3c3836", + + "notebook.cellEditorBackground": "#282828", + "notebook.focusedCellBorder": "#a89984", + "notebook.cellBorderColor": "#3c3836", + "notebook.focusedEditorBorder": "#3c3836", + + "extensionButton.prominentBackground": "#b8bb2680", + "extensionButton.prominentHoverBackground": "#b8bb2630", + + "textLink.foreground": "#83a598", + "textLink.activeForeground": "#458588", + "debugToolBar.background": "#1d2021" + }, + "semanticTokenColors": { + "constant.builtin": "#d3869b", + "property": "#83a598", + "property:python": "#ebdbb2", + "parameter": "#83a598", + "variable": "#ebdbb2", + "function": "#8ec07c", + "function.builtin": "#fe8019", + "method": "#8ec07c" + } +} diff --git a/assets/themes/src/vscode/gruvbox/gruvbox-dark-medium.json b/assets/themes/src/vscode/gruvbox/gruvbox-dark-medium.json new file mode 100644 index 0000000000..e9ef916193 --- /dev/null +++ b/assets/themes/src/vscode/gruvbox/gruvbox-dark-medium.json @@ -0,0 +1,1074 @@ +{ + "$schema": "vscode://schemas/color-theme", + "name": "Gruvbox Dark Medium", + "type": "dark", + "semanticHighlighting": true, + "tokenColors": [ + { + "settings": { + "foreground": "#ebdbb2" + } + }, + { + "scope": "emphasis", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "strong", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "header", + "settings": { + "foreground": "#458588" + } + }, + { + "scope": ["comment", "punctuation.definition.comment"], + "settings": { + "foreground": "#928374", + "fontStyle": "italic" + } + }, + { + "scope": ["constant", "support.constant", "variable.arguments"], + "settings": { + "foreground": "#d3869b" + } + }, + { + "scope": "constant.rgb-value", + "settings": { + "foreground": "#ebdbb2" + } + }, + { + "scope": "entity.name.selector", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#fabd2f" + } + }, + { + "scope": ["entity.name.tag", "punctuation.tag"], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": ["invalid", "invalid.illegal"], + "settings": { + "foreground": "#cc241d" + } + }, + { + "scope": "invalid.deprecated", + "settings": { + "foreground": "#b16286" + } + }, + { + "scope": "meta.selector", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "meta.preprocessor", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "meta.preprocessor.string", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "meta.preprocessor.numeric", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "meta.header.diff", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "storage", + "settings": { + "foreground": "#fb4934" + } + }, + { + "scope": ["storage.type", "storage.modifier"], + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "string", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "string.tag", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "string.value", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "string.regexp", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "string.escape", + "settings": { + "foreground": "#fb4934" + } + }, + { + "scope": "string.quasi", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "string.entity", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "object", + "settings": { + "foreground": "#ebdbb2" + } + }, + { + "scope": "module.node", + "settings": { + "foreground": "#83a598" + } + }, + { + "scope": "support.type.property-name", + "settings": { + "foreground": "#689d6a" + } + }, + { + "scope": "keyword", + "settings": { + "foreground": "#fb4934" + } + }, + { + "scope": "keyword.control", + "settings": { + "foreground": "#fb4934" + } + }, + { + "scope": "keyword.control.module", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "keyword.control.less", + "settings": { + "foreground": "#d79921" + } + }, + { + "scope": "keyword.operator", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "keyword.operator.new", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "keyword.other.unit", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "metatag.php", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "support.function.git-rebase", + "settings": { + "foreground": "#689d6a" + } + }, + { + "scope": "constant.sha.git-rebase", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "name": "Types declaration and references", + "scope": [ + "meta.type.name", + "meta.return.type", + "meta.return-type", + "meta.cast", + "meta.type.annotation", + "support.type", + "storage.type.cs", + "variable.class" + ], + "settings": { + "foreground": "#fabd2f" + } + }, + { + "scope": ["variable.this", "support.variable"], + "settings": { + "foreground": "#d3869b" + } + }, + { + "scope": [ + "entity.name", + "entity.static", + "entity.name.class.static.function", + "entity.name.function", + "entity.name.class", + "entity.name.type" + ], + "settings": { + "foreground": "#fabd2f" + } + }, + { + "name": "Function declarations", + "scope": ["entity.function", "entity.name.function.static"], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "entity.name.function.function-call", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "support.function.builtin", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": [ + "entity.name.method", + "entity.name.method.function-call", + "entity.name.static.function-call" + ], + "settings": { + "foreground": "#689d6a" + } + }, + { + "scope": "brace", + "settings": { + "foreground": "#d5c4a1" + } + }, + { + "name": "variables", + "scope": [ + "meta.parameter.type.variable", + "variable.parameter", + "variable.name", + "variable.other", + "variable", + "string.constant.other.placeholder" + ], + "settings": { + "foreground": "#83a598" + } + }, + { + "scope": "prototype", + "settings": { + "foreground": "#d3869b" + } + }, + { + "scope": ["punctuation"], + "settings": { + "foreground": "#a89984" + } + }, + { + "scope": "punctuation.quoted", + "settings": { + "foreground": "#ebdbb2" + } + }, + { + "scope": "punctuation.quasi", + "settings": { + "foreground": "#fb4934" + } + }, + { + "name": "URL", + "scope": ["*url*", "*link*", "*uri*"], + "settings": { + "fontStyle": "underline" + } + }, + + { + "name": "Python function", + "scope": ["meta.function.python", "entity.name.function.python"], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "name": "Python Function and Class definition keywords", + "scope": [ + "storage.type.function.python", + "storage.modifier.declaration", + "storage.type.class.python", + "storage.type.string.python" + ], + "settings": { + "foreground": "#fb4934" + } + }, + { + "name": "Async keyword", + "scope": ["storage.type.function.async.python"], + "settings": { + "foreground": "#fb4934" + } + }, + { + "name": "Python Function Call", + "scope": "meta.function-call.generic", + "settings": { + "foreground": "#83a598" + } + }, + { + "name": "Python Function Arguments", + "scope": "meta.function-call.arguments", + "settings": { + "foreground": "#d5c4a1" + } + }, + { + "name": "Python Function decorator", + "scope": "entity.name.function.decorator", + "settings": { + "foreground": "#fabd2f", + "fontStyle": "bold" + } + }, + { + "name": "Python ALL CAPS", + "scope": "constant.other.caps", + "settings": { + "fontStyle": "bold" + } + }, + + { + "scope": "keyword.operator.logical", + "settings": { + "foreground": "#fb4934" + } + }, + { + "scope": "punctuation.definition.logical-expression", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": ["string.interpolated.dollar.shell", "string.interpolated.backtick.shell"], + "settings": { + "foreground": "#8ec07c" + } + }, + + { + "scope": "keyword.control.directive", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "support.function.C99", + "settings": { + "foreground": "#fabd2f" + } + }, + + { + "name": "C# functions & namespace", + "scope": [ + "meta.function.cs", + "entity.name.function.cs", + "entity.name.type.namespace.cs" + ], + "settings": { + "foreground": "#b8bb26" + } + }, + { + "name": "C# Variables", + "scope": [ + "keyword.other.using.cs", + "entity.name.variable.field.cs", + "entity.name.variable.local.cs", + "variable.other.readwrite.cs" + ], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "name": "C# This", + "scope": ["keyword.other.this.cs", "keyword.other.base.cs"], + "settings": { + "foreground": "#d3869b" + } + }, + + { + "scope": "meta.scope.prerequisites", + "settings": { + "foreground": "#fabd2f" + } + }, + { + "scope": "entity.name.function.target", + "settings": { + "foreground": "#b8bb26", + "fontStyle": "bold" + } + }, + + { + "name": "coloring of the Java import and package identifiers", + "scope": ["storage.modifier.import.java", "storage.modifier.package.java"], + "settings": { + "foreground": "#bdae93" + } + }, + { + "scope": ["keyword.other.import.java", "keyword.other.package.java"], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "storage.type.java", + "settings": { + "foreground": "#fabd2f" + } + }, + { + "scope": "storage.type.annotation", + "settings": { + "foreground": "#83a598", + "fontStyle": "bold" + } + }, + { + "scope": "keyword.other.documentation.javadoc", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "comment.block.javadoc variable.parameter.java", + "settings": { + "foreground": "#b8bb26", + "fontStyle": "bold" + } + }, + { + "scope": [ + "source.java variable.other.object", + "source.java variable.other.definition.java" + ], + "settings": { + "foreground": "#ebdbb2" + } + }, + + { + "name": "Lisp optional function parameters", + "scope": "meta.function-parameters.lisp", + "settings": { + "foreground": "#fabd2f" + } + }, + + { + "scope": "markup.underline", + "settings": { + "fontStyle": "underline" + } + }, + { + "scope": "string.other.link.title.markdown", + "settings": { + "foreground": "#928374", + "fontStyle": "underline" + } + }, + { + "scope": "markup.underline.link", + "settings": { + "foreground": "#d3869b" + } + }, + { + "scope": "markup.bold", + "settings": { + "fontStyle": "bold", + "foreground": "#fe8019" + } + }, + { + "scope": "markup.heading", + "settings": { + "fontStyle": "bold", + "foreground": "#fe8019" + } + }, + { + "scope": "markup.italic", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "markup.inserted", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "markup.deleted", + "settings": { + "foreground": "#d65d0e" + } + }, + { + "scope": "markup.changed", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "markup.punctuation.quote.beginning", + "settings": { + "foreground": "#98971a" + } + }, + { + "scope": "markup.punctuation.list.beginning", + "settings": { + "foreground": "#83a598" + } + }, + { + "scope": ["markup.inline.raw", "markup.fenced_code.block"], + "settings": { + "foreground": "#8ec07c" + } + }, + + { + "scope": "string.quoted.double.json", + "settings": { + "foreground": "#83a598" + } + }, + { + "name": "JSON Level 0", + "scope": ["source.json meta.structure.dictionary.json support.type.property-name.json"], + "settings": { + "foreground": "#b8bb26" + } + }, + { + "name": "JSON Level 1", + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "name": "JSON Level 2", + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#d3869b" + } + }, + { + "name": "JSON Level 3", + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#b8bb26" + } + }, + + { + "scope": "entity.other.attribute-name.css", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "source.css meta.selector", + "settings": { + "foreground": "#ebdbb2" + } + }, + { + "scope": "support.type.property-name.css", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "entity.other.attribute-name.class", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": [ + "source.css support.function.transform", + "source.css support.function.timing-function", + "source.css support.function.misc" + ], + "settings": { + "foreground": "#fb4934" + } + }, + { + "name": "CSS property value", + "scope": [ + "support.property-value", + "constant.rgb-value", + "support.property-value.scss", + "constant.rgb-value.scss" + ], + "settings": { + "foreground": "#d65d0e" + } + }, + { + "scope": ["entity.name.tag.css"], + "settings": { + "fontStyle": "" + } + }, + + { + "scope": ["punctuation.definition.tag"], + "settings": { + "foreground": "#83a598" + } + }, + { + "scope": ["text.html entity.name.tag", "text.html punctuation.tag"], + "settings": { + "foreground": "#8ec07c", + "fontStyle": "bold" + } + }, + + { + "scope": ["source.js variable.language"], + "settings": { + "foreground": "#fe8019" + } + }, + + { + "scope": ["source.ts variable.language"], + "settings": { + "foreground": "#fe8019" + } + }, + + { + "scope": ["source.go storage.type"], + "settings": { + "foreground": "#fabd2f" + } + }, + { + "scope": ["source.go entity.name.import"], + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": ["source.go keyword.package", "source.go keyword.import"], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": ["source.go keyword.interface", "source.go keyword.struct"], + "settings": { + "foreground": "#83a598" + } + }, + { + "scope": ["source.go entity.name.type"], + "settings": { + "foreground": "#ebdbb2" + } + }, + { + "scope": ["source.go entity.name.function"], + "settings": { + "foreground": "#d3869b" + } + }, + + { + "scope": ["keyword.control.cucumber.table"], + "settings": { + "foreground": "#83a598" + } + }, + + { + "name": "ReasonML String", + "scope": ["source.reason string.double", "source.reason string.regexp"], + "settings": { + "foreground": "#b8bb26" + } + }, + { + "name": "ReasonML equals sign", + "scope": ["source.reason keyword.control.less"], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "name": "ReasonML variable", + "scope": ["source.reason entity.name.function"], + "settings": { + "foreground": "#83a598" + } + }, + { + "name": "ReasonML property", + "scope": ["source.reason support.property-value", "source.reason entity.name.filename"], + "settings": { + "foreground": "#fe8019" + } + }, + + { + "name": "Powershell member", + "scope": ["source.powershell variable.other.member.powershell"], + "settings": { + "foreground": "#fe8019" + } + }, + { + "name": "Powershell function", + "scope": ["source.powershell support.function.powershell"], + "settings": { + "foreground": "#fabd2f" + } + }, + { + "name": "Powershell function attribute", + "scope": ["source.powershell support.function.attribute.powershell"], + "settings": { + "foreground": "#bdae93" + } + }, + { + "name": "Powershell hashtable member", + "scope": [ + "source.powershell meta.hashtable.assignment.powershell variable.other.readwrite.powershell" + ], + "settings": { + "foreground": "#fe8019" + } + } + ], + "colors": { + "focusBorder": "#3c3836", + "foreground": "#ebdbb2", + "widget.shadow": "#28282830", + "selection.background": "#689d6a80", + "errorForeground": "#fb4934", + + "button.background": "#45858880", + "button.foreground": "#ebdbb2", + "button.hoverBackground": "#45858860", + + "dropdown.background": "#282828", + "dropdown.border": "#3c3836", + "dropdown.foreground": "#ebdbb2", + + "input.background": "#ebdbb205", + "input.border": "#3c3836", + "input.foreground": "#ebdbb2", + "input.placeholderForeground": "#ebdbb260", + "inputValidation.errorBorder": "#fb4934", + "inputValidation.errorBackground": "#cc241d80", + "inputValidation.infoBorder": "#83a598", + "inputValidation.infoBackground": "#45858880", + "inputValidation.warningBorder": "#fabd2f", + "inputValidation.warningBackground": "#d7992180", + "inputOption.activeBorder": "#ebdbb260", + + "scrollbar.shadow": "#282828", + "scrollbarSlider.activeBackground": "#689d6a", + "scrollbarSlider.hoverBackground": "#665c54", + "scrollbarSlider.background": "#50494599", + + "badge.background": "#d3869b", + "badge.foreground": "#282828", + + "progressBar.background": "#689d6a", + + "list.activeSelectionBackground": "#3c383680", + "list.activeSelectionForeground": "#8ec07c", + "list.hoverBackground": "#3c383680", + "list.hoverForeground": "#d5c4a1", + "list.focusBackground": "#3c3836", + "list.focusForeground": "#ebdbb2", + "list.inactiveSelectionForeground": "#689d6a", + "list.inactiveSelectionBackground": "#3c383680", + "list.dropBackground": "#3c3836", + "list.highlightForeground": "#689d6a", + + "sideBar.background": "#282828", + "sideBar.foreground": "#d5c4a1", + "sideBar.border": "#3c3836", + "sideBarTitle.foreground": "#ebdbb2", + "sideBarSectionHeader.background": "#28282800", + "sideBarSectionHeader.foreground": "#ebdbb2", + + "activityBar.background": "#282828", + "activityBar.foreground": "#ebdbb2", + "activityBar.border": "#3c3836", + "activityBarBadge.background": "#458588", + "activityBarBadge.foreground": "#ebdbb2", + + "editorGroup.border": "#3c3836", + "editorGroup.dropBackground": "#3c383660", + "editorGroupHeader.noTabsBackground": "#3c3836", + "editorGroupHeader.tabsBackground": "#282828", + "editorGroupHeader.tabsBorder": "#3c3836", + + "tab.border": "#28282800", + "tab.activeBorder": "#689d6a", + "tab.activeBackground": "#3c3836", + "tab.activeForeground": "#ebdbb2", + "tab.inactiveForeground": "#a89984", + "tab.inactiveBackground": "#282828", + "tab.unfocusedActiveForeground": "#a89984", + "tab.unfocusedActiveBorder": "#28282800", + "tab.unfocusedInactiveForeground": "#928374", + + "editor.background": "#282828", + "editor.foreground": "#ebdbb2", + "editorLineNumber.foreground": "#665c54", + "editorCursor.foreground": "#ebdbb2", + "editor.selectionBackground": "#689d6a40", + "editor.selectionHighlightBackground": "#fabd2f40", + "editor.hoverHighlightBackground": "#689d6a50", + "editorLink.activeForeground": "#ebdbb2", + "editor.findMatchBackground": "#83a59870", + "editor.findMatchHighlightBackground": "#fe801930", + "editor.findRangeHighlightBackground": "#83a59870", + "editor.lineHighlightBackground": "#3c383660", + "editor.lineHighlightBorder": "#3c383600", + "editorWhitespace.foreground": "#a8998420", + "editorRuler.foreground": "#a8998440", + "editorCodeLens.foreground": "#a8998490", + "editorBracketMatch.border": "#28282800", + "editorBracketMatch.background": "#92837480", + "editorHoverWidget.background": "#282828", + "editorHoverWidget.border": "#3c3836", + "editorOverviewRuler.border": "#28282800", + "editorOverviewRuler.findMatchForeground": "#bdae93", + "editorOverviewRuler.rangeHighlightForeground": "#bdae93", + "editorOverviewRuler.selectionHighlightForeground": "#665c54", + "editorOverviewRuler.wordHighlightForeground": "#665c54", + "editorOverviewRuler.wordHighlightStrongForeground": "#665c54", + "editorOverviewRuler.modifiedForeground": "#83a598", + "editorOverviewRuler.addedForeground": "#83a598", + "editorOverviewRuler.deletedForeground": "#83a598", + "editorOverviewRuler.errorForeground": "#fb4934", + "editorOverviewRuler.warningForeground": "#d79921", + "editorOverviewRuler.infoForeground": "#d3869b", + "editorGutter.background": "#28282800", + "editorGutter.modifiedBackground": "#83a598", + "editorGutter.addedBackground": "#b8bb26", + "editorGutter.deletedBackground": "#fb4934", + "editorError.foreground": "#cc241d", + "editorWarning.foreground": "#d79921", + "editorInfo.foreground": "#458588", + + "editorBracketHighlight.foreground1": "#b16286", + "editorBracketHighlight.foreground2": "#458588", + "editorBracketHighlight.foreground3": "#689d6a", + "editorBracketHighlight.foreground4": "#98971a", + "editorBracketHighlight.foreground5": "#d79921", + "editorBracketHighlight.foreground6": "#d65d0e", + "editorBracketHighlight.unexpectedBracket.foreground": "#cc241d", + + "diffEditor.insertedTextBackground": "#b8bb2630", + "diffEditor.removedTextBackground": "#fb493430", + + "editorWidget.background": "#282828", + "editorWidget.border": "#3c3836", + "editorSuggestWidget.background": "#282828", + "editorSuggestWidget.foreground": "#ebdbb2", + "editorSuggestWidget.highlightForeground": "#689d6a", + "editorSuggestWidget.selectedBackground": "#3c383660", + "editorSuggestWidget.border": "#3c3836", + + "peekView.border": "#3c3836", + "peekViewEditor.background": "#3c383670", + "peekViewEditor.matchHighlightBackground": "#504945", + "peekViewEditorGutter.background": "#3c383670", + "peekViewResult.background": "#3c383670", + "peekViewResult.fileForeground": "#ebdbb2", + "peekViewResult.selectionBackground": "#45858820", + "peekViewResult.selectionForeground": "#ebdbb2", + "peekViewResult.lineForeground": "#ebdbb2", + "peekViewResult.matchHighlightBackground": "#504945", + "peekViewTitle.background": "#3c383670", + "peekViewTitleDescription.foreground": "#bdae93", + "peekViewTitleLabel.foreground": "#ebdbb2", + + "merge.currentHeaderBackground": "#45858840", + "merge.currentContentBackground": "#45858820", + "merge.incomingHeaderBackground": "#689d6a40", + "merge.incomingContentBackground": "#689d6a20", + "merge.border": "#28282800", + "editorOverviewRuler.currentContentForeground": "#458588", + "editorOverviewRuler.incomingContentForeground": "#689d6a", + "editorOverviewRuler.commonContentForeground": "#928374", + + "panel.border": "#3c3836", + "panelTitle.activeForeground": "#ebdbb2", + + "statusBar.background": "#282828", + "statusBar.border": "#3c3836", + "statusBar.foreground": "#ebdbb2", + "statusBar.debuggingBackground": "#fe8019", + "statusBar.debuggingForeground": "#282828", + "statusBar.debuggingBorder": "#28282800", + "statusBar.noFolderBackground": "#282828", + "statusBar.noFolderBorder": "#28282800", + + "terminal.ansiBlack": "#3c3836", + "terminal.ansiBrightBlack": "#928374", + "terminal.ansiRed": "#cc241d", + "terminal.ansiBrightRed": "#fb4934", + "terminal.ansiGreen": "#98971a", + "terminal.ansiBrightGreen": "#b8bb26", + "terminal.ansiYellow": "#d79921", + "terminal.ansiBrightYellow": "#fabd2f", + "terminal.ansiBlue": "#458588", + "terminal.ansiBrightBlue": "#83a598", + "terminal.ansiMagenta": "#b16286", + "terminal.ansiBrightMagenta": "#d3869b", + "terminal.ansiCyan": "#689d6a", + "terminal.ansiBrightCyan": "#8ec07c", + "terminal.ansiWhite": "#a89984", + "terminal.ansiBrightWhite": "#ebdbb2", + "terminal.foreground": "#ebdbb2", + "terminal.background": "#282828", + + "titleBar.activeBackground": "#282828", + "titleBar.activeForeground": "#ebdbb2", + "titleBar.inactiveBackground": "#282828", + + "gitDecoration.modifiedResourceForeground": "#d79921", + "gitDecoration.deletedResourceForeground": "#cc241d", + "gitDecoration.untrackedResourceForeground": "#98971a", + "gitDecoration.ignoredResourceForeground": "#7c6f64", + "gitDecoration.conflictingResourceForeground": "#b16286", + + "menu.border": "#3c3836", + "menu.separatorBackground": "#3c3836", + + "notebook.cellEditorBackground": "#32302f", + "notebook.focusedCellBorder": "#a89984", + "notebook.cellBorderColor": "#504945", + "notebook.focusedEditorBorder": "#504945", + + "extensionButton.prominentBackground": "#b8bb2680", + "extensionButton.prominentHoverBackground": "#b8bb2630", + + "textLink.foreground": "#83a598", + "textLink.activeForeground": "#458588", + "debugToolBar.background": "#282828" + }, + "semanticTokenColors": { + "constant.builtin": "#d3869b", + "property": "#83a598", + "property:python": "#ebdbb2", + "parameter": "#83a598", + "variable": "#ebdbb2", + "function": "#8ec07c", + "function.builtin": "#fe8019", + "method": "#8ec07c" + } +} diff --git a/assets/themes/src/vscode/gruvbox/gruvbox-dark-soft.json b/assets/themes/src/vscode/gruvbox/gruvbox-dark-soft.json new file mode 100644 index 0000000000..8581447f49 --- /dev/null +++ b/assets/themes/src/vscode/gruvbox/gruvbox-dark-soft.json @@ -0,0 +1,1074 @@ +{ + "$schema": "vscode://schemas/color-theme", + "name": "Gruvbox Dark Soft", + "type": "dark", + "semanticHighlighting": true, + "tokenColors": [ + { + "settings": { + "foreground": "#ebdbb2" + } + }, + { + "scope": "emphasis", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "strong", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "header", + "settings": { + "foreground": "#458588" + } + }, + { + "scope": ["comment", "punctuation.definition.comment"], + "settings": { + "foreground": "#928374", + "fontStyle": "italic" + } + }, + { + "scope": ["constant", "support.constant", "variable.arguments"], + "settings": { + "foreground": "#d3869b" + } + }, + { + "scope": "constant.rgb-value", + "settings": { + "foreground": "#ebdbb2" + } + }, + { + "scope": "entity.name.selector", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#fabd2f" + } + }, + { + "scope": ["entity.name.tag", "punctuation.tag"], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": ["invalid", "invalid.illegal"], + "settings": { + "foreground": "#cc241d" + } + }, + { + "scope": "invalid.deprecated", + "settings": { + "foreground": "#b16286" + } + }, + { + "scope": "meta.selector", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "meta.preprocessor", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "meta.preprocessor.string", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "meta.preprocessor.numeric", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "meta.header.diff", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "storage", + "settings": { + "foreground": "#fb4934" + } + }, + { + "scope": ["storage.type", "storage.modifier"], + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "string", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "string.tag", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "string.value", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "string.regexp", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "string.escape", + "settings": { + "foreground": "#fb4934" + } + }, + { + "scope": "string.quasi", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "string.entity", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "object", + "settings": { + "foreground": "#ebdbb2" + } + }, + { + "scope": "module.node", + "settings": { + "foreground": "#83a598" + } + }, + { + "scope": "support.type.property-name", + "settings": { + "foreground": "#689d6a" + } + }, + { + "scope": "keyword", + "settings": { + "foreground": "#fb4934" + } + }, + { + "scope": "keyword.control", + "settings": { + "foreground": "#fb4934" + } + }, + { + "scope": "keyword.control.module", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "keyword.control.less", + "settings": { + "foreground": "#d79921" + } + }, + { + "scope": "keyword.operator", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "keyword.operator.new", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "keyword.other.unit", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "metatag.php", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "support.function.git-rebase", + "settings": { + "foreground": "#689d6a" + } + }, + { + "scope": "constant.sha.git-rebase", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "name": "Types declaration and references", + "scope": [ + "meta.type.name", + "meta.return.type", + "meta.return-type", + "meta.cast", + "meta.type.annotation", + "support.type", + "storage.type.cs", + "variable.class" + ], + "settings": { + "foreground": "#fabd2f" + } + }, + { + "scope": ["variable.this", "support.variable"], + "settings": { + "foreground": "#d3869b" + } + }, + { + "scope": [ + "entity.name", + "entity.static", + "entity.name.class.static.function", + "entity.name.function", + "entity.name.class", + "entity.name.type" + ], + "settings": { + "foreground": "#fabd2f" + } + }, + { + "name": "Function declarations", + "scope": ["entity.function", "entity.name.function.static"], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "entity.name.function.function-call", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "support.function.builtin", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": [ + "entity.name.method", + "entity.name.method.function-call", + "entity.name.static.function-call" + ], + "settings": { + "foreground": "#689d6a" + } + }, + { + "scope": "brace", + "settings": { + "foreground": "#d5c4a1" + } + }, + { + "name": "variables", + "scope": [ + "meta.parameter.type.variable", + "variable.parameter", + "variable.name", + "variable.other", + "variable", + "string.constant.other.placeholder" + ], + "settings": { + "foreground": "#83a598" + } + }, + { + "scope": "prototype", + "settings": { + "foreground": "#d3869b" + } + }, + { + "scope": ["punctuation"], + "settings": { + "foreground": "#a89984" + } + }, + { + "scope": "punctuation.quoted", + "settings": { + "foreground": "#ebdbb2" + } + }, + { + "scope": "punctuation.quasi", + "settings": { + "foreground": "#fb4934" + } + }, + { + "name": "URL", + "scope": ["*url*", "*link*", "*uri*"], + "settings": { + "fontStyle": "underline" + } + }, + + { + "name": "Python function", + "scope": ["meta.function.python", "entity.name.function.python"], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "name": "Python Function and Class definition keywords", + "scope": [ + "storage.type.function.python", + "storage.modifier.declaration", + "storage.type.class.python", + "storage.type.string.python" + ], + "settings": { + "foreground": "#fb4934" + } + }, + { + "name": "Async keyword", + "scope": ["storage.type.function.async.python"], + "settings": { + "foreground": "#fb4934" + } + }, + { + "name": "Python Function Call", + "scope": "meta.function-call.generic", + "settings": { + "foreground": "#83a598" + } + }, + { + "name": "Python Function Arguments", + "scope": "meta.function-call.arguments", + "settings": { + "foreground": "#d5c4a1" + } + }, + { + "name": "Python Function decorator", + "scope": "entity.name.function.decorator", + "settings": { + "foreground": "#fabd2f", + "fontStyle": "bold" + } + }, + { + "name": "Python ALL CAPS", + "scope": "constant.other.caps", + "settings": { + "fontStyle": "bold" + } + }, + + { + "scope": "keyword.operator.logical", + "settings": { + "foreground": "#fb4934" + } + }, + { + "scope": "punctuation.definition.logical-expression", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": ["string.interpolated.dollar.shell", "string.interpolated.backtick.shell"], + "settings": { + "foreground": "#8ec07c" + } + }, + + { + "scope": "keyword.control.directive", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "support.function.C99", + "settings": { + "foreground": "#fabd2f" + } + }, + + { + "name": "C# functions & namespace", + "scope": [ + "meta.function.cs", + "entity.name.function.cs", + "entity.name.type.namespace.cs" + ], + "settings": { + "foreground": "#b8bb26" + } + }, + { + "name": "C# Variables", + "scope": [ + "keyword.other.using.cs", + "entity.name.variable.field.cs", + "entity.name.variable.local.cs", + "variable.other.readwrite.cs" + ], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "name": "C# This", + "scope": ["keyword.other.this.cs", "keyword.other.base.cs"], + "settings": { + "foreground": "#d3869b" + } + }, + + { + "scope": "meta.scope.prerequisites", + "settings": { + "foreground": "#fabd2f" + } + }, + { + "scope": "entity.name.function.target", + "settings": { + "foreground": "#b8bb26", + "fontStyle": "bold" + } + }, + + { + "name": "coloring of the Java import and package identifiers", + "scope": ["storage.modifier.import.java", "storage.modifier.package.java"], + "settings": { + "foreground": "#bdae93" + } + }, + { + "scope": ["keyword.other.import.java", "keyword.other.package.java"], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "storage.type.java", + "settings": { + "foreground": "#fabd2f" + } + }, + { + "scope": "storage.type.annotation", + "settings": { + "foreground": "#83a598", + "fontStyle": "bold" + } + }, + { + "scope": "keyword.other.documentation.javadoc", + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": "comment.block.javadoc variable.parameter.java", + "settings": { + "foreground": "#b8bb26", + "fontStyle": "bold" + } + }, + { + "scope": [ + "source.java variable.other.object", + "source.java variable.other.definition.java" + ], + "settings": { + "foreground": "#ebdbb2" + } + }, + + { + "name": "Lisp optional function parameters", + "scope": "meta.function-parameters.lisp", + "settings": { + "foreground": "#fabd2f" + } + }, + + { + "scope": "markup.underline", + "settings": { + "fontStyle": "underline" + } + }, + { + "scope": "string.other.link.title.markdown", + "settings": { + "foreground": "#928374", + "fontStyle": "underline" + } + }, + { + "scope": "markup.underline.link", + "settings": { + "foreground": "#d3869b" + } + }, + { + "scope": "markup.bold", + "settings": { + "fontStyle": "bold", + "foreground": "#fe8019" + } + }, + { + "scope": "markup.heading", + "settings": { + "fontStyle": "bold", + "foreground": "#fe8019" + } + }, + { + "scope": "markup.italic", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "markup.inserted", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": "markup.deleted", + "settings": { + "foreground": "#d65d0e" + } + }, + { + "scope": "markup.changed", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "markup.punctuation.quote.beginning", + "settings": { + "foreground": "#98971a" + } + }, + { + "scope": "markup.punctuation.list.beginning", + "settings": { + "foreground": "#83a598" + } + }, + { + "scope": ["markup.inline.raw", "markup.fenced_code.block"], + "settings": { + "foreground": "#8ec07c" + } + }, + + { + "scope": "string.quoted.double.json", + "settings": { + "foreground": "#83a598" + } + }, + { + "name": "JSON Level 0", + "scope": ["source.json meta.structure.dictionary.json support.type.property-name.json"], + "settings": { + "foreground": "#b8bb26" + } + }, + { + "name": "JSON Level 1", + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "name": "JSON Level 2", + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#d3869b" + } + }, + { + "name": "JSON Level 3", + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#b8bb26" + } + }, + + { + "scope": "entity.other.attribute-name.css", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "source.css meta.selector", + "settings": { + "foreground": "#ebdbb2" + } + }, + { + "scope": "support.type.property-name.css", + "settings": { + "foreground": "#fe8019" + } + }, + { + "scope": "entity.other.attribute-name.class", + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": [ + "source.css support.function.transform", + "source.css support.function.timing-function", + "source.css support.function.misc" + ], + "settings": { + "foreground": "#fb4934" + } + }, + { + "name": "CSS property value", + "scope": [ + "support.property-value", + "constant.rgb-value", + "support.property-value.scss", + "constant.rgb-value.scss" + ], + "settings": { + "foreground": "#d65d0e" + } + }, + { + "scope": ["entity.name.tag.css"], + "settings": { + "fontStyle": "" + } + }, + + { + "scope": ["punctuation.definition.tag"], + "settings": { + "foreground": "#83a598" + } + }, + { + "scope": ["text.html entity.name.tag", "text.html punctuation.tag"], + "settings": { + "foreground": "#8ec07c", + "fontStyle": "bold" + } + }, + + { + "scope": ["source.js variable.language"], + "settings": { + "foreground": "#fe8019" + } + }, + + { + "scope": ["source.ts variable.language"], + "settings": { + "foreground": "#fe8019" + } + }, + + { + "scope": ["source.go storage.type"], + "settings": { + "foreground": "#fabd2f" + } + }, + { + "scope": ["source.go entity.name.import"], + "settings": { + "foreground": "#b8bb26" + } + }, + { + "scope": ["source.go keyword.package", "source.go keyword.import"], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "scope": ["source.go keyword.interface", "source.go keyword.struct"], + "settings": { + "foreground": "#83a598" + } + }, + { + "scope": ["source.go entity.name.type"], + "settings": { + "foreground": "#ebdbb2" + } + }, + { + "scope": ["source.go entity.name.function"], + "settings": { + "foreground": "#d3869b" + } + }, + + { + "scope": ["keyword.control.cucumber.table"], + "settings": { + "foreground": "#83a598" + } + }, + + { + "name": "ReasonML String", + "scope": ["source.reason string.double", "source.reason string.regexp"], + "settings": { + "foreground": "#b8bb26" + } + }, + { + "name": "ReasonML equals sign", + "scope": ["source.reason keyword.control.less"], + "settings": { + "foreground": "#8ec07c" + } + }, + { + "name": "ReasonML variable", + "scope": ["source.reason entity.name.function"], + "settings": { + "foreground": "#83a598" + } + }, + { + "name": "ReasonML property", + "scope": ["source.reason support.property-value", "source.reason entity.name.filename"], + "settings": { + "foreground": "#fe8019" + } + }, + + { + "name": "Powershell member", + "scope": ["source.powershell variable.other.member.powershell"], + "settings": { + "foreground": "#fe8019" + } + }, + { + "name": "Powershell function", + "scope": ["source.powershell support.function.powershell"], + "settings": { + "foreground": "#fabd2f" + } + }, + { + "name": "Powershell function attribute", + "scope": ["source.powershell support.function.attribute.powershell"], + "settings": { + "foreground": "#bdae93" + } + }, + { + "name": "Powershell hashtable member", + "scope": [ + "source.powershell meta.hashtable.assignment.powershell variable.other.readwrite.powershell" + ], + "settings": { + "foreground": "#fe8019" + } + } + ], + "colors": { + "focusBorder": "#3c3836", + "foreground": "#ebdbb2", + "widget.shadow": "#32302f30", + "selection.background": "#689d6a80", + "errorForeground": "#fb4934", + + "button.background": "#45858880", + "button.foreground": "#ebdbb2", + "button.hoverBackground": "#45858860", + + "dropdown.background": "#32302f", + "dropdown.border": "#3c3836", + "dropdown.foreground": "#ebdbb2", + + "input.background": "#ebdbb205", + "input.border": "#3c3836", + "input.foreground": "#ebdbb2", + "input.placeholderForeground": "#ebdbb260", + "inputValidation.errorBorder": "#fb4934", + "inputValidation.errorBackground": "#cc241d80", + "inputValidation.infoBorder": "#83a598", + "inputValidation.infoBackground": "#45858880", + "inputValidation.warningBorder": "#fabd2f", + "inputValidation.warningBackground": "#d7992180", + "inputOption.activeBorder": "#ebdbb260", + + "scrollbar.shadow": "#32302f", + "scrollbarSlider.activeBackground": "#689d6a", + "scrollbarSlider.hoverBackground": "#665c54", + "scrollbarSlider.background": "#50494599", + + "badge.background": "#d3869b", + "badge.foreground": "#32302f", + + "progressBar.background": "#689d6a", + + "list.activeSelectionBackground": "#3c383680", + "list.activeSelectionForeground": "#8ec07c", + "list.hoverBackground": "#3c383680", + "list.hoverForeground": "#d5c4a1", + "list.focusBackground": "#3c3836", + "list.focusForeground": "#ebdbb2", + "list.inactiveSelectionForeground": "#689d6a", + "list.inactiveSelectionBackground": "#3c383680", + "list.dropBackground": "#3c3836", + "list.highlightForeground": "#689d6a", + + "sideBar.background": "#32302f", + "sideBar.foreground": "#d5c4a1", + "sideBar.border": "#3c3836", + "sideBarTitle.foreground": "#ebdbb2", + "sideBarSectionHeader.background": "#32302f00", + "sideBarSectionHeader.foreground": "#ebdbb2", + + "activityBar.background": "#32302f", + "activityBar.foreground": "#ebdbb2", + "activityBar.border": "#3c3836", + "activityBarBadge.background": "#458588", + "activityBarBadge.foreground": "#ebdbb2", + + "editorGroup.border": "#3c3836", + "editorGroup.dropBackground": "#3c383660", + "editorGroupHeader.noTabsBackground": "#3c3836", + "editorGroupHeader.tabsBackground": "#32302f", + "editorGroupHeader.tabsBorder": "#3c3836", + + "tab.border": "#32302f00", + "tab.activeBackground": "#504945", + "tab.activeBorder": "#689d6a", + "tab.activeForeground": "#ebdbb2", + "tab.inactiveForeground": "#a89984", + "tab.inactiveBackground": "#32302f", + "tab.unfocusedActiveForeground": "#a89984", + "tab.unfocusedActiveBorder": "#32302f00", + "tab.unfocusedInactiveForeground": "#928374", + + "editor.background": "#32302f", + "editor.foreground": "#ebdbb2", + "editorLineNumber.foreground": "#665c54", + "editorCursor.foreground": "#ebdbb2", + "editor.selectionBackground": "#689d6a40", + "editor.selectionHighlightBackground": "#fabd2f40", + "editor.hoverHighlightBackground": "#689d6a50", + "editorLink.activeForeground": "#ebdbb2", + "editor.findMatchBackground": "#83a59870", + "editor.findMatchHighlightBackground": "#fe801930", + "editor.findRangeHighlightBackground": "#83a59870", + "editor.lineHighlightBackground": "#3c383660", + "editor.lineHighlightBorder": "#3c383600", + "editorWhitespace.foreground": "#a8998420", + "editorRuler.foreground": "#a8998440", + "editorCodeLens.foreground": "#a8998490", + "editorBracketMatch.border": "#32302f00", + "editorBracketMatch.background": "#92837480", + "editorHoverWidget.background": "#32302f", + "editorHoverWidget.border": "#3c3836", + "editorOverviewRuler.border": "#32302f00", + "editorOverviewRuler.findMatchForeground": "#bdae93", + "editorOverviewRuler.rangeHighlightForeground": "#bdae93", + "editorOverviewRuler.selectionHighlightForeground": "#665c54", + "editorOverviewRuler.wordHighlightForeground": "#665c54", + "editorOverviewRuler.wordHighlightStrongForeground": "#665c54", + "editorOverviewRuler.modifiedForeground": "#83a598", + "editorOverviewRuler.addedForeground": "#83a598", + "editorOverviewRuler.deletedForeground": "#83a598", + "editorOverviewRuler.errorForeground": "#fb4934", + "editorOverviewRuler.warningForeground": "#d79921", + "editorOverviewRuler.infoForeground": "#d3869b", + "editorGutter.background": "#32302f00", + "editorGutter.modifiedBackground": "#83a598", + "editorGutter.addedBackground": "#b8bb26", + "editorGutter.deletedBackground": "#fb4934", + "editorError.foreground": "#cc241d", + "editorWarning.foreground": "#d79921", + "editorInfo.foreground": "#458588", + + "editorBracketHighlight.foreground1": "#b16286", + "editorBracketHighlight.foreground2": "#458588", + "editorBracketHighlight.foreground3": "#689d6a", + "editorBracketHighlight.foreground4": "#98971a", + "editorBracketHighlight.foreground5": "#d79921", + "editorBracketHighlight.foreground6": "#d65d0e", + "editorBracketHighlight.unexpectedBracket.foreground": "#cc241d", + + "diffEditor.insertedTextBackground": "#b8bb2630", + "diffEditor.removedTextBackground": "#fb493430", + + "editorWidget.background": "#32302f", + "editorWidget.border": "#3c3836", + "editorSuggestWidget.background": "#32302f", + "editorSuggestWidget.foreground": "#ebdbb2", + "editorSuggestWidget.highlightForeground": "#689d6a", + "editorSuggestWidget.selectedBackground": "#3c383660", + "editorSuggestWidget.border": "#3c3836", + + "peekView.border": "#3c3836", + "peekViewEditor.background": "#3c383670", + "peekViewEditor.matchHighlightBackground": "#504945", + "peekViewEditorGutter.background": "#3c383670", + "peekViewResult.background": "#3c383670", + "peekViewResult.fileForeground": "#ebdbb2", + "peekViewResult.selectionBackground": "#45858820", + "peekViewResult.selectionForeground": "#ebdbb2", + "peekViewResult.lineForeground": "#ebdbb2", + "peekViewResult.matchHighlightBackground": "#504945", + "peekViewTitle.background": "#3c383670", + "peekViewTitleDescription.foreground": "#bdae93", + "peekViewTitleLabel.foreground": "#ebdbb2", + + "merge.currentHeaderBackground": "#45858840", + "merge.currentContentBackground": "#45858820", + "merge.incomingHeaderBackground": "#689d6a40", + "merge.incomingContentBackground": "#689d6a20", + "merge.border": "#32302f00", + "editorOverviewRuler.currentContentForeground": "#458588", + "editorOverviewRuler.incomingContentForeground": "#689d6a", + "editorOverviewRuler.commonContentForeground": "#928374", + + "panel.border": "#3c3836", + "panelTitle.activeForeground": "#ebdbb2", + + "statusBar.background": "#32302f", + "statusBar.border": "#3c3836", + "statusBar.foreground": "#ebdbb2", + "statusBar.debuggingBackground": "#fe8019", + "statusBar.debuggingForeground": "#32302f", + "statusBar.debuggingBorder": "#32302f00", + "statusBar.noFolderBackground": "#32302f", + "statusBar.noFolderBorder": "#32302f00", + + "terminal.ansiBlack": "#3c3836", + "terminal.ansiBrightBlack": "#928374", + "terminal.ansiRed": "#cc241d", + "terminal.ansiBrightRed": "#fb4934", + "terminal.ansiGreen": "#98971a", + "terminal.ansiBrightGreen": "#b8bb26", + "terminal.ansiYellow": "#d79921", + "terminal.ansiBrightYellow": "#fabd2f", + "terminal.ansiBlue": "#458588", + "terminal.ansiBrightBlue": "#83a598", + "terminal.ansiMagenta": "#b16286", + "terminal.ansiBrightMagenta": "#d3869b", + "terminal.ansiCyan": "#689d6a", + "terminal.ansiBrightCyan": "#8ec07c", + "terminal.ansiWhite": "#a89984", + "terminal.ansiBrightWhite": "#ebdbb2", + "terminal.foreground": "#ebdbb2", + "terminal.background": "#32302f", + + "titleBar.activeBackground": "#32302f", + "titleBar.activeForeground": "#ebdbb2", + "titleBar.inactiveBackground": "#32302f", + + "gitDecoration.modifiedResourceForeground": "#d79921", + "gitDecoration.deletedResourceForeground": "#cc241d", + "gitDecoration.untrackedResourceForeground": "#98971a", + "gitDecoration.ignoredResourceForeground": "#7c6f64", + "gitDecoration.conflictingResourceForeground": "#b16286", + + "menu.border": "#3c3836", + "menu.separatorBackground": "#3c3836", + + "notebook.cellEditorBackground": "#282828", + "notebook.focusedCellBorder": "#a89984", + "notebook.cellBorderColor": "#665c54", + "notebook.focusedEditorBorder": "#665c54", + + "extensionButton.prominentBackground": "#b8bb2680", + "extensionButton.prominentHoverBackground": "#b8bb2630", + + "textLink.foreground": "#83a598", + "textLink.activeForeground": "#458588", + "debugToolBar.background": "#32302f" + }, + "semanticTokenColors": { + "constant.builtin": "#d3869b", + "property": "#83a598", + "property:python": "#ebdbb2", + "parameter": "#83a598", + "variable": "#ebdbb2", + "function": "#8ec07c", + "function.builtin": "#fe8019", + "method": "#8ec07c" + } +} diff --git a/assets/themes/src/vscode/gruvbox/gruvbox-light-hard.json b/assets/themes/src/vscode/gruvbox/gruvbox-light-hard.json new file mode 100644 index 0000000000..bd0f60eac9 --- /dev/null +++ b/assets/themes/src/vscode/gruvbox/gruvbox-light-hard.json @@ -0,0 +1,1073 @@ +{ + "$schema": "vscode://schemas/color-theme", + "name": "Gruvbox Light Hard", + "semanticHighlighting": true, + "tokenColors": [ + { + "settings": { + "foreground": "#3c3836" + } + }, + { + "scope": "emphasis", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "strong", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "header", + "settings": { + "foreground": "#458588" + } + }, + { + "scope": ["comment", "punctuation.definition.comment"], + "settings": { + "foreground": "#928374", + "fontStyle": "italic" + } + }, + { + "scope": ["constant", "support.constant", "variable.arguments"], + "settings": { + "foreground": "#8f3f71" + } + }, + { + "scope": "constant.rgb-value", + "settings": { + "foreground": "#3c3836" + } + }, + { + "scope": "entity.name.selector", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#b57614" + } + }, + { + "scope": ["entity.name.tag", "punctuation.tag"], + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": ["invalid", "invalid.illegal"], + "settings": { + "foreground": "#cc241d" + } + }, + { + "scope": "invalid.deprecated", + "settings": { + "foreground": "#b16286" + } + }, + { + "scope": "meta.selector", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "meta.preprocessor", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "meta.preprocessor.string", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "meta.preprocessor.numeric", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "meta.header.diff", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "storage", + "settings": { + "foreground": "#9d0006" + } + }, + { + "scope": ["storage.type", "storage.modifier"], + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "string", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "string.tag", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "string.value", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "string.regexp", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "string.escape", + "settings": { + "foreground": "#9d0006" + } + }, + { + "scope": "string.quasi", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "string.entity", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "object", + "settings": { + "foreground": "#3c3836" + } + }, + { + "scope": "module.node", + "settings": { + "foreground": "#076678" + } + }, + { + "scope": "support.type.property-name", + "settings": { + "foreground": "#689d6a" + } + }, + { + "scope": "keyword", + "settings": { + "foreground": "#9d0006" + } + }, + { + "scope": "keyword.control", + "settings": { + "foreground": "#9d0006" + } + }, + { + "scope": "keyword.control.module", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "keyword.control.less", + "settings": { + "foreground": "#d79921" + } + }, + { + "scope": "keyword.operator", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "keyword.operator.new", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "keyword.other.unit", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "metatag.php", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "support.function.git-rebase", + "settings": { + "foreground": "#689d6a" + } + }, + { + "scope": "constant.sha.git-rebase", + "settings": { + "foreground": "#79740e" + } + }, + { + "name": "Types declaration and references", + "scope": [ + "meta.type.name", + "meta.return.type", + "meta.return-type", + "meta.cast", + "meta.type.annotation", + "support.type", + "storage.type.cs", + "variable.class" + ], + "settings": { + "foreground": "#b57614" + } + }, + { + "scope": ["variable.this", "support.variable"], + "settings": { + "foreground": "#8f3f71" + } + }, + { + "scope": [ + "entity.name", + "entity.static", + "entity.name.class.static.function", + "entity.name.function", + "entity.name.class", + "entity.name.type" + ], + "settings": { + "foreground": "#b57614" + } + }, + { + "name": "Function declarations", + "scope": ["entity.function", "entity.name.function.static"], + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "entity.name.function.function-call", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "support.function.builtin", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": [ + "entity.name.method", + "entity.name.method.function-call", + "entity.name.static.function-call" + ], + "settings": { + "foreground": "#689d6a" + } + }, + { + "scope": "brace", + "settings": { + "foreground": "#504945" + } + }, + { + "name": "variables", + "scope": [ + "meta.parameter.type.variable", + "variable.parameter", + "variable.name", + "variable.other", + "variable", + "string.constant.other.placeholder" + ], + "settings": { + "foreground": "#076678" + } + }, + { + "scope": "prototype", + "settings": { + "foreground": "#8f3f71" + } + }, + { + "scope": ["punctuation"], + "settings": { + "foreground": "#7c6f64" + } + }, + { + "scope": "punctuation.quoted", + "settings": { + "foreground": "#3c3836" + } + }, + { + "scope": "punctuation.quasi", + "settings": { + "foreground": "#9d0006" + } + }, + { + "name": "URL", + "scope": ["*url*", "*link*", "*uri*"], + "settings": { + "fontStyle": "underline" + } + }, + + { + "name": "Python function", + "scope": ["meta.function.python", "entity.name.function.python"], + "settings": { + "foreground": "#427b58" + } + }, + { + "name": "Python Function and Class definition keywords", + "scope": [ + "storage.type.function.python", + "storage.modifier.declaration", + "storage.type.class.python", + "storage.type.string.python" + ], + "settings": { + "foreground": "#9d0006" + } + }, + { + "name": "Async keyword", + "scope": ["storage.type.function.async.python"], + "settings": { + "foreground": "#9d0006" + } + }, + { + "name": "Python Function Call", + "scope": "meta.function-call.generic", + "settings": { + "foreground": "#076678" + } + }, + { + "name": "Python Function Arguments", + "scope": "meta.function-call.arguments", + "settings": { + "foreground": "#504945" + } + }, + { + "name": "Python Function decorator", + "scope": "entity.name.function.decorator", + "settings": { + "foreground": "#b57614", + "fontStyle": "bold" + } + }, + { + "name": "Python ALL CAPS", + "scope": "constant.other.caps", + "settings": { + "fontStyle": "bold" + } + }, + + { + "scope": "keyword.operator.logical", + "settings": { + "foreground": "#9d0006" + } + }, + { + "scope": "punctuation.definition.logical-expression", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": ["string.interpolated.dollar.shell", "string.interpolated.backtick.shell"], + "settings": { + "foreground": "#427b58" + } + }, + + { + "scope": "keyword.control.directive", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "support.function.C99", + "settings": { + "foreground": "#b57614" + } + }, + + { + "name": "C# functions & namespace", + "scope": [ + "meta.function.cs", + "entity.name.function.cs", + "entity.name.type.namespace.cs" + ], + "settings": { + "foreground": "#79740e" + } + }, + { + "name": "C# Variables", + "scope": [ + "keyword.other.using.cs", + "entity.name.variable.field.cs", + "entity.name.variable.local.cs", + "variable.other.readwrite.cs" + ], + "settings": { + "foreground": "#427b58" + } + }, + { + "name": "C# This", + "scope": ["keyword.other.this.cs", "keyword.other.base.cs"], + "settings": { + "foreground": "#8f3f71" + } + }, + + { + "scope": "meta.scope.prerequisites", + "settings": { + "foreground": "#b57614" + } + }, + { + "scope": "entity.name.function.target", + "settings": { + "foreground": "#79740e", + "fontStyle": "bold" + } + }, + + { + "name": "coloring of the Java import and package identifiers", + "scope": ["storage.modifier.import.java", "storage.modifier.package.java"], + "settings": { + "foreground": "#665c54" + } + }, + { + "scope": ["keyword.other.import.java", "keyword.other.package.java"], + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "storage.type.java", + "settings": { + "foreground": "#b57614" + } + }, + { + "scope": "storage.type.annotation", + "settings": { + "foreground": "#076678", + "fontStyle": "bold" + } + }, + { + "scope": "keyword.other.documentation.javadoc", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "comment.block.javadoc variable.parameter.java", + "settings": { + "foreground": "#79740e", + "fontStyle": "bold" + } + }, + { + "scope": [ + "source.java variable.other.object", + "source.java variable.other.definition.java" + ], + "settings": { + "foreground": "#3c3836" + } + }, + + { + "name": "Lisp optional function parameters", + "scope": "meta.function-parameters.lisp", + "settings": { + "foreground": "#b57614" + } + }, + + { + "scope": "markup.underline", + "settings": { + "fontStyle": "underline" + } + }, + { + "scope": "string.other.link.title.markdown", + "settings": { + "foreground": "#928374", + "fontStyle": "underline" + } + }, + { + "scope": "markup.underline.link", + "settings": { + "foreground": "#8f3f71" + } + }, + { + "scope": "markup.bold", + "settings": { + "fontStyle": "bold", + "foreground": "#af3a03" + } + }, + { + "scope": "markup.heading", + "settings": { + "fontStyle": "bold", + "foreground": "#af3a03" + } + }, + { + "scope": "markup.italic", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "markup.inserted", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "markup.deleted", + "settings": { + "foreground": "#d65d0e" + } + }, + { + "scope": "markup.changed", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "markup.punctuation.quote.beginning", + "settings": { + "foreground": "#98971a" + } + }, + { + "scope": "markup.punctuation.list.beginning", + "settings": { + "foreground": "#076678" + } + }, + { + "scope": ["markup.inline.raw", "markup.fenced_code.block"], + "settings": { + "foreground": "#427b58" + } + }, + + { + "scope": "string.quoted.double.json", + "settings": { + "foreground": "#076678" + } + }, + { + "name": "JSON Level 0", + "scope": ["source.json meta.structure.dictionary.json support.type.property-name.json"], + "settings": { + "foreground": "#79740e" + } + }, + { + "name": "JSON Level 1", + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#427b58" + } + }, + { + "name": "JSON Level 2", + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#8f3f71" + } + }, + { + "name": "JSON Level 3", + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#79740e" + } + }, + + { + "scope": "entity.other.attribute-name.css", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "source.css meta.selector", + "settings": { + "foreground": "#3c3836" + } + }, + { + "scope": "support.type.property-name.css", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "entity.other.attribute-name.class", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": [ + "source.css support.function.transform", + "source.css support.function.timing-function", + "source.css support.function.misc" + ], + "settings": { + "foreground": "#9d0006" + } + }, + { + "name": "CSS property value", + "scope": [ + "support.property-value", + "constant.rgb-value", + "support.property-value.scss", + "constant.rgb-value.scss" + ], + "settings": { + "foreground": "#d65d0e" + } + }, + { + "scope": ["entity.name.tag.css"], + "settings": { + "fontStyle": "" + } + }, + + { + "scope": ["punctuation.definition.tag"], + "settings": { + "foreground": "#076678" + } + }, + { + "scope": ["text.html entity.name.tag", "text.html punctuation.tag"], + "settings": { + "foreground": "#427b58", + "fontStyle": "bold" + } + }, + + { + "scope": ["source.js variable.language"], + "settings": { + "foreground": "#af3a03" + } + }, + + { + "scope": ["source.ts variable.language"], + "settings": { + "foreground": "#af3a03" + } + }, + + { + "scope": ["source.go storage.type"], + "settings": { + "foreground": "#b57614" + } + }, + { + "scope": ["source.go entity.name.import"], + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": ["source.go keyword.package", "source.go keyword.import"], + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": ["source.go keyword.interface", "source.go keyword.struct"], + "settings": { + "foreground": "#076678" + } + }, + { + "scope": ["source.go entity.name.type"], + "settings": { + "foreground": "#3c3836" + } + }, + { + "scope": ["source.go entity.name.function"], + "settings": { + "foreground": "#8f3f71" + } + }, + + { + "scope": ["keyword.control.cucumber.table"], + "settings": { + "foreground": "#076678" + } + }, + + { + "name": "ReasonML String", + "scope": ["source.reason string.double", "source.reason string.regexp"], + "settings": { + "foreground": "#79740e" + } + }, + { + "name": "ReasonML equals sign", + "scope": ["source.reason keyword.control.less"], + "settings": { + "foreground": "#427b58" + } + }, + { + "name": "ReasonML variable", + "scope": ["source.reason entity.name.function"], + "settings": { + "foreground": "#076678" + } + }, + { + "name": "ReasonML property", + "scope": ["source.reason support.property-value", "source.reason entity.name.filename"], + "settings": { + "foreground": "#af3a03" + } + }, + + { + "name": "Powershell member", + "scope": ["source.powershell variable.other.member.powershell"], + "settings": { + "foreground": "#af3a03" + } + }, + { + "name": "Powershell function", + "scope": ["source.powershell support.function.powershell"], + "settings": { + "foreground": "#b57614" + } + }, + { + "name": "Powershell function attribute", + "scope": ["source.powershell support.function.attribute.powershell"], + "settings": { + "foreground": "#665c54" + } + }, + { + "name": "Powershell hashtable member", + "scope": [ + "source.powershell meta.hashtable.assignment.powershell variable.other.readwrite.powershell" + ], + "settings": { + "foreground": "#af3a03" + } + } + ], + "colors": { + "focusBorder": "#ebdbb2", + "foreground": "#3c3836", + "widget.shadow": "#f9f5d730", + "selection.background": "#689d6a80", + "errorForeground": "#9d0006", + + "button.background": "#45858880", + "button.foreground": "#3c3836", + "button.hoverBackground": "#45858860", + + "dropdown.background": "#f9f5d7", + "dropdown.border": "#ebdbb2", + "dropdown.foreground": "#3c3836", + + "input.background": "#3c383605", + "input.border": "#ebdbb2", + "input.foreground": "#3c3836", + "input.placeholderForeground": "#3c383660", + "inputValidation.errorBorder": "#9d0006", + "inputValidation.errorBackground": "#cc241d80", + "inputValidation.infoBorder": "#076678", + "inputValidation.infoBackground": "#45858880", + "inputValidation.warningBorder": "#b57614", + "inputValidation.warningBackground": "#d7992180", + "inputOption.activeBorder": "#3c383660", + + "scrollbar.shadow": "#f9f5d7", + "scrollbarSlider.activeBackground": "#689d6a", + "scrollbarSlider.hoverBackground": "#bdae93", + "scrollbarSlider.background": "#d5c4a199", + + "badge.background": "#8f3f71", + "badge.foreground": "#f9f5d7", + + "progressBar.background": "#689d6a", + + "list.activeSelectionBackground": "#ebdbb280", + "list.activeSelectionForeground": "#af3a03", + "list.hoverBackground": "#ebdbb280", + "list.hoverForeground": "#504945", + "list.focusBackground": "#ebdbb2", + "list.focusForeground": "#3c3836", + "list.inactiveSelectionForeground": "#d65d0e", + "list.inactiveSelectionBackground": "#ebdbb280", + "list.dropBackground": "#ebdbb2", + "list.highlightForeground": "#689d6a", + + "sideBar.background": "#f9f5d7", + "sideBar.foreground": "#504945", + "sideBar.border": "#ebdbb2", + "sideBarTitle.foreground": "#3c3836", + "sideBarSectionHeader.background": "#f9f5d700", + "sideBarSectionHeader.foreground": "#3c3836", + + "activityBar.background": "#f9f5d7", + "activityBar.foreground": "#3c3836", + "activityBar.border": "#ebdbb2", + "activityBarBadge.background": "#458588", + "activityBarBadge.foreground": "#ebdbb2", + + "editorGroup.border": "#ebdbb2", + "editorGroup.dropBackground": "#ebdbb260", + "editorGroupHeader.noTabsBackground": "#ebdbb2", + "editorGroupHeader.tabsBackground": "#f9f5d7", + "editorGroupHeader.tabsBorder": "#ebdbb2", + + "tab.border": "#f9f5d700", + "tab.activeBackground": "#f2e5bc", + "tab.activeBorder": "#d65d0e", + "tab.activeForeground": "#3c3836", + "tab.inactiveForeground": "#7c6f64", + "tab.inactiveBackground": "#f9f5d7", + "tab.unfocusedActiveForeground": "#7c6f64", + "tab.unfocusedActiveBorder": "#f9f5d700", + "tab.unfocusedInactiveForeground": "#928374", + + "editor.background": "#f9f5d7", + "editor.foreground": "#3c3836", + "editorLineNumber.foreground": "#bdae93", + "editorCursor.foreground": "#3c3836", + "editor.selectionBackground": "#689d6a40", + "editor.selectionHighlightBackground": "#b5761440", + "editor.hoverHighlightBackground": "#689d6a50", + "editorLink.activeForeground": "#3c3836", + "editor.findMatchBackground": "#07667870", + "editor.findMatchHighlightBackground": "#af3a0330", + "editor.findRangeHighlightBackground": "#07667870", + "editor.lineHighlightBackground": "#ebdbb260", + "editor.lineHighlightBorder": "#ebdbb200", + "editorWhitespace.foreground": "#7c6f6420", + "editorRuler.foreground": "#7c6f6440", + "editorCodeLens.foreground": "#7c6f6490", + "editorBracketMatch.border": "#f9f5d700", + "editorBracketMatch.background": "#92837480", + "editorHoverWidget.background": "#f9f5d7", + "editorHoverWidget.border": "#ebdbb2", + "editorOverviewRuler.border": "#f9f5d700", + "editorOverviewRuler.findMatchForeground": "#665c54", + "editorOverviewRuler.rangeHighlightForeground": "#665c54", + "editorOverviewRuler.selectionHighlightForeground": "#bdae93", + "editorOverviewRuler.wordHighlightForeground": "#bdae93", + "editorOverviewRuler.wordHighlightStrongForeground": "#bdae93", + "editorOverviewRuler.modifiedForeground": "#076678", + "editorOverviewRuler.addedForeground": "#076678", + "editorOverviewRuler.deletedForeground": "#076678", + "editorOverviewRuler.errorForeground": "#9d0006", + "editorOverviewRuler.warningForeground": "#d79921", + "editorOverviewRuler.infoForeground": "#8f3f71", + "editorGutter.background": "#f9f5d700", + "editorGutter.modifiedBackground": "#076678", + "editorGutter.addedBackground": "#79740e", + "editorGutter.deletedBackground": "#9d0006", + "editorError.foreground": "#cc241d", + "editorWarning.foreground": "#d79921", + "editorInfo.foreground": "#458588", + + "editorBracketHighlight.foreground1": "#b16286", + "editorBracketHighlight.foreground2": "#458588", + "editorBracketHighlight.foreground3": "#689d6a", + "editorBracketHighlight.foreground4": "#98971a", + "editorBracketHighlight.foreground5": "#d79921", + "editorBracketHighlight.foreground6": "#d65d0e", + "editorBracketHighlight.unexpectedBracket.foreground": "#cc241d", + + "diffEditor.insertedTextBackground": "#79740e30", + "diffEditor.removedTextBackground": "#9d000630", + + "editorWidget.background": "#f9f5d7", + "editorWidget.border": "#ebdbb2", + "editorSuggestWidget.background": "#f9f5d7", + "editorSuggestWidget.foreground": "#3c3836", + "editorSuggestWidget.highlightForeground": "#689d6a", + "editorSuggestWidget.selectedBackground": "#ebdbb260", + "editorSuggestWidget.border": "#ebdbb2", + + "peekView.border": "#ebdbb2", + "peekViewEditor.background": "#ebdbb270", + "peekViewEditor.matchHighlightBackground": "#d5c4a1", + "peekViewEditorGutter.background": "#ebdbb270", + "peekViewResult.background": "#ebdbb270", + "peekViewResult.fileForeground": "#3c3836", + "peekViewResult.selectionBackground": "#45858820", + "peekViewResult.selectionForeground": "#3c3836", + "peekViewResult.lineForeground": "#3c3836", + "peekViewResult.matchHighlightBackground": "#d5c4a1", + "peekViewTitle.background": "#ebdbb270", + "peekViewTitleDescription.foreground": "#665c54", + "peekViewTitleLabel.foreground": "#3c3836", + + "merge.currentHeaderBackground": "#45858840", + "merge.currentContentBackground": "#45858820", + "merge.incomingHeaderBackground": "#689d6a40", + "merge.incomingContentBackground": "#689d6a20", + "merge.border": "#f9f5d700", + "editorOverviewRuler.currentContentForeground": "#458588", + "editorOverviewRuler.incomingContentForeground": "#689d6a", + "editorOverviewRuler.commonContentForeground": "#928374", + + "panel.border": "#ebdbb2", + "panelTitle.activeForeground": "#3c3836", + + "statusBar.background": "#f9f5d7", + "statusBar.border": "#ebdbb2", + "statusBar.foreground": "#3c3836", + "statusBar.debuggingBackground": "#af3a03", + "statusBar.debuggingForeground": "#f9f5d7", + "statusBar.debuggingBorder": "#f9f5d700", + "statusBar.noFolderBackground": "#f9f5d7", + "statusBar.noFolderBorder": "#f9f5d700", + + "terminal.ansiBlack": "#ebdbb2", + "terminal.ansiBrightBlack": "#928374", + "terminal.ansiRed": "#cc241d", + "terminal.ansiBrightRed": "#9d0006", + "terminal.ansiGreen": "#98971a", + "terminal.ansiBrightGreen": "#79740e", + "terminal.ansiYellow": "#d79921", + "terminal.ansiBrightYellow": "#b57614", + "terminal.ansiBlue": "#458588", + "terminal.ansiBrightBlue": "#076678", + "terminal.ansiMagenta": "#b16286", + "terminal.ansiBrightMagenta": "#8f3f71", + "terminal.ansiCyan": "#689d6a", + "terminal.ansiBrightCyan": "#427b58", + "terminal.ansiWhite": "#7c6f64", + "terminal.ansiBrightWhite": "#3c3836", + "terminal.foreground": "#3c3836", + "terminal.background": "#f9f5d7", + + "titleBar.activeBackground": "#f9f5d7", + "titleBar.activeForeground": "#3c3836", + "titleBar.inactiveBackground": "#f9f5d7", + + "gitDecoration.modifiedResourceForeground": "#d79921", + "gitDecoration.deletedResourceForeground": "#cc241d", + "gitDecoration.untrackedResourceForeground": "#98971a", + "gitDecoration.ignoredResourceForeground": "#a89984", + "gitDecoration.conflictingResourceForeground": "#b16286", + + "menu.border": "#ebdbb2", + "menu.separatorBackground": "#ebdbb2", + + "notebook.cellEditorBackground": "#fbf1c7", + "notebook.focusedCellBorder": "#7c6f64", + "notebook.cellBorderColor": "#d5c4a1", + "notebook.focusedEditorBorder": "#d5c4a1", + + "extensionButton.prominentBackground": "#79740e80", + "extensionButton.prominentHoverBackground": "#79740e30", + + "textLink.foreground": "#076678", + "textLink.activeForeground": "#458588", + "debugToolBar.background": "#f9f5d7" + }, + "semanticTokenColors": { + "constant.builtin": "#8f3f71", + "property": "#076678", + "property:python": "#3c3836", + "parameter": "#076678", + "variable": "#3c3836", + "function": "#427b58", + "function.builtin": "#af3a03", + "method": "#427b58" + } +} diff --git a/assets/themes/src/vscode/gruvbox/gruvbox-light-medium.json b/assets/themes/src/vscode/gruvbox/gruvbox-light-medium.json new file mode 100644 index 0000000000..6cd742090e --- /dev/null +++ b/assets/themes/src/vscode/gruvbox/gruvbox-light-medium.json @@ -0,0 +1,1073 @@ +{ + "$schema": "vscode://schemas/color-theme", + "name": "Gruvbox Light Medium", + "semanticHighlighting": true, + "tokenColors": [ + { + "settings": { + "foreground": "#3c3836" + } + }, + { + "scope": "emphasis", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "strong", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "header", + "settings": { + "foreground": "#458588" + } + }, + { + "scope": ["comment", "punctuation.definition.comment"], + "settings": { + "foreground": "#928374", + "fontStyle": "italic" + } + }, + { + "scope": ["constant", "support.constant", "variable.arguments"], + "settings": { + "foreground": "#8f3f71" + } + }, + { + "scope": "constant.rgb-value", + "settings": { + "foreground": "#3c3836" + } + }, + { + "scope": "entity.name.selector", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#b57614" + } + }, + { + "scope": ["entity.name.tag", "punctuation.tag"], + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": ["invalid", "invalid.illegal"], + "settings": { + "foreground": "#cc241d" + } + }, + { + "scope": "invalid.deprecated", + "settings": { + "foreground": "#b16286" + } + }, + { + "scope": "meta.selector", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "meta.preprocessor", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "meta.preprocessor.string", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "meta.preprocessor.numeric", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "meta.header.diff", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "storage", + "settings": { + "foreground": "#9d0006" + } + }, + { + "scope": ["storage.type", "storage.modifier"], + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "string", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "string.tag", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "string.value", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "string.regexp", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "string.escape", + "settings": { + "foreground": "#9d0006" + } + }, + { + "scope": "string.quasi", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "string.entity", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "object", + "settings": { + "foreground": "#3c3836" + } + }, + { + "scope": "module.node", + "settings": { + "foreground": "#076678" + } + }, + { + "scope": "support.type.property-name", + "settings": { + "foreground": "#689d6a" + } + }, + { + "scope": "keyword", + "settings": { + "foreground": "#9d0006" + } + }, + { + "scope": "keyword.control", + "settings": { + "foreground": "#9d0006" + } + }, + { + "scope": "keyword.control.module", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "keyword.control.less", + "settings": { + "foreground": "#d79921" + } + }, + { + "scope": "keyword.operator", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "keyword.operator.new", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "keyword.other.unit", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "metatag.php", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "support.function.git-rebase", + "settings": { + "foreground": "#689d6a" + } + }, + { + "scope": "constant.sha.git-rebase", + "settings": { + "foreground": "#79740e" + } + }, + { + "name": "Types declaration and references", + "scope": [ + "meta.type.name", + "meta.return.type", + "meta.return-type", + "meta.cast", + "meta.type.annotation", + "support.type", + "storage.type.cs", + "variable.class" + ], + "settings": { + "foreground": "#b57614" + } + }, + { + "scope": ["variable.this", "support.variable"], + "settings": { + "foreground": "#8f3f71" + } + }, + { + "scope": [ + "entity.name", + "entity.static", + "entity.name.class.static.function", + "entity.name.function", + "entity.name.class", + "entity.name.type" + ], + "settings": { + "foreground": "#b57614" + } + }, + { + "name": "Function declarations", + "scope": ["entity.function", "entity.name.function.static"], + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "entity.name.function.function-call", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "support.function.builtin", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": [ + "entity.name.method", + "entity.name.method.function-call", + "entity.name.static.function-call" + ], + "settings": { + "foreground": "#689d6a" + } + }, + { + "scope": "brace", + "settings": { + "foreground": "#504945" + } + }, + { + "name": "variables", + "scope": [ + "meta.parameter.type.variable", + "variable.parameter", + "variable.name", + "variable.other", + "variable", + "string.constant.other.placeholder" + ], + "settings": { + "foreground": "#076678" + } + }, + { + "scope": "prototype", + "settings": { + "foreground": "#8f3f71" + } + }, + { + "scope": ["punctuation"], + "settings": { + "foreground": "#7c6f64" + } + }, + { + "scope": "punctuation.quoted", + "settings": { + "foreground": "#3c3836" + } + }, + { + "scope": "punctuation.quasi", + "settings": { + "foreground": "#9d0006" + } + }, + { + "name": "URL", + "scope": ["*url*", "*link*", "*uri*"], + "settings": { + "fontStyle": "underline" + } + }, + + { + "name": "Python function", + "scope": ["meta.function.python", "entity.name.function.python"], + "settings": { + "foreground": "#427b58" + } + }, + { + "name": "Python Function and Class definition keywords", + "scope": [ + "storage.type.function.python", + "storage.modifier.declaration", + "storage.type.class.python", + "storage.type.string.python" + ], + "settings": { + "foreground": "#9d0006" + } + }, + { + "name": "Async keyword", + "scope": ["storage.type.function.async.python"], + "settings": { + "foreground": "#9d0006" + } + }, + { + "name": "Python Function Call", + "scope": "meta.function-call.generic", + "settings": { + "foreground": "#076678" + } + }, + { + "name": "Python Function Arguments", + "scope": "meta.function-call.arguments", + "settings": { + "foreground": "#504945" + } + }, + { + "name": "Python Function decorator", + "scope": "entity.name.function.decorator", + "settings": { + "foreground": "#b57614", + "fontStyle": "bold" + } + }, + { + "name": "Python ALL CAPS", + "scope": "constant.other.caps", + "settings": { + "fontStyle": "bold" + } + }, + + { + "scope": "keyword.operator.logical", + "settings": { + "foreground": "#9d0006" + } + }, + { + "scope": "punctuation.definition.logical-expression", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": ["string.interpolated.dollar.shell", "string.interpolated.backtick.shell"], + "settings": { + "foreground": "#427b58" + } + }, + + { + "scope": "keyword.control.directive", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "support.function.C99", + "settings": { + "foreground": "#b57614" + } + }, + + { + "name": "C# functions & namespace", + "scope": [ + "meta.function.cs", + "entity.name.function.cs", + "entity.name.type.namespace.cs" + ], + "settings": { + "foreground": "#79740e" + } + }, + { + "name": "C# Variables", + "scope": [ + "keyword.other.using.cs", + "entity.name.variable.field.cs", + "entity.name.variable.local.cs", + "variable.other.readwrite.cs" + ], + "settings": { + "foreground": "#427b58" + } + }, + { + "name": "C# This", + "scope": ["keyword.other.this.cs", "keyword.other.base.cs"], + "settings": { + "foreground": "#8f3f71" + } + }, + + { + "scope": "meta.scope.prerequisites", + "settings": { + "foreground": "#b57614" + } + }, + { + "scope": "entity.name.function.target", + "settings": { + "foreground": "#79740e", + "fontStyle": "bold" + } + }, + + { + "name": "coloring of the Java import and package identifiers", + "scope": ["storage.modifier.import.java", "storage.modifier.package.java"], + "settings": { + "foreground": "#665c54" + } + }, + { + "scope": ["keyword.other.import.java", "keyword.other.package.java"], + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "storage.type.java", + "settings": { + "foreground": "#b57614" + } + }, + { + "scope": "storage.type.annotation", + "settings": { + "foreground": "#076678", + "fontStyle": "bold" + } + }, + { + "scope": "keyword.other.documentation.javadoc", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "comment.block.javadoc variable.parameter.java", + "settings": { + "foreground": "#79740e", + "fontStyle": "bold" + } + }, + { + "scope": [ + "source.java variable.other.object", + "source.java variable.other.definition.java" + ], + "settings": { + "foreground": "#3c3836" + } + }, + + { + "name": "Lisp optional function parameters", + "scope": "meta.function-parameters.lisp", + "settings": { + "foreground": "#b57614" + } + }, + + { + "scope": "markup.underline", + "settings": { + "fontStyle": "underline" + } + }, + { + "scope": "string.other.link.title.markdown", + "settings": { + "foreground": "#928374", + "fontStyle": "underline" + } + }, + { + "scope": "markup.underline.link", + "settings": { + "foreground": "#8f3f71" + } + }, + { + "scope": "markup.bold", + "settings": { + "fontStyle": "bold", + "foreground": "#af3a03" + } + }, + { + "scope": "markup.heading", + "settings": { + "fontStyle": "bold", + "foreground": "#af3a03" + } + }, + { + "scope": "markup.italic", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "markup.inserted", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "markup.deleted", + "settings": { + "foreground": "#d65d0e" + } + }, + { + "scope": "markup.changed", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "markup.punctuation.quote.beginning", + "settings": { + "foreground": "#98971a" + } + }, + { + "scope": "markup.punctuation.list.beginning", + "settings": { + "foreground": "#076678" + } + }, + { + "scope": ["markup.inline.raw", "markup.fenced_code.block"], + "settings": { + "foreground": "#427b58" + } + }, + + { + "scope": "string.quoted.double.json", + "settings": { + "foreground": "#076678" + } + }, + { + "name": "JSON Level 0", + "scope": ["source.json meta.structure.dictionary.json support.type.property-name.json"], + "settings": { + "foreground": "#79740e" + } + }, + { + "name": "JSON Level 1", + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#427b58" + } + }, + { + "name": "JSON Level 2", + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#8f3f71" + } + }, + { + "name": "JSON Level 3", + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#79740e" + } + }, + + { + "scope": "entity.other.attribute-name.css", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "source.css meta.selector", + "settings": { + "foreground": "#3c3836" + } + }, + { + "scope": "support.type.property-name.css", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "entity.other.attribute-name.class", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": [ + "source.css support.function.transform", + "source.css support.function.timing-function", + "source.css support.function.misc" + ], + "settings": { + "foreground": "#9d0006" + } + }, + { + "name": "CSS property value", + "scope": [ + "support.property-value", + "constant.rgb-value", + "support.property-value.scss", + "constant.rgb-value.scss" + ], + "settings": { + "foreground": "#d65d0e" + } + }, + { + "scope": ["entity.name.tag.css"], + "settings": { + "fontStyle": "" + } + }, + + { + "scope": ["punctuation.definition.tag"], + "settings": { + "foreground": "#076678" + } + }, + { + "scope": ["text.html entity.name.tag", "text.html punctuation.tag"], + "settings": { + "foreground": "#427b58", + "fontStyle": "bold" + } + }, + + { + "scope": ["source.js variable.language"], + "settings": { + "foreground": "#af3a03" + } + }, + + { + "scope": ["source.ts variable.language"], + "settings": { + "foreground": "#af3a03" + } + }, + + { + "scope": ["source.go storage.type"], + "settings": { + "foreground": "#b57614" + } + }, + { + "scope": ["source.go entity.name.import"], + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": ["source.go keyword.package", "source.go keyword.import"], + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": ["source.go keyword.interface", "source.go keyword.struct"], + "settings": { + "foreground": "#076678" + } + }, + { + "scope": ["source.go entity.name.type"], + "settings": { + "foreground": "#3c3836" + } + }, + { + "scope": ["source.go entity.name.function"], + "settings": { + "foreground": "#8f3f71" + } + }, + + { + "scope": ["keyword.control.cucumber.table"], + "settings": { + "foreground": "#076678" + } + }, + + { + "name": "ReasonML String", + "scope": ["source.reason string.double", "source.reason string.regexp"], + "settings": { + "foreground": "#79740e" + } + }, + { + "name": "ReasonML equals sign", + "scope": ["source.reason keyword.control.less"], + "settings": { + "foreground": "#427b58" + } + }, + { + "name": "ReasonML variable", + "scope": ["source.reason entity.name.function"], + "settings": { + "foreground": "#076678" + } + }, + { + "name": "ReasonML property", + "scope": ["source.reason support.property-value", "source.reason entity.name.filename"], + "settings": { + "foreground": "#af3a03" + } + }, + + { + "name": "Powershell member", + "scope": ["source.powershell variable.other.member.powershell"], + "settings": { + "foreground": "#af3a03" + } + }, + { + "name": "Powershell function", + "scope": ["source.powershell support.function.powershell"], + "settings": { + "foreground": "#b57614" + } + }, + { + "name": "Powershell function attribute", + "scope": ["source.powershell support.function.attribute.powershell"], + "settings": { + "foreground": "#665c54" + } + }, + { + "name": "Powershell hashtable member", + "scope": [ + "source.powershell meta.hashtable.assignment.powershell variable.other.readwrite.powershell" + ], + "settings": { + "foreground": "#af3a03" + } + } + ], + "colors": { + "focusBorder": "#ebdbb2", + "foreground": "#3c3836", + "widget.shadow": "#fbf1c730", + "selection.background": "#689d6a80", + "errorForeground": "#9d0006", + + "button.background": "#45858880", + "button.foreground": "#3c3836", + "button.hoverBackground": "#45858860", + + "dropdown.background": "#fbf1c7", + "dropdown.border": "#ebdbb2", + "dropdown.foreground": "#3c3836", + + "input.background": "#3c383605", + "input.border": "#ebdbb2", + "input.foreground": "#3c3836", + "input.placeholderForeground": "#3c383660", + "inputValidation.errorBorder": "#9d0006", + "inputValidation.errorBackground": "#cc241d80", + "inputValidation.infoBorder": "#076678", + "inputValidation.infoBackground": "#45858880", + "inputValidation.warningBorder": "#b57614", + "inputValidation.warningBackground": "#d7992180", + "inputOption.activeBorder": "#3c383660", + + "scrollbar.shadow": "#fbf1c7", + "scrollbarSlider.activeBackground": "#689d6a", + "scrollbarSlider.hoverBackground": "#bdae93", + "scrollbarSlider.background": "#d5c4a199", + + "badge.background": "#8f3f71", + "badge.foreground": "#fbf1c7", + + "progressBar.background": "#689d6a", + + "list.activeSelectionBackground": "#ebdbb280", + "list.activeSelectionForeground": "#af3a03", + "list.hoverBackground": "#ebdbb280", + "list.hoverForeground": "#504945", + "list.focusBackground": "#ebdbb2", + "list.focusForeground": "#3c3836", + "list.inactiveSelectionForeground": "#d65d0e", + "list.inactiveSelectionBackground": "#ebdbb280", + "list.dropBackground": "#ebdbb2", + "list.highlightForeground": "#689d6a", + + "sideBar.background": "#fbf1c7", + "sideBar.foreground": "#504945", + "sideBar.border": "#ebdbb2", + "sideBarTitle.foreground": "#3c3836", + "sideBarSectionHeader.background": "#fbf1c700", + "sideBarSectionHeader.foreground": "#3c3836", + + "activityBar.background": "#fbf1c7", + "activityBar.foreground": "#3c3836", + "activityBar.border": "#ebdbb2", + "activityBarBadge.background": "#458588", + "activityBarBadge.foreground": "#ebdbb2", + + "editorGroup.border": "#ebdbb2", + "editorGroup.dropBackground": "#ebdbb260", + "editorGroupHeader.noTabsBackground": "#ebdbb2", + "editorGroupHeader.tabsBackground": "#fbf1c7", + "editorGroupHeader.tabsBorder": "#ebdbb2", + + "tab.border": "#fbf1c700", + "tab.activeBackground": "#ebdbb2", + "tab.activeBorder": "#d65d0e", + "tab.activeForeground": "#3c3836", + "tab.inactiveForeground": "#7c6f64", + "tab.inactiveBackground": "#fbf1c7", + "tab.unfocusedActiveForeground": "#7c6f64", + "tab.unfocusedActiveBorder": "#fbf1c700", + "tab.unfocusedInactiveForeground": "#928374", + + "editor.background": "#fbf1c7", + "editor.foreground": "#3c3836", + "editorLineNumber.foreground": "#bdae93", + "editorCursor.foreground": "#3c3836", + "editor.selectionBackground": "#689d6a40", + "editor.selectionHighlightBackground": "#b5761440", + "editor.hoverHighlightBackground": "#689d6a50", + "editorLink.activeForeground": "#3c3836", + "editor.findMatchBackground": "#07667870", + "editor.findMatchHighlightBackground": "#af3a0330", + "editor.findRangeHighlightBackground": "#07667870", + "editor.lineHighlightBackground": "#ebdbb260", + "editor.lineHighlightBorder": "#ebdbb200", + "editorWhitespace.foreground": "#7c6f6420", + "editorRuler.foreground": "#7c6f6440", + "editorCodeLens.foreground": "#7c6f6490", + "editorBracketMatch.border": "#fbf1c700", + "editorBracketMatch.background": "#92837480", + "editorHoverWidget.background": "#fbf1c7", + "editorHoverWidget.border": "#ebdbb2", + "editorOverviewRuler.border": "#fbf1c700", + "editorOverviewRuler.findMatchForeground": "#665c54", + "editorOverviewRuler.rangeHighlightForeground": "#665c54", + "editorOverviewRuler.selectionHighlightForeground": "#bdae93", + "editorOverviewRuler.wordHighlightForeground": "#bdae93", + "editorOverviewRuler.wordHighlightStrongForeground": "#bdae93", + "editorOverviewRuler.modifiedForeground": "#076678", + "editorOverviewRuler.addedForeground": "#076678", + "editorOverviewRuler.deletedForeground": "#076678", + "editorOverviewRuler.errorForeground": "#9d0006", + "editorOverviewRuler.warningForeground": "#d79921", + "editorOverviewRuler.infoForeground": "#8f3f71", + "editorGutter.background": "#fbf1c700", + "editorGutter.modifiedBackground": "#076678", + "editorGutter.addedBackground": "#79740e", + "editorGutter.deletedBackground": "#9d0006", + "editorError.foreground": "#cc241d", + "editorWarning.foreground": "#d79921", + "editorInfo.foreground": "#458588", + + "editorBracketHighlight.foreground1": "#b16286", + "editorBracketHighlight.foreground2": "#458588", + "editorBracketHighlight.foreground3": "#689d6a", + "editorBracketHighlight.foreground4": "#98971a", + "editorBracketHighlight.foreground5": "#d79921", + "editorBracketHighlight.foreground6": "#d65d0e", + "editorBracketHighlight.unexpectedBracket.foreground": "#cc241d", + + "diffEditor.insertedTextBackground": "#79740e30", + "diffEditor.removedTextBackground": "#9d000630", + + "editorWidget.background": "#fbf1c7", + "editorWidget.border": "#ebdbb2", + "editorSuggestWidget.background": "#fbf1c7", + "editorSuggestWidget.foreground": "#3c3836", + "editorSuggestWidget.highlightForeground": "#689d6a", + "editorSuggestWidget.selectedBackground": "#ebdbb260", + "editorSuggestWidget.border": "#ebdbb2", + + "peekView.border": "#ebdbb2", + "peekViewEditor.background": "#ebdbb270", + "peekViewEditor.matchHighlightBackground": "#d5c4a1", + "peekViewEditorGutter.background": "#ebdbb270", + "peekViewResult.background": "#ebdbb270", + "peekViewResult.fileForeground": "#3c3836", + "peekViewResult.selectionBackground": "#45858820", + "peekViewResult.selectionForeground": "#3c3836", + "peekViewResult.lineForeground": "#3c3836", + "peekViewResult.matchHighlightBackground": "#d5c4a1", + "peekViewTitle.background": "#ebdbb270", + "peekViewTitleDescription.foreground": "#665c54", + "peekViewTitleLabel.foreground": "#3c3836", + + "merge.currentHeaderBackground": "#45858840", + "merge.currentContentBackground": "#45858820", + "merge.incomingHeaderBackground": "#689d6a40", + "merge.incomingContentBackground": "#689d6a20", + "merge.border": "#fbf1c700", + "editorOverviewRuler.currentContentForeground": "#458588", + "editorOverviewRuler.incomingContentForeground": "#689d6a", + "editorOverviewRuler.commonContentForeground": "#928374", + + "panel.border": "#ebdbb2", + "panelTitle.activeForeground": "#3c3836", + + "statusBar.background": "#fbf1c7", + "statusBar.border": "#ebdbb2", + "statusBar.foreground": "#3c3836", + "statusBar.debuggingBackground": "#af3a03", + "statusBar.debuggingForeground": "#fbf1c7", + "statusBar.debuggingBorder": "#fbf1c700", + "statusBar.noFolderBackground": "#fbf1c7", + "statusBar.noFolderBorder": "#fbf1c700", + + "terminal.ansiBlack": "#ebdbb2", + "terminal.ansiBrightBlack": "#928374", + "terminal.ansiRed": "#cc241d", + "terminal.ansiBrightRed": "#9d0006", + "terminal.ansiGreen": "#98971a", + "terminal.ansiBrightGreen": "#79740e", + "terminal.ansiYellow": "#d79921", + "terminal.ansiBrightYellow": "#b57614", + "terminal.ansiBlue": "#458588", + "terminal.ansiBrightBlue": "#076678", + "terminal.ansiMagenta": "#b16286", + "terminal.ansiBrightMagenta": "#8f3f71", + "terminal.ansiCyan": "#689d6a", + "terminal.ansiBrightCyan": "#427b58", + "terminal.ansiWhite": "#7c6f64", + "terminal.ansiBrightWhite": "#3c3836", + "terminal.foreground": "#3c3836", + "terminal.background": "#fbf1c7", + + "titleBar.activeBackground": "#fbf1c7", + "titleBar.activeForeground": "#3c3836", + "titleBar.inactiveBackground": "#fbf1c7", + + "gitDecoration.modifiedResourceForeground": "#d79921", + "gitDecoration.deletedResourceForeground": "#cc241d", + "gitDecoration.untrackedResourceForeground": "#98971a", + "gitDecoration.ignoredResourceForeground": "#a89984", + "gitDecoration.conflictingResourceForeground": "#b16286", + + "menu.border": "#ebdbb2", + "menu.separatorBackground": "#ebdbb2", + + "notebook.cellEditorBackground": "#f2e5bc", + "notebook.focusedCellBorder": "#665c54", + "notebook.cellBorderColor": "#bdae93", + "notebook.focusedEditorBorder": "#bdae93", + + "extensionButton.prominentBackground": "#79740e80", + "extensionButton.prominentHoverBackground": "#79740e30", + + "textLink.foreground": "#076678", + "textLink.activeForeground": "#458588", + "debugToolBar.background": "#fbf1c7" + }, + "semanticTokenColors": { + "constant.builtin": "#8f3f71", + "property": "#076678", + "property:python": "#3c3836", + "parameter": "#076678", + "variable": "#3c3836", + "function": "#427b58", + "function.builtin": "#af3a03", + "method": "#427b58" + } +} diff --git a/assets/themes/src/vscode/gruvbox/gruvbox-light-soft.json b/assets/themes/src/vscode/gruvbox/gruvbox-light-soft.json new file mode 100644 index 0000000000..a101704eed --- /dev/null +++ b/assets/themes/src/vscode/gruvbox/gruvbox-light-soft.json @@ -0,0 +1,1073 @@ +{ + "$schema": "vscode://schemas/color-theme", + "name": "Gruvbox Light Soft", + "semanticHighlighting": true, + "tokenColors": [ + { + "settings": { + "foreground": "#3c3836" + } + }, + { + "scope": "emphasis", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "strong", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "header", + "settings": { + "foreground": "#458588" + } + }, + { + "scope": ["comment", "punctuation.definition.comment"], + "settings": { + "foreground": "#928374", + "fontStyle": "italic" + } + }, + { + "scope": ["constant", "support.constant", "variable.arguments"], + "settings": { + "foreground": "#8f3f71" + } + }, + { + "scope": "constant.rgb-value", + "settings": { + "foreground": "#3c3836" + } + }, + { + "scope": "entity.name.selector", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#b57614" + } + }, + { + "scope": ["entity.name.tag", "punctuation.tag"], + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": ["invalid", "invalid.illegal"], + "settings": { + "foreground": "#cc241d" + } + }, + { + "scope": "invalid.deprecated", + "settings": { + "foreground": "#b16286" + } + }, + { + "scope": "meta.selector", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "meta.preprocessor", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "meta.preprocessor.string", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "meta.preprocessor.numeric", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "meta.header.diff", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "storage", + "settings": { + "foreground": "#9d0006" + } + }, + { + "scope": ["storage.type", "storage.modifier"], + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "string", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "string.tag", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "string.value", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "string.regexp", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "string.escape", + "settings": { + "foreground": "#9d0006" + } + }, + { + "scope": "string.quasi", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "string.entity", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "object", + "settings": { + "foreground": "#3c3836" + } + }, + { + "scope": "module.node", + "settings": { + "foreground": "#076678" + } + }, + { + "scope": "support.type.property-name", + "settings": { + "foreground": "#689d6a" + } + }, + { + "scope": "keyword", + "settings": { + "foreground": "#9d0006" + } + }, + { + "scope": "keyword.control", + "settings": { + "foreground": "#9d0006" + } + }, + { + "scope": "keyword.control.module", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "keyword.control.less", + "settings": { + "foreground": "#d79921" + } + }, + { + "scope": "keyword.operator", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "keyword.operator.new", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "keyword.other.unit", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "metatag.php", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "support.function.git-rebase", + "settings": { + "foreground": "#689d6a" + } + }, + { + "scope": "constant.sha.git-rebase", + "settings": { + "foreground": "#79740e" + } + }, + { + "name": "Types declaration and references", + "scope": [ + "meta.type.name", + "meta.return.type", + "meta.return-type", + "meta.cast", + "meta.type.annotation", + "support.type", + "storage.type.cs", + "variable.class" + ], + "settings": { + "foreground": "#b57614" + } + }, + { + "scope": ["variable.this", "support.variable"], + "settings": { + "foreground": "#8f3f71" + } + }, + { + "scope": [ + "entity.name", + "entity.static", + "entity.name.class.static.function", + "entity.name.function", + "entity.name.class", + "entity.name.type" + ], + "settings": { + "foreground": "#b57614" + } + }, + { + "name": "Function declarations", + "scope": ["entity.function", "entity.name.function.static"], + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "entity.name.function.function-call", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "support.function.builtin", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": [ + "entity.name.method", + "entity.name.method.function-call", + "entity.name.static.function-call" + ], + "settings": { + "foreground": "#689d6a" + } + }, + { + "scope": "brace", + "settings": { + "foreground": "#504945" + } + }, + { + "name": "variables", + "scope": [ + "meta.parameter.type.variable", + "variable.parameter", + "variable.name", + "variable.other", + "variable", + "string.constant.other.placeholder" + ], + "settings": { + "foreground": "#076678" + } + }, + { + "scope": "prototype", + "settings": { + "foreground": "#8f3f71" + } + }, + { + "scope": ["punctuation"], + "settings": { + "foreground": "#7c6f64" + } + }, + { + "scope": "punctuation.quoted", + "settings": { + "foreground": "#3c3836" + } + }, + { + "scope": "punctuation.quasi", + "settings": { + "foreground": "#9d0006" + } + }, + { + "name": "URL", + "scope": ["*url*", "*link*", "*uri*"], + "settings": { + "fontStyle": "underline" + } + }, + + { + "name": "Python function", + "scope": ["meta.function.python", "entity.name.function.python"], + "settings": { + "foreground": "#427b58" + } + }, + { + "name": "Python Function and Class definition keywords", + "scope": [ + "storage.type.function.python", + "storage.modifier.declaration", + "storage.type.class.python", + "storage.type.string.python" + ], + "settings": { + "foreground": "#9d0006" + } + }, + { + "name": "Async keyword", + "scope": ["storage.type.function.async.python"], + "settings": { + "foreground": "#9d0006" + } + }, + { + "name": "Python Function Call", + "scope": "meta.function-call.generic", + "settings": { + "foreground": "#076678" + } + }, + { + "name": "Python Function Arguments", + "scope": "meta.function-call.arguments", + "settings": { + "foreground": "#504945" + } + }, + { + "name": "Python Function decorator", + "scope": "entity.name.function.decorator", + "settings": { + "foreground": "#b57614", + "fontStyle": "bold" + } + }, + { + "name": "Python ALL CAPS", + "scope": "constant.other.caps", + "settings": { + "fontStyle": "bold" + } + }, + + { + "scope": "keyword.operator.logical", + "settings": { + "foreground": "#9d0006" + } + }, + { + "scope": "punctuation.definition.logical-expression", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": ["string.interpolated.dollar.shell", "string.interpolated.backtick.shell"], + "settings": { + "foreground": "#427b58" + } + }, + + { + "scope": "keyword.control.directive", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "support.function.C99", + "settings": { + "foreground": "#b57614" + } + }, + + { + "name": "C# functions & namespace", + "scope": [ + "meta.function.cs", + "entity.name.function.cs", + "entity.name.type.namespace.cs" + ], + "settings": { + "foreground": "#79740e" + } + }, + { + "name": "C# Variables", + "scope": [ + "keyword.other.using.cs", + "entity.name.variable.field.cs", + "entity.name.variable.local.cs", + "variable.other.readwrite.cs" + ], + "settings": { + "foreground": "#427b58" + } + }, + { + "name": "C# This", + "scope": ["keyword.other.this.cs", "keyword.other.base.cs"], + "settings": { + "foreground": "#8f3f71" + } + }, + + { + "scope": "meta.scope.prerequisites", + "settings": { + "foreground": "#b57614" + } + }, + { + "scope": "entity.name.function.target", + "settings": { + "foreground": "#79740e", + "fontStyle": "bold" + } + }, + + { + "name": "coloring of the Java import and package identifiers", + "scope": ["storage.modifier.import.java", "storage.modifier.package.java"], + "settings": { + "foreground": "#665c54" + } + }, + { + "scope": ["keyword.other.import.java", "keyword.other.package.java"], + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "storage.type.java", + "settings": { + "foreground": "#b57614" + } + }, + { + "scope": "storage.type.annotation", + "settings": { + "foreground": "#076678", + "fontStyle": "bold" + } + }, + { + "scope": "keyword.other.documentation.javadoc", + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": "comment.block.javadoc variable.parameter.java", + "settings": { + "foreground": "#79740e", + "fontStyle": "bold" + } + }, + { + "scope": [ + "source.java variable.other.object", + "source.java variable.other.definition.java" + ], + "settings": { + "foreground": "#3c3836" + } + }, + + { + "name": "Lisp optional function parameters", + "scope": "meta.function-parameters.lisp", + "settings": { + "foreground": "#b57614" + } + }, + + { + "scope": "markup.underline", + "settings": { + "fontStyle": "underline" + } + }, + { + "scope": "string.other.link.title.markdown", + "settings": { + "foreground": "#928374", + "fontStyle": "underline" + } + }, + { + "scope": "markup.underline.link", + "settings": { + "foreground": "#8f3f71" + } + }, + { + "scope": "markup.bold", + "settings": { + "fontStyle": "bold", + "foreground": "#af3a03" + } + }, + { + "scope": "markup.heading", + "settings": { + "fontStyle": "bold", + "foreground": "#af3a03" + } + }, + { + "scope": "markup.italic", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "markup.inserted", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": "markup.deleted", + "settings": { + "foreground": "#d65d0e" + } + }, + { + "scope": "markup.changed", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "markup.punctuation.quote.beginning", + "settings": { + "foreground": "#98971a" + } + }, + { + "scope": "markup.punctuation.list.beginning", + "settings": { + "foreground": "#076678" + } + }, + { + "scope": ["markup.inline.raw", "markup.fenced_code.block"], + "settings": { + "foreground": "#427b58" + } + }, + + { + "scope": "string.quoted.double.json", + "settings": { + "foreground": "#076678" + } + }, + { + "name": "JSON Level 0", + "scope": ["source.json meta.structure.dictionary.json support.type.property-name.json"], + "settings": { + "foreground": "#79740e" + } + }, + { + "name": "JSON Level 1", + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#427b58" + } + }, + { + "name": "JSON Level 2", + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#8f3f71" + } + }, + { + "name": "JSON Level 3", + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#79740e" + } + }, + + { + "scope": "entity.other.attribute-name.css", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "source.css meta.selector", + "settings": { + "foreground": "#3c3836" + } + }, + { + "scope": "support.type.property-name.css", + "settings": { + "foreground": "#af3a03" + } + }, + { + "scope": "entity.other.attribute-name.class", + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": [ + "source.css support.function.transform", + "source.css support.function.timing-function", + "source.css support.function.misc" + ], + "settings": { + "foreground": "#9d0006" + } + }, + { + "name": "CSS property value", + "scope": [ + "support.property-value", + "constant.rgb-value", + "support.property-value.scss", + "constant.rgb-value.scss" + ], + "settings": { + "foreground": "#d65d0e" + } + }, + { + "scope": ["entity.name.tag.css"], + "settings": { + "fontStyle": "" + } + }, + + { + "scope": ["punctuation.definition.tag"], + "settings": { + "foreground": "#076678" + } + }, + { + "scope": ["text.html entity.name.tag", "text.html punctuation.tag"], + "settings": { + "foreground": "#427b58", + "fontStyle": "bold" + } + }, + + { + "scope": ["source.js variable.language"], + "settings": { + "foreground": "#af3a03" + } + }, + + { + "scope": ["source.ts variable.language"], + "settings": { + "foreground": "#af3a03" + } + }, + + { + "scope": ["source.go storage.type"], + "settings": { + "foreground": "#b57614" + } + }, + { + "scope": ["source.go entity.name.import"], + "settings": { + "foreground": "#79740e" + } + }, + { + "scope": ["source.go keyword.package", "source.go keyword.import"], + "settings": { + "foreground": "#427b58" + } + }, + { + "scope": ["source.go keyword.interface", "source.go keyword.struct"], + "settings": { + "foreground": "#076678" + } + }, + { + "scope": ["source.go entity.name.type"], + "settings": { + "foreground": "#3c3836" + } + }, + { + "scope": ["source.go entity.name.function"], + "settings": { + "foreground": "#8f3f71" + } + }, + + { + "scope": ["keyword.control.cucumber.table"], + "settings": { + "foreground": "#076678" + } + }, + + { + "name": "ReasonML String", + "scope": ["source.reason string.double", "source.reason string.regexp"], + "settings": { + "foreground": "#79740e" + } + }, + { + "name": "ReasonML equals sign", + "scope": ["source.reason keyword.control.less"], + "settings": { + "foreground": "#427b58" + } + }, + { + "name": "ReasonML variable", + "scope": ["source.reason entity.name.function"], + "settings": { + "foreground": "#076678" + } + }, + { + "name": "ReasonML property", + "scope": ["source.reason support.property-value", "source.reason entity.name.filename"], + "settings": { + "foreground": "#af3a03" + } + }, + + { + "name": "Powershell member", + "scope": ["source.powershell variable.other.member.powershell"], + "settings": { + "foreground": "#af3a03" + } + }, + { + "name": "Powershell function", + "scope": ["source.powershell support.function.powershell"], + "settings": { + "foreground": "#b57614" + } + }, + { + "name": "Powershell function attribute", + "scope": ["source.powershell support.function.attribute.powershell"], + "settings": { + "foreground": "#665c54" + } + }, + { + "name": "Powershell hashtable member", + "scope": [ + "source.powershell meta.hashtable.assignment.powershell variable.other.readwrite.powershell" + ], + "settings": { + "foreground": "#af3a03" + } + } + ], + "colors": { + "focusBorder": "#ebdbb2", + "foreground": "#3c3836", + "widget.shadow": "#f2e5bc30", + "selection.background": "#689d6a80", + "errorForeground": "#9d0006", + + "button.background": "#45858880", + "button.foreground": "#3c3836", + "button.hoverBackground": "#45858860", + + "dropdown.background": "#f2e5bc", + "dropdown.border": "#ebdbb2", + "dropdown.foreground": "#3c3836", + + "input.background": "#3c383605", + "input.border": "#ebdbb2", + "input.foreground": "#3c3836", + "input.placeholderForeground": "#3c383660", + "inputValidation.errorBorder": "#9d0006", + "inputValidation.errorBackground": "#cc241d80", + "inputValidation.infoBorder": "#076678", + "inputValidation.infoBackground": "#45858880", + "inputValidation.warningBorder": "#b57614", + "inputValidation.warningBackground": "#d7992180", + "inputOption.activeBorder": "#3c383660", + + "scrollbar.shadow": "#f2e5bc", + "scrollbarSlider.activeBackground": "#689d6a", + "scrollbarSlider.hoverBackground": "#bdae93", + "scrollbarSlider.background": "#d5c4a199", + + "badge.background": "#8f3f71", + "badge.foreground": "#f2e5bc", + + "progressBar.background": "#689d6a", + + "list.activeSelectionBackground": "#ebdbb280", + "list.activeSelectionForeground": "#af3a03", + "list.hoverBackground": "#ebdbb280", + "list.hoverForeground": "#504945", + "list.focusBackground": "#ebdbb2", + "list.focusForeground": "#3c3836", + "list.inactiveSelectionForeground": "#d65d0e", + "list.inactiveSelectionBackground": "#ebdbb280", + "list.dropBackground": "#ebdbb2", + "list.highlightForeground": "#689d6a", + + "sideBar.background": "#f2e5bc", + "sideBar.foreground": "#504945", + "sideBar.border": "#ebdbb2", + "sideBarTitle.foreground": "#3c3836", + "sideBarSectionHeader.background": "#f2e5bc00", + "sideBarSectionHeader.foreground": "#3c3836", + + "activityBar.background": "#f2e5bc", + "activityBar.foreground": "#3c3836", + "activityBar.border": "#ebdbb2", + "activityBarBadge.background": "#458588", + "activityBarBadge.foreground": "#ebdbb2", + + "editorGroup.border": "#ebdbb2", + "editorGroup.dropBackground": "#ebdbb260", + "editorGroupHeader.noTabsBackground": "#ebdbb2", + "editorGroupHeader.tabsBackground": "#f2e5bc", + "editorGroupHeader.tabsBorder": "#ebdbb2", + + "tab.border": "#f2e5bc00", + "tab.activeBackground": "#d5c4a1", + "tab.activeBorder": "#d65d0e", + "tab.activeForeground": "#3c3836", + "tab.inactiveForeground": "#7c6f64", + "tab.inactiveBackground": "#f2e5bc", + "tab.unfocusedActiveForeground": "#7c6f64", + "tab.unfocusedActiveBorder": "#f2e5bc00", + "tab.unfocusedInactiveForeground": "#928374", + + "editor.background": "#f2e5bc", + "editor.foreground": "#3c3836", + "editorLineNumber.foreground": "#bdae93", + "editorCursor.foreground": "#3c3836", + "editor.selectionBackground": "#689d6a40", + "editor.selectionHighlightBackground": "#b5761440", + "editor.hoverHighlightBackground": "#689d6a50", + "editorLink.activeForeground": "#3c3836", + "editor.findMatchBackground": "#07667870", + "editor.findMatchHighlightBackground": "#af3a0330", + "editor.findRangeHighlightBackground": "#07667870", + "editor.lineHighlightBackground": "#ebdbb260", + "editor.lineHighlightBorder": "#ebdbb200", + "editorWhitespace.foreground": "#7c6f6420", + "editorRuler.foreground": "#7c6f6440", + "editorCodeLens.foreground": "#7c6f6490", + "editorBracketMatch.border": "#f2e5bc00", + "editorBracketMatch.background": "#92837480", + "editorHoverWidget.background": "#f2e5bc", + "editorHoverWidget.border": "#ebdbb2", + "editorOverviewRuler.border": "#f2e5bc00", + "editorOverviewRuler.findMatchForeground": "#665c54", + "editorOverviewRuler.rangeHighlightForeground": "#665c54", + "editorOverviewRuler.selectionHighlightForeground": "#bdae93", + "editorOverviewRuler.wordHighlightForeground": "#bdae93", + "editorOverviewRuler.wordHighlightStrongForeground": "#bdae93", + "editorOverviewRuler.modifiedForeground": "#076678", + "editorOverviewRuler.addedForeground": "#076678", + "editorOverviewRuler.deletedForeground": "#076678", + "editorOverviewRuler.errorForeground": "#9d0006", + "editorOverviewRuler.warningForeground": "#d79921", + "editorOverviewRuler.infoForeground": "#8f3f71", + "editorGutter.background": "#f2e5bc00", + "editorGutter.modifiedBackground": "#076678", + "editorGutter.addedBackground": "#79740e", + "editorGutter.deletedBackground": "#9d0006", + "editorError.foreground": "#cc241d", + "editorWarning.foreground": "#d79921", + "editorInfo.foreground": "#458588", + + "editorBracketHighlight.foreground1": "#b16286", + "editorBracketHighlight.foreground2": "#458588", + "editorBracketHighlight.foreground3": "#689d6a", + "editorBracketHighlight.foreground4": "#98971a", + "editorBracketHighlight.foreground5": "#d79921", + "editorBracketHighlight.foreground6": "#d65d0e", + "editorBracketHighlight.unexpectedBracket.foreground": "#cc241d", + + "diffEditor.insertedTextBackground": "#79740e30", + "diffEditor.removedTextBackground": "#9d000630", + + "editorWidget.background": "#f2e5bc", + "editorWidget.border": "#ebdbb2", + "editorSuggestWidget.background": "#f2e5bc", + "editorSuggestWidget.foreground": "#3c3836", + "editorSuggestWidget.highlightForeground": "#689d6a", + "editorSuggestWidget.selectedBackground": "#ebdbb260", + "editorSuggestWidget.border": "#ebdbb2", + + "peekView.border": "#ebdbb2", + "peekViewEditor.background": "#ebdbb270", + "peekViewEditor.matchHighlightBackground": "#d5c4a1", + "peekViewEditorGutter.background": "#ebdbb270", + "peekViewResult.background": "#ebdbb270", + "peekViewResult.fileForeground": "#3c3836", + "peekViewResult.selectionBackground": "#45858820", + "peekViewResult.selectionForeground": "#3c3836", + "peekViewResult.lineForeground": "#3c3836", + "peekViewResult.matchHighlightBackground": "#d5c4a1", + "peekViewTitle.background": "#ebdbb270", + "peekViewTitleDescription.foreground": "#665c54", + "peekViewTitleLabel.foreground": "#3c3836", + + "merge.currentHeaderBackground": "#45858840", + "merge.currentContentBackground": "#45858820", + "merge.incomingHeaderBackground": "#689d6a40", + "merge.incomingContentBackground": "#689d6a20", + "merge.border": "#f2e5bc00", + "editorOverviewRuler.currentContentForeground": "#458588", + "editorOverviewRuler.incomingContentForeground": "#689d6a", + "editorOverviewRuler.commonContentForeground": "#928374", + + "panel.border": "#ebdbb2", + "panelTitle.activeForeground": "#3c3836", + + "statusBar.background": "#f2e5bc", + "statusBar.border": "#ebdbb2", + "statusBar.foreground": "#3c3836", + "statusBar.debuggingBackground": "#af3a03", + "statusBar.debuggingForeground": "#f2e5bc", + "statusBar.debuggingBorder": "#f2e5bc00", + "statusBar.noFolderBackground": "#f2e5bc", + "statusBar.noFolderBorder": "#f2e5bc00", + + "terminal.ansiBlack": "#ebdbb2", + "terminal.ansiBrightBlack": "#928374", + "terminal.ansiRed": "#cc241d", + "terminal.ansiBrightRed": "#9d0006", + "terminal.ansiGreen": "#98971a", + "terminal.ansiBrightGreen": "#79740e", + "terminal.ansiYellow": "#d79921", + "terminal.ansiBrightYellow": "#b57614", + "terminal.ansiBlue": "#458588", + "terminal.ansiBrightBlue": "#076678", + "terminal.ansiMagenta": "#b16286", + "terminal.ansiBrightMagenta": "#8f3f71", + "terminal.ansiCyan": "#689d6a", + "terminal.ansiBrightCyan": "#427b58", + "terminal.ansiWhite": "#7c6f64", + "terminal.ansiBrightWhite": "#3c3836", + "terminal.foreground": "#3c3836", + "terminal.background": "#f2e5bc", + + "titleBar.activeBackground": "#f2e5bc", + "titleBar.activeForeground": "#3c3836", + "titleBar.inactiveBackground": "#f2e5bc", + + "gitDecoration.modifiedResourceForeground": "#d79921", + "gitDecoration.deletedResourceForeground": "#cc241d", + "gitDecoration.untrackedResourceForeground": "#98971a", + "gitDecoration.ignoredResourceForeground": "#a89984", + "gitDecoration.conflictingResourceForeground": "#b16286", + + "menu.border": "#ebdbb2", + "menu.separatorBackground": "#ebdbb2", + + "notebook.cellEditorBackground": "#ebdbb2", + "notebook.focusedCellBorder": "#665c54", + "notebook.cellBorderColor": "#a89984", + "notebook.focusedEditorBorder": "#a89984", + + "extensionButton.prominentBackground": "#79740e80", + "extensionButton.prominentHoverBackground": "#79740e30", + + "textLink.foreground": "#076678", + "textLink.activeForeground": "#458588", + "debugToolBar.background": "#f2e5bc" + }, + "semanticTokenColors": { + "constant.builtin": "#8f3f71", + "property": "#076678", + "property:python": "#3c3836", + "parameter": "#076678", + "variable": "#3c3836", + "function": "#427b58", + "function.builtin": "#af3a03", + "method": "#427b58" + } +} From dbdb5f65190a3a2fd787c22a59ad5d77c8ef6ca3 Mon Sep 17 00:00:00 2001 From: Julia Date: Mon, 30 Oct 2023 13:31:21 -0400 Subject: [PATCH 61/76] Actually find downloaded binary in Elixir cached binary method --- crates/zed/src/languages/elixir.rs | 32 +++++++++++++----------------- 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/crates/zed/src/languages/elixir.rs b/crates/zed/src/languages/elixir.rs index df438d89ee..e2c79570bc 100644 --- a/crates/zed/src/languages/elixir.rs +++ b/crates/zed/src/languages/elixir.rs @@ -140,8 +140,8 @@ impl LspAdapter for ElixirLspAdapter { ) -> Result { let version = version.downcast::().unwrap(); let zip_path = container_dir.join(format!("elixir-ls_{}.zip", version.name)); - let version_dir = container_dir.join(format!("elixir-ls_{}", version.name)); - let binary_path = version_dir.join("language_server.sh"); + let folder_path = container_dir.join("elixir-ls"); + let binary_path = folder_path.join("language_server.sh"); if fs::metadata(&binary_path).await.is_err() { let mut response = delegate @@ -160,13 +160,13 @@ impl LspAdapter for ElixirLspAdapter { } futures::io::copy(response.body_mut(), &mut file).await?; - fs::create_dir_all(&version_dir) + fs::create_dir_all(&folder_path) .await - .with_context(|| format!("failed to create directory {}", version_dir.display()))?; + .with_context(|| format!("failed to create directory {}", folder_path.display()))?; let unzip_status = smol::process::Command::new("unzip") .arg(&zip_path) .arg("-d") - .arg(&version_dir) + .arg(&folder_path) .output() .await? .status; @@ -174,7 +174,7 @@ impl LspAdapter for ElixirLspAdapter { Err(anyhow!("failed to unzip elixir-ls archive"))?; } - remove_matching(&container_dir, |entry| entry != version_dir).await; + remove_matching(&container_dir, |entry| entry != folder_path).await; } Ok(LanguageServerBinary { @@ -285,20 +285,16 @@ impl LspAdapter for ElixirLspAdapter { async fn get_cached_server_binary_elixir_ls( container_dir: PathBuf, ) -> Option { - (|| async move { - let mut last = None; - let mut entries = fs::read_dir(&container_dir).await?; - while let Some(entry) = entries.next().await { - last = Some(entry?.path()); - } - last.map(|path| LanguageServerBinary { - path, + let server_path = container_dir.join("elixir-ls/language_server.sh"); + if server_path.exists() { + Some(LanguageServerBinary { + path: server_path, arguments: vec![], }) - .ok_or_else(|| anyhow!("no cached binary")) - })() - .await - .log_err() + } else { + log::error!("missing executable in directory {:?}", server_path); + None + } } pub struct NextLspAdapter; From 66b967532ff730ef778d9bc0a25fa82b465fa3f9 Mon Sep 17 00:00:00 2001 From: Julia Date: Mon, 6 Nov 2023 11:31:31 -0500 Subject: [PATCH 62/76] zed2: Actually find downloaded binary in Elixir cached binary method --- crates/zed2/src/languages/elixir.rs | 32 +++++++++++++---------------- 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/crates/zed2/src/languages/elixir.rs b/crates/zed2/src/languages/elixir.rs index bd38377c99..90352c78b4 100644 --- a/crates/zed2/src/languages/elixir.rs +++ b/crates/zed2/src/languages/elixir.rs @@ -140,8 +140,8 @@ impl LspAdapter for ElixirLspAdapter { ) -> Result { let version = version.downcast::().unwrap(); let zip_path = container_dir.join(format!("elixir-ls_{}.zip", version.name)); - let version_dir = container_dir.join(format!("elixir-ls_{}", version.name)); - let binary_path = version_dir.join("language_server.sh"); + let folder_path = container_dir.join("elixir-ls"); + let binary_path = folder_path.join("language_server.sh"); if fs::metadata(&binary_path).await.is_err() { let mut response = delegate @@ -160,13 +160,13 @@ impl LspAdapter for ElixirLspAdapter { } futures::io::copy(response.body_mut(), &mut file).await?; - fs::create_dir_all(&version_dir) + fs::create_dir_all(&folder_path) .await - .with_context(|| format!("failed to create directory {}", version_dir.display()))?; + .with_context(|| format!("failed to create directory {}", folder_path.display()))?; let unzip_status = smol::process::Command::new("unzip") .arg(&zip_path) .arg("-d") - .arg(&version_dir) + .arg(&folder_path) .output() .await? .status; @@ -174,7 +174,7 @@ impl LspAdapter for ElixirLspAdapter { Err(anyhow!("failed to unzip elixir-ls archive"))?; } - remove_matching(&container_dir, |entry| entry != version_dir).await; + remove_matching(&container_dir, |entry| entry != folder_path).await; } Ok(LanguageServerBinary { @@ -285,20 +285,16 @@ impl LspAdapter for ElixirLspAdapter { async fn get_cached_server_binary_elixir_ls( container_dir: PathBuf, ) -> Option { - (|| async move { - let mut last = None; - let mut entries = fs::read_dir(&container_dir).await?; - while let Some(entry) = entries.next().await { - last = Some(entry?.path()); - } - last.map(|path| LanguageServerBinary { - path, + let server_path = container_dir.join("elixir-ls/language_server.sh"); + if server_path.exists() { + Some(LanguageServerBinary { + path: server_path, arguments: vec![], }) - .ok_or_else(|| anyhow!("no cached binary")) - })() - .await - .log_err() + } else { + log::error!("missing executable in directory {:?}", server_path); + None + } } pub struct NextLspAdapter; From f730982e7b18ad73f9b7f33d9bcfcecadebef3e8 Mon Sep 17 00:00:00 2001 From: Conrad Irwin Date: Mon, 6 Nov 2023 09:38:09 -0700 Subject: [PATCH 63/76] Use notarytool to bundle --- script/bundle | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/script/bundle b/script/bundle index 69a2f165dc..c3c5bd76ab 100755 --- a/script/bundle +++ b/script/bundle @@ -228,8 +228,7 @@ else if [[ -n $MACOS_CERTIFICATE && -n $MACOS_CERTIFICATE_PASSWORD && -n $APPLE_NOTARIZATION_USERNAME && -n $APPLE_NOTARIZATION_PASSWORD ]]; then echo "Notarizing DMG with Apple" - npm install -g notarize-cli - npx notarize-cli --file "${dmg_file_path}" --bundle-id dev.zed.Zed --username "$APPLE_NOTARIZATION_USERNAME" --password "$APPLE_NOTARIZATION_PASSWORD" + "$(xcode-select -p)/usr/bin/notarytool" submit --wait --apple-id "$APPLE_NOTARIZATION_USERNAME" --password "$APPLE_NOTARIZATION_PASSWORD" --team-id MQ55VZLNZQ "${dmg_file_path}" fi if [ "$open_result" = true ]; then From bf80c1da5bb7405008f73596a270c539d0e41a94 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Mon, 6 Nov 2023 17:53:27 +0100 Subject: [PATCH 64/76] Rename fields in `ThemeColors` (#3242) This PR applies a number of field renames in the `ThemeColors` struct from the `import-theme` branch. This will help prevent this branch from diverging too far from `main`. Release Notes: - N/A --------- Co-authored-by: Nate Butler Co-authored-by: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com> --- crates/theme2/src/colors.rs | 41 +++++++--- crates/theme2/src/default_colors.rs | 82 +++++++++++++------ crates/theme2/src/theme2.rs | 2 +- crates/theme2/src/themes/.gitkeep | 0 crates/ui2/src/components/button.rs | 4 +- crates/ui2/src/components/checkbox.rs | 5 +- crates/ui2/src/components/context_menu.rs | 2 +- crates/ui2/src/components/icon_button.rs | 4 +- crates/ui2/src/components/indicator.rs | 2 +- crates/ui2/src/components/input.rs | 4 +- crates/ui2/src/components/keybinding.rs | 2 +- crates/ui2/src/components/list.rs | 4 +- .../ui2/src/components/notification_toast.rs | 2 +- crates/ui2/src/components/palette.rs | 9 +- crates/ui2/src/components/panel.rs | 2 +- crates/ui2/src/components/tab.rs | 4 +- crates/ui2/src/components/toast.rs | 2 +- crates/ui2/src/to_extract/buffer.rs | 2 +- crates/ui2/src/to_extract/buffer_search.rs | 21 +++-- crates/ui2/src/to_extract/collab_panel.rs | 2 +- crates/ui2/src/to_extract/multi_buffer.rs | 2 +- .../ui2/src/to_extract/notifications_panel.rs | 4 +- crates/ui2/src/to_extract/panes.rs | 2 +- crates/ui2/src/to_extract/project_panel.rs | 2 +- crates/ui2/src/to_extract/status_bar.rs | 2 +- crates/ui2/src/to_extract/tab_bar.rs | 2 +- crates/ui2/src/to_extract/terminal.rs | 2 +- crates/ui2/src/to_extract/toolbar.rs | 2 +- crates/ui2/src/to_extract/traffic_lights.rs | 2 +- crates/workspace2/src/pane.rs | 6 +- crates/workspace2/src/status_bar.rs | 2 +- crates/workspace2/src/workspace2.rs | 2 +- 32 files changed, 144 insertions(+), 82 deletions(-) create mode 100644 crates/theme2/src/themes/.gitkeep diff --git a/crates/theme2/src/colors.rs b/crates/theme2/src/colors.rs index b9f8804205..1a1fd2e99e 100644 --- a/crates/theme2/src/colors.rs +++ b/crates/theme2/src/colors.rs @@ -57,17 +57,17 @@ pub struct ThemeColors { pub border_selected: Hsla, pub border_transparent: Hsla, pub border_disabled: Hsla, - pub elevated_surface: Hsla, - pub surface: Hsla, + pub elevated_surface_background: Hsla, + pub surface_background: Hsla, pub background: Hsla, - pub element: Hsla, + pub element_background: Hsla, pub element_hover: Hsla, pub element_active: Hsla, pub element_selected: Hsla, pub element_disabled: Hsla, pub element_placeholder: Hsla, pub element_drop_target: Hsla, - pub ghost_element: Hsla, + pub ghost_element_background: Hsla, pub ghost_element_hover: Hsla, pub ghost_element_active: Hsla, pub ghost_element_selected: Hsla, @@ -82,15 +82,32 @@ pub struct ThemeColors { pub icon_disabled: Hsla, pub icon_placeholder: Hsla, pub icon_accent: Hsla, - pub status_bar: Hsla, - pub title_bar: Hsla, - pub toolbar: Hsla, - pub tab_bar: Hsla, - pub tab_inactive: Hsla, - pub tab_active: Hsla, - pub editor: Hsla, - pub editor_subheader: Hsla, + pub status_bar_background: Hsla, + pub title_bar_background: Hsla, + pub toolbar_background: Hsla, + pub tab_bar_background: Hsla, + pub tab_inactive_background: Hsla, + pub tab_active_background: Hsla, + pub editor_background: Hsla, + pub editor_subheader_background: Hsla, pub editor_active_line: Hsla, + pub terminal_background: Hsla, + pub terminal_ansi_bright_black: Hsla, + pub terminal_ansi_bright_red: Hsla, + pub terminal_ansi_bright_green: Hsla, + pub terminal_ansi_bright_yellow: Hsla, + pub terminal_ansi_bright_blue: Hsla, + pub terminal_ansi_bright_magenta: Hsla, + pub terminal_ansi_bright_cyan: Hsla, + pub terminal_ansi_bright_white: Hsla, + pub terminal_ansi_black: Hsla, + pub terminal_ansi_red: Hsla, + pub terminal_ansi_green: Hsla, + pub terminal_ansi_yellow: Hsla, + pub terminal_ansi_blue: Hsla, + pub terminal_ansi_magenta: Hsla, + pub terminal_ansi_cyan: Hsla, + pub terminal_ansi_white: Hsla, } #[derive(Refineable, Clone)] diff --git a/crates/theme2/src/default_colors.rs b/crates/theme2/src/default_colors.rs index 4ecae43b15..53e34acf16 100644 --- a/crates/theme2/src/default_colors.rs +++ b/crates/theme2/src/default_colors.rs @@ -208,17 +208,17 @@ impl ThemeColors { border_disabled: neutral().light().step_3(), border_selected: blue().light().step_5(), border_transparent: system.transparent, - elevated_surface: neutral().light().step_2(), - surface: neutral().light().step_2(), + elevated_surface_background: neutral().light().step_2(), + surface_background: neutral().light().step_2(), background: neutral().light().step_1(), - element: neutral().light().step_3(), + element_background: neutral().light().step_3(), element_hover: neutral().light().step_4(), element_active: neutral().light().step_5(), element_selected: neutral().light().step_5(), element_disabled: neutral().light_alpha().step_3(), element_placeholder: neutral().light().step_11(), element_drop_target: blue().light_alpha().step_2(), - ghost_element: system.transparent, + ghost_element_background: system.transparent, ghost_element_hover: neutral().light().step_4(), ghost_element_active: neutral().light().step_5(), ghost_element_selected: neutral().light().step_5(), @@ -233,15 +233,32 @@ impl ThemeColors { icon_disabled: neutral().light().step_9(), icon_placeholder: neutral().light().step_10(), icon_accent: blue().light().step_11(), - status_bar: neutral().light().step_2(), - title_bar: neutral().light().step_2(), - toolbar: neutral().light().step_1(), - tab_bar: neutral().light().step_2(), - tab_active: neutral().light().step_1(), - tab_inactive: neutral().light().step_2(), - editor: neutral().light().step_1(), - editor_subheader: neutral().light().step_2(), + status_bar_background: neutral().light().step_2(), + title_bar_background: neutral().light().step_2(), + toolbar_background: neutral().light().step_1(), + tab_bar_background: neutral().light().step_2(), + tab_active_background: neutral().light().step_1(), + tab_inactive_background: neutral().light().step_2(), + editor_background: neutral().light().step_1(), + editor_subheader_background: neutral().light().step_2(), editor_active_line: neutral().light_alpha().step_3(), + terminal_background: neutral().light().step_1(), + terminal_ansi_black: black().light().step_12(), + terminal_ansi_red: red().light().step_11(), + terminal_ansi_green: green().light().step_11(), + terminal_ansi_yellow: yellow().light().step_11(), + terminal_ansi_blue: blue().light().step_11(), + terminal_ansi_magenta: violet().light().step_11(), + terminal_ansi_cyan: cyan().light().step_11(), + terminal_ansi_white: neutral().light().step_12(), + terminal_ansi_bright_black: black().light().step_11(), + terminal_ansi_bright_red: red().light().step_10(), + terminal_ansi_bright_green: green().light().step_10(), + terminal_ansi_bright_yellow: yellow().light().step_10(), + terminal_ansi_bright_blue: blue().light().step_10(), + terminal_ansi_bright_magenta: violet().light().step_10(), + terminal_ansi_bright_cyan: cyan().light().step_10(), + terminal_ansi_bright_white: neutral().light().step_11(), } } @@ -255,17 +272,17 @@ impl ThemeColors { border_disabled: neutral().dark().step_3(), border_selected: blue().dark().step_5(), border_transparent: system.transparent, - elevated_surface: neutral().dark().step_2(), - surface: neutral().dark().step_2(), + elevated_surface_background: neutral().dark().step_2(), + surface_background: neutral().dark().step_2(), background: neutral().dark().step_1(), - element: neutral().dark().step_3(), + element_background: neutral().dark().step_3(), element_hover: neutral().dark().step_4(), element_active: neutral().dark().step_5(), element_selected: neutral().dark().step_5(), element_disabled: neutral().dark_alpha().step_3(), element_placeholder: neutral().dark().step_11(), element_drop_target: blue().dark_alpha().step_2(), - ghost_element: system.transparent, + ghost_element_background: system.transparent, ghost_element_hover: neutral().dark().step_4(), ghost_element_active: neutral().dark().step_5(), ghost_element_selected: neutral().dark().step_5(), @@ -280,15 +297,32 @@ impl ThemeColors { icon_disabled: neutral().dark().step_9(), icon_placeholder: neutral().dark().step_10(), icon_accent: blue().dark().step_11(), - status_bar: neutral().dark().step_2(), - title_bar: neutral().dark().step_2(), - toolbar: neutral().dark().step_1(), - tab_bar: neutral().dark().step_2(), - tab_active: neutral().dark().step_1(), - tab_inactive: neutral().dark().step_2(), - editor: neutral().dark().step_1(), - editor_subheader: neutral().dark().step_2(), + status_bar_background: neutral().dark().step_2(), + title_bar_background: neutral().dark().step_2(), + toolbar_background: neutral().dark().step_1(), + tab_bar_background: neutral().dark().step_2(), + tab_active_background: neutral().dark().step_1(), + tab_inactive_background: neutral().dark().step_2(), + editor_background: neutral().dark().step_1(), + editor_subheader_background: neutral().dark().step_2(), editor_active_line: neutral().dark_alpha().step_3(), + terminal_background: neutral().dark().step_1(), + terminal_ansi_black: black().dark().step_12(), + terminal_ansi_red: red().dark().step_11(), + terminal_ansi_green: green().dark().step_11(), + terminal_ansi_yellow: yellow().dark().step_11(), + terminal_ansi_blue: blue().dark().step_11(), + terminal_ansi_magenta: violet().dark().step_11(), + terminal_ansi_cyan: cyan().dark().step_11(), + terminal_ansi_white: neutral().dark().step_12(), + terminal_ansi_bright_black: black().dark().step_11(), + terminal_ansi_bright_red: red().dark().step_10(), + terminal_ansi_bright_green: green().dark().step_10(), + terminal_ansi_bright_yellow: yellow().dark().step_10(), + terminal_ansi_bright_blue: blue().dark().step_10(), + terminal_ansi_bright_magenta: violet().dark().step_10(), + terminal_ansi_bright_cyan: cyan().dark().step_10(), + terminal_ansi_bright_white: neutral().dark().step_11(), } } } diff --git a/crates/theme2/src/theme2.rs b/crates/theme2/src/theme2.rs index faf252e2e5..b8e22f8319 100644 --- a/crates/theme2/src/theme2.rs +++ b/crates/theme2/src/theme2.rs @@ -17,7 +17,7 @@ pub use syntax::*; use gpui::{AppContext, Hsla, SharedString}; -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, PartialEq, Clone, Copy)] pub enum Appearance { Light, Dark, diff --git a/crates/theme2/src/themes/.gitkeep b/crates/theme2/src/themes/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/crates/ui2/src/components/button.rs b/crates/ui2/src/components/button.rs index 381db20a83..c13460aadd 100644 --- a/crates/ui2/src/components/button.rs +++ b/crates/ui2/src/components/button.rs @@ -41,8 +41,8 @@ pub enum ButtonVariant { impl ButtonVariant { pub fn bg_color(&self, cx: &mut WindowContext) -> Hsla { match self { - ButtonVariant::Ghost => cx.theme().colors().ghost_element, - ButtonVariant::Filled => cx.theme().colors().element, + ButtonVariant::Ghost => cx.theme().colors().ghost_element_background, + ButtonVariant::Filled => cx.theme().colors().element_background, } } diff --git a/crates/ui2/src/components/checkbox.rs b/crates/ui2/src/components/checkbox.rs index 3add6cebac..4b6a6240bb 100644 --- a/crates/ui2/src/components/checkbox.rs +++ b/crates/ui2/src/components/checkbox.rs @@ -120,7 +120,10 @@ impl Checkbox { cx.theme().colors().element_selected, cx.theme().colors().border, ), - (false, false) => (cx.theme().colors().element, cx.theme().colors().border), + (false, false) => ( + cx.theme().colors().element_background, + cx.theme().colors().border, + ), }; div() diff --git a/crates/ui2/src/components/context_menu.rs b/crates/ui2/src/components/context_menu.rs index 4f265a376d..87be445c19 100644 --- a/crates/ui2/src/components/context_menu.rs +++ b/crates/ui2/src/components/context_menu.rs @@ -46,7 +46,7 @@ impl ContextMenu { fn render(self, _view: &mut V, cx: &mut ViewContext) -> impl Component { v_stack() .flex() - .bg(cx.theme().colors().elevated_surface) + .bg(cx.theme().colors().elevated_surface_background) .border() .border_color(cx.theme().colors().border) .child(List::new( diff --git a/crates/ui2/src/components/icon_button.rs b/crates/ui2/src/components/icon_button.rs index 101c845a76..8fe1a1fa9b 100644 --- a/crates/ui2/src/components/icon_button.rs +++ b/crates/ui2/src/components/icon_button.rs @@ -73,12 +73,12 @@ impl IconButton { let (bg_color, bg_hover_color, bg_active_color) = match self.variant { ButtonVariant::Filled => ( - cx.theme().colors().element, + cx.theme().colors().element_background, cx.theme().colors().element_hover, cx.theme().colors().element_active, ), ButtonVariant::Ghost => ( - cx.theme().colors().ghost_element, + cx.theme().colors().ghost_element_background, cx.theme().colors().ghost_element_hover, cx.theme().colors().ghost_element_active, ), diff --git a/crates/ui2/src/components/indicator.rs b/crates/ui2/src/components/indicator.rs index 1f6e00e621..94398ab7f6 100644 --- a/crates/ui2/src/components/indicator.rs +++ b/crates/ui2/src/components/indicator.rs @@ -14,7 +14,7 @@ impl UnreadIndicator { div() .rounded_full() .border_2() - .border_color(cx.theme().colors().surface) + .border_color(cx.theme().colors().surface_background) .w(px(9.0)) .h(px(9.0)) .z_index(2) diff --git a/crates/ui2/src/components/input.rs b/crates/ui2/src/components/input.rs index 2884470ce2..f288f3ca56 100644 --- a/crates/ui2/src/components/input.rs +++ b/crates/ui2/src/components/input.rs @@ -59,12 +59,12 @@ impl Input { fn render(self, _view: &mut V, cx: &mut ViewContext) -> impl Component { let (input_bg, input_hover_bg, input_active_bg) = match self.variant { InputVariant::Ghost => ( - cx.theme().colors().ghost_element, + cx.theme().colors().ghost_element_background, cx.theme().colors().ghost_element_hover, cx.theme().colors().ghost_element_active, ), InputVariant::Filled => ( - cx.theme().colors().element, + cx.theme().colors().element_background, cx.theme().colors().element_hover, cx.theme().colors().element_active, ), diff --git a/crates/ui2/src/components/keybinding.rs b/crates/ui2/src/components/keybinding.rs index 88cabbdc88..8b8fba8c08 100644 --- a/crates/ui2/src/components/keybinding.rs +++ b/crates/ui2/src/components/keybinding.rs @@ -66,7 +66,7 @@ impl Key { .rounded_md() .text_sm() .text_color(cx.theme().colors().text) - .bg(cx.theme().colors().element) + .bg(cx.theme().colors().element_background) .child(self.key.clone()) } } diff --git a/crates/ui2/src/components/list.rs b/crates/ui2/src/components/list.rs index 543432a893..b30beacd98 100644 --- a/crates/ui2/src/components/list.rs +++ b/crates/ui2/src/components/list.rs @@ -79,7 +79,7 @@ impl ListHeader { h_stack() .w_full() - .bg(cx.theme().colors().surface) + .bg(cx.theme().colors().surface_background) // TODO: Add focus state // .when(self.state == InteractionState::Focused, |this| { // this.border() @@ -307,7 +307,7 @@ impl ListEntry { div() .relative() .group("") - .bg(cx.theme().colors().surface) + .bg(cx.theme().colors().surface_background) // TODO: Add focus state .child( sized_item diff --git a/crates/ui2/src/components/notification_toast.rs b/crates/ui2/src/components/notification_toast.rs index 59078c98f4..e8739b925c 100644 --- a/crates/ui2/src/components/notification_toast.rs +++ b/crates/ui2/src/components/notification_toast.rs @@ -34,7 +34,7 @@ impl NotificationToast { .px_1p5() .rounded_lg() .shadow_md() - .bg(cx.theme().colors().elevated_surface) + .bg(cx.theme().colors().elevated_surface_background) .child(div().size_full().child(self.label.clone())) } } diff --git a/crates/ui2/src/components/palette.rs b/crates/ui2/src/components/palette.rs index a1f3eb7e1c..269b39d86d 100644 --- a/crates/ui2/src/components/palette.rs +++ b/crates/ui2/src/components/palette.rs @@ -47,7 +47,7 @@ impl Palette { .id(self.id.clone()) .w_96() .rounded_lg() - .bg(cx.theme().colors().elevated_surface) + .bg(cx.theme().colors().elevated_surface_background) .border() .border_color(cx.theme().colors().border) .child( @@ -56,7 +56,12 @@ impl Palette { .child(v_stack().py_0p5().px_1().child(div().px_2().py_0p5().child( Label::new(self.input_placeholder.clone()).color(LabelColor::Placeholder), ))) - .child(div().h_px().w_full().bg(cx.theme().colors().element)) + .child( + div() + .h_px() + .w_full() + .bg(cx.theme().colors().element_background), + ) .child( v_stack() .id("items") diff --git a/crates/ui2/src/components/panel.rs b/crates/ui2/src/components/panel.rs index 5d941eb50e..ba88abb337 100644 --- a/crates/ui2/src/components/panel.rs +++ b/crates/ui2/src/components/panel.rs @@ -107,7 +107,7 @@ impl Panel { PanelSide::Right => this.border_l(), PanelSide::Bottom => this.border_b().w_full().h(current_size), }) - .bg(cx.theme().colors().surface) + .bg(cx.theme().colors().surface_background) .border_color(cx.theme().colors().border) .children(self.children) } diff --git a/crates/ui2/src/components/tab.rs b/crates/ui2/src/components/tab.rs index e8b0ee3be5..47de0541f1 100644 --- a/crates/ui2/src/components/tab.rs +++ b/crates/ui2/src/components/tab.rs @@ -109,12 +109,12 @@ impl Tab { let (tab_bg, tab_hover_bg, tab_active_bg) = match self.current { false => ( - cx.theme().colors().tab_inactive, + cx.theme().colors().tab_inactive_background, cx.theme().colors().ghost_element_hover, cx.theme().colors().ghost_element_active, ), true => ( - cx.theme().colors().tab_active, + cx.theme().colors().tab_active_background, cx.theme().colors().element_hover, cx.theme().colors().element_active, ), diff --git a/crates/ui2/src/components/toast.rs b/crates/ui2/src/components/toast.rs index 3b81ac42b4..4ab6625dba 100644 --- a/crates/ui2/src/components/toast.rs +++ b/crates/ui2/src/components/toast.rs @@ -54,7 +54,7 @@ impl Toast { .rounded_lg() .shadow_md() .overflow_hidden() - .bg(cx.theme().colors().elevated_surface) + .bg(cx.theme().colors().elevated_surface_background) .children(self.children) } } diff --git a/crates/ui2/src/to_extract/buffer.rs b/crates/ui2/src/to_extract/buffer.rs index 2b3db676ce..e12beff2fc 100644 --- a/crates/ui2/src/to_extract/buffer.rs +++ b/crates/ui2/src/to_extract/buffer.rs @@ -220,7 +220,7 @@ impl Buffer { .flex_1() .w_full() .h_full() - .bg(cx.theme().colors().editor) + .bg(cx.theme().colors().editor_background) .children(rows) } } diff --git a/crates/ui2/src/to_extract/buffer_search.rs b/crates/ui2/src/to_extract/buffer_search.rs index 5d7de1b408..02f689ca3e 100644 --- a/crates/ui2/src/to_extract/buffer_search.rs +++ b/crates/ui2/src/to_extract/buffer_search.rs @@ -30,14 +30,17 @@ impl Render for BufferSearch { type Element = Div; fn render(&mut self, cx: &mut ViewContext) -> Div { - h_stack().bg(cx.theme().colors().toolbar).p_2().child( - h_stack().child(Input::new("Search")).child( - IconButton::::new("replace", Icon::Replace) - .when(self.is_replace_open, |this| this.color(IconColor::Accent)) - .on_click(|buffer_search, cx| { - buffer_search.toggle_replace(cx); - }), - ), - ) + h_stack() + .bg(cx.theme().colors().toolbar_background) + .p_2() + .child( + h_stack().child(Input::new("Search")).child( + IconButton::::new("replace", Icon::Replace) + .when(self.is_replace_open, |this| this.color(IconColor::Accent)) + .on_click(|buffer_search, cx| { + buffer_search.toggle_replace(cx); + }), + ), + ) } } diff --git a/crates/ui2/src/to_extract/collab_panel.rs b/crates/ui2/src/to_extract/collab_panel.rs index 9019456dd1..9d9dc861e2 100644 --- a/crates/ui2/src/to_extract/collab_panel.rs +++ b/crates/ui2/src/to_extract/collab_panel.rs @@ -17,7 +17,7 @@ impl CollabPanel { v_stack() .id(self.id.clone()) .h_full() - .bg(cx.theme().colors().surface) + .bg(cx.theme().colors().surface_background) .child( v_stack() .id("crdb") diff --git a/crates/ui2/src/to_extract/multi_buffer.rs b/crates/ui2/src/to_extract/multi_buffer.rs index ea130f20bd..1334703015 100644 --- a/crates/ui2/src/to_extract/multi_buffer.rs +++ b/crates/ui2/src/to_extract/multi_buffer.rs @@ -24,7 +24,7 @@ impl MultiBuffer { .items_center() .justify_between() .p_4() - .bg(cx.theme().colors().editor_subheader) + .bg(cx.theme().colors().editor_subheader_background) .child(Label::new("main.rs")) .child(IconButton::new("arrow_up_right", Icon::ArrowUpRight)), ) diff --git a/crates/ui2/src/to_extract/notifications_panel.rs b/crates/ui2/src/to_extract/notifications_panel.rs index 789aa2b0aa..84794b71b2 100644 --- a/crates/ui2/src/to_extract/notifications_panel.rs +++ b/crates/ui2/src/to_extract/notifications_panel.rs @@ -22,7 +22,7 @@ impl NotificationsPanel { .flex() .flex_col() .size_full() - .bg(cx.theme().colors().surface) + .bg(cx.theme().colors().surface_background) .child( ListHeader::new("Notifications").meta(Some(ListHeaderMeta::Tools(vec![ Icon::AtSign, @@ -43,7 +43,7 @@ impl NotificationsPanel { .p_1() // TODO: Add cursor style // .cursor(Cursor::IBeam) - .bg(cx.theme().colors().element) + .bg(cx.theme().colors().element_background) .border() .border_color(cx.theme().colors().border_variant) .child( diff --git a/crates/ui2/src/to_extract/panes.rs b/crates/ui2/src/to_extract/panes.rs index bf0f27d43f..a1e040b0ca 100644 --- a/crates/ui2/src/to_extract/panes.rs +++ b/crates/ui2/src/to_extract/panes.rs @@ -113,7 +113,7 @@ impl PaneGroup { .gap_px() .w_full() .h_full() - .bg(cx.theme().colors().editor) + .bg(cx.theme().colors().editor_background) .children(self.groups.into_iter().map(|group| group.render(view, cx))); if self.split_direction == SplitDirection::Horizontal { diff --git a/crates/ui2/src/to_extract/project_panel.rs b/crates/ui2/src/to_extract/project_panel.rs index 807768427b..a34a30bcbc 100644 --- a/crates/ui2/src/to_extract/project_panel.rs +++ b/crates/ui2/src/to_extract/project_panel.rs @@ -19,7 +19,7 @@ impl ProjectPanel { .flex() .flex_col() .size_full() - .bg(cx.theme().colors().surface) + .bg(cx.theme().colors().surface_background) .child( div() .id("project-panel-contents") diff --git a/crates/ui2/src/to_extract/status_bar.rs b/crates/ui2/src/to_extract/status_bar.rs index 136472f605..34a5993e69 100644 --- a/crates/ui2/src/to_extract/status_bar.rs +++ b/crates/ui2/src/to_extract/status_bar.rs @@ -93,7 +93,7 @@ impl StatusBar { .items_center() .justify_between() .w_full() - .bg(cx.theme().colors().status_bar) + .bg(cx.theme().colors().status_bar_background) .child(self.left_tools(view, cx)) .child(self.right_tools(view, cx)) } diff --git a/crates/ui2/src/to_extract/tab_bar.rs b/crates/ui2/src/to_extract/tab_bar.rs index bb7fca1153..a128044183 100644 --- a/crates/ui2/src/to_extract/tab_bar.rs +++ b/crates/ui2/src/to_extract/tab_bar.rs @@ -31,7 +31,7 @@ impl TabBar { .id(self.id.clone()) .w_full() .flex() - .bg(cx.theme().colors().tab_bar) + .bg(cx.theme().colors().tab_bar_background) // Left Side .child( div() diff --git a/crates/ui2/src/to_extract/terminal.rs b/crates/ui2/src/to_extract/terminal.rs index 051ebf7315..b912a59607 100644 --- a/crates/ui2/src/to_extract/terminal.rs +++ b/crates/ui2/src/to_extract/terminal.rs @@ -24,7 +24,7 @@ impl Terminal { div() .w_full() .flex() - .bg(cx.theme().colors().surface) + .bg(cx.theme().colors().surface_background) .child( div().px_1().flex().flex_none().gap_2().child( div() diff --git a/crates/ui2/src/to_extract/toolbar.rs b/crates/ui2/src/to_extract/toolbar.rs index 05a5c991d6..0e3e7c259f 100644 --- a/crates/ui2/src/to_extract/toolbar.rs +++ b/crates/ui2/src/to_extract/toolbar.rs @@ -56,7 +56,7 @@ impl Toolbar { fn render(self, _view: &mut V, cx: &mut ViewContext) -> impl Component { div() - .bg(cx.theme().colors().toolbar) + .bg(cx.theme().colors().toolbar_background) .p_2() .flex() .justify_between() diff --git a/crates/ui2/src/to_extract/traffic_lights.rs b/crates/ui2/src/to_extract/traffic_lights.rs index 9080276cdd..677fae886c 100644 --- a/crates/ui2/src/to_extract/traffic_lights.rs +++ b/crates/ui2/src/to_extract/traffic_lights.rs @@ -28,7 +28,7 @@ impl TrafficLight { (true, TrafficLightColor::Red) => system_colors.mac_os_traffic_light_red, (true, TrafficLightColor::Yellow) => system_colors.mac_os_traffic_light_yellow, (true, TrafficLightColor::Green) => system_colors.mac_os_traffic_light_green, - (false, _) => cx.theme().colors().element, + (false, _) => cx.theme().colors().element_background, }; div().w_3().h_3().rounded_full().bg(fill) diff --git a/crates/workspace2/src/pane.rs b/crates/workspace2/src/pane.rs index acc41deba8..44f705ebb2 100644 --- a/crates/workspace2/src/pane.rs +++ b/crates/workspace2/src/pane.rs @@ -1363,12 +1363,12 @@ impl Pane { let (tab_bg, tab_hover_bg, tab_active_bg) = match ix == self.active_item_index { false => ( - cx.theme().colors().tab_inactive, + cx.theme().colors().tab_inactive_background, cx.theme().colors().ghost_element_hover, cx.theme().colors().ghost_element_active, ), true => ( - cx.theme().colors().tab_active, + cx.theme().colors().tab_active_background, cx.theme().colors().element_hover, cx.theme().colors().element_active, ), @@ -1432,7 +1432,7 @@ impl Pane { .id("tab_bar") .w_full() .flex() - .bg(cx.theme().colors().tab_bar) + .bg(cx.theme().colors().tab_bar_background) // Left Side .child( div() diff --git a/crates/workspace2/src/status_bar.rs b/crates/workspace2/src/status_bar.rs index ca4ebcdb13..ac99be9f89 100644 --- a/crates/workspace2/src/status_bar.rs +++ b/crates/workspace2/src/status_bar.rs @@ -44,7 +44,7 @@ impl Render for StatusBar { .items_center() .justify_between() .w_full() - .bg(cx.theme().colors().status_bar) + .bg(cx.theme().colors().status_bar_background) .child(self.render_left_tools(cx)) .child(self.render_right_tools(cx)) } diff --git a/crates/workspace2/src/workspace2.rs b/crates/workspace2/src/workspace2.rs index 6e4c9e6cfd..7561c903d3 100644 --- a/crates/workspace2/src/workspace2.rs +++ b/crates/workspace2/src/workspace2.rs @@ -2697,7 +2697,7 @@ impl Workspace { fn render_titlebar(&self, cx: &mut ViewContext) -> impl Component { div() - .bg(cx.theme().colors().title_bar) + .bg(cx.theme().colors().title_bar_background) .when( !matches!(cx.window_bounds(), WindowBounds::Fullscreen), |s| s.pl_20(), From bfb860c06c7f5d1aa1db9e5596fab14c6f0e44cf Mon Sep 17 00:00:00 2001 From: Kirill Bulatov Date: Mon, 6 Nov 2023 19:29:31 +0200 Subject: [PATCH 65/76] Properly toggle diagnostics --- crates/diagnostics/src/diagnostics.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/crates/diagnostics/src/diagnostics.rs b/crates/diagnostics/src/diagnostics.rs index 1ec4105fbd..e794771434 100644 --- a/crates/diagnostics/src/diagnostics.rs +++ b/crates/diagnostics/src/diagnostics.rs @@ -227,6 +227,7 @@ impl ProjectDiagnosticsEditor { fn toggle_warnings(&mut self, _: &ToggleWarnings, cx: &mut ViewContext) { self.include_warnings = !self.include_warnings; + self.paths_to_update = self.current_diagnostics.clone(); self.update_excerpts(None, cx); cx.notify(); } From 4d88a326e102a7123a258d8c4de927b88f12b994 Mon Sep 17 00:00:00 2001 From: Conrad Irwin Date: Mon, 6 Nov 2023 10:37:35 -0700 Subject: [PATCH 66/76] Tidy up a bit better --- script/bundle | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/script/bundle b/script/bundle index c3c5bd76ab..b8e64b53ce 100755 --- a/script/bundle +++ b/script/bundle @@ -10,6 +10,9 @@ local_only=false overwrite_local_app=false bundle_name="" +# This must match the team in the provsiioning profile. +APPLE_NOTORIZATION_TEAM="MQ55VZLNZQ" + # Function for displaying help info help_info() { echo " @@ -228,7 +231,7 @@ else if [[ -n $MACOS_CERTIFICATE && -n $MACOS_CERTIFICATE_PASSWORD && -n $APPLE_NOTARIZATION_USERNAME && -n $APPLE_NOTARIZATION_PASSWORD ]]; then echo "Notarizing DMG with Apple" - "$(xcode-select -p)/usr/bin/notarytool" submit --wait --apple-id "$APPLE_NOTARIZATION_USERNAME" --password "$APPLE_NOTARIZATION_PASSWORD" --team-id MQ55VZLNZQ "${dmg_file_path}" + "$(xcode-select -p)/usr/bin/notarytool" submit --wait --apple-id "$APPLE_NOTARIZATION_USERNAME" --password "$APPLE_NOTARIZATION_PASSWORD" --team-id "$APPLE_NOTORIZATION_TEAM" "${dmg_file_path}" fi if [ "$open_result" = true ]; then From 80f80df5cf31573a8ce2defdfd980fe9fc836817 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Mon, 6 Nov 2023 12:43:10 -0500 Subject: [PATCH 67/76] Add Noctis Theme --- .gitignore | 2 - assets/themes/src/vscode/gruvbox/family.json | 2 +- assets/themes/src/vscode/noctis/LICENSE | 9 + assets/themes/src/vscode/noctis/azureus.json | 1113 +++++++++++++++++ assets/themes/src/vscode/noctis/bordo.json | 1112 ++++++++++++++++ assets/themes/src/vscode/noctis/family.json | 61 + assets/themes/src/vscode/noctis/hibernus.json | 1108 ++++++++++++++++ assets/themes/src/vscode/noctis/lilac.json | 1113 +++++++++++++++++ assets/themes/src/vscode/noctis/lux.json | 1108 ++++++++++++++++ assets/themes/src/vscode/noctis/minimus.json | 1113 +++++++++++++++++ assets/themes/src/vscode/noctis/noctis.json | 1108 ++++++++++++++++ assets/themes/src/vscode/noctis/obscuro.json | 1108 ++++++++++++++++ assets/themes/src/vscode/noctis/sereno.json | 1108 ++++++++++++++++ assets/themes/src/vscode/noctis/uva.json | 1112 ++++++++++++++++ assets/themes/src/vscode/noctis/viola.json | 1112 ++++++++++++++++ crates/theme2/src/theme2.rs | 2 + crates/theme2/src/themes/andromeda.rs | 18 + crates/theme2/src/themes/ayu.rs | 18 + crates/theme2/src/themes/dracula.rs | 18 + crates/theme2/src/themes/gruvbox.rs | 18 + crates/theme2/src/themes/mod.rs | 12 + crates/theme2/src/themes/notctis.rs | 18 + crates/theme_importer/src/main.rs | 23 +- 23 files changed, 12412 insertions(+), 4 deletions(-) create mode 100644 assets/themes/src/vscode/noctis/LICENSE create mode 100644 assets/themes/src/vscode/noctis/azureus.json create mode 100644 assets/themes/src/vscode/noctis/bordo.json create mode 100644 assets/themes/src/vscode/noctis/family.json create mode 100644 assets/themes/src/vscode/noctis/hibernus.json create mode 100644 assets/themes/src/vscode/noctis/lilac.json create mode 100644 assets/themes/src/vscode/noctis/lux.json create mode 100644 assets/themes/src/vscode/noctis/minimus.json create mode 100644 assets/themes/src/vscode/noctis/noctis.json create mode 100644 assets/themes/src/vscode/noctis/obscuro.json create mode 100644 assets/themes/src/vscode/noctis/sereno.json create mode 100644 assets/themes/src/vscode/noctis/uva.json create mode 100644 assets/themes/src/vscode/noctis/viola.json create mode 100644 crates/theme2/src/themes/andromeda.rs create mode 100644 crates/theme2/src/themes/ayu.rs create mode 100644 crates/theme2/src/themes/dracula.rs create mode 100644 crates/theme2/src/themes/gruvbox.rs create mode 100644 crates/theme2/src/themes/mod.rs create mode 100644 crates/theme2/src/themes/notctis.rs diff --git a/.gitignore b/.gitignore index 6231dd2f60..2d8807a4b0 100644 --- a/.gitignore +++ b/.gitignore @@ -24,5 +24,3 @@ DerivedData/ .netrc .swiftpm **/*.db -**/src/themes/*.rs -!**/src/themes/.gitkeep diff --git a/assets/themes/src/vscode/gruvbox/family.json b/assets/themes/src/vscode/gruvbox/family.json index 4d3d4d6651..7ff7589a8e 100644 --- a/assets/themes/src/vscode/gruvbox/family.json +++ b/assets/themes/src/vscode/gruvbox/family.json @@ -1,5 +1,5 @@ { - "name": "Andromeda", + "name": "Gruvbox", "author": "morhetz", "themes": [ { diff --git a/assets/themes/src/vscode/noctis/LICENSE b/assets/themes/src/vscode/noctis/LICENSE new file mode 100644 index 0000000000..44dde44047 --- /dev/null +++ b/assets/themes/src/vscode/noctis/LICENSE @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) 2018 Liviu Schera + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/assets/themes/src/vscode/noctis/azureus.json b/assets/themes/src/vscode/noctis/azureus.json new file mode 100644 index 0000000000..d550e74811 --- /dev/null +++ b/assets/themes/src/vscode/noctis/azureus.json @@ -0,0 +1,1113 @@ +{ + "name": "Noctis Azureus", + "type": "dark", + "colors": { + "selection.background": "#1679b6cc", + "descriptionForeground": "#61a6d1", + "errorForeground": "#e34e1c", + "widget.shadow": "#00000044", + "editor.background": "#07273b", + "editor.foreground": "#becfda", + "editorLineNumber.foreground": "#4d6c80", + "editorLineNumber.activeForeground": "#61a6d1", + "editorCursor.foreground": "#b3e2ff", + "badge.background": "#49ace9", + "badge.foreground": "#0f1315", + "activityBar.background": "#07273b", + "activityBar.dropBackground": "#61a6d165", + "activityBar.border": "#0f1315", + "activityBar.foreground": "#1679b6", + "activityBar.inactiveForeground": "#1679b677", + "activityBarBadge.background": "#49ace9", + "activityBarBadge.foreground": "#0f1315", + "activityBar.activeBackground": "#49ace933", + "activityBar.activeBorder": "#49ace9", + "sideBar.background": "#062132", + "sideBar.dropBackground": "#062132", + "sideBar.border": "#0f1315", + "sideBar.foreground": "#9fb6c6", + "sideBarSectionHeader.background": "#09334e", + "sideBarSectionHeader.foreground": "#9fb6c6", + "sideBarTitle.foreground": "#9fb6c6", + "sideBarSectionHeader.border": "#0f1315", + "statusBar.foreground": "#1679b6", + "statusBar.background": "#07273b", + "statusBar.border": "#0f1315", + "statusBar.debuggingBackground": "#07273b", + "statusBar.debuggingForeground": "#ff80ac50", + "statusBar.debuggingBorder": "#ff80acaf", + "statusBar.noFolderForeground": "#879dab", + "statusBar.noFolderBackground": "#07273b", + "statusBar.noFolderBorder": "#07273b", + "statusBarItem.activeBackground": "#007ecc59", + "statusBarItem.hoverBackground": "#0a3652", + "statusBarItem.prominentBackground": "#051e2e", + "statusBarItem.prominentHoverBackground": "#002f4d", + "button.background": "#007f99", + "button.foreground": "#ebf7ff", + "button.hoverBackground": "#0ac", + "dropdown.background": "#09334e", + "dropdown.border": "#09334e", + "dropdown.foreground": "#61a6d1", + "editorMarkerNavigation.background": "#3a3a5e29", + "editorMarkerNavigationError.background": "#e34e1c", + "editorMarkerNavigationWarning.background": "#e69533", + "editorError.border": "#07273b", + "editorError.foreground": "#e34e1c", + "editorWarning.border": "#07273b", + "editorWarning.foreground": "#e69533", + "editorInfo.border": "#07273b", + "editorInfo.foreground": "#49ace9", + "editorHint.border": "#49e9a600", + "editorHint.foreground": "#49e9a6", + "editorGroup.emptyBackground": "#4d6c8033", + "editorGroup.border": "#0f1315", + "editorGroup.dropBackground": "#4d6c8033", + "editorGroupHeader.noTabsBackground": "#09334e", + "editorGroupHeader.tabsBackground": "#09334e", + "editorGroupHeader.tabsBorder": "#09334e", + "tab.activeBackground": "#07273b", + "tab.unfocusedActiveBackground": "#002c47", + "tab.activeForeground": "#49ace9", + "tab.border": "#0f1315", + "tab.inactiveBackground": "#09334e", + "tab.inactiveForeground": "#9fb6c6", + "tab.unfocusedActiveForeground": "#9fb6c6", + "tab.unfocusedInactiveForeground": "#9fb6c6", + "tab.activeBorderTop": "#49ace9", + "tab.activeModifiedBorder": "#49e9a6", + "tab.activeBorder": "#07273b", + "tab.unfocusedActiveBorder": "#07273b", + "tab.unfocusedHoverBackground": "#1679b621", + "textBlockQuote.background": "#07273b", + "textBlockQuote.border": "#1679b6", + "textCodeBlock.background": "#07273b", + "textLink.activeForeground": "#49ace9", + "textLink.foreground": "#49ace9", + "textPreformat.foreground": "#ffc180", + "textSeparator.foreground": "#07273b", + "walkThrough.embeddedEditorBackground": "#07273b", + "welcomePage.buttonBackground": "#051b29", + "welcomePage.buttonHoverBackground": "#09334e", + "input.background": "#051b29", + "input.border": "#002f4d", + "input.foreground": "#CDD3DE", + "input.placeholderForeground": "#879dab", + "inputOption.activeBorder": "#1679b6", + "inputValidation.errorForeground": "#ff4000", + "inputValidation.errorBackground": "#501502ee", + "inputValidation.errorBorder": "#691c02", + "inputValidation.infoForeground": "#40d4e7", + "inputValidation.infoBackground": "#0f6e7bee", + "inputValidation.infoBorder": "#148f9f", + "inputValidation.warningForeground": "#e69533", + "inputValidation.warningBackground": "#82694acc", + "inputValidation.warningBorder": "#a88457", + "editorWidget.background": "#09334e", + "editorWidget.border": "#0f1315", + "editorHoverWidget.background": "#002942", + "editorHoverWidget.border": "#0f1315", + "editorSuggestWidget.background": "#002942", + "editorSuggestWidget.border": "#0f1315", + "editorSuggestWidget.foreground": "#9fb6c6", + "editorSuggestWidget.highlightForeground": "#49ace9", + "editorSuggestWidget.selectedBackground": "#0c3f5f", + "editorGutter.background": "#07273b", + "editorGutter.addedBackground": "#8ce99a", + "editorGutter.deletedBackground": "#e34e1c", + "editorGutter.modifiedBackground": "#ffc180", + "editor.selectionBackground": "#1679b655", + "editor.selectionHighlightBackground": "#49ace933", + "editor.inactiveSelectionBackground": "#1679b633", + "editor.wordHighlightStrongBackground": "#cc990033", + "editor.wordHighlightBackground": "#e4b78133", + "editor.findMatchBackground": "#40bf6a11", + "editor.findMatchHighlightBackground": "#0e667179", + "editor.findRangeHighlightBackground": "#49e9a622", + "editor.hoverHighlightBackground": "#1679b63f", + "editor.lineHighlightBackground": "#003c61ee", + "editor.lineHighlightBorder": "#003c61", + "editor.rangeHighlightBackground": "#49d6e922", + "editorLink.activeForeground": "#14a5ff", + "editorWhitespace.foreground": "#ffffff21", + "editorIndentGuide.background": "#183c53", + "editorIndentGuide.activeBackground": "#28658a", + "editorBracketMatch.background": "#1679b622", + "editorBracketMatch.border": "#1679b6", + "editorRuler.foreground": "#1a425b", + "editorCodeLens.foreground": "#5b858b", + "terminal.ansiBlack": "#28353e", + "terminal.ansiRed": "#e66533", + "terminal.ansiGreen": "#49e9a6", + "terminal.ansiYellow": "#e4b781", + "terminal.ansiBlue": "#49ace9", + "terminal.ansiMagenta": "#df769b", + "terminal.ansiCyan": "#49d6e9", + "terminal.ansiWhite": "#aec3d0", + "terminal.ansiBrightBlack": "#475e6c", + "terminal.ansiBrightRed": "#e97749", + "terminal.ansiBrightGreen": "#60ebb1", + "terminal.ansiBrightYellow": "#e69533", + "terminal.ansiBrightBlue": "#60b6eb", + "terminal.ansiBrightMagenta": "#e798b3", + "terminal.ansiBrightCyan": "#60dbeb", + "terminal.ansiBrightWhite": "#becfda", + "terminal.background": "#051b29", + "terminal.foreground": "#becfda", + "terminalCursor.background": "#051b29", + "terminalCursor.foreground": "#becfda", + "merge.border": "#07273b00", + "merge.currentContentBackground": "#85f1ff22", + "merge.currentHeaderBackground": "#85f1ff44", + "merge.incomingContentBackground": "#9d92f222", + "merge.incomingHeaderBackground": "#9d92f244", + "merge.commonContentBackground": "#ffc18022", + "merge.commonHeaderBackground": "#ffc18044", + "editorOverviewRuler.currentContentForeground": "#85f1ff44", + "editorOverviewRuler.incomingContentForeground": "#9d92f244", + "editorOverviewRuler.commonContentForeground": "#ffc18044", + "editorOverviewRuler.border": "#07273b", + "notificationCenter.border": "#09334e", + "notificationCenterHeader.foreground": "#879dab", + "notificationCenterHeader.background": "#09334e", + "notificationToast.border": "#09334e", + "notifications.foreground": "#CDD3DE", + "notifications.background": "#09334e", + "notifications.border": "#09334e", + "notificationLink.foreground": "#879dab", + "diffEditor.insertedTextBackground": "#16b67327", + "diffEditor.removedTextBackground": "#e6653341", + "debugToolBar.background": "#07273b", + "debugExceptionWidget.background": "#07273b", + "debugExceptionWidget.border": "#1679b6", + "extensionButton.prominentBackground": "#008c99", + "extensionButton.prominentForeground": "#e5f5f5", + "extensionButton.prominentHoverBackground": "#00bbcc", + "focusBorder": "#09334e", + "foreground": "#becfda", + "panel.background": "#051b29", + "panel.border": "#1679b6", + "panelTitle.activeBorder": "#1679b6", + "panelTitle.activeForeground": "#49ace9", + "panelTitle.inactiveForeground": "#507b95", + "peekView.border": "#1679b6", + "peekViewEditor.background": "#001f33", + "peekViewEditor.matchHighlightBackground": "#005b9433", + "peekViewEditor.matchHighlightBorder": "#007ecc", + "peekViewEditorGutter.background": "#001f33", + "peekViewResult.background": "#002338", + "peekViewResult.fileForeground": "#ffc180", + "peekViewResult.lineForeground": "#879dab", + "peekViewResult.matchHighlightBackground": "#09334e", + "peekViewResult.selectionBackground": "#09334e", + "peekViewResult.selectionForeground": "#879dab", + "peekViewTitle.background": "#002338", + "peekViewTitleDescription.foreground": "#879dab", + "peekViewTitleLabel.foreground": "#ffc180", + "progressBar.background": "#49ace9", + "scrollbar.shadow": "#00000044", + "scrollbarSlider.activeBackground": "#008ee677", + "scrollbarSlider.background": "#008ee633", + "scrollbarSlider.hoverBackground": "#008ee655", + "gitDecoration.addedResourceForeground": "#16b673", + "gitDecoration.modifiedResourceForeground": "#49e9a6", + "gitDecoration.deletedResourceForeground": "#e34e1c", + "gitDecoration.untrackedResourceForeground": "#40d4e7", + "gitDecoration.ignoredResourceForeground": "#5b788b", + "gitDecoration.conflictingResourceForeground": "#ffc180", + "pickerGroup.border": "#1679b6", + "pickerGroup.foreground": "#49ace9", + "list.activeSelectionBackground": "#0c3f5f", + "list.activeSelectionForeground": "#ebf7ff", + "list.dropBackground": "#002a4d", + "list.focusBackground": "#0b3c5b", + "list.focusForeground": "#ebf7ff", + "list.highlightForeground": "#49ace9", + "list.hoverBackground": "#00558a65", + "list.hoverForeground": "#ebf7ff", + "list.inactiveFocusBackground": "#082d44", + "list.inactiveSelectionBackground": "#09334e", + "list.inactiveSelectionForeground": "#becfda", + "list.errorForeground": "#e34e1c", + "list.warningForeground": "#ffa857", + "listFilterWidget.background": "#002a4d", + "listFilterWidget.outline": "#49e9a6", + "listFilterWidget.noMatchesOutline": "#e34e1c", + "tree.indentGuidesStroke": "#4d6c80", + "settings.headerForeground": "#becfda", + "settings.modifiedItemIndicator": "#15ac31", + "settings.dropdownListBorder": "#0051a877", + "settings.dropdownBackground": "#09334e", + "settings.dropdownForeground": "#0ac", + "settings.dropdownBorder": "#09334e", + "settings.checkboxBackground": "#09334e", + "settings.checkboxForeground": "#0ac", + "settings.checkboxBorder": "#09334e", + "settings.textInputBackground": "#09334e", + "settings.textInputForeground": "#0ac", + "settings.textInputBorder": "#09334e", + "settings.numberInputBackground": "#051b29", + "settings.numberInputForeground": "#7060eb", + "settings.numberInputBorder": "#051b29", + "breadcrumb.foreground": "#9fb6c6", + "breadcrumb.background": "#07273b", + "breadcrumb.focusForeground": "#49ace9", + "breadcrumb.activeSelectionForeground": "#ebf7ff", + "breadcrumbPicker.background": "#09334e", + "titleBar.activeBackground": "#07273b", + "titleBar.activeForeground": "#becfda", + "titleBar.inactiveBackground": "#07273b", + "titleBar.inactiveForeground": "#9fb6c6", + "menu.background": "#09334e", + "menu.foreground": "#9fb6c6", + "menu.selectionBackground": "#0b3c5b", + "menu.selectionForeground": "#49ace9", + "menu.selectionBorder": "#0b3c5b", + "menu.separatorBackground": "#49ace9", + "menubar.selectionBackground": "#0b3c5b", + "menubar.selectionForeground": "#49ace9", + "menubar.selectionBorder": "#0b3c5b", + "editor.snippetTabstopHighlightBackground": "#051b29", + "editor.snippetTabstopHighlightBorder": "#062132", + "editor.snippetFinalTabstopHighlightBackground": "#051b29", + "editor.snippetFinalTabstopHighlightBorder": "#062132", + "minimap.findMatchHighlight": "#49ace9ee", + "minimap.errorHighlight": "#e34e1cee", + "minimap.warningHighlight": "#e69533ee", + "minimapGutter.addedBackground": "#16b673", + "minimapGutter.modifiedBackground": "#49e9a6", + "minimapGutter.deletedBackground": "#e34e1c", + "minimap.background": "#07273b99" + }, + "tokenColors": [ + { + "name": "COMMENT", + "scope": [ + "comment", + "punctuation.definition.comment", + "punctuation.definition.tag", + "comment.block.documentation punctuation.definition.bracket", + "source.ocaml comment constant.regexp meta.separator", + "markup.other.anchor support.constant", + "markup.fenced_code", + "markup.fenced_code punctuation.definition", + "punctuation.definition.heading", + "punctuation.definition.bold.markdown", + "punctuation.definition.italic.markdown", + "punctuation.definition.strikethrough.markdown" + ], + "settings": { + "foreground": "#5988a6" + } + }, + { + "name": "TEXT", + "scope": [ + "constant.character", + "constant.escape", + "text.html.markdown", + "punctuation.definition.list_item", + "keyword.begin.tag.ejs", + "constant.name.attribute.tag.pug", + "source.clojure meta.symbol", + "constant.other.description.jsdoc", + "keyword.other.array.phpdoc.php", + "keyword.operator.other.powershell", + "meta.link.inline punctuation.definition.string", + "source.sql", + "source meta.brace", + "source punctuation", + "text.html punctuation", + "markup meta punctuation.definition", + "meta.bracket.julia", + "meta.array.julia", + "entity.name.footnote", + "source.ocaml punctuation.definition.tag", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "entity.other.attribute-name strong", + "binding.fsharp keyword.symbol.fsharp", + "entity.name.record.field.elm", + "entity.name.record.field.accessor.elm", + "storage.modifier.array.bracket", + "source.css entity.other", + "meta.attribute-selector punctuation.definition.entity", + "markup.other.anchor string", + "punctuation.separator", + "punctuation.section", + "punctuation.terminator" + ], + "settings": { + "foreground": "#becfda" + } + }, + { + "name": "KEYWORD", + "scope": [ + "keyword", + "keyword.control", + "keyword.other.template", + "keyword.other.substitution", + "storage.modifier", + "meta.tag.sgml", + "punctuation.accessor", + "constant.other.color", + "entity.name.section", + "markup.heading", + "markup.heading punctuation.definition", + "entity.other.attribute-name.pseudo-class", + "entity.other.attribute-name.pseudo-element", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "storage.type.function.pug", + "text.pug storage.type", + "text.pug meta.tag.other", + "source.clojure storage.control", + "meta.expression.clojure", + "punctuation.separator.slice.python", + "punctuation.separator.question-mark.cs", + "punctuation.definition.parameters.varargs", + "source.go keyword.operator", + "punctuation.separator.pointer-access", + "punctuation.separator.other.ruby", + "keyword.package", + "keyword.import", + "punctuation.definition.keyword", + "punctuation.separator.hash.cs", + "entity.other.attribute-name.pseudo-class.css punctuation.definition.entity.css", + "entity.other.attribute-name.pseudo-element.css punctuation.definition.entity.css", + "source.kotlin storage.type.import", + "source.kotlin storage.type.package", + "constant.string.documentation.powershell", + "punctuation.section.directive", + "storage.type.rust", + "punctuation.definition.attribute", + "punctuation.definition.preprocessor", + "punctuation.separator.namespace", + "punctuation.separator.method", + "keyword.control punctuation.definition.function", + "source.ocaml variable.interpolation string", + "source.reason variable.interpolation", + "punctuation.definition.directive", + "storage.type.modifier", + "keyword.other.class.fileds", + "source.toml entity.other.attribute-name", + "source.css entity.name.tag.custom", + "sharing.modifier", + "keyword.control.class.ruby", + "keyword.control.def.ruby" + ], + "settings": { + "foreground": "#df769b" + } + }, + { + "name": "VARIABLE", + "scope": [ + "variable", + "variable.object", + "variable.other", + "variable.parameter", + "support", + "entity.name.module", + "variable.import.parameter", + "variable.other.class", + "meta.toc-list.id.html", + "source.json meta.structure.dictionary.json support.type.property-name.json", + "meta.var.clojure", + "entity.name.variable", + "source.java meta.class.body.java", + "entity.name.package.go", + "source.c", + "source.cpp", + "source.go", + "source.python", + "meta.function-call.arguments.python", + "source.ruby", + "source.coffee.embedded.source", + "source.coffee", + "storage.modifier.import", + "storage.modifier.package", + "storage.type.annotation", + "punctuation.definition.annotation", + "source.groovy.embedded.source", + "punctuation.definition.variable", + "source.powershell", + "string.quoted.interpolated.vala constant.character.escape.vala", + "source.apacheconf", + "source.objc", + "source.crystal", + "string.quoted.double.kotlin entity.string.template.element.kotlin", + "entity.name.package.kotlin", + "meta.template.expression.kotlin", + "parameter.variable.function", + "variable.other.constant.elixir", + "source.elixir.embedded.source", + "source.sql.embedded", + "punctuation.definition.placeholder", + "source.swift", + "source.julia", + "source.shell", + "variable.other.normal punctuation.definition.variable.shell", + "source.reason variable.language", + "source.reason variable.language string.other.link", + "source.elm meta.value", + "source.elm meta.declaration.module", + "meta.embedded.block variable punctuation.definition.variable.php", + "string.quoted.double.class.other", + "source.toml keyword", + "support.type.nim", + "source.tf meta.template.expression", + "source.scala entity.name.import", + "markup.code", + "markup.fenced_code.block" + ], + "settings": { + "foreground": "#e4b781" + } + }, + { + "name": "ANNOTATION", + "scope": [ + "support.variable.property", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "entity.other.attribute-name.id", + "entity.other.attribute-name.id punctuation.definition.entity", + "entity.name.type.annotation.kotlin", + "support.type.primitive", + "meta.type.parameters entity.name.type", + "meta.type.annotation entity.name.type", + "punctuation.definition.typeparameters", + "source.python support.type.python", + "comment.block.documentation.phpdoc.php keyword.other.type.php", + "storage.type.php", + "keyword.type", + "storage.type.cs", + "storage.type.c", + "storage.type.objc", + "punctuation.definition.storage.type.objc", + "markup punctuation.definition", + "storage.type.powershell", + "comment.block.documentation entity.name.type", + "source.java storage.type", + "storage.type.primitive", + "source.groovy storage.type", + "storage.type.r", + "source.haskell storage.type", + "punctuation.separator.clause-head-body", + "source.go storage.type", + "storage.type.core.rust", + "storage.class.std.rust", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "support.type.vb", + "entity.name.type.kotlin", + "support.type.julia", + "constant.other.reference", + "source.graphql support.type", + "source.reason support.type string", + "entity.name.type.fsharp", + "source.elm storage.type", + "storage.type.user-defined", + "storage.type.built-in", + "support.type.builtin", + "source.swift support.type", + "support.class.crystal", + "storage.type.integral", + "source.cpp storage.type.cpp", + "source.vala storage.type", + "source.hlsl storage.type.basic", + "source.hlsl support.type.other", + "source.apex storage.type", + "source.nim storage.type", + "source.cpp entity.name.type", + "support.class.builtin", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "markup.raw.monospace", + "markup.mark", + "entity.name.type.primitive", + "entity.name.type.numeric" + ], + "settings": { + "foreground": "#d67e5c" + } + }, + { + "name": "CONSTANT", + "scope": [ + "constant", + "variable.other.constant", + "support.constant", + "punctuation.definition.entity", + "constant.character.entity", + "support.variable.magic", + "markup.quote", + "entity.name.type.type-parameter.cs", + "punctuation.bracket.angle", + "entity.name.function.preprocessor.c", + "storage.type.scala", + "entity.helper.apacheconf", + "variable.language.crystal", + "punctuation.definition.constant", + "support.constant punctuation.definition.variable", + "constant.character.math", + "support.class.math", + "source.graphql constant.character", + "source.reason constant.language.list", + "source.cpp variable.other.enummember", + "support.variable.class.hideshow", + "entity.other.attribute-name.class", + "meta.attribute.id entity.other.attribute-name", + "text.html entity.other.attribute-name", + "meta.tag.attributes entity.other.attribute-name", + "text.xml entity.other.attribute-name", + "source.cs entity.other.attribute-name", + "constant.character.format.placeholder", + "constant.other.placeholder", + "source.vue entity.other.attribute-name", + "entity.other.attribute-name.mjml", + "source.vue meta.directive punctuation.separator.key-value", + "meta.definition.attribute-entry punctuation.separator" + ], + "settings": { + "foreground": "#d5971a" + } + }, + { + "name": "TAG", + "scope": [ + "variable.language", + "variable.parameter.function.language.special", + "punctuation.definition.italic", + "punctuation.definition.bold", + "entity.name.tag", + "variable.language punctuation.definition.variable", + "keyword.control.clojure", + "support.type.exception.python", + "keyword.other.this.cs", + "keyword.other.base.cs", + "keyword.other.var.cs", + "storage.modifier.super", + "source.go keyword", + "keyword.function.go", + "meta.separator", + "keyword.other.fn.rust", + "storage.modifier.static.rust", + "source.r meta.function.r keyword.control.r", + "storage.type.def", + "meta.class.identifier storage.modifier", + "source.scala keyword.declaration", + "storage.type", + "comment.block.documentation punctuation.definition.block.tag", + "comment.block.documentation punctuation.definition.inline.tag", + "entity.tag.apacheconf", + "keyword.other.julia", + "source.julia storage.modifier", + "constant.language.empty-list.haskell", + "meta.function.powershell storage.type.powershell", + "keyword.control.fun", + "punctuation.terminator.function", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "keyword.control.class", + "keyword.control.def", + "source.ocaml keyword markup.underline", + "source.ocaml storage.type markup.underline", + "binding.fsharp keyword", + "function.anonymous keyword", + "function.anonymous keyword.symbol.fsharp", + "meta.embedded.block variable.language punctuation.definition.variable.php", + "keyword.declaration.dart", + "source.wsd keyword.other.class", + "source.wsd keyword.other.linebegin", + "keyword.other.skinparam.keyword", + "keyword.other.nim", + "markup.deleted.diff", + "source.tf support.class.variable", + "meta.function.lua keyword.control.lua", + "markup.block entity.name.tag", + "markup.meta.attribute-list", + "source.zig keyword.default", + "source.zig keyword.structure" + ], + "settings": { + "foreground": "#e66533" + } + }, + { + "name": "STRING", + "scope": [ + "string", + "punctuation.definition.string", + "source.css support.constant", + "entity.name.import.go", + "markup.raw.texttt", + "markup.inserted.diff", + "source.scala punctuation.definition.character", + "constant.character.literal.scala", + "source.tf entity.name" + ], + "settings": { + "foreground": "#49e9a6" + } + }, + { + "name": "STRINGINTERPOLATED", + "scope": [ + "string.template", + "punctuation.definition.string.template", + "string.interpolated.python string.quoted.single.python", + "string.quoted.double.heredoc", + "string.quoted.interpolated.vala", + "string.quoted.interpolated.vala punctuation.definition.string", + "string.regexp.apacheconf", + "markup.inline.raw.string", + "markup.inline.raw punctuation.definition.raw", + "string.quoted.double.interpolated.crystal", + "string.quoted.double.interpolated.crystal punctuation.definition.string", + "text.tex markup.raw" + ], + "settings": { + "foreground": "#16b673" + } + }, + { + "name": "NUMBER", + "scope": [ + "constant.numeric", + "constant.language", + "punctuation.separator.decimal.period.php", + "keyword.operator.null-conditional.cs", + "punctuation.separator.question-mark.cs", + "constant.integer.apacheconf", + "keyword.operator.nullable-type", + "constant.language punctuation.definition.variable", + "constant.others.fsharp", + "keyword.other.unit", + "string.quoted.double.skinparam.value", + "source.toml constant", + "source.zig keyword.constant.bool", + "source.zig keyword.constant.default" + ], + "settings": { + "foreground": "#7060eb" + } + }, + { + "name": "FUNCTION", + "scope": [ + "variable.function", + "support.type.property-name", + "entity.name.function", + "string.other.link", + "markup.link", + "support.type.vendored", + "support.other.variable", + "meta.function-call.generic.python", + "meta.method-call.groovy meta.method.groovy", + "meta.class.body.groovy meta.method.body.java storage.type.groovy", + "punctuation.definition.decorator", + "support.function.any-method", + "text.tex support.function", + "text.tex punctuation.definition.function", + "entity.name.section.fsharp entity.name.section.fsharp", + "support.variable.class.function", + "keyword.control.cucumber.table", + "punctuation.decorator", + "source.tf support.class" + ], + "settings": { + "foreground": "#16a3b6" + } + }, + { + "name": "SUPPORT", + "scope": [ + "entity.name", + "entity.other", + "support.orther.namespace.use.php", + "meta.use.php", + "support.other.namespace.php", + "support.type", + "support.class", + "punctuation.definition.parameters", + "support.function", + "support.function.construct", + "markup.changed.git_gutter", + "markup.underline.link", + "markup.underline.link.image", + "markup.underline", + "meta.symbol.namespace.clojure", + "entity.mime-type.apacheconf", + "keyword.operator.function.infix", + "entity.name.function.infix", + "entity.name.function.call.kotlin", + "text.tex support.function.verb", + "text.tex support.function.texttt", + "source.reason constant.language.unit", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "constant.language.unit.fsharp", + "source.wsd support.class.preprocessings", + "keyword.language.gherkin.feature.scenario", + "source.nim keyword.other.common.function", + "entity.name.type.namespace", + "entity.name.scope-resolution.function.call" + ], + "settings": { + "foreground": "#49d6e9" + } + }, + { + "name": "MISC", + "scope": [ + "source.js constant.other.object.key.js string.unquoted.label.js", + "source.js punctuation.section.embedded", + "punctuation.definition.template-expression", + "support.class", + "storage.type.string.python", + "string.interpolated.pug", + "support.constant.handlebars", + "source.clojure punctuation.section.set", + "source.clojure punctuation.section.metadata", + "entity.global.clojure", + "source.python meta.function-call.python support.type.python", + "entity.other.inherited-class.python", + "punctuation.definition.interpolation", + "punctuation.section.embedded.begin.ruby", + "punctuation.section.embedded.end.ruby source.ruby", + "support.constant.math", + "entity.namespace.r", + "meta.method-call.groovy storage.type.groovy", + "source.scala entity.name.class.declaration", + "constant.character.escape", + "support.function.macro.julia", + "string.replacement.apacheconf", + "storage.modifier.using.vala", + "constant.other.haskell", + "source.objc entity.name.tag", + "string.quoted.other.literal.upper.crystal punctuation.definition.string", + "meta.embedded.line.crystal punctuation.section.embedded", + "meta.embedded.line.crystal punctuation.section.embedded source.crystal", + "punctuation.section.embedded", + "punctuation.section.tag", + "punctuation.section.embedded source.swift", + "variable.other.bracket punctuation.definition.variable", + "string.interpolated.dollar punctuation.definition.string", + "constant.character.escape punctuation.definition.keyword", + "source.ocaml entity.name.class constant.numeric", + "source.reason entity.name.class", + "keyword.format.specifier.fsharp", + "support.module.elm", + "meta.embedded.block.php punctuation.definition.variable.php", + "source.vala storage.type", + "support.variable.class.group", + "entity.name.type.class", + "source.tf meta.keyword.list", + "source.tf meta.keyword.map", + "entity.name.class.lua", + "markup.substitution" + ], + "settings": { + "foreground": "#49ace9" + } + }, + { + "name": "INVALID", + "scope": [ + "invalid", + "invalid.illegal" + ], + "settings": { + "foreground": "#e3541c" + } + }, + { + "name": "ITALIC", + "scope": [ + "comment", + "storage.modifier", + "punctuation.definition.comment", + "entity.other", + "variable.language", + "support.type.vendored", + "support.constant.vendored", + "markup.quote", + "markup.italic", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "keyword.control.clojure", + "source.clojure meta.symbol.dynamic", + "keyword.other.this.cs", + "keyword.other.base.cs", + "variable.other.member.c", + "support.type.core.rust", + "variable.other.object.property", + "variable.other.property", + "source.r meta.function.r keyword.control.r", + "comment.line.roxygen.r keyword", + "comment.line.roxygen.r variable.parameter.r", + "keyword.control.inheritance.coffee", + "comment.block.documentation.phpdoc.php keyword", + "keyword.other.array.phpdoc.php", + "storage.type.modifier", + "comment.block.javadoc.java keyword", + "comment.block.javadoc.java variable.parameter.java", + "keyword.operator.documentation.powershell", + "storage.type.scala", + "variable.parameter.function.language.special", + "comment.block.documentation.scala keyword", + "comment.block.documentation.scala variable.parameter", + "support.function.builtin.go", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.ruby", + "source.vala storage.type.generic", + "constant.other.table-name", + "constant.other.placeholder", + "variable.other.field", + "entity.alias.import.go", + "source.swift keyword.other.declaration-specifier", + "support.variable.swift", + "keyword.other.capture-specifier", + "text.tex support.function.emph", + "constant.other.math", + "support.function.textit", + "entity.name.footnote", + "entity.name.function.directive.graphql", + "source.graphql support.type.enum", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "abstract.definition.fsharp keyword", + "abstract.definition.fsharp entity", + "function.anonymous keyword", + "entity.name.record.field.accessor.elm", + "support.type.primitive", + "support.type.builtin", + "keyword.type.cs", + "storage.type.built-in", + "storage.type.primitive", + "source.python support.type.python", + "storage.type.core.rust", + "source.swift support.type", + "source.go storage.type", + "storage.type.php", + "storage.type.function.kotlin", + "entity.name.type.kotlin", + "support.type.julia", + "variable.other.member", + "keyword.other.import", + "keyword.package", + "keyword.import", + "source.wsd keyword.control.diagram", + "keyword.language.gherkin.feature.step", + "source.hlsl storage.type.basic", + "source.apex keyword.type", + "sharing.modifier", + "source.nim storage.type.concrete", + "meta.preprocessor.pragma.nim", + "storage.type.integral", + "entity.name.scope-resolution.function.call", + "support.class.builtin", + "comment.block.documentation storage.type.class", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "meta.import keyword.control", + "keyword.control.export", + "source.vue meta.directive punctuation.separator.key-value", + "keyword.local.lua", + "markup.mark.constrained markup.mark", + "markup.block.open", + "entity.name.type.primitive", + "entity.name.type.numeric", + "source.zig keyword.type", + "source.zig keyword.storage", + "source.zig keyword.structure" + ], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "BOLD", + "scope": [ + "keyword", + "keyword.control", + "keyword.operator", + "keyword.other.template", + "keyword.other.substitution", + "storage.type.function.arrow", + "constant.other.color", + "punctuation.accessor", + "entity.name.section", + "markdown.heading", + "markup.inline.raw punctuation.definition.raw", + "markup.heading", + "storage.type.function.pug", + "storage.type.function.python", + "storage.type.annotation", + "punctuation.bracket.angle", + "keyword.other.new", + "storage.type.generic.wildcard", + "source.go keyword.operator", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "variable.parameter", + "support.function.builtin.rust", + "storage.type.function.coffee", + "entity.name.variable.parameter", + "punctuation.separator.hash.cs", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "meta.function.parameters variable.other", + "entity.name.type.annotation.kotlin", + "storage.type.objc", + "parameter.variable.function", + "markup punctuation.definition", + "punctuation.section.directive", + "punctuation.definition.preprocessor", + "source.ruby punctuation.definition.variable", + "support.function.textbf", + "source.graphql support.type.builtin", + "source.ocaml variable.interpolation string", + "entity.name.function.definition.special.constructor", + "entity.name.function.definition.special.member.destructor.", + "meta.function.parameters variable punctuation.definition.variable.php", + "source.wsd keyword.other.activity", + "keyword.control.class.ruby", + "keyword.control.def.ruby", + "keyword.function.go", + "keyword.other.fn.rust", + "markup.other.anchor", + "markup.list.bullet", + "markup.list punctuation.definition", + "keyword.control.default", + "punctuation.section", + "punctuation.separator", + "punctuation.terminator", + "markup.bold.markdown", + "source.zig storage.type.function" + ], + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "BOLD-ITALIC", + "scope": [ + "markup.quote markup.bold", + "text.html punctuation.section.embedded", + "variable.other.c", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "source.rust meta.attribute.rust", + "meta.attribute.id entity.other.attribute-name", + "source.ocaml punctuation.definition.tag emphasis", + "source.tf entity.name", + "markup.quote punctuation.definition", + "markup.fenced_code punctuation.definition", + "fenced_code.block.language" + ], + "settings": { + "fontStyle": "bold italic" + } + }, + { + "name": "NORMAL", + "scope": [ + "keyword.begin.tag.ejs", + "source.python meta.function.decorator.python support.type.python", + "source.cs keyword.other", + "keyword.other.var.cs", + "source.go keyword", + "storage.modifier.static.rust", + "variable.parameter.r", + "variable.parameter.handlebars", + "storage.modifier.import", + "storage.modifier.package", + "meta.class.identifier storage.modifier", + "keyword.operator.other.powershell", + "source.css variable.parameter", + "string.interpolated variable.parameter", + "source.apacheconf keyword", + "keyword.other.julia", + "storage.modifier.using.vala", + "source.objc keyword.other.property.attribute", + "source.sql keyword.other", + "keyword.other.using.vala", + "keyword.operator.function.infix", + "keyword.control.directive", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "entity.name.function.swift", + "keyword.control.class", + "keyword.control.def", + "punctuation.definition.variable", + "entity.name.section.latex", + "source.ocaml keyword markup.underline", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "keyword.format.specifier.fsharp", + "entity.name.section.fsharp", + "binding.fsharp keyword", + "binding.fsharp keyword.symbol", + "record.fsharp keyword", + "keyword.symbol.fsharp", + "entity.name.section.fsharp keyword", + "namespace.open.fsharp keyword", + "namespace.open.fsharp entity", + "storage.type", + "source.cpp keyword.other", + "source.c keyword.other", + "keyword.other.unit", + "storage.modifier.array.bracket", + "meta.import.haskell keyword", + "keyword.declaration.dart", + "source.wsd keyword.other", + "keyword.other.skinparam", + "source.css keyword.control", + "source.css keyword.operator", + "keyword.language.gherkin.feature.scenario", + "keyword.control.cucumber.table", + "source.toml entity.other.attribute-name", + "source.toml keyword", + "keyword.other.nim", + "source.nim keyword.other.common.function", + "source.nim keyword.other", + "source.scala keyword.declaration", + "source.scala entity.name.class.declaration", + "keyword.control.lua", + "source.css punctuation.section", + "punctuation.section.embedded", + "source.c punctuation.section", + "source.cpp punctuation.section", + "source.java punctuation.section", + "source.php punctuation.section", + "source.powershell punctuation.section", + "source.r punctuation.section", + "source.ruby punctuation.section", + "source.swift punctuation.section", + "source.objc punctuation.section", + "source.zig keyword.constant.bool", + "source.zig keyword.default", + "source.zig keyword.statement", + "source.zig keyword.constant.default" + ], + "settings": { + "fontStyle": "" + } + }, + { + "name": "STRIKETHROUGH", + "scope": [ + "markup.strikethrough" + ], + "settings": { + "fontStyle": "strikethrough" + } + } + ] +} \ No newline at end of file diff --git a/assets/themes/src/vscode/noctis/bordo.json b/assets/themes/src/vscode/noctis/bordo.json new file mode 100644 index 0000000000..a6c4853c3b --- /dev/null +++ b/assets/themes/src/vscode/noctis/bordo.json @@ -0,0 +1,1112 @@ +{ + "name": "Noctis Bordo", + "type": "dark", + "colors": { + "selection.background": "#88445cbb", + "descriptionForeground": "#bb778f", + "errorForeground": "#e34e1c", + "widget.shadow": "#00000044", + "editor.background": "#322a2d", + "editor.foreground": "#cbbec2", + "editorLineNumber.foreground": "#715b63", + "editorLineNumber.activeForeground": "#bb778f", + "editorCursor.foreground": "#ffb3cd", + "badge.background": "#f18eb0", + "badge.foreground": "#1f191b", + "activityBar.background": "#322a2d", + "activityBar.dropBackground": "#bb778f65", + "activityBar.border": "#1f191b", + "activityBar.foreground": "#997582", + "activityBar.inactiveForeground": "#99758277", + "activityBarBadge.background": "#f18eb0", + "activityBarBadge.foreground": "#1f191b", + "activityBar.activeBackground": "#f18eb033", + "activityBar.activeBorder": "#f18eb0", + "sideBar.background": "#2c2528", + "sideBar.dropBackground": "#2c2528", + "sideBar.border": "#1f191b", + "sideBar.foreground": "#bbaab0", + "sideBarSectionHeader.background": "#413036", + "sideBarSectionHeader.foreground": "#bbaab0", + "sideBarTitle.foreground": "#bbaab0", + "sideBarSectionHeader.border": "#1f191b", + "statusBar.foreground": "#997582", + "statusBar.background": "#322a2d", + "statusBar.border": "#1f191b", + "statusBar.debuggingBackground": "#322a2d", + "statusBar.debuggingForeground": "#ff80ac50", + "statusBar.debuggingBorder": "#ff80acaf", + "statusBar.noFolderForeground": "#a48e96", + "statusBar.noFolderBackground": "#322a2d", + "statusBar.noFolderBorder": "#322a2d", + "statusBarItem.activeBackground": "#8f566a77", + "statusBarItem.hoverBackground": "#8f566a33", + "statusBarItem.prominentBackground": "#272022", + "statusBarItem.prominentHoverBackground": "#43142488", + "button.background": "#007f99", + "button.foreground": "#edebff", + "button.hoverBackground": "#0ac", + "dropdown.background": "#413036", + "dropdown.border": "#413036", + "dropdown.foreground": "#bb778f", + "editorMarkerNavigation.background": "#5f3a4729", + "editorMarkerNavigationError.background": "#e34e1c", + "editorMarkerNavigationWarning.background": "#e69533", + "editorError.border": "#322a2d", + "editorError.foreground": "#e34e1c", + "editorWarning.border": "#322a2d", + "editorWarning.foreground": "#e69533", + "editorInfo.border": "#322a2d", + "editorInfo.foreground": "#40d4e7", + "editorHint.border": "#49e9a600", + "editorHint.foreground": "#49e9a6", + "editorGroup.emptyBackground": "#715b6333", + "editorGroup.border": "#1f191b", + "editorGroup.dropBackground": "#715b6333", + "editorGroupHeader.noTabsBackground": "#413036", + "editorGroupHeader.tabsBackground": "#413036", + "editorGroupHeader.tabsBorder": "#413036", + "tab.activeBackground": "#322a2d", + "tab.unfocusedActiveBackground": "#38232b", + "tab.activeForeground": "#f18eb0", + "tab.border": "#1f191b", + "tab.inactiveBackground": "#413036", + "tab.inactiveForeground": "#bbaab0", + "tab.unfocusedActiveForeground": "#bbaab0", + "tab.unfocusedInactiveForeground": "#bbaab0", + "tab.activeBorderTop": "#f18eb0", + "tab.activeModifiedBorder": "#49e9a6", + "tab.activeBorder": "#322a2d", + "tab.unfocusedActiveBorder": "#322a2d", + "tab.unfocusedHoverBackground": "#f18eb021", + "textBlockQuote.background": "#322a2d", + "textBlockQuote.border": "#997582", + "textCodeBlock.background": "#322a2d", + "textLink.activeForeground": "#f18eb0", + "textLink.foreground": "#f18eb0", + "textPreformat.foreground": "#ffc180", + "textSeparator.foreground": "#322a2d", + "walkThrough.embeddedEditorBackground": "#322a2d", + "welcomePage.buttonBackground": "#272022", + "welcomePage.buttonHoverBackground": "#413036", + "input.background": "#272022", + "input.border": "#412a32", + "input.foreground": "#ddd5d7", + "input.placeholderForeground": "#a48e96", + "inputOption.activeBorder": "#997582", + "inputValidation.errorForeground": "#ff4000", + "inputValidation.errorBackground": "#501502ee", + "inputValidation.errorBorder": "#691c02", + "inputValidation.infoForeground": "#40d4e7", + "inputValidation.infoBackground": "#0f6e7bee", + "inputValidation.infoBorder": "#148f9f", + "inputValidation.warningForeground": "#e69533", + "inputValidation.warningBackground": "#82694acc", + "inputValidation.warningBorder": "#a88457", + "editorWidget.background": "#413036", + "editorWidget.border": "#1f191b", + "editorHoverWidget.background": "#3e2e33", + "editorHoverWidget.border": "#1f191b", + "editorSuggestWidget.background": "#3e2e33", + "editorSuggestWidget.border": "#1f191b", + "editorSuggestWidget.foreground": "#bbaab0", + "editorSuggestWidget.highlightForeground": "#f18eb0", + "editorSuggestWidget.selectedBackground": "#563440", + "editorGutter.background": "#322a2d", + "editorGutter.addedBackground": "#8ce99a", + "editorGutter.deletedBackground": "#e34e1c", + "editorGutter.modifiedBackground": "#ffc180", + "editor.selectionBackground": "#99758255", + "editor.selectionHighlightBackground": "#7f536299", + "editor.inactiveSelectionBackground": "#99758233", + "editor.wordHighlightStrongBackground": "#cc990033", + "editor.wordHighlightBackground": "#e4b78133", + "editor.findMatchBackground": "#40bf6a11", + "editor.findMatchHighlightBackground": "#0e667179", + "editor.findRangeHighlightBackground": "#49e9a622", + "editor.hoverHighlightBackground": "#9975823f", + "editor.lineHighlightBackground": "#453138aa", + "editor.lineHighlightBorder": "#45313899", + "editor.rangeHighlightBackground": "#49d6e922", + "editorLink.activeForeground": "#14a5ff", + "editorWhitespace.foreground": "#ffccde21", + "editorIndentGuide.background": "#48373d", + "editorIndentGuide.activeBackground": "#7f5362", + "editorBracketMatch.background": "#99758222", + "editorBracketMatch.border": "#997582", + "editorRuler.foreground": "#593a46", + "editorCodeLens.foreground": "#776284", + "terminal.ansiBlack": "#47393e", + "terminal.ansiRed": "#e66533", + "terminal.ansiGreen": "#49e9a6", + "terminal.ansiYellow": "#e4b781", + "terminal.ansiBlue": "#49ace9", + "terminal.ansiMagenta": "#df769b", + "terminal.ansiCyan": "#49d6e9", + "terminal.ansiWhite": "#b9acb0", + "terminal.ansiBrightBlack": "#69545b", + "terminal.ansiBrightRed": "#e97749", + "terminal.ansiBrightGreen": "#60ebb1", + "terminal.ansiBrightYellow": "#e69533", + "terminal.ansiBrightBlue": "#60b6eb", + "terminal.ansiBrightMagenta": "#e798b3", + "terminal.ansiBrightCyan": "#60dbeb", + "terminal.ansiBrightWhite": "#cbbec2", + "terminal.background": "#272022", + "terminal.foreground": "#cbbec2", + "terminalCursor.background": "#272022", + "terminalCursor.foreground": "#cbbec2", + "merge.border": "#322a2d00", + "merge.currentContentBackground": "#85f1ff22", + "merge.currentHeaderBackground": "#85f1ff44", + "merge.incomingContentBackground": "#9d92f222", + "merge.incomingHeaderBackground": "#9d92f244", + "merge.commonContentBackground": "#ffc18022", + "merge.commonHeaderBackground": "#ffc18044", + "editorOverviewRuler.currentContentForeground": "#85f1ff44", + "editorOverviewRuler.incomingContentForeground": "#9d92f244", + "editorOverviewRuler.commonContentForeground": "#ffc18044", + "editorOverviewRuler.border": "#322a2d", + "notificationCenter.border": "#413036", + "notificationCenterHeader.foreground": "#a48e96", + "notificationCenterHeader.background": "#413036", + "notificationToast.border": "#413036", + "notifications.foreground": "#ddd5d7", + "notifications.background": "#413036", + "notifications.border": "#413036", + "notificationLink.foreground": "#a48e96", + "diffEditor.insertedTextBackground": "#16b67327", + "diffEditor.removedTextBackground": "#e6653341", + "debugToolBar.background": "#322a2d", + "debugExceptionWidget.background": "#322a2d", + "debugExceptionWidget.border": "#997582", + "extensionButton.prominentBackground": "#008c99", + "extensionButton.prominentForeground": "#e4e2f9", + "extensionButton.prominentHoverBackground": "#00bbcc", + "focusBorder": "#413036", + "foreground": "#cbbec2", + "panel.background": "#272022", + "panel.border": "#997582", + "panelTitle.activeBorder": "#997582", + "panelTitle.activeForeground": "#f18eb0", + "panelTitle.inactiveForeground": "#936c7a", + "peekView.border": "#997582", + "peekViewEditor.background": "#2c2125", + "peekViewEditor.matchHighlightBackground": "#88445c55", + "peekViewEditorGutter.background": "#2c2125", + "peekViewResult.background": "#322529", + "peekViewResult.fileForeground": "#ffc180", + "peekViewResult.lineForeground": "#a48e96", + "peekViewResult.matchHighlightBackground": "#47393e", + "peekViewResult.selectionBackground": "#47393e", + "peekViewResult.selectionForeground": "#a48e96", + "peekViewTitle.background": "#322529", + "peekViewTitleDescription.foreground": "#a48e96", + "peekViewTitleLabel.foreground": "#ffc180", + "progressBar.background": "#f18eb0", + "scrollbar.shadow": "#00000044", + "scrollbarSlider.activeBackground": "#eb609155", + "scrollbarSlider.background": "#eb609133", + "scrollbarSlider.hoverBackground": "#eb609144", + "gitDecoration.addedResourceForeground": "#16b673", + "gitDecoration.modifiedResourceForeground": "#49e9a6", + "gitDecoration.deletedResourceForeground": "#e34e1c", + "gitDecoration.untrackedResourceForeground": "#40d4e7", + "gitDecoration.ignoredResourceForeground": "#5b788b", + "gitDecoration.conflictingResourceForeground": "#ffc180", + "pickerGroup.border": "#997582", + "pickerGroup.foreground": "#f18eb0", + "list.activeSelectionBackground": "#5c2e3e99", + "list.activeSelectionForeground": "#edebff", + "list.dropBackground": "#38292e", + "list.focusBackground": "#824a5e66", + "list.focusForeground": "#edebff", + "list.highlightForeground": "#f18eb0", + "list.hoverBackground": "#533641", + "list.hoverForeground": "#edebff", + "list.inactiveFocusBackground": "#2c2528", + "list.inactiveSelectionBackground": "#3b2b31", + "list.inactiveSelectionForeground": "#cbbec2", + "list.errorForeground": "#e34e1c", + "list.warningForeground": "#ffa857", + "listFilterWidget.background": "#202040", + "listFilterWidget.outline": "#49e9a6", + "listFilterWidget.noMatchesOutline": "#e34e1c", + "tree.indentGuidesStroke": "#715b63", + "settings.headerForeground": "#cbbec2", + "settings.modifiedItemIndicator": "#15ac31", + "settings.dropdownListBorder": "#824a5e77", + "settings.dropdownBackground": "#413036", + "settings.dropdownForeground": "#0ac", + "settings.dropdownBorder": "#413036", + "settings.checkboxBackground": "#413036", + "settings.checkboxForeground": "#0ac", + "settings.checkboxBorder": "#413036", + "settings.textInputBackground": "#413036", + "settings.textInputForeground": "#0ac", + "settings.textInputBorder": "#413036", + "settings.numberInputBackground": "#272022", + "settings.numberInputForeground": "#7060eb", + "settings.numberInputBorder": "#272022", + "breadcrumb.foreground": "#bbaab0", + "breadcrumb.background": "#322a2d", + "breadcrumb.focusForeground": "#f18eb0", + "breadcrumb.activeSelectionForeground": "#edebff", + "breadcrumbPicker.background": "#413036", + "titleBar.activeBackground": "#322a2d", + "titleBar.activeForeground": "#cbbec2", + "titleBar.inactiveBackground": "#322a2d", + "titleBar.inactiveForeground": "#bbaab0", + "menu.background": "#413036", + "menu.foreground": "#bbaab0", + "menu.selectionBackground": "#824a5e66", + "menu.selectionForeground": "#f18eb0", + "menu.selectionBorder": "#824a5e66", + "menu.separatorBackground": "#f18eb0", + "menubar.selectionBackground": "#824a5e66", + "menubar.selectionForeground": "#f18eb0", + "menubar.selectionBorder": "#824a5e66", + "editor.snippetTabstopHighlightBackground": "#272022", + "editor.snippetTabstopHighlightBorder": "#2c2528", + "editor.snippetFinalTabstopHighlightBackground": "#272022", + "editor.snippetFinalTabstopHighlightBorder": "#2c2528", + "minimap.findMatchHighlight": "#f18eb0ee", + "minimap.errorHighlight": "#e34e1cee", + "minimap.warningHighlight": "#e69533ee", + "minimapGutter.addedBackground": "#16b673", + "minimapGutter.modifiedBackground": "#49e9a6", + "minimapGutter.deletedBackground": "#e34e1c", + "minimap.background": "#322a2d99" + }, + "tokenColors": [ + { + "name": "COMMENT", + "scope": [ + "comment", + "punctuation.definition.comment", + "punctuation.definition.tag", + "comment.block.documentation punctuation.definition.bracket", + "source.ocaml comment constant.regexp meta.separator", + "markup.other.anchor support.constant", + "markup.fenced_code", + "markup.fenced_code punctuation.definition", + "punctuation.definition.heading", + "punctuation.definition.bold.markdown", + "punctuation.definition.italic.markdown", + "punctuation.definition.strikethrough.markdown" + ], + "settings": { + "foreground": "#8b747c" + } + }, + { + "name": "TEXT", + "scope": [ + "constant.character", + "constant.escape", + "text.html.markdown", + "punctuation.definition.list_item", + "keyword.begin.tag.ejs", + "constant.name.attribute.tag.pug", + "source.clojure meta.symbol", + "constant.other.description.jsdoc", + "keyword.other.array.phpdoc.php", + "keyword.operator.other.powershell", + "meta.link.inline punctuation.definition.string", + "source.sql", + "source meta.brace", + "source punctuation", + "text.html punctuation", + "markup meta punctuation.definition", + "meta.bracket.julia", + "meta.array.julia", + "entity.name.footnote", + "source.ocaml punctuation.definition.tag", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "entity.other.attribute-name strong", + "binding.fsharp keyword.symbol.fsharp", + "entity.name.record.field.elm", + "entity.name.record.field.accessor.elm", + "storage.modifier.array.bracket", + "source.css entity.other", + "meta.attribute-selector punctuation.definition.entity", + "markup.other.anchor string", + "punctuation.separator", + "punctuation.section", + "punctuation.terminator" + ], + "settings": { + "foreground": "#cbbec2" + } + }, + { + "name": "KEYWORD", + "scope": [ + "keyword", + "keyword.control", + "keyword.other.template", + "keyword.other.substitution", + "storage.modifier", + "meta.tag.sgml", + "punctuation.accessor", + "constant.other.color", + "entity.name.section", + "markup.heading", + "markup.heading punctuation.definition", + "entity.other.attribute-name.pseudo-class", + "entity.other.attribute-name.pseudo-element", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "storage.type.function.pug", + "text.pug storage.type", + "text.pug meta.tag.other", + "source.clojure storage.control", + "meta.expression.clojure", + "punctuation.separator.slice.python", + "punctuation.separator.question-mark.cs", + "punctuation.definition.parameters.varargs", + "source.go keyword.operator", + "punctuation.separator.pointer-access", + "punctuation.separator.other.ruby", + "keyword.package", + "keyword.import", + "punctuation.definition.keyword", + "punctuation.separator.hash.cs", + "entity.other.attribute-name.pseudo-class.css punctuation.definition.entity.css", + "entity.other.attribute-name.pseudo-element.css punctuation.definition.entity.css", + "source.kotlin storage.type.import", + "source.kotlin storage.type.package", + "constant.string.documentation.powershell", + "punctuation.section.directive", + "storage.type.rust", + "punctuation.definition.attribute", + "punctuation.definition.preprocessor", + "punctuation.separator.namespace", + "punctuation.separator.method", + "keyword.control punctuation.definition.function", + "source.ocaml variable.interpolation string", + "source.reason variable.interpolation", + "punctuation.definition.directive", + "storage.type.modifier", + "keyword.other.class.fileds", + "source.toml entity.other.attribute-name", + "source.css entity.name.tag.custom", + "sharing.modifier", + "keyword.control.class.ruby", + "keyword.control.def.ruby" + ], + "settings": { + "foreground": "#df769b" + } + }, + { + "name": "VARIABLE", + "scope": [ + "variable", + "variable.object", + "variable.other", + "variable.parameter", + "support", + "entity.name.module", + "variable.import.parameter", + "variable.other.class", + "meta.toc-list.id.html", + "source.json meta.structure.dictionary.json support.type.property-name.json", + "meta.var.clojure", + "entity.name.variable", + "source.java meta.class.body.java", + "entity.name.package.go", + "source.c", + "source.cpp", + "source.go", + "source.python", + "meta.function-call.arguments.python", + "source.ruby", + "source.coffee.embedded.source", + "source.coffee", + "storage.modifier.import", + "storage.modifier.package", + "storage.type.annotation", + "punctuation.definition.annotation", + "source.groovy.embedded.source", + "punctuation.definition.variable", + "source.powershell", + "string.quoted.interpolated.vala constant.character.escape.vala", + "source.apacheconf", + "source.objc", + "source.crystal", + "string.quoted.double.kotlin entity.string.template.element.kotlin", + "entity.name.package.kotlin", + "meta.template.expression.kotlin", + "parameter.variable.function", + "variable.other.constant.elixir", + "source.elixir.embedded.source", + "source.sql.embedded", + "punctuation.definition.placeholder", + "source.swift", + "source.julia", + "source.shell", + "variable.other.normal punctuation.definition.variable.shell", + "source.reason variable.language", + "source.reason variable.language string.other.link", + "source.elm meta.value", + "source.elm meta.declaration.module", + "meta.embedded.block variable punctuation.definition.variable.php", + "string.quoted.double.class.other", + "source.toml keyword", + "support.type.nim", + "source.tf meta.template.expression", + "source.scala entity.name.import", + "markup.code", + "markup.fenced_code.block" + ], + "settings": { + "foreground": "#e4b781" + } + }, + { + "name": "ANNOTATION", + "scope": [ + "support.variable.property", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "entity.other.attribute-name.id", + "entity.other.attribute-name.id punctuation.definition.entity", + "entity.name.type.annotation.kotlin", + "support.type.primitive", + "meta.type.parameters entity.name.type", + "meta.type.annotation entity.name.type", + "punctuation.definition.typeparameters", + "source.python support.type.python", + "comment.block.documentation.phpdoc.php keyword.other.type.php", + "storage.type.php", + "keyword.type", + "storage.type.cs", + "storage.type.c", + "storage.type.objc", + "punctuation.definition.storage.type.objc", + "markup punctuation.definition", + "storage.type.powershell", + "comment.block.documentation entity.name.type", + "source.java storage.type", + "storage.type.primitive", + "source.groovy storage.type", + "storage.type.r", + "source.haskell storage.type", + "punctuation.separator.clause-head-body", + "source.go storage.type", + "storage.type.core.rust", + "storage.class.std.rust", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "support.type.vb", + "entity.name.type.kotlin", + "support.type.julia", + "constant.other.reference", + "source.graphql support.type", + "source.reason support.type string", + "entity.name.type.fsharp", + "source.elm storage.type", + "storage.type.user-defined", + "storage.type.built-in", + "support.type.builtin", + "source.swift support.type", + "support.class.crystal", + "storage.type.integral", + "source.cpp storage.type.cpp", + "source.vala storage.type", + "source.hlsl storage.type.basic", + "source.hlsl support.type.other", + "source.apex storage.type", + "source.nim storage.type", + "source.cpp entity.name.type", + "support.class.builtin", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "markup.raw.monospace", + "markup.mark", + "entity.name.type.primitive", + "entity.name.type.numeric" + ], + "settings": { + "foreground": "#d67e5c" + } + }, + { + "name": "CONSTANT", + "scope": [ + "constant", + "variable.other.constant", + "support.constant", + "punctuation.definition.entity", + "constant.character.entity", + "support.variable.magic", + "markup.quote", + "entity.name.type.type-parameter.cs", + "punctuation.bracket.angle", + "entity.name.function.preprocessor.c", + "storage.type.scala", + "entity.helper.apacheconf", + "variable.language.crystal", + "punctuation.definition.constant", + "support.constant punctuation.definition.variable", + "constant.character.math", + "support.class.math", + "source.graphql constant.character", + "source.reason constant.language.list", + "source.cpp variable.other.enummember", + "support.variable.class.hideshow", + "entity.other.attribute-name.class", + "meta.attribute.id entity.other.attribute-name", + "text.html entity.other.attribute-name", + "meta.tag.attributes entity.other.attribute-name", + "text.xml entity.other.attribute-name", + "source.cs entity.other.attribute-name", + "constant.character.format.placeholder", + "constant.other.placeholder", + "source.vue entity.other.attribute-name", + "entity.other.attribute-name.mjml", + "source.vue meta.directive punctuation.separator.key-value", + "meta.definition.attribute-entry punctuation.separator" + ], + "settings": { + "foreground": "#d5971a" + } + }, + { + "name": "TAG", + "scope": [ + "variable.language", + "variable.parameter.function.language.special", + "punctuation.definition.italic", + "punctuation.definition.bold", + "entity.name.tag", + "variable.language punctuation.definition.variable", + "keyword.control.clojure", + "support.type.exception.python", + "keyword.other.this.cs", + "keyword.other.base.cs", + "keyword.other.var.cs", + "storage.modifier.super", + "source.go keyword", + "keyword.function.go", + "meta.separator", + "keyword.other.fn.rust", + "storage.modifier.static.rust", + "source.r meta.function.r keyword.control.r", + "storage.type.def", + "meta.class.identifier storage.modifier", + "source.scala keyword.declaration", + "storage.type", + "comment.block.documentation punctuation.definition.block.tag", + "comment.block.documentation punctuation.definition.inline.tag", + "entity.tag.apacheconf", + "keyword.other.julia", + "source.julia storage.modifier", + "constant.language.empty-list.haskell", + "meta.function.powershell storage.type.powershell", + "keyword.control.fun", + "punctuation.terminator.function", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "keyword.control.class", + "keyword.control.def", + "source.ocaml keyword markup.underline", + "source.ocaml storage.type markup.underline", + "binding.fsharp keyword", + "function.anonymous keyword", + "function.anonymous keyword.symbol.fsharp", + "meta.embedded.block variable.language punctuation.definition.variable.php", + "keyword.declaration.dart", + "source.wsd keyword.other.class", + "source.wsd keyword.other.linebegin", + "keyword.other.skinparam.keyword", + "keyword.other.nim", + "markup.deleted.diff", + "source.tf support.class.variable", + "meta.function.lua keyword.control.lua", + "markup.block entity.name.tag", + "markup.meta.attribute-list", + "source.zig keyword.default", + "source.zig keyword.structure" + ], + "settings": { + "foreground": "#e66533" + } + }, + { + "name": "STRING", + "scope": [ + "string", + "punctuation.definition.string", + "source.css support.constant", + "entity.name.import.go", + "markup.raw.texttt", + "markup.inserted.diff", + "source.scala punctuation.definition.character", + "constant.character.literal.scala", + "source.tf entity.name" + ], + "settings": { + "foreground": "#49e9a6" + } + }, + { + "name": "STRINGINTERPOLATED", + "scope": [ + "string.template", + "punctuation.definition.string.template", + "string.interpolated.python string.quoted.single.python", + "string.quoted.double.heredoc", + "string.quoted.interpolated.vala", + "string.quoted.interpolated.vala punctuation.definition.string", + "string.regexp.apacheconf", + "markup.inline.raw.string", + "markup.inline.raw punctuation.definition.raw", + "string.quoted.double.interpolated.crystal", + "string.quoted.double.interpolated.crystal punctuation.definition.string", + "text.tex markup.raw" + ], + "settings": { + "foreground": "#16b673" + } + }, + { + "name": "NUMBER", + "scope": [ + "constant.numeric", + "constant.language", + "punctuation.separator.decimal.period.php", + "keyword.operator.null-conditional.cs", + "punctuation.separator.question-mark.cs", + "constant.integer.apacheconf", + "keyword.operator.nullable-type", + "constant.language punctuation.definition.variable", + "constant.others.fsharp", + "keyword.other.unit", + "string.quoted.double.skinparam.value", + "source.toml constant", + "source.zig keyword.constant.bool", + "source.zig keyword.constant.default" + ], + "settings": { + "foreground": "#7060eb" + } + }, + { + "name": "FUNCTION", + "scope": [ + "variable.function", + "support.type.property-name", + "entity.name.function", + "string.other.link", + "markup.link", + "support.type.vendored", + "support.other.variable", + "meta.function-call.generic.python", + "meta.method-call.groovy meta.method.groovy", + "meta.class.body.groovy meta.method.body.java storage.type.groovy", + "punctuation.definition.decorator", + "support.function.any-method", + "text.tex support.function", + "text.tex punctuation.definition.function", + "entity.name.section.fsharp entity.name.section.fsharp", + "support.variable.class.function", + "keyword.control.cucumber.table", + "punctuation.decorator", + "source.tf support.class" + ], + "settings": { + "foreground": "#16a3b6" + } + }, + { + "name": "SUPPORT", + "scope": [ + "entity.name", + "entity.other", + "support.orther.namespace.use.php", + "meta.use.php", + "support.other.namespace.php", + "support.type", + "support.class", + "punctuation.definition.parameters", + "support.function", + "support.function.construct", + "markup.changed.git_gutter", + "markup.underline.link", + "markup.underline.link.image", + "markup.underline", + "meta.symbol.namespace.clojure", + "entity.mime-type.apacheconf", + "keyword.operator.function.infix", + "entity.name.function.infix", + "entity.name.function.call.kotlin", + "text.tex support.function.verb", + "text.tex support.function.texttt", + "source.reason constant.language.unit", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "constant.language.unit.fsharp", + "source.wsd support.class.preprocessings", + "keyword.language.gherkin.feature.scenario", + "source.nim keyword.other.common.function", + "entity.name.type.namespace", + "entity.name.scope-resolution.function.call" + ], + "settings": { + "foreground": "#49d6e9" + } + }, + { + "name": "MISC", + "scope": [ + "source.js constant.other.object.key.js string.unquoted.label.js", + "source.js punctuation.section.embedded", + "punctuation.definition.template-expression", + "support.class", + "storage.type.string.python", + "string.interpolated.pug", + "support.constant.handlebars", + "source.clojure punctuation.section.set", + "source.clojure punctuation.section.metadata", + "entity.global.clojure", + "source.python meta.function-call.python support.type.python", + "entity.other.inherited-class.python", + "punctuation.definition.interpolation", + "punctuation.section.embedded.begin.ruby", + "punctuation.section.embedded.end.ruby source.ruby", + "support.constant.math", + "entity.namespace.r", + "meta.method-call.groovy storage.type.groovy", + "source.scala entity.name.class.declaration", + "constant.character.escape", + "support.function.macro.julia", + "string.replacement.apacheconf", + "storage.modifier.using.vala", + "constant.other.haskell", + "source.objc entity.name.tag", + "string.quoted.other.literal.upper.crystal punctuation.definition.string", + "meta.embedded.line.crystal punctuation.section.embedded", + "meta.embedded.line.crystal punctuation.section.embedded source.crystal", + "punctuation.section.embedded", + "punctuation.section.tag", + "punctuation.section.embedded source.swift", + "variable.other.bracket punctuation.definition.variable", + "string.interpolated.dollar punctuation.definition.string", + "constant.character.escape punctuation.definition.keyword", + "source.ocaml entity.name.class constant.numeric", + "source.reason entity.name.class", + "keyword.format.specifier.fsharp", + "support.module.elm", + "meta.embedded.block.php punctuation.definition.variable.php", + "source.vala storage.type", + "support.variable.class.group", + "entity.name.type.class", + "source.tf meta.keyword.list", + "source.tf meta.keyword.map", + "entity.name.class.lua", + "markup.substitution" + ], + "settings": { + "foreground": "#49ace9" + } + }, + { + "name": "INVALID", + "scope": [ + "invalid", + "invalid.illegal" + ], + "settings": { + "foreground": "#e3541c" + } + }, + { + "name": "ITALIC", + "scope": [ + "comment", + "storage.modifier", + "punctuation.definition.comment", + "entity.other", + "variable.language", + "support.type.vendored", + "support.constant.vendored", + "markup.quote", + "markup.italic", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "keyword.control.clojure", + "source.clojure meta.symbol.dynamic", + "keyword.other.this.cs", + "keyword.other.base.cs", + "variable.other.member.c", + "support.type.core.rust", + "variable.other.object.property", + "variable.other.property", + "source.r meta.function.r keyword.control.r", + "comment.line.roxygen.r keyword", + "comment.line.roxygen.r variable.parameter.r", + "keyword.control.inheritance.coffee", + "comment.block.documentation.phpdoc.php keyword", + "keyword.other.array.phpdoc.php", + "storage.type.modifier", + "comment.block.javadoc.java keyword", + "comment.block.javadoc.java variable.parameter.java", + "keyword.operator.documentation.powershell", + "storage.type.scala", + "variable.parameter.function.language.special", + "comment.block.documentation.scala keyword", + "comment.block.documentation.scala variable.parameter", + "support.function.builtin.go", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.ruby", + "source.vala storage.type.generic", + "constant.other.table-name", + "constant.other.placeholder", + "variable.other.field", + "entity.alias.import.go", + "source.swift keyword.other.declaration-specifier", + "support.variable.swift", + "keyword.other.capture-specifier", + "text.tex support.function.emph", + "constant.other.math", + "support.function.textit", + "entity.name.footnote", + "entity.name.function.directive.graphql", + "source.graphql support.type.enum", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "abstract.definition.fsharp keyword", + "abstract.definition.fsharp entity", + "function.anonymous keyword", + "entity.name.record.field.accessor.elm", + "support.type.primitive", + "support.type.builtin", + "keyword.type.cs", + "storage.type.built-in", + "storage.type.primitive", + "source.python support.type.python", + "storage.type.core.rust", + "source.swift support.type", + "source.go storage.type", + "storage.type.php", + "storage.type.function.kotlin", + "entity.name.type.kotlin", + "support.type.julia", + "variable.other.member", + "keyword.other.import", + "keyword.package", + "keyword.import", + "source.wsd keyword.control.diagram", + "keyword.language.gherkin.feature.step", + "source.hlsl storage.type.basic", + "source.apex keyword.type", + "sharing.modifier", + "source.nim storage.type.concrete", + "meta.preprocessor.pragma.nim", + "storage.type.integral", + "entity.name.scope-resolution.function.call", + "support.class.builtin", + "comment.block.documentation storage.type.class", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "meta.import keyword.control", + "keyword.control.export", + "source.vue meta.directive punctuation.separator.key-value", + "keyword.local.lua", + "markup.mark.constrained markup.mark", + "markup.block.open", + "entity.name.type.primitive", + "entity.name.type.numeric", + "source.zig keyword.type", + "source.zig keyword.storage", + "source.zig keyword.structure" + ], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "BOLD", + "scope": [ + "keyword", + "keyword.control", + "keyword.operator", + "keyword.other.template", + "keyword.other.substitution", + "storage.type.function.arrow", + "constant.other.color", + "punctuation.accessor", + "entity.name.section", + "markdown.heading", + "markup.inline.raw punctuation.definition.raw", + "markup.heading", + "storage.type.function.pug", + "storage.type.function.python", + "storage.type.annotation", + "punctuation.bracket.angle", + "keyword.other.new", + "storage.type.generic.wildcard", + "source.go keyword.operator", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "variable.parameter", + "support.function.builtin.rust", + "storage.type.function.coffee", + "entity.name.variable.parameter", + "punctuation.separator.hash.cs", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "meta.function.parameters variable.other", + "entity.name.type.annotation.kotlin", + "storage.type.objc", + "parameter.variable.function", + "markup punctuation.definition", + "punctuation.section.directive", + "punctuation.definition.preprocessor", + "source.ruby punctuation.definition.variable", + "support.function.textbf", + "source.graphql support.type.builtin", + "source.ocaml variable.interpolation string", + "entity.name.function.definition.special.constructor", + "entity.name.function.definition.special.member.destructor.", + "meta.function.parameters variable punctuation.definition.variable.php", + "source.wsd keyword.other.activity", + "keyword.control.class.ruby", + "keyword.control.def.ruby", + "keyword.function.go", + "keyword.other.fn.rust", + "markup.other.anchor", + "markup.list.bullet", + "markup.list punctuation.definition", + "keyword.control.default", + "punctuation.section", + "punctuation.separator", + "punctuation.terminator", + "markup.bold.markdown", + "source.zig storage.type.function" + ], + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "BOLD-ITALIC", + "scope": [ + "markup.quote markup.bold", + "text.html punctuation.section.embedded", + "variable.other.c", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "source.rust meta.attribute.rust", + "meta.attribute.id entity.other.attribute-name", + "source.ocaml punctuation.definition.tag emphasis", + "source.tf entity.name", + "markup.quote punctuation.definition", + "markup.fenced_code punctuation.definition", + "fenced_code.block.language" + ], + "settings": { + "fontStyle": "bold italic" + } + }, + { + "name": "NORMAL", + "scope": [ + "keyword.begin.tag.ejs", + "source.python meta.function.decorator.python support.type.python", + "source.cs keyword.other", + "keyword.other.var.cs", + "source.go keyword", + "storage.modifier.static.rust", + "variable.parameter.r", + "variable.parameter.handlebars", + "storage.modifier.import", + "storage.modifier.package", + "meta.class.identifier storage.modifier", + "keyword.operator.other.powershell", + "source.css variable.parameter", + "string.interpolated variable.parameter", + "source.apacheconf keyword", + "keyword.other.julia", + "storage.modifier.using.vala", + "source.objc keyword.other.property.attribute", + "source.sql keyword.other", + "keyword.other.using.vala", + "keyword.operator.function.infix", + "keyword.control.directive", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "entity.name.function.swift", + "keyword.control.class", + "keyword.control.def", + "punctuation.definition.variable", + "entity.name.section.latex", + "source.ocaml keyword markup.underline", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "keyword.format.specifier.fsharp", + "entity.name.section.fsharp", + "binding.fsharp keyword", + "binding.fsharp keyword.symbol", + "record.fsharp keyword", + "keyword.symbol.fsharp", + "entity.name.section.fsharp keyword", + "namespace.open.fsharp keyword", + "namespace.open.fsharp entity", + "storage.type", + "source.cpp keyword.other", + "source.c keyword.other", + "keyword.other.unit", + "storage.modifier.array.bracket", + "meta.import.haskell keyword", + "keyword.declaration.dart", + "source.wsd keyword.other", + "keyword.other.skinparam", + "source.css keyword.control", + "source.css keyword.operator", + "keyword.language.gherkin.feature.scenario", + "keyword.control.cucumber.table", + "source.toml entity.other.attribute-name", + "source.toml keyword", + "keyword.other.nim", + "source.nim keyword.other.common.function", + "source.nim keyword.other", + "source.scala keyword.declaration", + "source.scala entity.name.class.declaration", + "keyword.control.lua", + "source.css punctuation.section", + "punctuation.section.embedded", + "source.c punctuation.section", + "source.cpp punctuation.section", + "source.java punctuation.section", + "source.php punctuation.section", + "source.powershell punctuation.section", + "source.r punctuation.section", + "source.ruby punctuation.section", + "source.swift punctuation.section", + "source.objc punctuation.section", + "source.zig keyword.constant.bool", + "source.zig keyword.default", + "source.zig keyword.statement", + "source.zig keyword.constant.default" + ], + "settings": { + "fontStyle": "" + } + }, + { + "name": "STRIKETHROUGH", + "scope": [ + "markup.strikethrough" + ], + "settings": { + "fontStyle": "strikethrough" + } + } + ] +} \ No newline at end of file diff --git a/assets/themes/src/vscode/noctis/family.json b/assets/themes/src/vscode/noctis/family.json new file mode 100644 index 0000000000..26aba7e213 --- /dev/null +++ b/assets/themes/src/vscode/noctis/family.json @@ -0,0 +1,61 @@ +{ + "name": "Notctis", + "author": "Liviu Schera (liviuschera)", + "themes": [ + { + "name": "Noctis Azureus", + "file_name": "azureus.json", + "appearance": "dark" + }, + { + "name": "Noctis Bordo", + "file_name": "bordo.json", + "appearance": "dark" + }, + { + "name": "Noctus Hibernus", + "file_name": "hibernus.json", + "appearance": "light" + }, + { + "name": "Noctis Lilac", + "file_name": "lilac.json", + "appearance": "dark" + }, + { + "name": "Noctis Lux", + "file_name": "lux.json", + "appearance": "light" + }, + { + "name": "Noctis Minimus", + "file_name": "minimus.json", + "appearance": "dark" + }, + { + "name": "Noctis", + "file_name": "noctis.json", + "appearance": "dark" + }, + { + "name": "Noctis Obscuro", + "file_name": "obscuro.json", + "appearance": "dark" + }, + { + "name": "Noctis Sereno", + "file_name": "obscuro.json", + "appearance": "dark" + }, + { + "name": "Noctis Uva", + "file_name": "uva.json", + "appearance": "dark" + }, + { + "name": "Noctis Viola", + "file_name": "viola.json", + "appearance": "dark" + } + ] +} diff --git a/assets/themes/src/vscode/noctis/hibernus.json b/assets/themes/src/vscode/noctis/hibernus.json new file mode 100644 index 0000000000..a20a19289e --- /dev/null +++ b/assets/themes/src/vscode/noctis/hibernus.json @@ -0,0 +1,1108 @@ +{ + "name": "Noctis Hibernus", + "type": "light", + "colors": { + "selection.background": "#169fb177", + "descriptionForeground": "#929ea0", + "errorForeground": "#ff4000", + "widget.shadow": "#00000055", + "editor.background": "#f4f6f6", + "editor.foreground": "#005661", + "editorLineNumber.foreground": "#a0abac", + "editorLineNumber.activeForeground": "#0099ad", + "editorCursor.foreground": "#0092a8", + "badge.background": "#0099ad", + "badge.foreground": "#f4f6f6", + "activityBar.background": "#f4f6f6", + "activityBar.dropBackground": "#0099ad65", + "activityBar.foreground": "#0099ad", + "activityBar.border": "#ece2c600", + "activityBarBadge.background": "#0099ad", + "activityBarBadge.foreground": "#f4f6f6", + "activityBar.activeBackground": "#0099ad33", + "activityBar.activeBorder": "#0099ad", + "sideBar.background": "#e7f2f3", + "sideBar.foreground": "#71838e", + "sideBar.border": "#ece2c600", + "sideBar.dropBackground": "#e7f2f3", + "sideBarTitle.foreground": "#71838e", + "sideBarSectionHeader.background": "#c1def0", + "sideBarSectionHeader.foreground": "#71838e", + "statusBar.background": "#caedf2", + "statusBar.foreground": "#0099ad", + "statusBar.border": "#ece2c600", + "statusBar.debuggingBackground": "#e7f2f3", + "statusBar.debuggingForeground": "#e9498150", + "statusBar.debuggingBorder": "#e94981af", + "statusBar.noFolderForeground": "#87a7ab", + "statusBar.noFolderBackground": "#e7f2f3", + "statusBar.noFolderBorder": "#e7f2f3", + "statusBarItem.activeBackground": "#dfeff1", + "statusBarItem.hoverBackground": "#d1e8eb", + "statusBarItem.prominentBackground": "#c1d4d7", + "statusBarItem.prominentHoverBackground": "#bfdee3", + "button.background": "#099099", + "button.foreground": "#f1f1f1", + "button.hoverBackground": "#0cc", + "dropdown.background": "#f4f6f6", + "dropdown.border": "#f4f6f6", + "dropdown.foreground": "#005661", + "editorMarkerNavigation.background": "#3a3a5e29", + "editorMarkerNavigationError.background": "#ff4000", + "editorMarkerNavigationWarning.background": "#e69533", + "editorError.border": "#f4f6f6", + "editorError.foreground": "#ff4000", + "editorWarning.border": "#f4f6f6", + "editorWarning.foreground": "#e69533", + "editorInfo.border": "#f4f6f6", + "editorInfo.foreground": "#00c6e0", + "editorHint.border": "#58cc6d00", + "editorHint.foreground": "#58cc6d", + "editorGroup.emptyBackground": "#93b4b833", + "editorGroup.border": "#d0edf1", + "editorGroup.dropBackground": "#93b4b833", + "editorGroupHeader.noTabsBackground": "#caedf2", + "editorGroupHeader.tabsBackground": "#caedf2", + "editorGroupHeader.tabsBorder": "#caedf200", + "tab.activeBackground": "#f4f6f6", + "tab.unfocusedActiveBackground": "#e3f5f7", + "tab.activeForeground": "#0099ad", + "tab.border": "#b2d2e6", + "tab.inactiveBackground": "#caedf2", + "tab.inactiveForeground": "#71838e", + "tab.unfocusedActiveForeground": "#71838e", + "tab.unfocusedInactiveForeground": "#71838e", + "tab.activeBorderTop": "#00c6e0", + "tab.activeModifiedBorder": "#00b368", + "tab.activeBorder": "#f4f6f6", + "tab.unfocusedActiveBorder": "#f4f6f600", + "tab.unfocusedHoverBackground": "#0099ad21", + "textBlockQuote.background": "#e7f2f3", + "textBlockQuote.border": "#00899e", + "textCodeBlock.background": "#e7f2f3", + "textLink.activeForeground": "#00c6e0", + "textLink.foreground": "#00c6e0", + "textPreformat.foreground": "#e9a149", + "textSeparator.foreground": "#e7f2f3", + "walkThrough.embeddedEditorBackground": "#e7f2f3", + "welcomePage.buttonBackground": "#e7f2f3", + "welcomePage.buttonHoverBackground": "#caedf2", + "input.background": "#f4f6f6", + "input.border": "#e0eff1", + "input.foreground": "#6a7a7c", + "input.placeholderForeground": "#9fabad", + "inputOption.activeBorder": "#0099ad", + "inputValidation.errorBackground": "#ff400041", + "inputValidation.errorBorder": "#ff4000", + "inputValidation.infoBackground": "#00c6e0cc", + "inputValidation.infoBorder": "#00c6e0", + "inputValidation.warningBackground": "#ffa587cc", + "inputValidation.warningBorder": "#ffa487", + "editorWidget.background": "#e0eff1", + "editorWidget.border": "#ece2c600", + "editorHoverWidget.background": "#e0eff1", + "editorHoverWidget.border": "#ece2c600", + "editorSuggestWidget.background": "#e0eff1", + "editorSuggestWidget.border": "#ece2c600", + "editorSuggestWidget.foreground": "#6a7a7c", + "editorSuggestWidget.highlightForeground": "#0099ad", + "editorSuggestWidget.selectedBackground": "#bbe0f7", + "editorGutter.background": "#f4f6f6", + "editorGutter.addedBackground": "#8ce99a", + "editorGutter.deletedBackground": "#ff4000", + "editorGutter.modifiedBackground": "#e9a149", + "editor.selectionBackground": "#ade2eb77", + "editor.selectionHighlightBackground": "#14a5ff33", + "editor.selectionHighlightBorder": "#14a5ff00", + "editor.inactiveSelectionBackground": "#ade2eb55", + "editor.wordHighlightStrongBackground": "#b5890027", + "editor.wordHighlightStrongBorder": "#b5890000", + "editor.wordHighlightBackground": "#e9a14922", + "editor.wordHighlightBorder": "#e9a14900", + "editor.findMatchBackground": "#8ce99a60", + "editor.findMatchBorder": "#8ce99a00", + "editor.findMatchHighlightBackground": "#148f9f33", + "editor.findMatchHighlightBorder": "#148f9f00", + "editor.findRangeHighlightBackground": "#99e62a55", + "editor.findRangeHighlightBorder": "#58CC6D00", + "editor.hoverHighlightBackground": "#0099ad3f", + "editor.lineHighlightBackground": "#d1ebefcc", + "editor.lineHighlightBorder": "#d1ebef00", + "editor.rangeHighlightBackground": "#f1e9d5a1", + "editorLink.activeForeground": "#14a5ff", + "editorWhitespace.foreground": "#c1d4d7bb", + "editorIndentGuide.background": "#c1d4d7aa", + "editorIndentGuide.activeBackground": "#88bcc3", + "editorBracketMatch.background": "#0099ad20", + "editorBracketMatch.border": "#0099ad", + "editorRuler.foreground": "#d0edf1", + "editorCodeLens.foreground": "#77aaca", + "terminal.ansiBlack": "#003b42", + "terminal.ansiRed": "#e34e1c", + "terminal.ansiGreen": "#00b368", + "terminal.ansiYellow": "#f49725", + "terminal.ansiBlue": "#0094f0", + "terminal.ansiMagenta": "#ff5792", + "terminal.ansiCyan": "#00bdd6", + "terminal.ansiWhite": "#8ca6a6", + "terminal.ansiBrightBlack": "#004d57", + "terminal.ansiBrightRed": "#ff4000", + "terminal.ansiBrightGreen": "#00d17a", + "terminal.ansiBrightYellow": "#ff8c00", + "terminal.ansiBrightBlue": "#0fa3ff", + "terminal.ansiBrightMagenta": "#ff6b9f", + "terminal.ansiBrightCyan": "#00cbe6", + "terminal.ansiBrightWhite": "#bbc3c4", + "terminal.background": "#e1eeef", + "terminal.foreground": "#005661", + "terminalCursor.background": "#e1eeef", + "terminalCursor.foreground": "#005661", + "merge.border": "#f4f6f600", + "merge.currentContentBackground": "#33e7ff33", + "merge.currentHeaderBackground": "#33e7ff55", + "merge.incomingContentBackground": "#9d92f233", + "merge.incomingHeaderBackground": "#9d92f255", + "merge.commonContentBackground": "#ffc18033", + "merge.commonHeaderBackground": "#ffc18055", + "editorOverviewRuler.currentContentForeground": "#33e7ff55", + "editorOverviewRuler.incomingContentForeground": "#9d92f255", + "editorOverviewRuler.commonContentForeground": "#ffc18055", + "editorOverviewRuler.border": "#f4f6f6", + "notificationCenter.border": "#e0eff1", + "notificationCenterHeader.foreground": "#005661", + "notificationCenterHeader.background": "#e0eff1", + "notificationToast.border": "#e0eff1", + "notifications.foreground": "#005661", + "notifications.background": "#e0eff1", + "notifications.border": "#e0eff1", + "notificationLink.foreground": "#005661", + "diffEditor.insertedTextBackground": "#14b83230", + "diffEditor.removedTextBackground": "#BB1F0522", + "debugToolBar.background": "#e7f2f3", + "debugExceptionWidget.background": "#e7f2f3", + "debugExceptionWidget.border": "#00899e", + "extensionButton.prominentBackground": "#099099", + "extensionButton.prominentForeground": "#e5f5f5", + "extensionButton.prominentHoverBackground": "#0cc", + "focusBorder": "#e0eff1", + "foreground": "#005661", + "panel.background": "#e1eeef", + "panel.border": "#00c6e0", + "panelTitle.activeBorder": "#00c6e0", + "panelTitle.activeForeground": "#0099ad", + "panelTitle.inactiveForeground": "#71838e", + "peekView.border": "#0099ad", + "peekViewEditor.background": "#e5fcff", + "peekViewEditor.matchHighlightBackground": "#148f9f33", + "peekViewEditor.matchHighlightBorder": "#148f9f79", + "peekViewEditorGutter.background": "#e5fcff", + "peekViewResult.background": "#e7f2f3", + "peekViewResult.fileForeground": "#e9a149", + "peekViewResult.lineForeground": "#87a7ab", + "peekViewResult.matchHighlightBackground": "#e0eff1", + "peekViewResult.selectionBackground": "#e0eff1", + "peekViewResult.selectionForeground": "#6a7a7c", + "peekViewTitle.background": "#e7f2f3", + "peekViewTitleDescription.foreground": "#87a7ab", + "peekViewTitleLabel.foreground": "#e9a149", + "progressBar.background": "#00c6e0", + "scrollbar.shadow": "#00000055", + "scrollbarSlider.activeBackground": "#0099adad", + "scrollbarSlider.background": "#6a90955b", + "scrollbarSlider.hoverBackground": "#0099ad62", + "gitDecoration.addedResourceForeground": "#009456", + "gitDecoration.modifiedResourceForeground": "#14b832", + "gitDecoration.deletedResourceForeground": "#ff4000", + "gitDecoration.untrackedResourceForeground": "#00c6e0", + "gitDecoration.ignoredResourceForeground": "#a8a28faa", + "gitDecoration.conflictingResourceForeground": "#e9a149", + "pickerGroup.border": "#00c6e0", + "pickerGroup.foreground": "#0099ad", + "list.activeSelectionBackground": "#b6e1e7", + "list.activeSelectionForeground": "#005661", + "list.dropBackground": "#b2cacd", + "list.focusBackground": "#bed9ea", + "list.focusForeground": "#005661", + "list.highlightForeground": "#0099ad", + "list.hoverBackground": "#d1eafa", + "list.hoverForeground": "#005661", + "list.inactiveFocusBackground": "#c9eaed", + "list.inactiveSelectionBackground": "#c6e7ec", + "list.inactiveSelectionForeground": "#949384", + "list.errorForeground": "#c9481d", + "list.warningForeground": "#e07a52", + "listFilterWidget.background": "#d5eef1", + "listFilterWidget.outline": "#14b832", + "listFilterWidget.noMatchesOutline": "#ff4000", + "tree.indentGuidesStroke": "#d3cec5", + "settings.headerForeground": "#004d57", + "settings.modifiedItemIndicator": "#00bd23", + "settings.dropdownListBorder": "#ade2eb88", + "settings.dropdownBackground": "#e0eff1", + "settings.dropdownForeground": "#0bb", + "settings.dropdownBorder": "#e0eff1", + "settings.checkboxBackground": "#e0eff1", + "settings.checkboxForeground": "#0bb", + "settings.checkboxBorder": "#e0eff1", + "settings.textInputBackground": "#e0eff1", + "settings.textInputForeground": "#0bb", + "settings.textInputBorder": "#e0eff1", + "settings.numberInputBackground": "#d0edf1", + "settings.numberInputForeground": "#5842ff", + "settings.numberInputBorder": "#d0edf1", + "breadcrumb.foreground": "#71838e", + "breadcrumb.background": "#f4f6f6", + "breadcrumb.focusForeground": "#0099ad", + "breadcrumb.activeSelectionForeground": "#005661", + "breadcrumbPicker.background": "#e0eff1", + "titleBar.activeBackground": "#e7f2f3", + "titleBar.activeForeground": "#005661", + "titleBar.inactiveBackground": "#e7f2f3", + "titleBar.inactiveForeground": "#71838e", + "menu.background": "#e0eff1", + "menu.foreground": "#71838e", + "menu.selectionBackground": "#d1eafa", + "menu.selectionForeground": "#0099ad", + "menu.selectionBorder": "#d1eafa", + "menubar.selectionBackground": "#d1eafa", + "menubar.selectionForeground": "#0099ad", + "menubar.selectionBorder": "#d1eafa", + "editor.snippetTabstopHighlightBackground": "#abe4ed77", + "editor.snippetTabstopHighlightBorder": "#d6f1f5", + "editor.snippetFinalTabstopHighlightBackground": "#abe4ed77", + "editor.snippetFinalTabstopHighlightBorder": "#d6f1f5", + "minimap.findMatchHighlight": "#0099adaa", + "minimap.errorHighlight": "#ff4000ee", + "minimap.warningHighlight": "#e69533ee", + "minimapGutter.addedBackground": "#009456", + "minimapGutter.modifiedBackground": "#14b832", + "minimapGutter.deletedBackground": "#ff4000", + "minimap.background": "#f4f6f699" + }, + "tokenColors": [ + { + "name": "COMMENT", + "scope": [ + "comment", + "punctuation.definition.comment", + "punctuation.definition.tag", + "comment.block.documentation punctuation.definition.bracket", + "source.ocaml comment constant.regexp meta.separator", + "markup.other.anchor support.constant", + "markup.fenced_code", + "markup.fenced_code punctuation.definition", + "punctuation.definition.heading", + "punctuation.definition.bold.markdown", + "punctuation.definition.italic.markdown", + "punctuation.definition.strikethrough.markdown" + ], + "settings": { + "foreground": "#8ca6a6" + } + }, + { + "name": "TEXT", + "scope": [ + "constant.character", + "constant.escape", + "text.html.markdown", + "punctuation.definition.list_item", + "keyword.begin.tag.ejs", + "constant.name.attribute.tag.pug", + "source.clojure meta.symbol", + "constant.other.description.jsdoc", + "keyword.other.array.phpdoc.php", + "keyword.operator.other.powershell", + "meta.link.inline punctuation.definition.string", + "source.sql", + "source meta.brace", + "source punctuation", + "text.html punctuation", + "markup meta punctuation.definition", + "meta.bracket.julia", + "meta.array.julia", + "entity.name.footnote", + "source.ocaml punctuation.definition.tag", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "entity.other.attribute-name strong", + "binding.fsharp keyword.symbol.fsharp", + "entity.name.record.field.elm", + "entity.name.record.field.accessor.elm", + "storage.modifier.array.bracket", + "source.css entity.other", + "meta.attribute-selector punctuation.definition.entity", + "markup.other.anchor string", + "punctuation.separator", + "punctuation.section", + "punctuation.terminator" + ], + "settings": { + "foreground": "#004d57" + } + }, + { + "name": "KEYWORD", + "scope": [ + "keyword", + "keyword.control", + "keyword.other.template", + "keyword.other.substitution", + "storage.modifier", + "meta.tag.sgml", + "punctuation.accessor", + "constant.other.color", + "entity.name.section", + "markup.heading", + "markup.heading punctuation.definition", + "entity.other.attribute-name.pseudo-class", + "entity.other.attribute-name.pseudo-element", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "storage.type.function.pug", + "text.pug storage.type", + "text.pug meta.tag.other", + "source.clojure storage.control", + "meta.expression.clojure", + "punctuation.separator.slice.python", + "punctuation.separator.question-mark.cs", + "punctuation.definition.parameters.varargs", + "source.go keyword.operator", + "punctuation.separator.pointer-access", + "punctuation.separator.other.ruby", + "keyword.package", + "keyword.import", + "punctuation.definition.keyword", + "punctuation.separator.hash.cs", + "entity.other.attribute-name.pseudo-class.css punctuation.definition.entity.css", + "entity.other.attribute-name.pseudo-element.css punctuation.definition.entity.css", + "source.kotlin storage.type.import", + "source.kotlin storage.type.package", + "constant.string.documentation.powershell", + "punctuation.section.directive", + "storage.type.rust", + "punctuation.definition.attribute", + "punctuation.definition.preprocessor", + "punctuation.separator.namespace", + "punctuation.separator.method", + "keyword.control punctuation.definition.function", + "source.ocaml variable.interpolation string", + "source.reason variable.interpolation", + "punctuation.definition.directive", + "storage.type.modifier", + "keyword.other.class.fileds", + "source.toml entity.other.attribute-name", + "source.css entity.name.tag.custom", + "sharing.modifier", + "keyword.control.class.ruby", + "keyword.control.def.ruby" + ], + "settings": { + "foreground": "#ff5792" + } + }, + { + "name": "VARIABLE", + "scope": [ + "variable", + "variable.object", + "variable.other", + "variable.parameter", + "support", + "entity.name.module", + "variable.import.parameter", + "variable.other.class", + "meta.toc-list.id.html", + "source.json meta.structure.dictionary.json support.type.property-name.json", + "meta.var.clojure", + "entity.name.variable", + "source.java meta.class.body.java", + "entity.name.package.go", + "source.c", + "source.cpp", + "source.go", + "source.python", + "meta.function-call.arguments.python", + "source.ruby", + "source.coffee.embedded.source", + "source.coffee", + "storage.modifier.import", + "storage.modifier.package", + "storage.type.annotation", + "punctuation.definition.annotation", + "source.groovy.embedded.source", + "punctuation.definition.variable", + "source.powershell", + "string.quoted.interpolated.vala constant.character.escape.vala", + "source.apacheconf", + "source.objc", + "source.crystal", + "string.quoted.double.kotlin entity.string.template.element.kotlin", + "entity.name.package.kotlin", + "meta.template.expression.kotlin", + "parameter.variable.function", + "variable.other.constant.elixir", + "source.elixir.embedded.source", + "source.sql.embedded", + "punctuation.definition.placeholder", + "source.swift", + "source.julia", + "source.shell", + "variable.other.normal punctuation.definition.variable.shell", + "source.reason variable.language", + "source.reason variable.language string.other.link", + "source.elm meta.value", + "source.elm meta.declaration.module", + "meta.embedded.block variable punctuation.definition.variable.php", + "string.quoted.double.class.other", + "source.toml keyword", + "support.type.nim", + "source.tf meta.template.expression", + "source.scala entity.name.import", + "markup.code", + "markup.fenced_code.block" + ], + "settings": { + "foreground": "#fa8900" + } + }, + { + "name": "ANNOTATION", + "scope": [ + "support.variable.property", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "entity.other.attribute-name.id", + "entity.other.attribute-name.id punctuation.definition.entity", + "entity.name.type.annotation.kotlin", + "support.type.primitive", + "meta.type.parameters entity.name.type", + "meta.type.annotation entity.name.type", + "punctuation.definition.typeparameters", + "source.python support.type.python", + "comment.block.documentation.phpdoc.php keyword.other.type.php", + "storage.type.php", + "keyword.type", + "storage.type.cs", + "storage.type.c", + "storage.type.objc", + "punctuation.definition.storage.type.objc", + "markup punctuation.definition", + "storage.type.powershell", + "comment.block.documentation entity.name.type", + "source.java storage.type", + "storage.type.primitive", + "source.groovy storage.type", + "storage.type.r", + "source.haskell storage.type", + "punctuation.separator.clause-head-body", + "source.go storage.type", + "storage.type.core.rust", + "storage.class.std.rust", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "support.type.vb", + "entity.name.type.kotlin", + "support.type.julia", + "constant.other.reference", + "source.graphql support.type", + "source.reason support.type string", + "entity.name.type.fsharp", + "source.elm storage.type", + "storage.type.user-defined", + "storage.type.built-in", + "support.type.builtin", + "source.swift support.type", + "support.class.crystal", + "storage.type.integral", + "source.cpp storage.type.cpp", + "source.vala storage.type", + "source.hlsl storage.type.basic", + "source.hlsl support.type.other", + "source.apex storage.type", + "source.nim storage.type", + "source.cpp entity.name.type", + "support.class.builtin", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "markup.raw.monospace", + "markup.mark", + "entity.name.type.primitive", + "entity.name.type.numeric" + ], + "settings": { + "foreground": "#b3694d" + } + }, + { + "name": "CONSTANT", + "scope": [ + "constant", + "variable.other.constant", + "support.constant", + "punctuation.definition.entity", + "constant.character.entity", + "support.variable.magic", + "markup.quote", + "entity.name.type.type-parameter.cs", + "punctuation.bracket.angle", + "entity.name.function.preprocessor.c", + "storage.type.scala", + "entity.helper.apacheconf", + "variable.language.crystal", + "punctuation.definition.constant", + "support.constant punctuation.definition.variable", + "constant.character.math", + "support.class.math", + "source.graphql constant.character", + "source.reason constant.language.list", + "source.cpp variable.other.enummember", + "support.variable.class.hideshow", + "entity.other.attribute-name.class", + "meta.attribute.id entity.other.attribute-name", + "text.html entity.other.attribute-name", + "meta.tag.attributes entity.other.attribute-name", + "text.xml entity.other.attribute-name", + "source.cs entity.other.attribute-name", + "constant.character.format.placeholder", + "constant.other.placeholder", + "source.vue entity.other.attribute-name", + "entity.other.attribute-name.mjml", + "source.vue meta.directive punctuation.separator.key-value", + "meta.definition.attribute-entry punctuation.separator" + ], + "settings": { + "foreground": "#a88c00" + } + }, + { + "name": "TAG", + "scope": [ + "variable.language", + "variable.parameter.function.language.special", + "punctuation.definition.italic", + "punctuation.definition.bold", + "entity.name.tag", + "variable.language punctuation.definition.variable", + "keyword.control.clojure", + "support.type.exception.python", + "keyword.other.this.cs", + "keyword.other.base.cs", + "keyword.other.var.cs", + "storage.modifier.super", + "source.go keyword", + "keyword.function.go", + "meta.separator", + "keyword.other.fn.rust", + "storage.modifier.static.rust", + "source.r meta.function.r keyword.control.r", + "storage.type.def", + "meta.class.identifier storage.modifier", + "source.scala keyword.declaration", + "storage.type", + "comment.block.documentation punctuation.definition.block.tag", + "comment.block.documentation punctuation.definition.inline.tag", + "entity.tag.apacheconf", + "keyword.other.julia", + "source.julia storage.modifier", + "constant.language.empty-list.haskell", + "meta.function.powershell storage.type.powershell", + "keyword.control.fun", + "punctuation.terminator.function", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "keyword.control.class", + "keyword.control.def", + "source.ocaml keyword markup.underline", + "source.ocaml storage.type markup.underline", + "binding.fsharp keyword", + "function.anonymous keyword", + "function.anonymous keyword.symbol.fsharp", + "meta.embedded.block variable.language punctuation.definition.variable.php", + "keyword.declaration.dart", + "source.wsd keyword.other.class", + "source.wsd keyword.other.linebegin", + "keyword.other.skinparam.keyword", + "keyword.other.nim", + "markup.deleted.diff", + "source.tf support.class.variable", + "meta.function.lua keyword.control.lua", + "markup.block entity.name.tag", + "markup.meta.attribute-list", + "source.zig keyword.default", + "source.zig keyword.structure" + ], + "settings": { + "foreground": "#e64100" + } + }, + { + "name": "STRING", + "scope": [ + "string", + "punctuation.definition.string", + "source.css support.constant", + "entity.name.import.go", + "markup.raw.texttt", + "markup.inserted.diff", + "source.scala punctuation.definition.character", + "constant.character.literal.scala", + "source.tf entity.name" + ], + "settings": { + "foreground": "#00b368" + } + }, + { + "name": "STRINGINTERPOLATED", + "scope": [ + "string.template", + "punctuation.definition.string.template", + "string.interpolated.python string.quoted.single.python", + "string.quoted.double.heredoc", + "string.quoted.interpolated.vala", + "string.quoted.interpolated.vala punctuation.definition.string", + "string.regexp.apacheconf", + "markup.inline.raw.string", + "markup.inline.raw punctuation.definition.raw", + "string.quoted.double.interpolated.crystal", + "string.quoted.double.interpolated.crystal punctuation.definition.string", + "text.tex markup.raw" + ], + "settings": { + "foreground": "#009456" + } + }, + { + "name": "NUMBER", + "scope": [ + "constant.numeric", + "constant.language", + "punctuation.separator.decimal.period.php", + "keyword.operator.null-conditional.cs", + "punctuation.separator.question-mark.cs", + "constant.integer.apacheconf", + "keyword.operator.nullable-type", + "constant.language punctuation.definition.variable", + "constant.others.fsharp", + "keyword.other.unit", + "string.quoted.double.skinparam.value", + "source.toml constant", + "source.zig keyword.constant.bool", + "source.zig keyword.constant.default" + ], + "settings": { + "foreground": "#5842ff" + } + }, + { + "name": "FUNCTION", + "scope": [ + "variable.function", + "support.type.property-name", + "entity.name.function", + "string.other.link", + "markup.link", + "support.type.vendored", + "support.other.variable", + "meta.function-call.generic.python", + "meta.method-call.groovy meta.method.groovy", + "meta.class.body.groovy meta.method.body.java storage.type.groovy", + "punctuation.definition.decorator", + "support.function.any-method", + "text.tex support.function", + "text.tex punctuation.definition.function", + "entity.name.section.fsharp entity.name.section.fsharp", + "support.variable.class.function", + "keyword.control.cucumber.table", + "punctuation.decorator", + "source.tf support.class" + ], + "settings": { + "foreground": "#0095a8" + } + }, + { + "name": "SUPPORT", + "scope": [ + "entity.name", + "entity.other", + "support.orther.namespace.use.php", + "meta.use.php", + "support.other.namespace.php", + "support.type", + "support.class", + "punctuation.definition.parameters", + "support.function", + "support.function.construct", + "markup.changed.git_gutter", + "markup.underline.link", + "markup.underline.link.image", + "markup.underline", + "meta.symbol.namespace.clojure", + "entity.mime-type.apacheconf", + "keyword.operator.function.infix", + "entity.name.function.infix", + "entity.name.function.call.kotlin", + "text.tex support.function.verb", + "text.tex support.function.texttt", + "source.reason constant.language.unit", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "constant.language.unit.fsharp", + "source.wsd support.class.preprocessings", + "keyword.language.gherkin.feature.scenario", + "source.nim keyword.other.common.function", + "entity.name.type.namespace", + "entity.name.scope-resolution.function.call" + ], + "settings": { + "foreground": "#00bdd6" + } + }, + { + "name": "MISC", + "scope": [ + "source.js constant.other.object.key.js string.unquoted.label.js", + "source.js punctuation.section.embedded", + "punctuation.definition.template-expression", + "support.class", + "storage.type.string.python", + "string.interpolated.pug", + "support.constant.handlebars", + "source.clojure punctuation.section.set", + "source.clojure punctuation.section.metadata", + "entity.global.clojure", + "source.python meta.function-call.python support.type.python", + "entity.other.inherited-class.python", + "punctuation.definition.interpolation", + "punctuation.section.embedded.begin.ruby", + "punctuation.section.embedded.end.ruby source.ruby", + "support.constant.math", + "entity.namespace.r", + "meta.method-call.groovy storage.type.groovy", + "source.scala entity.name.class.declaration", + "constant.character.escape", + "support.function.macro.julia", + "string.replacement.apacheconf", + "storage.modifier.using.vala", + "constant.other.haskell", + "source.objc entity.name.tag", + "string.quoted.other.literal.upper.crystal punctuation.definition.string", + "meta.embedded.line.crystal punctuation.section.embedded", + "meta.embedded.line.crystal punctuation.section.embedded source.crystal", + "punctuation.section.embedded", + "punctuation.section.tag", + "punctuation.section.embedded source.swift", + "variable.other.bracket punctuation.definition.variable", + "string.interpolated.dollar punctuation.definition.string", + "constant.character.escape punctuation.definition.keyword", + "source.ocaml entity.name.class constant.numeric", + "source.reason entity.name.class", + "keyword.format.specifier.fsharp", + "support.module.elm", + "meta.embedded.block.php punctuation.definition.variable.php", + "source.vala storage.type", + "support.variable.class.group", + "entity.name.type.class", + "source.tf meta.keyword.list", + "source.tf meta.keyword.map", + "entity.name.class.lua", + "markup.substitution" + ], + "settings": { + "foreground": "#0094f0" + } + }, + { + "name": "INVALID", + "scope": ["invalid", "invalid.illegal"], + "settings": { + "foreground": "#ff530f" + } + }, + { + "name": "ITALIC", + "scope": [ + "comment", + "storage.modifier", + "punctuation.definition.comment", + "entity.other", + "variable.language", + "support.type.vendored", + "support.constant.vendored", + "markup.quote", + "markup.italic", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "keyword.control.clojure", + "source.clojure meta.symbol.dynamic", + "keyword.other.this.cs", + "keyword.other.base.cs", + "variable.other.member.c", + "support.type.core.rust", + "variable.other.object.property", + "variable.other.property", + "source.r meta.function.r keyword.control.r", + "comment.line.roxygen.r keyword", + "comment.line.roxygen.r variable.parameter.r", + "keyword.control.inheritance.coffee", + "comment.block.documentation.phpdoc.php keyword", + "keyword.other.array.phpdoc.php", + "storage.type.modifier", + "comment.block.javadoc.java keyword", + "comment.block.javadoc.java variable.parameter.java", + "keyword.operator.documentation.powershell", + "storage.type.scala", + "variable.parameter.function.language.special", + "comment.block.documentation.scala keyword", + "comment.block.documentation.scala variable.parameter", + "support.function.builtin.go", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.ruby", + "source.vala storage.type.generic", + "constant.other.table-name", + "constant.other.placeholder", + "variable.other.field", + "entity.alias.import.go", + "source.swift keyword.other.declaration-specifier", + "support.variable.swift", + "keyword.other.capture-specifier", + "text.tex support.function.emph", + "constant.other.math", + "support.function.textit", + "entity.name.footnote", + "entity.name.function.directive.graphql", + "source.graphql support.type.enum", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "abstract.definition.fsharp keyword", + "abstract.definition.fsharp entity", + "function.anonymous keyword", + "entity.name.record.field.accessor.elm", + "support.type.primitive", + "support.type.builtin", + "keyword.type.cs", + "storage.type.built-in", + "storage.type.primitive", + "source.python support.type.python", + "storage.type.core.rust", + "source.swift support.type", + "source.go storage.type", + "storage.type.php", + "storage.type.function.kotlin", + "entity.name.type.kotlin", + "support.type.julia", + "variable.other.member", + "keyword.other.import", + "keyword.package", + "keyword.import", + "source.wsd keyword.control.diagram", + "keyword.language.gherkin.feature.step", + "source.hlsl storage.type.basic", + "source.apex keyword.type", + "sharing.modifier", + "source.nim storage.type.concrete", + "meta.preprocessor.pragma.nim", + "storage.type.integral", + "entity.name.scope-resolution.function.call", + "support.class.builtin", + "comment.block.documentation storage.type.class", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "meta.import keyword.control", + "keyword.control.export", + "source.vue meta.directive punctuation.separator.key-value", + "keyword.local.lua", + "markup.mark.constrained markup.mark", + "markup.block.open", + "entity.name.type.primitive", + "entity.name.type.numeric", + "source.zig keyword.type", + "source.zig keyword.storage", + "source.zig keyword.structure" + ], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "BOLD", + "scope": [ + "keyword", + "keyword.control", + "keyword.operator", + "keyword.other.template", + "keyword.other.substitution", + "storage.type.function.arrow", + "constant.other.color", + "punctuation.accessor", + "entity.name.section", + "markdown.heading", + "markup.inline.raw punctuation.definition.raw", + "markup.heading", + "storage.type.function.pug", + "storage.type.function.python", + "storage.type.annotation", + "punctuation.bracket.angle", + "keyword.other.new", + "storage.type.generic.wildcard", + "source.go keyword.operator", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "variable.parameter", + "support.function.builtin.rust", + "storage.type.function.coffee", + "entity.name.variable.parameter", + "punctuation.separator.hash.cs", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "meta.function.parameters variable.other", + "entity.name.type.annotation.kotlin", + "storage.type.objc", + "parameter.variable.function", + "markup punctuation.definition", + "punctuation.section.directive", + "punctuation.definition.preprocessor", + "source.ruby punctuation.definition.variable", + "support.function.textbf", + "source.graphql support.type.builtin", + "source.ocaml variable.interpolation string", + "entity.name.function.definition.special.constructor", + "entity.name.function.definition.special.member.destructor.", + "meta.function.parameters variable punctuation.definition.variable.php", + "source.wsd keyword.other.activity", + "keyword.control.class.ruby", + "keyword.control.def.ruby", + "keyword.function.go", + "keyword.other.fn.rust", + "markup.other.anchor", + "markup.list.bullet", + "markup.list punctuation.definition", + "keyword.control.default", + "punctuation.section", + "punctuation.separator", + "punctuation.terminator", + "markup.bold.markdown", + "source.zig storage.type.function" + ], + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "BOLD-ITALIC", + "scope": [ + "markup.quote markup.bold", + "text.html punctuation.section.embedded", + "variable.other.c", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "source.rust meta.attribute.rust", + "meta.attribute.id entity.other.attribute-name", + "source.ocaml punctuation.definition.tag emphasis", + "source.tf entity.name", + "markup.quote punctuation.definition", + "markup.fenced_code punctuation.definition", + "fenced_code.block.language" + ], + "settings": { + "fontStyle": "bold italic" + } + }, + { + "name": "NORMAL", + "scope": [ + "keyword.begin.tag.ejs", + "source.python meta.function.decorator.python support.type.python", + "source.cs keyword.other", + "keyword.other.var.cs", + "source.go keyword", + "storage.modifier.static.rust", + "variable.parameter.r", + "variable.parameter.handlebars", + "storage.modifier.import", + "storage.modifier.package", + "meta.class.identifier storage.modifier", + "keyword.operator.other.powershell", + "source.css variable.parameter", + "string.interpolated variable.parameter", + "source.apacheconf keyword", + "keyword.other.julia", + "storage.modifier.using.vala", + "source.objc keyword.other.property.attribute", + "source.sql keyword.other", + "keyword.other.using.vala", + "keyword.operator.function.infix", + "keyword.control.directive", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "entity.name.function.swift", + "keyword.control.class", + "keyword.control.def", + "punctuation.definition.variable", + "entity.name.section.latex", + "source.ocaml keyword markup.underline", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "keyword.format.specifier.fsharp", + "entity.name.section.fsharp", + "binding.fsharp keyword", + "binding.fsharp keyword.symbol", + "record.fsharp keyword", + "keyword.symbol.fsharp", + "entity.name.section.fsharp keyword", + "namespace.open.fsharp keyword", + "namespace.open.fsharp entity", + "storage.type", + "source.cpp keyword.other", + "source.c keyword.other", + "keyword.other.unit", + "storage.modifier.array.bracket", + "meta.import.haskell keyword", + "keyword.declaration.dart", + "source.wsd keyword.other", + "keyword.other.skinparam", + "source.css keyword.control", + "source.css keyword.operator", + "keyword.language.gherkin.feature.scenario", + "keyword.control.cucumber.table", + "source.toml entity.other.attribute-name", + "source.toml keyword", + "keyword.other.nim", + "source.nim keyword.other.common.function", + "source.nim keyword.other", + "source.scala keyword.declaration", + "source.scala entity.name.class.declaration", + "keyword.control.lua", + "source.css punctuation.section", + "punctuation.section.embedded", + "source.c punctuation.section", + "source.cpp punctuation.section", + "source.java punctuation.section", + "source.php punctuation.section", + "source.powershell punctuation.section", + "source.r punctuation.section", + "source.ruby punctuation.section", + "source.swift punctuation.section", + "source.objc punctuation.section", + "source.zig keyword.constant.bool", + "source.zig keyword.default", + "source.zig keyword.statement", + "source.zig keyword.constant.default" + ], + "settings": { + "fontStyle": "" + } + }, + { + "name": "STRIKETHROUGH", + "scope": ["markup.strikethrough"], + "settings": { + "fontStyle": "strikethrough" + } + } + ] +} diff --git a/assets/themes/src/vscode/noctis/lilac.json b/assets/themes/src/vscode/noctis/lilac.json new file mode 100644 index 0000000000..26e0fe4223 --- /dev/null +++ b/assets/themes/src/vscode/noctis/lilac.json @@ -0,0 +1,1113 @@ +{ + "name": "Noctis Lilac", + "type": "dark", + "colors": { + "selection.background": "#b4adebbb", + "descriptionForeground": "#908ea4", + "errorForeground": "#ff4000", + "widget.shadow": "#00000055", + "editor.background": "#f2f1f8", + "editor.foreground": "#0c006b", + "editorLineNumber.foreground": "#9d9ab1", + "editorLineNumber.activeForeground": "#7060eb", + "editorCursor.foreground": "#5c49e9", + "badge.background": "#7060eb", + "badge.foreground": "#f2f1f8", + "activityBar.background": "#f2f1f8", + "activityBar.dropBackground": "#7060eb65", + "activityBar.foreground": "#7060eb", + "activityBar.border": "#ece2c600", + "activityBarBadge.background": "#7060eb", + "activityBarBadge.foreground": "#f2f1f8", + "activityBar.activeBackground": "#7060eb33", + "activityBar.activeBorder": "#7060eb", + "sideBar.background": "#edecf8", + "sideBar.foreground": "#75718e", + "sideBar.border": "#ece2c600", + "sideBar.dropBackground": "#edecf8", + "sideBarTitle.foreground": "#75718e", + "sideBarSectionHeader.background": "#dedbf5", + "sideBarSectionHeader.foreground": "#75718e", + "statusBar.background": "#e2dff6", + "statusBar.foreground": "#7060eb", + "statusBar.border": "#ece2c600", + "statusBar.debuggingBackground": "#edecf8", + "statusBar.debuggingForeground": "#e9498150", + "statusBar.debuggingBorder": "#e94981af", + "statusBar.noFolderForeground": "#8b87ab", + "statusBar.noFolderBackground": "#edecf8", + "statusBar.noFolderBorder": "#edecf8", + "statusBarItem.activeBackground": "#c1bbec", + "statusBarItem.hoverBackground": "#c9c2f9", + "statusBarItem.prominentBackground": "#a9a4e544", + "statusBarItem.prominentHoverBackground": "#a9a4e599", + "button.background": "#8e80ff", + "button.foreground": "#f1f1f1", + "button.hoverBackground": "#a599ff", + "dropdown.background": "#f2f1f8", + "dropdown.border": "#f2f1f8", + "dropdown.foreground": "#0c006b", + "editorMarkerNavigation.background": "#3a3a5e29", + "editorMarkerNavigationError.background": "#ff4000", + "editorMarkerNavigationWarning.background": "#e69533", + "editorError.border": "#f2f1f8", + "editorError.foreground": "#ff4000", + "editorWarning.border": "#f2f1f8", + "editorWarning.foreground": "#e69533", + "editorInfo.border": "#f2f1f8", + "editorInfo.foreground": "#00c6e0", + "editorHint.border": "#58cc6d00", + "editorHint.foreground": "#58cc6d", + "editorGroup.emptyBackground": "#958fbc33", + "editorGroup.border": "#d4d0f1", + "editorGroup.dropBackground": "#958fbc33", + "editorGroupHeader.noTabsBackground": "#e2dff6", + "editorGroupHeader.tabsBackground": "#e2dff6", + "editorGroupHeader.tabsBorder": "#e2dff600", + "tab.activeBackground": "#f2f1f8", + "tab.unfocusedActiveBackground": "#e9e7f3", + "tab.activeForeground": "#7060eb", + "tab.border": "#b5adeb", + "tab.inactiveBackground": "#e2dff6", + "tab.inactiveForeground": "#75718e", + "tab.unfocusedActiveForeground": "#75718e", + "tab.unfocusedInactiveForeground": "#75718e", + "tab.activeBorderTop": "#00c6e0", + "tab.activeModifiedBorder": "#00b368", + "tab.activeBorder": "#f2f1f8", + "tab.unfocusedActiveBorder": "#f2f1f800", + "tab.unfocusedHoverBackground": "#7060eb21", + "textBlockQuote.background": "#edecf8", + "textBlockQuote.border": "#00899e", + "textCodeBlock.background": "#edecf8", + "textLink.activeForeground": "#00c6e0", + "textLink.foreground": "#00c6e0", + "textPreformat.foreground": "#e9a149", + "textSeparator.foreground": "#edecf8", + "walkThrough.embeddedEditorBackground": "#edecf8", + "welcomePage.buttonBackground": "#edecf8", + "welcomePage.buttonHoverBackground": "#e2dff6", + "input.background": "#f2f1f8", + "input.border": "#dedbf5", + "input.foreground": "#666284", + "input.placeholderForeground": "#9391a6", + "inputOption.activeBorder": "#7060eb", + "inputValidation.errorBackground": "#ff400041", + "inputValidation.errorBorder": "#ff4000", + "inputValidation.infoBackground": "#00c6ea599ff", + "inputValidation.infoBorder": "#00c6e0", + "inputValidation.warningBackground": "#ffa587cc", + "inputValidation.warningBorder": "#ffa487", + "editorWidget.background": "#dedbf5", + "editorWidget.border": "#ece2c600", + "editorHoverWidget.background": "#dedbf5", + "editorHoverWidget.border": "#ece2c600", + "editorSuggestWidget.background": "#dedbf5", + "editorSuggestWidget.border": "#ece2c600", + "editorSuggestWidget.foreground": "#666284", + "editorSuggestWidget.highlightForeground": "#7060eb", + "editorSuggestWidget.selectedBackground": "#cac4f3", + "editorGutter.background": "#f2f1f8", + "editorGutter.addedBackground": "#8ce99a", + "editorGutter.deletedBackground": "#ff4000", + "editorGutter.modifiedBackground": "#e9a149", + "editor.selectionBackground": "#b4adeb77", + "editor.selectionHighlightBackground": "#14a5ff33", + "editor.selectionHighlightBorder": "#14a5ff00", + "editor.inactiveSelectionBackground": "#b4adeb55", + "editor.wordHighlightStrongBackground": "#b5890027", + "editor.wordHighlightStrongBorder": "#b5890000", + "editor.wordHighlightBackground": "#e9a14922", + "editor.wordHighlightBorder": "#e9a14900", + "editor.findMatchBackground": "#8ce99a60", + "editor.findMatchBorder": "#8ce99a00", + "editor.findMatchHighlightBackground": "#148f9f33", + "editor.findMatchHighlightBorder": "#148f9f00", + "editor.findRangeHighlightBackground": "#99e62a55", + "editor.findRangeHighlightBorder": "#58CC6D00", + "editor.hoverHighlightBackground": "#7060eb3f", + "editor.lineHighlightBackground": "#d5d2ef99", + "editor.lineHighlightBorder": "#d5d2ef00", + "editor.rangeHighlightBackground": "#f1e9d5a1", + "editorLink.activeForeground": "#14a5ff", + "editorWhitespace.foreground": "#c3c1d7bb", + "editorIndentGuide.background": "#c3c1d7aa", + "editorIndentGuide.activeBackground": "#9f99cc", + "editorBracketMatch.background": "#7060eb20", + "editorBracketMatch.border": "#7060eb", + "editorRuler.foreground": "#d4d0f1", + "editorCodeLens.foreground": "#77aaca", + "terminal.ansiBlack": "#0c006b", + "terminal.ansiRed": "#e34e1c", + "terminal.ansiGreen": "#00b368", + "terminal.ansiYellow": "#f49725", + "terminal.ansiBlue": "#0094f0", + "terminal.ansiMagenta": "#ff5792", + "terminal.ansiCyan": "#00bdd6", + "terminal.ansiWhite": "#8ca6a6", + "terminal.ansiBrightBlack": "#0f0080", + "terminal.ansiBrightRed": "#ff4000", + "terminal.ansiBrightGreen": "#00d17a", + "terminal.ansiBrightYellow": "#ff8c00", + "terminal.ansiBrightBlue": "#0fa3ff", + "terminal.ansiBrightMagenta": "#ff6b9f", + "terminal.ansiBrightCyan": "#00cbe6", + "terminal.ansiBrightWhite": "#bbc3c4", + "terminal.background": "#e9e7f3", + "terminal.foreground": "#0c006b", + "terminalCursor.background": "#e9e7f3", + "terminalCursor.foreground": "#0c006b", + "merge.border": "#f2f1f800", + "merge.currentContentBackground": "#33e7ff33", + "merge.currentHeaderBackground": "#33e7ff55", + "merge.incomingContentBackground": "#9d92f233", + "merge.incomingHeaderBackground": "#9d92f255", + "merge.commonContentBackground": "#ffc18033", + "merge.commonHeaderBackground": "#ffc18055", + "editorOverviewRuler.currentContentForeground": "#33e7ff55", + "editorOverviewRuler.incomingContentForeground": "#9d92f255", + "editorOverviewRuler.commonContentForeground": "#ffc18055", + "editorOverviewRuler.border": "#f2f1f8", + "notificationCenter.border": "#dedbf5", + "notificationCenterHeader.foreground": "#0c006b", + "notificationCenterHeader.background": "#dedbf5", + "notificationToast.border": "#dedbf5", + "notifications.foreground": "#0c006b", + "notifications.background": "#dedbf5", + "notifications.border": "#dedbf5", + "notificationLink.foreground": "#0c006b", + "diffEditor.insertedTextBackground": "#14b83230", + "diffEditor.removedTextBackground": "#BB1F0522", + "debugToolBar.background": "#edecf8", + "debugExceptionWidget.background": "#edecf8", + "debugExceptionWidget.border": "#00899e", + "extensionButton.prominentBackground": "#8e80ff", + "extensionButton.prominentForeground": "#e4e2f9", + "extensionButton.prominentHoverBackground": "#a599ff", + "focusBorder": "#dedbf5", + "foreground": "#0c006b", + "panel.background": "#e9e7f3", + "panel.border": "#aea4f4", + "panelTitle.activeBorder": "#aea4f4", + "panelTitle.activeForeground": "#7060eb", + "panelTitle.inactiveForeground": "#75718e", + "peekView.border": "#7060eb", + "peekViewEditor.background": "#eae7fd", + "peekViewEditor.matchHighlightBackground": "#148f9f33", + "peekViewEditor.matchHighlightBorder": "#148f9f79", + "peekViewEditorGutter.background": "#eae7fd", + "peekViewResult.background": "#edecf8", + "peekViewResult.fileForeground": "#e9a149", + "peekViewResult.lineForeground": "#8b87ab", + "peekViewResult.matchHighlightBackground": "#dedbf5", + "peekViewResult.selectionBackground": "#dedbf5", + "peekViewResult.selectionForeground": "#666284", + "peekViewTitle.background": "#edecf8", + "peekViewTitleDescription.foreground": "#8b87ab", + "peekViewTitleLabel.foreground": "#e9a149", + "progressBar.background": "#00c6e0", + "scrollbar.shadow": "#00000055", + "scrollbarSlider.activeBackground": "#7060ebad", + "scrollbarSlider.background": "#6a90955b", + "scrollbarSlider.hoverBackground": "#7060eb62", + "gitDecoration.addedResourceForeground": "#009456", + "gitDecoration.modifiedResourceForeground": "#14b832", + "gitDecoration.deletedResourceForeground": "#ff4000", + "gitDecoration.untrackedResourceForeground": "#00c6e0", + "gitDecoration.ignoredResourceForeground": "#a8a28faa", + "gitDecoration.conflictingResourceForeground": "#e9a149", + "pickerGroup.border": "#aea4f4", + "pickerGroup.foreground": "#7060eb", + "list.activeSelectionBackground": "#bcb6e7", + "list.activeSelectionForeground": "#0c006b", + "list.dropBackground": "#afaad4aa", + "list.focusBackground": "#c3beea", + "list.focusForeground": "#0c006b", + "list.highlightForeground": "#7060eb", + "list.hoverBackground": "#d2ccff", + "list.hoverForeground": "#0c006b", + "list.inactiveFocusBackground": "#cec9ed", + "list.inactiveSelectionBackground": "#d7d3f3", + "list.inactiveSelectionForeground": "#838099", + "list.errorForeground": "#c9481d", + "list.warningForeground": "#e07a52", + "listFilterWidget.background": "#d7d3f3", + "listFilterWidget.outline": "#14b832", + "listFilterWidget.noMatchesOutline": "#ff4000", + "tree.indentGuidesStroke": "#c3c1d7", + "settings.headerForeground": "#0c006b", + "settings.modifiedItemIndicator": "#00bd23", + "settings.dropdownListBorder": "#b4adeb88", + "settings.dropdownBackground": "#dedbf5", + "settings.dropdownForeground": "#0bb", + "settings.dropdownBorder": "#dedbf5", + "settings.checkboxBackground": "#dedbf5", + "settings.checkboxForeground": "#0bb", + "settings.checkboxBorder": "#dedbf5", + "settings.textInputBackground": "#dedbf5", + "settings.textInputForeground": "#0bb", + "settings.textInputBorder": "#dedbf5", + "settings.numberInputBackground": "#d4d0f1", + "settings.numberInputForeground": "#5842ff", + "settings.numberInputBorder": "#d4d0f1", + "breadcrumb.foreground": "#75718e", + "breadcrumb.background": "#f2f1f8", + "breadcrumb.focusForeground": "#7060eb", + "breadcrumb.activeSelectionForeground": "#0c006b", + "breadcrumbPicker.background": "#dedbf5", + "titleBar.activeBackground": "#edecf8", + "titleBar.activeForeground": "#0c006b", + "titleBar.inactiveBackground": "#edecf8", + "titleBar.inactiveForeground": "#75718e", + "menu.background": "#dedbf5", + "menu.foreground": "#75718e", + "menu.selectionBackground": "#d6d1fa", + "menu.selectionForeground": "#7060eb", + "menu.selectionBorder": "#d6d1fa", + "menubar.selectionBackground": "#d6d1fa", + "menubar.selectionForeground": "#7060eb", + "menubar.selectionBorder": "#d6d1fa", + "editor.snippetTabstopHighlightBackground": "#b3abed77", + "editor.snippetTabstopHighlightBorder": "#dad6f5", + "editor.snippetFinalTabstopHighlightBackground": "#b3abed77", + "editor.snippetFinalTabstopHighlightBorder": "#dad6f5", + "minimap.findMatchHighlight": "#7060ebaa", + "minimap.errorHighlight": "#ff4000ee", + "minimap.warningHighlight": "#e69533ee", + "minimapGutter.addedBackground": "#009456", + "minimapGutter.modifiedBackground": "#14b832", + "minimapGutter.deletedBackground": "#ff4000", + "minimap.background": "#f2f1f899" + }, + "tokenColors": [ + { + "name": "COMMENT", + "scope": [ + "comment", + "punctuation.definition.comment", + "punctuation.definition.tag", + "comment.block.documentation punctuation.definition.bracket", + "source.ocaml comment constant.regexp meta.separator", + "markup.other.anchor support.constant", + "markup.fenced_code", + "markup.fenced_code punctuation.definition", + "punctuation.definition.heading", + "punctuation.definition.bold.markdown", + "punctuation.definition.italic.markdown", + "punctuation.definition.strikethrough.markdown" + ], + "settings": { + "foreground": "#9995b7" + } + }, + { + "name": "TEXT", + "scope": [ + "constant.character", + "constant.escape", + "text.html.markdown", + "punctuation.definition.list_item", + "keyword.begin.tag.ejs", + "constant.name.attribute.tag.pug", + "source.clojure meta.symbol", + "constant.other.description.jsdoc", + "keyword.other.array.phpdoc.php", + "keyword.operator.other.powershell", + "meta.link.inline punctuation.definition.string", + "source.sql", + "source meta.brace", + "source punctuation", + "text.html punctuation", + "markup meta punctuation.definition", + "meta.bracket.julia", + "meta.array.julia", + "entity.name.footnote", + "source.ocaml punctuation.definition.tag", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "entity.other.attribute-name strong", + "binding.fsharp keyword.symbol.fsharp", + "entity.name.record.field.elm", + "entity.name.record.field.accessor.elm", + "storage.modifier.array.bracket", + "source.css entity.other", + "meta.attribute-selector punctuation.definition.entity", + "markup.other.anchor string", + "punctuation.separator", + "punctuation.section", + "punctuation.terminator" + ], + "settings": { + "foreground": "#0c006b" + } + }, + { + "name": "KEYWORD", + "scope": [ + "keyword", + "keyword.control", + "keyword.other.template", + "keyword.other.substitution", + "storage.modifier", + "meta.tag.sgml", + "punctuation.accessor", + "constant.other.color", + "entity.name.section", + "markup.heading", + "markup.heading punctuation.definition", + "entity.other.attribute-name.pseudo-class", + "entity.other.attribute-name.pseudo-element", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "storage.type.function.pug", + "text.pug storage.type", + "text.pug meta.tag.other", + "source.clojure storage.control", + "meta.expression.clojure", + "punctuation.separator.slice.python", + "punctuation.separator.question-mark.cs", + "punctuation.definition.parameters.varargs", + "source.go keyword.operator", + "punctuation.separator.pointer-access", + "punctuation.separator.other.ruby", + "keyword.package", + "keyword.import", + "punctuation.definition.keyword", + "punctuation.separator.hash.cs", + "entity.other.attribute-name.pseudo-class.css punctuation.definition.entity.css", + "entity.other.attribute-name.pseudo-element.css punctuation.definition.entity.css", + "source.kotlin storage.type.import", + "source.kotlin storage.type.package", + "constant.string.documentation.powershell", + "punctuation.section.directive", + "storage.type.rust", + "punctuation.definition.attribute", + "punctuation.definition.preprocessor", + "punctuation.separator.namespace", + "punctuation.separator.method", + "keyword.control punctuation.definition.function", + "source.ocaml variable.interpolation string", + "source.reason variable.interpolation", + "punctuation.definition.directive", + "storage.type.modifier", + "keyword.other.class.fileds", + "source.toml entity.other.attribute-name", + "source.css entity.name.tag.custom", + "sharing.modifier", + "keyword.control.class.ruby", + "keyword.control.def.ruby" + ], + "settings": { + "foreground": "#ff5792" + } + }, + { + "name": "VARIABLE", + "scope": [ + "variable", + "variable.object", + "variable.other", + "variable.parameter", + "support", + "entity.name.module", + "variable.import.parameter", + "variable.other.class", + "meta.toc-list.id.html", + "source.json meta.structure.dictionary.json support.type.property-name.json", + "meta.var.clojure", + "entity.name.variable", + "source.java meta.class.body.java", + "entity.name.package.go", + "source.c", + "source.cpp", + "source.go", + "source.python", + "meta.function-call.arguments.python", + "source.ruby", + "source.coffee.embedded.source", + "source.coffee", + "storage.modifier.import", + "storage.modifier.package", + "storage.type.annotation", + "punctuation.definition.annotation", + "source.groovy.embedded.source", + "punctuation.definition.variable", + "source.powershell", + "string.quoted.interpolated.vala constant.character.escape.vala", + "source.apacheconf", + "source.objc", + "source.crystal", + "string.quoted.double.kotlin entity.string.template.element.kotlin", + "entity.name.package.kotlin", + "meta.template.expression.kotlin", + "parameter.variable.function", + "variable.other.constant.elixir", + "source.elixir.embedded.source", + "source.sql.embedded", + "punctuation.definition.placeholder", + "source.swift", + "source.julia", + "source.shell", + "variable.other.normal punctuation.definition.variable.shell", + "source.reason variable.language", + "source.reason variable.language string.other.link", + "source.elm meta.value", + "source.elm meta.declaration.module", + "meta.embedded.block variable punctuation.definition.variable.php", + "string.quoted.double.class.other", + "source.toml keyword", + "support.type.nim", + "source.tf meta.template.expression", + "source.scala entity.name.import", + "markup.code", + "markup.fenced_code.block" + ], + "settings": { + "foreground": "#fa8900" + } + }, + { + "name": "ANNOTATION", + "scope": [ + "support.variable.property", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "entity.other.attribute-name.id", + "entity.other.attribute-name.id punctuation.definition.entity", + "entity.name.type.annotation.kotlin", + "support.type.primitive", + "meta.type.parameters entity.name.type", + "meta.type.annotation entity.name.type", + "punctuation.definition.typeparameters", + "source.python support.type.python", + "comment.block.documentation.phpdoc.php keyword.other.type.php", + "storage.type.php", + "keyword.type", + "storage.type.cs", + "storage.type.c", + "storage.type.objc", + "punctuation.definition.storage.type.objc", + "markup punctuation.definition", + "storage.type.powershell", + "comment.block.documentation entity.name.type", + "source.java storage.type", + "storage.type.primitive", + "source.groovy storage.type", + "storage.type.r", + "source.haskell storage.type", + "punctuation.separator.clause-head-body", + "source.go storage.type", + "storage.type.core.rust", + "storage.class.std.rust", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "support.type.vb", + "entity.name.type.kotlin", + "support.type.julia", + "constant.other.reference", + "source.graphql support.type", + "source.reason support.type string", + "entity.name.type.fsharp", + "source.elm storage.type", + "storage.type.user-defined", + "storage.type.built-in", + "support.type.builtin", + "source.swift support.type", + "support.class.crystal", + "storage.type.integral", + "source.cpp storage.type.cpp", + "source.vala storage.type", + "source.hlsl storage.type.basic", + "source.hlsl support.type.other", + "source.apex storage.type", + "source.nim storage.type", + "source.cpp entity.name.type", + "support.class.builtin", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "markup.raw.monospace", + "markup.mark", + "entity.name.type.primitive", + "entity.name.type.numeric" + ], + "settings": { + "foreground": "#b3694d" + } + }, + { + "name": "CONSTANT", + "scope": [ + "constant", + "variable.other.constant", + "support.constant", + "punctuation.definition.entity", + "constant.character.entity", + "support.variable.magic", + "markup.quote", + "entity.name.type.type-parameter.cs", + "punctuation.bracket.angle", + "entity.name.function.preprocessor.c", + "storage.type.scala", + "entity.helper.apacheconf", + "variable.language.crystal", + "punctuation.definition.constant", + "support.constant punctuation.definition.variable", + "constant.character.math", + "support.class.math", + "source.graphql constant.character", + "source.reason constant.language.list", + "source.cpp variable.other.enummember", + "support.variable.class.hideshow", + "entity.other.attribute-name.class", + "meta.attribute.id entity.other.attribute-name", + "text.html entity.other.attribute-name", + "meta.tag.attributes entity.other.attribute-name", + "text.xml entity.other.attribute-name", + "source.cs entity.other.attribute-name", + "constant.character.format.placeholder", + "constant.other.placeholder", + "source.vue entity.other.attribute-name", + "entity.other.attribute-name.mjml", + "source.vue meta.directive punctuation.separator.key-value", + "meta.definition.attribute-entry punctuation.separator" + ], + "settings": { + "foreground": "#a88c00" + } + }, + { + "name": "TAG", + "scope": [ + "variable.language", + "variable.parameter.function.language.special", + "punctuation.definition.italic", + "punctuation.definition.bold", + "entity.name.tag", + "variable.language punctuation.definition.variable", + "keyword.control.clojure", + "support.type.exception.python", + "keyword.other.this.cs", + "keyword.other.base.cs", + "keyword.other.var.cs", + "storage.modifier.super", + "source.go keyword", + "keyword.function.go", + "meta.separator", + "keyword.other.fn.rust", + "storage.modifier.static.rust", + "source.r meta.function.r keyword.control.r", + "storage.type.def", + "meta.class.identifier storage.modifier", + "source.scala keyword.declaration", + "storage.type", + "comment.block.documentation punctuation.definition.block.tag", + "comment.block.documentation punctuation.definition.inline.tag", + "entity.tag.apacheconf", + "keyword.other.julia", + "source.julia storage.modifier", + "constant.language.empty-list.haskell", + "meta.function.powershell storage.type.powershell", + "keyword.control.fun", + "punctuation.terminator.function", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "keyword.control.class", + "keyword.control.def", + "source.ocaml keyword markup.underline", + "source.ocaml storage.type markup.underline", + "binding.fsharp keyword", + "function.anonymous keyword", + "function.anonymous keyword.symbol.fsharp", + "meta.embedded.block variable.language punctuation.definition.variable.php", + "keyword.declaration.dart", + "source.wsd keyword.other.class", + "source.wsd keyword.other.linebegin", + "keyword.other.skinparam.keyword", + "keyword.other.nim", + "markup.deleted.diff", + "source.tf support.class.variable", + "meta.function.lua keyword.control.lua", + "markup.block entity.name.tag", + "markup.meta.attribute-list", + "source.zig keyword.default", + "source.zig keyword.structure" + ], + "settings": { + "foreground": "#e64100" + } + }, + { + "name": "STRING", + "scope": [ + "string", + "punctuation.definition.string", + "source.css support.constant", + "entity.name.import.go", + "markup.raw.texttt", + "markup.inserted.diff", + "source.scala punctuation.definition.character", + "constant.character.literal.scala", + "source.tf entity.name" + ], + "settings": { + "foreground": "#00b368" + } + }, + { + "name": "STRINGINTERPOLATED", + "scope": [ + "string.template", + "punctuation.definition.string.template", + "string.interpolated.python string.quoted.single.python", + "string.quoted.double.heredoc", + "string.quoted.interpolated.vala", + "string.quoted.interpolated.vala punctuation.definition.string", + "string.regexp.apacheconf", + "markup.inline.raw.string", + "markup.inline.raw punctuation.definition.raw", + "string.quoted.double.interpolated.crystal", + "string.quoted.double.interpolated.crystal punctuation.definition.string", + "text.tex markup.raw" + ], + "settings": { + "foreground": "#009456" + } + }, + { + "name": "NUMBER", + "scope": [ + "constant.numeric", + "constant.language", + "punctuation.separator.decimal.period.php", + "keyword.operator.null-conditional.cs", + "punctuation.separator.question-mark.cs", + "constant.integer.apacheconf", + "keyword.operator.nullable-type", + "constant.language punctuation.definition.variable", + "constant.others.fsharp", + "keyword.other.unit", + "string.quoted.double.skinparam.value", + "source.toml constant", + "source.zig keyword.constant.bool", + "source.zig keyword.constant.default" + ], + "settings": { + "foreground": "#5842ff" + } + }, + { + "name": "FUNCTION", + "scope": [ + "variable.function", + "support.type.property-name", + "entity.name.function", + "string.other.link", + "markup.link", + "support.type.vendored", + "support.other.variable", + "meta.function-call.generic.python", + "meta.method-call.groovy meta.method.groovy", + "meta.class.body.groovy meta.method.body.java storage.type.groovy", + "punctuation.definition.decorator", + "support.function.any-method", + "text.tex support.function", + "text.tex punctuation.definition.function", + "entity.name.section.fsharp entity.name.section.fsharp", + "support.variable.class.function", + "keyword.control.cucumber.table", + "punctuation.decorator", + "source.tf support.class" + ], + "settings": { + "foreground": "#0095a8" + } + }, + { + "name": "SUPPORT", + "scope": [ + "entity.name", + "entity.other", + "support.orther.namespace.use.php", + "meta.use.php", + "support.other.namespace.php", + "support.type", + "support.class", + "punctuation.definition.parameters", + "support.function", + "support.function.construct", + "markup.changed.git_gutter", + "markup.underline.link", + "markup.underline.link.image", + "markup.underline", + "meta.symbol.namespace.clojure", + "entity.mime-type.apacheconf", + "keyword.operator.function.infix", + "entity.name.function.infix", + "entity.name.function.call.kotlin", + "text.tex support.function.verb", + "text.tex support.function.texttt", + "source.reason constant.language.unit", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "constant.language.unit.fsharp", + "source.wsd support.class.preprocessings", + "keyword.language.gherkin.feature.scenario", + "source.nim keyword.other.common.function", + "entity.name.type.namespace", + "entity.name.scope-resolution.function.call" + ], + "settings": { + "foreground": "#00bdd6" + } + }, + { + "name": "MISC", + "scope": [ + "source.js constant.other.object.key.js string.unquoted.label.js", + "source.js punctuation.section.embedded", + "punctuation.definition.template-expression", + "support.class", + "storage.type.string.python", + "string.interpolated.pug", + "support.constant.handlebars", + "source.clojure punctuation.section.set", + "source.clojure punctuation.section.metadata", + "entity.global.clojure", + "source.python meta.function-call.python support.type.python", + "entity.other.inherited-class.python", + "punctuation.definition.interpolation", + "punctuation.section.embedded.begin.ruby", + "punctuation.section.embedded.end.ruby source.ruby", + "support.constant.math", + "entity.namespace.r", + "meta.method-call.groovy storage.type.groovy", + "source.scala entity.name.class.declaration", + "constant.character.escape", + "support.function.macro.julia", + "string.replacement.apacheconf", + "storage.modifier.using.vala", + "constant.other.haskell", + "source.objc entity.name.tag", + "string.quoted.other.literal.upper.crystal punctuation.definition.string", + "meta.embedded.line.crystal punctuation.section.embedded", + "meta.embedded.line.crystal punctuation.section.embedded source.crystal", + "punctuation.section.embedded", + "punctuation.section.tag", + "punctuation.section.embedded source.swift", + "variable.other.bracket punctuation.definition.variable", + "string.interpolated.dollar punctuation.definition.string", + "constant.character.escape punctuation.definition.keyword", + "source.ocaml entity.name.class constant.numeric", + "source.reason entity.name.class", + "keyword.format.specifier.fsharp", + "support.module.elm", + "meta.embedded.block.php punctuation.definition.variable.php", + "source.vala storage.type", + "support.variable.class.group", + "entity.name.type.class", + "source.tf meta.keyword.list", + "source.tf meta.keyword.map", + "entity.name.class.lua", + "markup.substitution" + ], + "settings": { + "foreground": "#0094f0" + } + }, + { + "name": "INVALID", + "scope": [ + "invalid", + "invalid.illegal" + ], + "settings": { + "foreground": "#ff530f" + } + }, + { + "name": "ITALIC", + "scope": [ + "comment", + "storage.modifier", + "punctuation.definition.comment", + "entity.other", + "variable.language", + "support.type.vendored", + "support.constant.vendored", + "markup.quote", + "markup.italic", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "keyword.control.clojure", + "source.clojure meta.symbol.dynamic", + "keyword.other.this.cs", + "keyword.other.base.cs", + "variable.other.member.c", + "support.type.core.rust", + "variable.other.object.property", + "variable.other.property", + "source.r meta.function.r keyword.control.r", + "comment.line.roxygen.r keyword", + "comment.line.roxygen.r variable.parameter.r", + "keyword.control.inheritance.coffee", + "comment.block.documentation.phpdoc.php keyword", + "keyword.other.array.phpdoc.php", + "storage.type.modifier", + "comment.block.javadoc.java keyword", + "comment.block.javadoc.java variable.parameter.java", + "keyword.operator.documentation.powershell", + "storage.type.scala", + "variable.parameter.function.language.special", + "comment.block.documentation.scala keyword", + "comment.block.documentation.scala variable.parameter", + "support.function.builtin.go", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.ruby", + "source.vala storage.type.generic", + "constant.other.table-name", + "constant.other.placeholder", + "variable.other.field", + "entity.alias.import.go", + "source.swift keyword.other.declaration-specifier", + "support.variable.swift", + "keyword.other.capture-specifier", + "text.tex support.function.emph", + "constant.other.math", + "support.function.textit", + "entity.name.footnote", + "entity.name.function.directive.graphql", + "source.graphql support.type.enum", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "abstract.definition.fsharp keyword", + "abstract.definition.fsharp entity", + "function.anonymous keyword", + "entity.name.record.field.accessor.elm", + "support.type.primitive", + "support.type.builtin", + "keyword.type.cs", + "storage.type.built-in", + "storage.type.primitive", + "source.python support.type.python", + "storage.type.core.rust", + "source.swift support.type", + "source.go storage.type", + "storage.type.php", + "storage.type.function.kotlin", + "entity.name.type.kotlin", + "support.type.julia", + "variable.other.member", + "keyword.other.import", + "keyword.package", + "keyword.import", + "source.wsd keyword.control.diagram", + "keyword.language.gherkin.feature.step", + "source.hlsl storage.type.basic", + "source.apex keyword.type", + "sharing.modifier", + "source.nim storage.type.concrete", + "meta.preprocessor.pragma.nim", + "storage.type.integral", + "entity.name.scope-resolution.function.call", + "support.class.builtin", + "comment.block.documentation storage.type.class", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "meta.import keyword.control", + "keyword.control.export", + "source.vue meta.directive punctuation.separator.key-value", + "keyword.local.lua", + "markup.mark.constrained markup.mark", + "markup.block.open", + "entity.name.type.primitive", + "entity.name.type.numeric", + "source.zig keyword.type", + "source.zig keyword.storage", + "source.zig keyword.structure" + ], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "BOLD", + "scope": [ + "keyword", + "keyword.control", + "keyword.operator", + "keyword.other.template", + "keyword.other.substitution", + "storage.type.function.arrow", + "constant.other.color", + "punctuation.accessor", + "entity.name.section", + "markdown.heading", + "markup.inline.raw punctuation.definition.raw", + "markup.heading", + "storage.type.function.pug", + "storage.type.function.python", + "storage.type.annotation", + "punctuation.bracket.angle", + "keyword.other.new", + "storage.type.generic.wildcard", + "source.go keyword.operator", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "variable.parameter", + "support.function.builtin.rust", + "storage.type.function.coffee", + "entity.name.variable.parameter", + "punctuation.separator.hash.cs", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "meta.function.parameters variable.other", + "entity.name.type.annotation.kotlin", + "storage.type.objc", + "parameter.variable.function", + "markup punctuation.definition", + "punctuation.section.directive", + "punctuation.definition.preprocessor", + "source.ruby punctuation.definition.variable", + "support.function.textbf", + "source.graphql support.type.builtin", + "source.ocaml variable.interpolation string", + "entity.name.function.definition.special.constructor", + "entity.name.function.definition.special.member.destructor.", + "meta.function.parameters variable punctuation.definition.variable.php", + "source.wsd keyword.other.activity", + "keyword.control.class.ruby", + "keyword.control.def.ruby", + "keyword.function.go", + "keyword.other.fn.rust", + "markup.other.anchor", + "markup.list.bullet", + "markup.list punctuation.definition", + "keyword.control.default", + "punctuation.section", + "punctuation.separator", + "punctuation.terminator", + "markup.bold.markdown", + "source.zig storage.type.function" + ], + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "BOLD-ITALIC", + "scope": [ + "markup.quote markup.bold", + "text.html punctuation.section.embedded", + "variable.other.c", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "source.rust meta.attribute.rust", + "meta.attribute.id entity.other.attribute-name", + "source.ocaml punctuation.definition.tag emphasis", + "source.tf entity.name", + "markup.quote punctuation.definition", + "markup.fenced_code punctuation.definition", + "fenced_code.block.language" + ], + "settings": { + "fontStyle": "bold italic" + } + }, + { + "name": "NORMAL", + "scope": [ + "keyword.begin.tag.ejs", + "source.python meta.function.decorator.python support.type.python", + "source.cs keyword.other", + "keyword.other.var.cs", + "source.go keyword", + "storage.modifier.static.rust", + "variable.parameter.r", + "variable.parameter.handlebars", + "storage.modifier.import", + "storage.modifier.package", + "meta.class.identifier storage.modifier", + "keyword.operator.other.powershell", + "source.css variable.parameter", + "string.interpolated variable.parameter", + "source.apacheconf keyword", + "keyword.other.julia", + "storage.modifier.using.vala", + "source.objc keyword.other.property.attribute", + "source.sql keyword.other", + "keyword.other.using.vala", + "keyword.operator.function.infix", + "keyword.control.directive", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "entity.name.function.swift", + "keyword.control.class", + "keyword.control.def", + "punctuation.definition.variable", + "entity.name.section.latex", + "source.ocaml keyword markup.underline", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "keyword.format.specifier.fsharp", + "entity.name.section.fsharp", + "binding.fsharp keyword", + "binding.fsharp keyword.symbol", + "record.fsharp keyword", + "keyword.symbol.fsharp", + "entity.name.section.fsharp keyword", + "namespace.open.fsharp keyword", + "namespace.open.fsharp entity", + "storage.type", + "source.cpp keyword.other", + "source.c keyword.other", + "keyword.other.unit", + "storage.modifier.array.bracket", + "meta.import.haskell keyword", + "keyword.declaration.dart", + "source.wsd keyword.other", + "keyword.other.skinparam", + "source.css keyword.control", + "source.css keyword.operator", + "keyword.language.gherkin.feature.scenario", + "keyword.control.cucumber.table", + "source.toml entity.other.attribute-name", + "source.toml keyword", + "keyword.other.nim", + "source.nim keyword.other.common.function", + "source.nim keyword.other", + "source.scala keyword.declaration", + "source.scala entity.name.class.declaration", + "keyword.control.lua", + "source.css punctuation.section", + "punctuation.section.embedded", + "source.c punctuation.section", + "source.cpp punctuation.section", + "source.java punctuation.section", + "source.php punctuation.section", + "source.powershell punctuation.section", + "source.r punctuation.section", + "source.ruby punctuation.section", + "source.swift punctuation.section", + "source.objc punctuation.section", + "source.zig keyword.constant.bool", + "source.zig keyword.default", + "source.zig keyword.statement", + "source.zig keyword.constant.default" + ], + "settings": { + "fontStyle": "" + } + }, + { + "name": "STRIKETHROUGH", + "scope": [ + "markup.strikethrough" + ], + "settings": { + "fontStyle": "strikethrough" + } + } + ] +} \ No newline at end of file diff --git a/assets/themes/src/vscode/noctis/lux.json b/assets/themes/src/vscode/noctis/lux.json new file mode 100644 index 0000000000..1f72b0e59c --- /dev/null +++ b/assets/themes/src/vscode/noctis/lux.json @@ -0,0 +1,1108 @@ +{ + "name": "Noctis Lux", + "type": "light", + "colors": { + "selection.background": "#169fb155", + "descriptionForeground": "#929ea0", + "errorForeground": "#ff4000", + "widget.shadow": "#00000055", + "editor.background": "#fef8ec", + "editor.foreground": "#005661", + "editorLineNumber.foreground": "#a0abac", + "editorLineNumber.activeForeground": "#0099ad", + "editorCursor.foreground": "#0092a8", + "badge.background": "#0099ad", + "badge.foreground": "#fef8ec", + "activityBar.background": "#fef8ec", + "activityBar.dropBackground": "#0099ad65", + "activityBar.foreground": "#0099ad", + "activityBar.border": "#ece2c600", + "activityBarBadge.background": "#0099ad", + "activityBarBadge.foreground": "#fef8ec", + "activityBar.activeBackground": "#0099ad33", + "activityBar.activeBorder": "#0099ad", + "sideBar.background": "#f9f1e1", + "sideBar.foreground": "#888477", + "sideBar.border": "#ece2c600", + "sideBar.dropBackground": "#f9f1e1", + "sideBarTitle.foreground": "#888477", + "sideBarSectionHeader.background": "#f2e7ca", + "sideBarSectionHeader.foreground": "#888477", + "statusBar.background": "#f0e9d6", + "statusBar.foreground": "#0099ad", + "statusBar.border": "#ece2c600", + "statusBar.debuggingBackground": "#f9f1e1", + "statusBar.debuggingForeground": "#e9498150", + "statusBar.debuggingBorder": "#e94981af", + "statusBar.noFolderForeground": "#87a7ab", + "statusBar.noFolderBackground": "#f9f1e1", + "statusBar.noFolderBorder": "#f9f1e1", + "statusBarItem.activeBackground": "#dfeff1", + "statusBarItem.hoverBackground": "#d1e8eb", + "statusBarItem.prominentBackground": "#c1d4d7", + "statusBarItem.prominentHoverBackground": "#bfdee3", + "button.background": "#099099", + "button.foreground": "#f1f1f1", + "button.hoverBackground": "#0cc", + "dropdown.background": "#fef8ec", + "dropdown.border": "#fef8ec", + "dropdown.foreground": "#005661", + "editorMarkerNavigation.background": "#3a3a5e29", + "editorMarkerNavigationError.background": "#ff4000", + "editorMarkerNavigationWarning.background": "#e69533", + "editorError.border": "#fef8ec", + "editorError.foreground": "#ff4000", + "editorWarning.border": "#fef8ec", + "editorWarning.foreground": "#e69533", + "editorInfo.border": "#fef8ec", + "editorInfo.foreground": "#00c6e0", + "editorHint.border": "#58cc6d00", + "editorHint.foreground": "#58cc6d", + "editorGroup.emptyBackground": "#b8ae9333", + "editorGroup.border": "#f0e7d1", + "editorGroup.dropBackground": "#b8ae9333", + "editorGroupHeader.noTabsBackground": "#f0e9d6", + "editorGroupHeader.tabsBackground": "#f0e9d6", + "editorGroupHeader.tabsBorder": "#f0e9d600", + "tab.activeBackground": "#fef8ec", + "tab.unfocusedActiveBackground": "#f7f2e3", + "tab.activeForeground": "#0099ad", + "tab.border": "#e6d7b2", + "tab.inactiveBackground": "#f0e9d6", + "tab.inactiveForeground": "#888477", + "tab.unfocusedActiveForeground": "#888477", + "tab.unfocusedInactiveForeground": "#888477", + "tab.activeBorderTop": "#00c6e0", + "tab.activeModifiedBorder": "#00b368", + "tab.activeBorder": "#fef8ec", + "tab.unfocusedActiveBorder": "#fef8ec00", + "tab.unfocusedHoverBackground": "#0099ad21", + "textBlockQuote.background": "#f9f1e1", + "textBlockQuote.border": "#00899e", + "textCodeBlock.background": "#f9f1e1", + "textLink.activeForeground": "#00c6e0", + "textLink.foreground": "#00c6e0", + "textPreformat.foreground": "#e9a149", + "textSeparator.foreground": "#f9f1e1", + "walkThrough.embeddedEditorBackground": "#f9f1e1", + "welcomePage.buttonBackground": "#f9f1e1", + "welcomePage.buttonHoverBackground": "#e1e0d0", + "input.background": "#fef8ec", + "input.border": "#f2edde", + "input.foreground": "#6a7a7c", + "input.placeholderForeground": "#9fabad", + "inputOption.activeBorder": "#0099ad", + "inputValidation.errorBackground": "#ff400041", + "inputValidation.errorBorder": "#ff4000", + "inputValidation.infoBackground": "#00c6e0cc", + "inputValidation.infoBorder": "#00c6e0", + "inputValidation.warningBackground": "#ffa587cc", + "inputValidation.warningBorder": "#ffa487", + "editorWidget.background": "#f2edde", + "editorWidget.border": "#ece2c600", + "editorHoverWidget.background": "#f2edde", + "editorHoverWidget.border": "#ece2c600", + "editorSuggestWidget.background": "#f2edde", + "editorSuggestWidget.border": "#ece2c600", + "editorSuggestWidget.foreground": "#6a7a7c", + "editorSuggestWidget.highlightForeground": "#0099ad", + "editorSuggestWidget.selectedBackground": "#dbfaff", + "editorGutter.background": "#fef8ec", + "editorGutter.addedBackground": "#8ce99a", + "editorGutter.deletedBackground": "#ff4000", + "editorGutter.modifiedBackground": "#e9a149", + "editor.selectionBackground": "#ade2eb77", + "editor.selectionHighlightBackground": "#14a5ff33", + "editor.selectionHighlightBorder": "#14a5ff00", + "editor.inactiveSelectionBackground": "#ade2eb55", + "editor.wordHighlightStrongBackground": "#b5890027", + "editor.wordHighlightStrongBorder": "#b5890000", + "editor.wordHighlightBackground": "#e9a14922", + "editor.wordHighlightBorder": "#e9a14900", + "editor.findMatchBackground": "#8ce99a55", + "editor.findMatchBorder": "#8ce99a00", + "editor.findMatchHighlightBackground": "#148f9f33", + "editor.findMatchHighlightBorder": "#148f9f00", + "editor.findRangeHighlightBackground": "#99e62a55", + "editor.findRangeHighlightBorder": "#58CC6D00", + "editor.hoverHighlightBackground": "#0099ad3f", + "editor.lineHighlightBackground": "#d1ebefcc", + "editor.lineHighlightBorder": "#d1ebef00", + "editor.rangeHighlightBackground": "#f1e9d5a1", + "editorLink.activeForeground": "#14a5ff", + "editorWhitespace.foreground": "#d3cec5bb", + "editorIndentGuide.background": "#d3cec5aa", + "editorIndentGuide.activeBackground": "#88adc3", + "editorBracketMatch.background": "#0099ad20", + "editorBracketMatch.border": "#0099ad", + "editorRuler.foreground": "#f1e6d0", + "editorCodeLens.foreground": "#77aaca", + "terminal.ansiBlack": "#003b42", + "terminal.ansiRed": "#e34e1c", + "terminal.ansiGreen": "#00b368", + "terminal.ansiYellow": "#f49725", + "terminal.ansiBlue": "#0094f0", + "terminal.ansiMagenta": "#ff5792", + "terminal.ansiCyan": "#00bdd6", + "terminal.ansiWhite": "#8ca6a6", + "terminal.ansiBrightBlack": "#004d57", + "terminal.ansiBrightRed": "#ff4000", + "terminal.ansiBrightGreen": "#00d17a", + "terminal.ansiBrightYellow": "#ff8c00", + "terminal.ansiBrightBlue": "#0fa3ff", + "terminal.ansiBrightMagenta": "#ff6b9f", + "terminal.ansiBrightCyan": "#00cbe6", + "terminal.ansiBrightWhite": "#bbc3c4", + "terminal.background": "#f6edda", + "terminal.foreground": "#005661", + "terminalCursor.background": "#f6edda", + "terminalCursor.foreground": "#005661", + "merge.border": "#fef8ec00", + "merge.currentContentBackground": "#33e7ff33", + "merge.currentHeaderBackground": "#33e7ff55", + "merge.incomingContentBackground": "#9d92f233", + "merge.incomingHeaderBackground": "#9d92f255", + "merge.commonContentBackground": "#ffc18033", + "merge.commonHeaderBackground": "#ffc18055", + "editorOverviewRuler.currentContentForeground": "#33e7ff55", + "editorOverviewRuler.incomingContentForeground": "#9d92f255", + "editorOverviewRuler.commonContentForeground": "#ffc18055", + "editorOverviewRuler.border": "#fef8ec", + "notificationCenter.border": "#f2edde", + "notificationCenterHeader.foreground": "#005661", + "notificationCenterHeader.background": "#f2edde", + "notificationToast.border": "#f2edde", + "notifications.foreground": "#005661", + "notifications.background": "#f2edde", + "notifications.border": "#f2edde", + "notificationLink.foreground": "#005661", + "diffEditor.insertedTextBackground": "#14b83230", + "diffEditor.removedTextBackground": "#BB1F0522", + "debugToolBar.background": "#f9f1e1", + "debugExceptionWidget.background": "#f9f1e1", + "debugExceptionWidget.border": "#00899e", + "extensionButton.prominentBackground": "#099099", + "extensionButton.prominentForeground": "#e5f5f5", + "extensionButton.prominentHoverBackground": "#0cc", + "focusBorder": "#f2edde", + "foreground": "#005661", + "panel.background": "#f6edda", + "panel.border": "#00c6e0", + "panelTitle.activeBorder": "#00c6e0", + "panelTitle.activeForeground": "#0099ad", + "panelTitle.inactiveForeground": "#888477", + "peekView.border": "#0099ad", + "peekViewEditor.background": "#fff7e5", + "peekViewEditor.matchHighlightBackground": "#148f9f33", + "peekViewEditor.matchHighlightBorder": "#148f9f79", + "peekViewEditorGutter.background": "#fff7e5", + "peekViewResult.background": "#f9f1e1", + "peekViewResult.fileForeground": "#e9a149", + "peekViewResult.lineForeground": "#87a7ab", + "peekViewResult.matchHighlightBackground": "#f2edde", + "peekViewResult.selectionBackground": "#f2edde", + "peekViewResult.selectionForeground": "#6a7a7c", + "peekViewTitle.background": "#f9f1e1", + "peekViewTitleDescription.foreground": "#87a7ab", + "peekViewTitleLabel.foreground": "#e9a149", + "progressBar.background": "#00c6e0", + "scrollbar.shadow": "#00000055", + "scrollbarSlider.activeBackground": "#0099adad", + "scrollbarSlider.background": "#6a90955b", + "scrollbarSlider.hoverBackground": "#0099ad62", + "gitDecoration.addedResourceForeground": "#009456", + "gitDecoration.modifiedResourceForeground": "#14b832", + "gitDecoration.deletedResourceForeground": "#ff4000", + "gitDecoration.untrackedResourceForeground": "#00c6e0", + "gitDecoration.ignoredResourceForeground": "#a8a28faa", + "gitDecoration.conflictingResourceForeground": "#e9a149", + "pickerGroup.border": "#00c6e0", + "pickerGroup.foreground": "#0099ad", + "list.activeSelectionBackground": "#b6e1e7", + "list.activeSelectionForeground": "#005661", + "list.dropBackground": "#cdcbb2", + "list.focusBackground": "#bee3ea", + "list.focusForeground": "#005661", + "list.highlightForeground": "#0099ad", + "list.hoverBackground": "#d2f3f9", + "list.hoverForeground": "#005661", + "list.inactiveFocusBackground": "#c9eaed", + "list.inactiveSelectionBackground": "#d5eef1", + "list.inactiveSelectionForeground": "#949384", + "list.errorForeground": "#c9481d", + "list.warningForeground": "#e07a52", + "listFilterWidget.background": "#d5eef1", + "listFilterWidget.outline": "#14b832", + "listFilterWidget.noMatchesOutline": "#ff4000", + "tree.indentGuidesStroke": "#d3cec5", + "settings.headerForeground": "#004d57", + "settings.modifiedItemIndicator": "#00bd23", + "settings.dropdownListBorder": "#ade2eb88", + "settings.dropdownBackground": "#f2edde", + "settings.dropdownForeground": "#0bb", + "settings.dropdownBorder": "#f2edde", + "settings.checkboxBackground": "#f2edde", + "settings.checkboxForeground": "#0bb", + "settings.checkboxBorder": "#f2edde", + "settings.textInputBackground": "#f2edde", + "settings.textInputForeground": "#0bb", + "settings.textInputBorder": "#f2edde", + "settings.numberInputBackground": "#f0e7d1", + "settings.numberInputForeground": "#5842ff", + "settings.numberInputBorder": "#f0e7d1", + "breadcrumb.foreground": "#888477", + "breadcrumb.background": "#fef8ec", + "breadcrumb.focusForeground": "#0099ad", + "breadcrumb.activeSelectionForeground": "#005661", + "breadcrumbPicker.background": "#f2edde", + "titleBar.activeBackground": "#f9f1e1", + "titleBar.activeForeground": "#005661", + "titleBar.inactiveBackground": "#f9f1e1", + "titleBar.inactiveForeground": "#888477", + "menu.background": "#f2edde", + "menu.foreground": "#888477", + "menu.selectionBackground": "#d2f3f9", + "menu.selectionForeground": "#0099ad", + "menu.selectionBorder": "#d2f3f9", + "menubar.selectionBackground": "#d2f3f9", + "menubar.selectionForeground": "#0099ad", + "menubar.selectionBorder": "#d2f3f9", + "editor.snippetTabstopHighlightBackground": "#fdefd3", + "editor.snippetTabstopHighlightBorder": "#fdf3dd", + "editor.snippetFinalTabstopHighlightBackground": "#fdefd3", + "editor.snippetFinalTabstopHighlightBorder": "#fdf3dd", + "minimap.findMatchHighlight": "#0099adaa", + "minimap.errorHighlight": "#ff4000ee", + "minimap.warningHighlight": "#e69533ee", + "minimapGutter.addedBackground": "#009456", + "minimapGutter.modifiedBackground": "#14b832", + "minimapGutter.deletedBackground": "#ff4000", + "minimap.background": "#fef8ec99" + }, + "tokenColors": [ + { + "name": "COMMENT", + "scope": [ + "comment", + "punctuation.definition.comment", + "punctuation.definition.tag", + "comment.block.documentation punctuation.definition.bracket", + "source.ocaml comment constant.regexp meta.separator", + "markup.other.anchor support.constant", + "markup.fenced_code", + "markup.fenced_code punctuation.definition", + "punctuation.definition.heading", + "punctuation.definition.bold.markdown", + "punctuation.definition.italic.markdown", + "punctuation.definition.strikethrough.markdown" + ], + "settings": { + "foreground": "#8ca6a6" + } + }, + { + "name": "TEXT", + "scope": [ + "constant.character", + "constant.escape", + "text.html.markdown", + "punctuation.definition.list_item", + "keyword.begin.tag.ejs", + "constant.name.attribute.tag.pug", + "source.clojure meta.symbol", + "constant.other.description.jsdoc", + "keyword.other.array.phpdoc.php", + "keyword.operator.other.powershell", + "meta.link.inline punctuation.definition.string", + "source.sql", + "source meta.brace", + "source punctuation", + "text.html punctuation", + "markup meta punctuation.definition", + "meta.bracket.julia", + "meta.array.julia", + "entity.name.footnote", + "source.ocaml punctuation.definition.tag", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "entity.other.attribute-name strong", + "binding.fsharp keyword.symbol.fsharp", + "entity.name.record.field.elm", + "entity.name.record.field.accessor.elm", + "storage.modifier.array.bracket", + "source.css entity.other", + "meta.attribute-selector punctuation.definition.entity", + "markup.other.anchor string", + "punctuation.separator", + "punctuation.section", + "punctuation.terminator" + ], + "settings": { + "foreground": "#004d57" + } + }, + { + "name": "KEYWORD", + "scope": [ + "keyword", + "keyword.control", + "keyword.other.template", + "keyword.other.substitution", + "storage.modifier", + "meta.tag.sgml", + "punctuation.accessor", + "constant.other.color", + "entity.name.section", + "markup.heading", + "markup.heading punctuation.definition", + "entity.other.attribute-name.pseudo-class", + "entity.other.attribute-name.pseudo-element", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "storage.type.function.pug", + "text.pug storage.type", + "text.pug meta.tag.other", + "source.clojure storage.control", + "meta.expression.clojure", + "punctuation.separator.slice.python", + "punctuation.separator.question-mark.cs", + "punctuation.definition.parameters.varargs", + "source.go keyword.operator", + "punctuation.separator.pointer-access", + "punctuation.separator.other.ruby", + "keyword.package", + "keyword.import", + "punctuation.definition.keyword", + "punctuation.separator.hash.cs", + "entity.other.attribute-name.pseudo-class.css punctuation.definition.entity.css", + "entity.other.attribute-name.pseudo-element.css punctuation.definition.entity.css", + "source.kotlin storage.type.import", + "source.kotlin storage.type.package", + "constant.string.documentation.powershell", + "punctuation.section.directive", + "storage.type.rust", + "punctuation.definition.attribute", + "punctuation.definition.preprocessor", + "punctuation.separator.namespace", + "punctuation.separator.method", + "keyword.control punctuation.definition.function", + "source.ocaml variable.interpolation string", + "source.reason variable.interpolation", + "punctuation.definition.directive", + "storage.type.modifier", + "keyword.other.class.fileds", + "source.toml entity.other.attribute-name", + "source.css entity.name.tag.custom", + "sharing.modifier", + "keyword.control.class.ruby", + "keyword.control.def.ruby" + ], + "settings": { + "foreground": "#ff5792" + } + }, + { + "name": "VARIABLE", + "scope": [ + "variable", + "variable.object", + "variable.other", + "variable.parameter", + "support", + "entity.name.module", + "variable.import.parameter", + "variable.other.class", + "meta.toc-list.id.html", + "source.json meta.structure.dictionary.json support.type.property-name.json", + "meta.var.clojure", + "entity.name.variable", + "source.java meta.class.body.java", + "entity.name.package.go", + "source.c", + "source.cpp", + "source.go", + "source.python", + "meta.function-call.arguments.python", + "source.ruby", + "source.coffee.embedded.source", + "source.coffee", + "storage.modifier.import", + "storage.modifier.package", + "storage.type.annotation", + "punctuation.definition.annotation", + "source.groovy.embedded.source", + "punctuation.definition.variable", + "source.powershell", + "string.quoted.interpolated.vala constant.character.escape.vala", + "source.apacheconf", + "source.objc", + "source.crystal", + "string.quoted.double.kotlin entity.string.template.element.kotlin", + "entity.name.package.kotlin", + "meta.template.expression.kotlin", + "parameter.variable.function", + "variable.other.constant.elixir", + "source.elixir.embedded.source", + "source.sql.embedded", + "punctuation.definition.placeholder", + "source.swift", + "source.julia", + "source.shell", + "variable.other.normal punctuation.definition.variable.shell", + "source.reason variable.language", + "source.reason variable.language string.other.link", + "source.elm meta.value", + "source.elm meta.declaration.module", + "meta.embedded.block variable punctuation.definition.variable.php", + "string.quoted.double.class.other", + "source.toml keyword", + "support.type.nim", + "source.tf meta.template.expression", + "source.scala entity.name.import", + "markup.code", + "markup.fenced_code.block" + ], + "settings": { + "foreground": "#fa8900" + } + }, + { + "name": "ANNOTATION", + "scope": [ + "support.variable.property", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "entity.other.attribute-name.id", + "entity.other.attribute-name.id punctuation.definition.entity", + "entity.name.type.annotation.kotlin", + "support.type.primitive", + "meta.type.parameters entity.name.type", + "meta.type.annotation entity.name.type", + "punctuation.definition.typeparameters", + "source.python support.type.python", + "comment.block.documentation.phpdoc.php keyword.other.type.php", + "storage.type.php", + "keyword.type", + "storage.type.cs", + "storage.type.c", + "storage.type.objc", + "punctuation.definition.storage.type.objc", + "markup punctuation.definition", + "storage.type.powershell", + "comment.block.documentation entity.name.type", + "source.java storage.type", + "storage.type.primitive", + "source.groovy storage.type", + "storage.type.r", + "source.haskell storage.type", + "punctuation.separator.clause-head-body", + "source.go storage.type", + "storage.type.core.rust", + "storage.class.std.rust", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "support.type.vb", + "entity.name.type.kotlin", + "support.type.julia", + "constant.other.reference", + "source.graphql support.type", + "source.reason support.type string", + "entity.name.type.fsharp", + "source.elm storage.type", + "storage.type.user-defined", + "storage.type.built-in", + "support.type.builtin", + "source.swift support.type", + "support.class.crystal", + "storage.type.integral", + "source.cpp storage.type.cpp", + "source.vala storage.type", + "source.hlsl storage.type.basic", + "source.hlsl support.type.other", + "source.apex storage.type", + "source.nim storage.type", + "source.cpp entity.name.type", + "support.class.builtin", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "markup.raw.monospace", + "markup.mark", + "entity.name.type.primitive", + "entity.name.type.numeric" + ], + "settings": { + "foreground": "#b3694d" + } + }, + { + "name": "CONSTANT", + "scope": [ + "constant", + "variable.other.constant", + "support.constant", + "punctuation.definition.entity", + "constant.character.entity", + "support.variable.magic", + "markup.quote", + "entity.name.type.type-parameter.cs", + "punctuation.bracket.angle", + "entity.name.function.preprocessor.c", + "storage.type.scala", + "entity.helper.apacheconf", + "variable.language.crystal", + "punctuation.definition.constant", + "support.constant punctuation.definition.variable", + "constant.character.math", + "support.class.math", + "source.graphql constant.character", + "source.reason constant.language.list", + "source.cpp variable.other.enummember", + "support.variable.class.hideshow", + "entity.other.attribute-name.class", + "meta.attribute.id entity.other.attribute-name", + "text.html entity.other.attribute-name", + "meta.tag.attributes entity.other.attribute-name", + "text.xml entity.other.attribute-name", + "source.cs entity.other.attribute-name", + "constant.character.format.placeholder", + "constant.other.placeholder", + "source.vue entity.other.attribute-name", + "entity.other.attribute-name.mjml", + "source.vue meta.directive punctuation.separator.key-value", + "meta.definition.attribute-entry punctuation.separator" + ], + "settings": { + "foreground": "#a88c00" + } + }, + { + "name": "TAG", + "scope": [ + "variable.language", + "variable.parameter.function.language.special", + "punctuation.definition.italic", + "punctuation.definition.bold", + "entity.name.tag", + "variable.language punctuation.definition.variable", + "keyword.control.clojure", + "support.type.exception.python", + "keyword.other.this.cs", + "keyword.other.base.cs", + "keyword.other.var.cs", + "storage.modifier.super", + "source.go keyword", + "keyword.function.go", + "meta.separator", + "keyword.other.fn.rust", + "storage.modifier.static.rust", + "source.r meta.function.r keyword.control.r", + "storage.type.def", + "meta.class.identifier storage.modifier", + "source.scala keyword.declaration", + "storage.type", + "comment.block.documentation punctuation.definition.block.tag", + "comment.block.documentation punctuation.definition.inline.tag", + "entity.tag.apacheconf", + "keyword.other.julia", + "source.julia storage.modifier", + "constant.language.empty-list.haskell", + "meta.function.powershell storage.type.powershell", + "keyword.control.fun", + "punctuation.terminator.function", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "keyword.control.class", + "keyword.control.def", + "source.ocaml keyword markup.underline", + "source.ocaml storage.type markup.underline", + "binding.fsharp keyword", + "function.anonymous keyword", + "function.anonymous keyword.symbol.fsharp", + "meta.embedded.block variable.language punctuation.definition.variable.php", + "keyword.declaration.dart", + "source.wsd keyword.other.class", + "source.wsd keyword.other.linebegin", + "keyword.other.skinparam.keyword", + "keyword.other.nim", + "markup.deleted.diff", + "source.tf support.class.variable", + "meta.function.lua keyword.control.lua", + "markup.block entity.name.tag", + "markup.meta.attribute-list", + "source.zig keyword.default", + "source.zig keyword.structure" + ], + "settings": { + "foreground": "#e64100" + } + }, + { + "name": "STRING", + "scope": [ + "string", + "punctuation.definition.string", + "source.css support.constant", + "entity.name.import.go", + "markup.raw.texttt", + "markup.inserted.diff", + "source.scala punctuation.definition.character", + "constant.character.literal.scala", + "source.tf entity.name" + ], + "settings": { + "foreground": "#00b368" + } + }, + { + "name": "STRINGINTERPOLATED", + "scope": [ + "string.template", + "punctuation.definition.string.template", + "string.interpolated.python string.quoted.single.python", + "string.quoted.double.heredoc", + "string.quoted.interpolated.vala", + "string.quoted.interpolated.vala punctuation.definition.string", + "string.regexp.apacheconf", + "markup.inline.raw.string", + "markup.inline.raw punctuation.definition.raw", + "string.quoted.double.interpolated.crystal", + "string.quoted.double.interpolated.crystal punctuation.definition.string", + "text.tex markup.raw" + ], + "settings": { + "foreground": "#009456" + } + }, + { + "name": "NUMBER", + "scope": [ + "constant.numeric", + "constant.language", + "punctuation.separator.decimal.period.php", + "keyword.operator.null-conditional.cs", + "punctuation.separator.question-mark.cs", + "constant.integer.apacheconf", + "keyword.operator.nullable-type", + "constant.language punctuation.definition.variable", + "constant.others.fsharp", + "keyword.other.unit", + "string.quoted.double.skinparam.value", + "source.toml constant", + "source.zig keyword.constant.bool", + "source.zig keyword.constant.default" + ], + "settings": { + "foreground": "#5842ff" + } + }, + { + "name": "FUNCTION", + "scope": [ + "variable.function", + "support.type.property-name", + "entity.name.function", + "string.other.link", + "markup.link", + "support.type.vendored", + "support.other.variable", + "meta.function-call.generic.python", + "meta.method-call.groovy meta.method.groovy", + "meta.class.body.groovy meta.method.body.java storage.type.groovy", + "punctuation.definition.decorator", + "support.function.any-method", + "text.tex support.function", + "text.tex punctuation.definition.function", + "entity.name.section.fsharp entity.name.section.fsharp", + "support.variable.class.function", + "keyword.control.cucumber.table", + "punctuation.decorator", + "source.tf support.class" + ], + "settings": { + "foreground": "#0095a8" + } + }, + { + "name": "SUPPORT", + "scope": [ + "entity.name", + "entity.other", + "support.orther.namespace.use.php", + "meta.use.php", + "support.other.namespace.php", + "support.type", + "support.class", + "punctuation.definition.parameters", + "support.function", + "support.function.construct", + "markup.changed.git_gutter", + "markup.underline.link", + "markup.underline.link.image", + "markup.underline", + "meta.symbol.namespace.clojure", + "entity.mime-type.apacheconf", + "keyword.operator.function.infix", + "entity.name.function.infix", + "entity.name.function.call.kotlin", + "text.tex support.function.verb", + "text.tex support.function.texttt", + "source.reason constant.language.unit", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "constant.language.unit.fsharp", + "source.wsd support.class.preprocessings", + "keyword.language.gherkin.feature.scenario", + "source.nim keyword.other.common.function", + "entity.name.type.namespace", + "entity.name.scope-resolution.function.call" + ], + "settings": { + "foreground": "#00bdd6" + } + }, + { + "name": "MISC", + "scope": [ + "source.js constant.other.object.key.js string.unquoted.label.js", + "source.js punctuation.section.embedded", + "punctuation.definition.template-expression", + "support.class", + "storage.type.string.python", + "string.interpolated.pug", + "support.constant.handlebars", + "source.clojure punctuation.section.set", + "source.clojure punctuation.section.metadata", + "entity.global.clojure", + "source.python meta.function-call.python support.type.python", + "entity.other.inherited-class.python", + "punctuation.definition.interpolation", + "punctuation.section.embedded.begin.ruby", + "punctuation.section.embedded.end.ruby source.ruby", + "support.constant.math", + "entity.namespace.r", + "meta.method-call.groovy storage.type.groovy", + "source.scala entity.name.class.declaration", + "constant.character.escape", + "support.function.macro.julia", + "string.replacement.apacheconf", + "storage.modifier.using.vala", + "constant.other.haskell", + "source.objc entity.name.tag", + "string.quoted.other.literal.upper.crystal punctuation.definition.string", + "meta.embedded.line.crystal punctuation.section.embedded", + "meta.embedded.line.crystal punctuation.section.embedded source.crystal", + "punctuation.section.embedded", + "punctuation.section.tag", + "punctuation.section.embedded source.swift", + "variable.other.bracket punctuation.definition.variable", + "string.interpolated.dollar punctuation.definition.string", + "constant.character.escape punctuation.definition.keyword", + "source.ocaml entity.name.class constant.numeric", + "source.reason entity.name.class", + "keyword.format.specifier.fsharp", + "support.module.elm", + "meta.embedded.block.php punctuation.definition.variable.php", + "source.vala storage.type", + "support.variable.class.group", + "entity.name.type.class", + "source.tf meta.keyword.list", + "source.tf meta.keyword.map", + "entity.name.class.lua", + "markup.substitution" + ], + "settings": { + "foreground": "#0094f0" + } + }, + { + "name": "INVALID", + "scope": ["invalid", "invalid.illegal"], + "settings": { + "foreground": "#ff530f" + } + }, + { + "name": "ITALIC", + "scope": [ + "comment", + "storage.modifier", + "punctuation.definition.comment", + "entity.other", + "variable.language", + "support.type.vendored", + "support.constant.vendored", + "markup.quote", + "markup.italic", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "keyword.control.clojure", + "source.clojure meta.symbol.dynamic", + "keyword.other.this.cs", + "keyword.other.base.cs", + "variable.other.member.c", + "support.type.core.rust", + "variable.other.object.property", + "variable.other.property", + "source.r meta.function.r keyword.control.r", + "comment.line.roxygen.r keyword", + "comment.line.roxygen.r variable.parameter.r", + "keyword.control.inheritance.coffee", + "comment.block.documentation.phpdoc.php keyword", + "keyword.other.array.phpdoc.php", + "storage.type.modifier", + "comment.block.javadoc.java keyword", + "comment.block.javadoc.java variable.parameter.java", + "keyword.operator.documentation.powershell", + "storage.type.scala", + "variable.parameter.function.language.special", + "comment.block.documentation.scala keyword", + "comment.block.documentation.scala variable.parameter", + "support.function.builtin.go", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.ruby", + "source.vala storage.type.generic", + "constant.other.table-name", + "constant.other.placeholder", + "variable.other.field", + "entity.alias.import.go", + "source.swift keyword.other.declaration-specifier", + "support.variable.swift", + "keyword.other.capture-specifier", + "text.tex support.function.emph", + "constant.other.math", + "support.function.textit", + "entity.name.footnote", + "entity.name.function.directive.graphql", + "source.graphql support.type.enum", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "abstract.definition.fsharp keyword", + "abstract.definition.fsharp entity", + "function.anonymous keyword", + "entity.name.record.field.accessor.elm", + "support.type.primitive", + "support.type.builtin", + "keyword.type.cs", + "storage.type.built-in", + "storage.type.primitive", + "source.python support.type.python", + "storage.type.core.rust", + "source.swift support.type", + "source.go storage.type", + "storage.type.php", + "storage.type.function.kotlin", + "entity.name.type.kotlin", + "support.type.julia", + "variable.other.member", + "keyword.other.import", + "keyword.package", + "keyword.import", + "source.wsd keyword.control.diagram", + "keyword.language.gherkin.feature.step", + "source.hlsl storage.type.basic", + "source.apex keyword.type", + "sharing.modifier", + "source.nim storage.type.concrete", + "meta.preprocessor.pragma.nim", + "storage.type.integral", + "entity.name.scope-resolution.function.call", + "support.class.builtin", + "comment.block.documentation storage.type.class", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "meta.import keyword.control", + "keyword.control.export", + "source.vue meta.directive punctuation.separator.key-value", + "keyword.local.lua", + "markup.mark.constrained markup.mark", + "markup.block.open", + "entity.name.type.primitive", + "entity.name.type.numeric", + "source.zig keyword.type", + "source.zig keyword.storage", + "source.zig keyword.structure" + ], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "BOLD", + "scope": [ + "keyword", + "keyword.control", + "keyword.operator", + "keyword.other.template", + "keyword.other.substitution", + "storage.type.function.arrow", + "constant.other.color", + "punctuation.accessor", + "entity.name.section", + "markdown.heading", + "markup.inline.raw punctuation.definition.raw", + "markup.heading", + "storage.type.function.pug", + "storage.type.function.python", + "storage.type.annotation", + "punctuation.bracket.angle", + "keyword.other.new", + "storage.type.generic.wildcard", + "source.go keyword.operator", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "variable.parameter", + "support.function.builtin.rust", + "storage.type.function.coffee", + "entity.name.variable.parameter", + "punctuation.separator.hash.cs", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "meta.function.parameters variable.other", + "entity.name.type.annotation.kotlin", + "storage.type.objc", + "parameter.variable.function", + "markup punctuation.definition", + "punctuation.section.directive", + "punctuation.definition.preprocessor", + "source.ruby punctuation.definition.variable", + "support.function.textbf", + "source.graphql support.type.builtin", + "source.ocaml variable.interpolation string", + "entity.name.function.definition.special.constructor", + "entity.name.function.definition.special.member.destructor.", + "meta.function.parameters variable punctuation.definition.variable.php", + "source.wsd keyword.other.activity", + "keyword.control.class.ruby", + "keyword.control.def.ruby", + "keyword.function.go", + "keyword.other.fn.rust", + "markup.other.anchor", + "markup.list.bullet", + "markup.list punctuation.definition", + "keyword.control.default", + "punctuation.section", + "punctuation.separator", + "punctuation.terminator", + "markup.bold.markdown", + "source.zig storage.type.function" + ], + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "BOLD-ITALIC", + "scope": [ + "markup.quote markup.bold", + "text.html punctuation.section.embedded", + "variable.other.c", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "source.rust meta.attribute.rust", + "meta.attribute.id entity.other.attribute-name", + "source.ocaml punctuation.definition.tag emphasis", + "source.tf entity.name", + "markup.quote punctuation.definition", + "markup.fenced_code punctuation.definition", + "fenced_code.block.language" + ], + "settings": { + "fontStyle": "bold italic" + } + }, + { + "name": "NORMAL", + "scope": [ + "keyword.begin.tag.ejs", + "source.python meta.function.decorator.python support.type.python", + "source.cs keyword.other", + "keyword.other.var.cs", + "source.go keyword", + "storage.modifier.static.rust", + "variable.parameter.r", + "variable.parameter.handlebars", + "storage.modifier.import", + "storage.modifier.package", + "meta.class.identifier storage.modifier", + "keyword.operator.other.powershell", + "source.css variable.parameter", + "string.interpolated variable.parameter", + "source.apacheconf keyword", + "keyword.other.julia", + "storage.modifier.using.vala", + "source.objc keyword.other.property.attribute", + "source.sql keyword.other", + "keyword.other.using.vala", + "keyword.operator.function.infix", + "keyword.control.directive", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "entity.name.function.swift", + "keyword.control.class", + "keyword.control.def", + "punctuation.definition.variable", + "entity.name.section.latex", + "source.ocaml keyword markup.underline", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "keyword.format.specifier.fsharp", + "entity.name.section.fsharp", + "binding.fsharp keyword", + "binding.fsharp keyword.symbol", + "record.fsharp keyword", + "keyword.symbol.fsharp", + "entity.name.section.fsharp keyword", + "namespace.open.fsharp keyword", + "namespace.open.fsharp entity", + "storage.type", + "source.cpp keyword.other", + "source.c keyword.other", + "keyword.other.unit", + "storage.modifier.array.bracket", + "meta.import.haskell keyword", + "keyword.declaration.dart", + "source.wsd keyword.other", + "keyword.other.skinparam", + "source.css keyword.control", + "source.css keyword.operator", + "keyword.language.gherkin.feature.scenario", + "keyword.control.cucumber.table", + "source.toml entity.other.attribute-name", + "source.toml keyword", + "keyword.other.nim", + "source.nim keyword.other.common.function", + "source.nim keyword.other", + "source.scala keyword.declaration", + "source.scala entity.name.class.declaration", + "keyword.control.lua", + "source.css punctuation.section", + "punctuation.section.embedded", + "source.c punctuation.section", + "source.cpp punctuation.section", + "source.java punctuation.section", + "source.php punctuation.section", + "source.powershell punctuation.section", + "source.r punctuation.section", + "source.ruby punctuation.section", + "source.swift punctuation.section", + "source.objc punctuation.section", + "source.zig keyword.constant.bool", + "source.zig keyword.default", + "source.zig keyword.statement", + "source.zig keyword.constant.default" + ], + "settings": { + "fontStyle": "" + } + }, + { + "name": "STRIKETHROUGH", + "scope": ["markup.strikethrough"], + "settings": { + "fontStyle": "strikethrough" + } + } + ] +} diff --git a/assets/themes/src/vscode/noctis/minimus.json b/assets/themes/src/vscode/noctis/minimus.json new file mode 100644 index 0000000000..88493d99d5 --- /dev/null +++ b/assets/themes/src/vscode/noctis/minimus.json @@ -0,0 +1,1113 @@ +{ + "name": "Noctis Minimus", + "type": "dark", + "colors": { + "selection.background": "#5998c077", + "descriptionForeground": "#6496b4", + "errorForeground": "#b96346", + "widget.shadow": "#00000044", + "editor.background": "#1b2932", + "editor.foreground": "#c5cdd3", + "editorLineNumber.foreground": "#5d6e79", + "editorLineNumber.activeForeground": "#6496b4", + "editorCursor.foreground": "#b3d2e6", + "badge.background": "#5998c0", + "badge.foreground": "#101213", + "activityBar.background": "#1b2932", + "activityBar.dropBackground": "#6496b465", + "activityBar.border": "#101213", + "activityBar.foreground": "#496d83", + "activityBar.inactiveForeground": "#496d8377", + "activityBarBadge.background": "#5998c0", + "activityBarBadge.foreground": "#101213", + "activityBar.activeBackground": "#5998c033", + "activityBar.activeBorder": "#5998c0", + "sideBar.background": "#17232b", + "sideBar.dropBackground": "#17232b", + "sideBar.border": "#101213", + "sideBar.foreground": "#96a8b6", + "sideBarSectionHeader.background": "#202e37", + "sideBarSectionHeader.foreground": "#96a8b6", + "sideBarTitle.foreground": "#96a8b6", + "sideBarSectionHeader.border": "#101213", + "statusBar.foreground": "#496d83", + "statusBar.background": "#1b2932", + "statusBar.border": "#101213", + "statusBar.debuggingBackground": "#1b2932", + "statusBar.debuggingForeground": "#d2799850", + "statusBar.debuggingBorder": "#d27998af", + "statusBar.noFolderForeground": "#98a6ae", + "statusBar.noFolderBackground": "#1b2932", + "statusBar.noFolderBorder": "#1b2932", + "statusBarItem.activeBackground": "#3d708f66", + "statusBarItem.hoverBackground": "#243742", + "statusBarItem.prominentBackground": "#152128", + "statusBarItem.prominentHoverBackground": "#102837", + "button.background": "#2e616b", + "button.foreground": "#ebf7ff", + "button.hoverBackground": "#3d818f", + "dropdown.background": "#202e37", + "dropdown.border": "#202e37", + "dropdown.foreground": "#6496b4", + "editorMarkerNavigation.background": "#43435629", + "editorMarkerNavigationError.background": "#b96346", + "editorMarkerNavigationWarning.background": "#c09159", + "editorError.border": "#1b2932", + "editorError.foreground": "#b96346", + "editorWarning.border": "#1b2932", + "editorWarning.foreground": "#c09159", + "editorInfo.border": "#1b2932", + "editorInfo.foreground": "#5998c0", + "editorHint.border": "#72c09f00", + "editorHint.foreground": "#72c09f", + "editorGroup.emptyBackground": "#5d6e7933", + "editorGroup.border": "#101213", + "editorGroup.dropBackground": "#5d6e7933", + "editorGroupHeader.noTabsBackground": "#202e37", + "editorGroupHeader.tabsBackground": "#24333d", + "editorGroupHeader.tabsBorder": "#202e37", + "tab.activeBackground": "#1b2932", + "tab.unfocusedActiveBackground": "#1e2b33", + "tab.activeForeground": "#5998c0", + "tab.border": "#101213", + "tab.inactiveBackground": "#202e37", + "tab.inactiveForeground": "#96a8b6", + "tab.unfocusedActiveForeground": "#96a8b6", + "tab.unfocusedInactiveForeground": "#96a8b6", + "tab.activeBorderTop": "#5998c0", + "tab.activeModifiedBorder": "#72c09f", + "tab.activeBorder": "#1b2932", + "tab.unfocusedActiveBorder": "#1b2932", + "tab.unfocusedHoverBackground": "#5998c021", + "textBlockQuote.background": "#1b2932", + "textBlockQuote.border": "#496d83", + "textCodeBlock.background": "#1b2932", + "textLink.activeForeground": "#5998c0", + "textLink.foreground": "#5998c0", + "textPreformat.foreground": "#dfc09f", + "textSeparator.foreground": "#1b2932", + "walkThrough.embeddedEditorBackground": "#1b2932", + "welcomePage.buttonBackground": "#0e1920", + "welcomePage.buttonHoverBackground": "#202e37", + "input.background": "#0e1920", + "input.border": "#1a2f3d", + "input.foreground": "#CDD3DE", + "input.placeholderForeground": "#98a6ae", + "inputOption.activeBorder": "#496d83", + "inputValidation.errorForeground": "#b96346", + "inputValidation.errorBackground": "#3b2016ee", + "inputValidation.errorBorder": "#4e291d", + "inputValidation.infoForeground": "#6fb0b8", + "inputValidation.infoBackground": "#2d575cee", + "inputValidation.infoBorder": "#3b7178", + "inputValidation.warningForeground": "#c09159", + "inputValidation.warningBackground": "#736759cc", + "inputValidation.warningBorder": "#94826b", + "editorWidget.background": "#202e37", + "editorWidget.border": "#101213", + "editorHoverWidget.background": "#14242e", + "editorHoverWidget.border": "#101213", + "editorSuggestWidget.background": "#14242e", + "editorSuggestWidget.border": "#101213", + "editorSuggestWidget.foreground": "#96a8b6", + "editorSuggestWidget.highlightForeground": "#5998c0", + "editorSuggestWidget.selectedBackground": "#2c414e", + "editorGutter.background": "#1b2932", + "editorGutter.addedBackground": "#a0d4a8", + "editorGutter.deletedBackground": "#b96346", + "editorGutter.modifiedBackground": "#dfc09f", + "editor.selectionBackground": "#496d8355", + "editor.selectionHighlightBackground": "#5998c033", + "editor.inactiveSelectionBackground": "#496d8333", + "editor.wordHighlightStrongBackground": "#b3994d33", + "editor.wordHighlightBackground": "#d3b69233", + "editor.findMatchBackground": "#72c09f25", + "editor.findMatchHighlightBackground": "#0e667179", + "editor.findRangeHighlightBackground": "#72c09f22", + "editor.hoverHighlightBackground": "#496d833f", + "editor.lineHighlightBackground": "#1d3544ee", + "editor.lineHighlightBorder": "#1d3544", + "editor.rangeHighlightBackground": "#72b7c022", + "editorLink.activeForeground": "#649fc4", + "editorWhitespace.foreground": "#ffffff21", + "editorIndentGuide.background": "#2f404b", + "editorIndentGuide.activeBackground": "#405f72", + "editorBracketMatch.background": "#496d8322", + "editorBracketMatch.border": "#496d83", + "editorRuler.foreground": "#334652", + "editorCodeLens.foreground": "#667c7f", + "terminal.ansiBlack": "#182a35", + "terminal.ansiRed": "#c08872", + "terminal.ansiGreen": "#72c09f", + "terminal.ansiYellow": "#c8a984", + "terminal.ansiBlue": "#6196b8", + "terminal.ansiMagenta": "#c28097", + "terminal.ansiCyan": "#72b7c0", + "terminal.ansiWhite": "#c5cdd3", + "terminal.ansiBrightBlack": "#425866", + "terminal.ansiBrightRed": "#ca8468", + "terminal.ansiBrightGreen": "#84c8ab", + "terminal.ansiBrightYellow": "#d1aa7b", + "terminal.ansiBrightBlue": "#68a4ca", + "terminal.ansiBrightMagenta": "#c88da2", + "terminal.ansiBrightCyan": "#84c0c8", + "terminal.ansiBrightWhite": "#c5d1d3", + "terminal.background": "#0e1920", + "terminal.foreground": "#c5cdd3", + "terminalCursor.background": "#0e1920", + "terminalCursor.foreground": "#c5cdd3", + "merge.border": "#1b293200", + "merge.currentContentBackground": "#a6d7dd22", + "merge.currentHeaderBackground": "#a6d7dd44", + "merge.incomingContentBackground": "#aea8dc22", + "merge.incomingHeaderBackground": "#aea8dc44", + "merge.commonContentBackground": "#dfc09f22", + "merge.commonHeaderBackground": "#dfc09f44", + "editorOverviewRuler.currentContentForeground": "#a6d7dd44", + "editorOverviewRuler.incomingContentForeground": "#cac4f544", + "editorOverviewRuler.commonContentForeground": "#dfc09f44", + "editorOverviewRuler.border": "#1b2932", + "notificationCenter.border": "#202e37", + "notificationCenterHeader.foreground": "#98a6ae", + "notificationCenterHeader.background": "#202e37", + "notificationToast.border": "#202e37", + "notifications.foreground": "#CDD3DE", + "notifications.background": "#202e37", + "notifications.border": "#202e37", + "notificationLink.foreground": "#98a6ae", + "diffEditor.insertedTextBackground": "#72c09f25", + "diffEditor.removedTextBackground": "#c3745530", + "debugToolBar.background": "#1b2932", + "debugExceptionWidget.background": "#1b2932", + "debugExceptionWidget.border": "#496d83", + "extensionButton.prominentBackground": "#28828a", + "extensionButton.prominentForeground": "#e5f5f5", + "extensionButton.prominentHoverBackground": "#39bac6", + "focusBorder": "#202e37", + "foreground": "#c5cdd3", + "panel.background": "#0e1920", + "panel.border": "#496d83", + "panelTitle.activeBorder": "#496d83", + "panelTitle.activeForeground": "#5998c0", + "panelTitle.inactiveForeground": "#5e7887", + "peekView.border": "#496d83", + "peekViewEditor.background": "#0e1c25", + "peekViewEditor.matchHighlightBackground": "#26526d33", + "peekViewEditor.matchHighlightBorder": "#3d708f", + "peekViewEditorGutter.background": "#0e1c25", + "peekViewResult.background": "#0d202b", + "peekViewResult.fileForeground": "#dfc09f", + "peekViewResult.lineForeground": "#98a6ae", + "peekViewResult.matchHighlightBackground": "#202e37", + "peekViewResult.selectionBackground": "#202e37", + "peekViewResult.selectionForeground": "#98a6ae", + "peekViewTitle.background": "#0d202b", + "peekViewTitleDescription.foreground": "#98a6ae", + "peekViewTitleLabel.foreground": "#dfc09f", + "progressBar.background": "#5998c0", + "scrollbar.shadow": "#00000044", + "scrollbarSlider.activeBackground": "#3f7fa677", + "scrollbarSlider.background": "#3f7fa633", + "scrollbarSlider.hoverBackground": "#3f7fa655", + "gitDecoration.addedResourceForeground": "#3f8d6c", + "gitDecoration.modifiedResourceForeground": "#72c09f", + "gitDecoration.deletedResourceForeground": "#b96346", + "gitDecoration.untrackedResourceForeground": "#6fb0b8", + "gitDecoration.ignoredResourceForeground": "#5b788b", + "gitDecoration.conflictingResourceForeground": "#dfc09f", + "pickerGroup.border": "#496d83", + "pickerGroup.foreground": "#5998c0", + "list.activeSelectionBackground": "#2c414e", + "list.activeSelectionForeground": "#ebf7ff", + "list.dropBackground": "#152837", + "list.focusBackground": "#213745", + "list.focusForeground": "#ebf7ff", + "list.highlightForeground": "#5998c0", + "list.hoverBackground": "#00558a", + "list.hoverForeground": "#ebf7ff", + "list.inactiveFocusBackground": "#1e2b33", + "list.inactiveSelectionBackground": "#22313a", + "list.inactiveSelectionForeground": "#c5cdd3", + "list.errorForeground": "#b96346", + "list.warningForeground": "#ffa857", + "listFilterWidget.background": "#152837", + "listFilterWidget.outline": "#72c09f", + "listFilterWidget.noMatchesOutline": "#b96346", + "tree.indentGuidesStroke": "#5d6e79", + "settings.headerForeground": "#c5cdd3", + "settings.modifiedItemIndicator": "#3f8d6c", + "settings.dropdownListBorder": "#2964a377", + "settings.dropdownBackground": "#202e37", + "settings.dropdownForeground": "#3d818f", + "settings.dropdownBorder": "#202e37", + "settings.checkboxBackground": "#202e37", + "settings.checkboxForeground": "#3d818f", + "settings.checkboxBorder": "#202e37", + "settings.textInputBackground": "#202e37", + "settings.textInputForeground": "#3d818f", + "settings.textInputBorder": "#202e37", + "settings.numberInputBackground": "#0e1920", + "settings.numberInputForeground": "#7068b1", + "settings.numberInputBorder": "#0e1920", + "breadcrumb.foreground": "#96a8b6", + "breadcrumb.background": "#1b2932", + "breadcrumb.focusForeground": "#5998c0", + "breadcrumb.activeSelectionForeground": "#ebf7ff", + "breadcrumbPicker.background": "#202e37", + "titleBar.activeBackground": "#1b2932", + "titleBar.activeForeground": "#c5cdd3", + "titleBar.inactiveBackground": "#1b2932", + "titleBar.inactiveForeground": "#96a8b6", + "menu.background": "#202e37", + "menu.foreground": "#96a8b6", + "menu.selectionBackground": "#213745", + "menu.selectionForeground": "#5998c0", + "menu.selectionBorder": "#213745", + "menu.separatorBackground": "#5998c0", + "menubar.selectionBackground": "#213745", + "menubar.selectionForeground": "#5998c0", + "menubar.selectionBorder": "#213745", + "editor.snippetTabstopHighlightBackground": "#0e1920", + "editor.snippetTabstopHighlightBorder": "#17232b", + "editor.snippetFinalTabstopHighlightBackground": "#0e1920", + "editor.snippetFinalTabstopHighlightBorder": "#17232b", + "minimap.findMatchHighlight": "#5998c0ee", + "minimap.errorHighlight": "#b96346ee", + "minimap.warningHighlight": "#c09159ee", + "minimapGutter.addedBackground": "#3f8d6c", + "minimapGutter.modifiedBackground": "#72c09f", + "minimapGutter.deletedBackground": "#b96346", + "minimap.background": "#1b293299" + }, + "tokenColors": [ + { + "name": "COMMENT", + "scope": [ + "comment", + "punctuation.definition.comment", + "punctuation.definition.tag", + "comment.block.documentation punctuation.definition.bracket", + "source.ocaml comment constant.regexp meta.separator", + "markup.other.anchor support.constant", + "markup.fenced_code", + "markup.fenced_code punctuation.definition", + "punctuation.definition.heading", + "punctuation.definition.bold.markdown", + "punctuation.definition.italic.markdown", + "punctuation.definition.strikethrough.markdown" + ], + "settings": { + "foreground": "#5e7887" + } + }, + { + "name": "TEXT", + "scope": [ + "constant.character", + "constant.escape", + "text.html.markdown", + "punctuation.definition.list_item", + "keyword.begin.tag.ejs", + "constant.name.attribute.tag.pug", + "source.clojure meta.symbol", + "constant.other.description.jsdoc", + "keyword.other.array.phpdoc.php", + "keyword.operator.other.powershell", + "meta.link.inline punctuation.definition.string", + "source.sql", + "source meta.brace", + "source punctuation", + "text.html punctuation", + "markup meta punctuation.definition", + "meta.bracket.julia", + "meta.array.julia", + "entity.name.footnote", + "source.ocaml punctuation.definition.tag", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "entity.other.attribute-name strong", + "binding.fsharp keyword.symbol.fsharp", + "entity.name.record.field.elm", + "entity.name.record.field.accessor.elm", + "storage.modifier.array.bracket", + "source.css entity.other", + "meta.attribute-selector punctuation.definition.entity", + "markup.other.anchor string", + "punctuation.separator", + "punctuation.section", + "punctuation.terminator" + ], + "settings": { + "foreground": "#c5cdd3" + } + }, + { + "name": "KEYWORD", + "scope": [ + "keyword", + "keyword.control", + "keyword.other.template", + "keyword.other.substitution", + "storage.modifier", + "meta.tag.sgml", + "punctuation.accessor", + "constant.other.color", + "entity.name.section", + "markup.heading", + "markup.heading punctuation.definition", + "entity.other.attribute-name.pseudo-class", + "entity.other.attribute-name.pseudo-element", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "storage.type.function.pug", + "text.pug storage.type", + "text.pug meta.tag.other", + "source.clojure storage.control", + "meta.expression.clojure", + "punctuation.separator.slice.python", + "punctuation.separator.question-mark.cs", + "punctuation.definition.parameters.varargs", + "source.go keyword.operator", + "punctuation.separator.pointer-access", + "punctuation.separator.other.ruby", + "keyword.package", + "keyword.import", + "punctuation.definition.keyword", + "punctuation.separator.hash.cs", + "entity.other.attribute-name.pseudo-class.css punctuation.definition.entity.css", + "entity.other.attribute-name.pseudo-element.css punctuation.definition.entity.css", + "source.kotlin storage.type.import", + "source.kotlin storage.type.package", + "constant.string.documentation.powershell", + "punctuation.section.directive", + "storage.type.rust", + "punctuation.definition.attribute", + "punctuation.definition.preprocessor", + "punctuation.separator.namespace", + "punctuation.separator.method", + "keyword.control punctuation.definition.function", + "source.ocaml variable.interpolation string", + "source.reason variable.interpolation", + "punctuation.definition.directive", + "storage.type.modifier", + "keyword.other.class.fileds", + "source.toml entity.other.attribute-name", + "source.css entity.name.tag.custom", + "sharing.modifier", + "keyword.control.class.ruby", + "keyword.control.def.ruby" + ], + "settings": { + "foreground": "#c88da2" + } + }, + { + "name": "VARIABLE", + "scope": [ + "variable", + "variable.object", + "variable.other", + "variable.parameter", + "support", + "entity.name.module", + "variable.import.parameter", + "variable.other.class", + "meta.toc-list.id.html", + "source.json meta.structure.dictionary.json support.type.property-name.json", + "meta.var.clojure", + "entity.name.variable", + "source.java meta.class.body.java", + "entity.name.package.go", + "source.c", + "source.cpp", + "source.go", + "source.python", + "meta.function-call.arguments.python", + "source.ruby", + "source.coffee.embedded.source", + "source.coffee", + "storage.modifier.import", + "storage.modifier.package", + "storage.type.annotation", + "punctuation.definition.annotation", + "source.groovy.embedded.source", + "punctuation.definition.variable", + "source.powershell", + "string.quoted.interpolated.vala constant.character.escape.vala", + "source.apacheconf", + "source.objc", + "source.crystal", + "string.quoted.double.kotlin entity.string.template.element.kotlin", + "entity.name.package.kotlin", + "meta.template.expression.kotlin", + "parameter.variable.function", + "variable.other.constant.elixir", + "source.elixir.embedded.source", + "source.sql.embedded", + "punctuation.definition.placeholder", + "source.swift", + "source.julia", + "source.shell", + "variable.other.normal punctuation.definition.variable.shell", + "source.reason variable.language", + "source.reason variable.language string.other.link", + "source.elm meta.value", + "source.elm meta.declaration.module", + "meta.embedded.block variable punctuation.definition.variable.php", + "string.quoted.double.class.other", + "source.toml keyword", + "support.type.nim", + "source.tf meta.template.expression", + "source.scala entity.name.import", + "markup.code", + "markup.fenced_code.block" + ], + "settings": { + "foreground": "#d3b692" + } + }, + { + "name": "ANNOTATION", + "scope": [ + "support.variable.property", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "entity.other.attribute-name.id", + "entity.other.attribute-name.id punctuation.definition.entity", + "entity.name.type.annotation.kotlin", + "support.type.primitive", + "meta.type.parameters entity.name.type", + "meta.type.annotation entity.name.type", + "punctuation.definition.typeparameters", + "source.python support.type.python", + "comment.block.documentation.phpdoc.php keyword.other.type.php", + "storage.type.php", + "keyword.type", + "storage.type.cs", + "storage.type.c", + "storage.type.objc", + "punctuation.definition.storage.type.objc", + "markup punctuation.definition", + "storage.type.powershell", + "comment.block.documentation entity.name.type", + "source.java storage.type", + "storage.type.primitive", + "source.groovy storage.type", + "storage.type.r", + "source.haskell storage.type", + "punctuation.separator.clause-head-body", + "source.go storage.type", + "storage.type.core.rust", + "storage.class.std.rust", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "support.type.vb", + "entity.name.type.kotlin", + "support.type.julia", + "constant.other.reference", + "source.graphql support.type", + "source.reason support.type string", + "entity.name.type.fsharp", + "source.elm storage.type", + "storage.type.user-defined", + "storage.type.built-in", + "support.type.builtin", + "source.swift support.type", + "support.class.crystal", + "storage.type.integral", + "source.cpp storage.type.cpp", + "source.vala storage.type", + "source.hlsl storage.type.basic", + "source.hlsl support.type.other", + "source.apex storage.type", + "source.nim storage.type", + "source.cpp entity.name.type", + "support.class.builtin", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "markup.raw.monospace", + "markup.mark", + "entity.name.type.primitive", + "entity.name.type.numeric" + ], + "settings": { + "foreground": "#be856f" + } + }, + { + "name": "CONSTANT", + "scope": [ + "constant", + "variable.other.constant", + "support.constant", + "punctuation.definition.entity", + "constant.character.entity", + "support.variable.magic", + "markup.quote", + "entity.name.type.type-parameter.cs", + "punctuation.bracket.angle", + "entity.name.function.preprocessor.c", + "storage.type.scala", + "entity.helper.apacheconf", + "variable.language.crystal", + "punctuation.definition.constant", + "support.constant punctuation.definition.variable", + "constant.character.math", + "support.class.math", + "source.graphql constant.character", + "source.reason constant.language.list", + "source.cpp variable.other.enummember", + "support.variable.class.hideshow", + "entity.other.attribute-name.class", + "meta.attribute.id entity.other.attribute-name", + "text.html entity.other.attribute-name", + "meta.tag.attributes entity.other.attribute-name", + "text.xml entity.other.attribute-name", + "source.cs entity.other.attribute-name", + "constant.character.format.placeholder", + "constant.other.placeholder", + "source.vue entity.other.attribute-name", + "entity.other.attribute-name.mjml", + "source.vue meta.directive punctuation.separator.key-value", + "meta.definition.attribute-entry punctuation.separator" + ], + "settings": { + "foreground": "#a88c00" + } + }, + { + "name": "TAG", + "scope": [ + "variable.language", + "variable.parameter.function.language.special", + "punctuation.definition.italic", + "punctuation.definition.bold", + "entity.name.tag", + "variable.language punctuation.definition.variable", + "keyword.control.clojure", + "support.type.exception.python", + "keyword.other.this.cs", + "keyword.other.base.cs", + "keyword.other.var.cs", + "storage.modifier.super", + "source.go keyword", + "keyword.function.go", + "meta.separator", + "keyword.other.fn.rust", + "storage.modifier.static.rust", + "source.r meta.function.r keyword.control.r", + "storage.type.def", + "meta.class.identifier storage.modifier", + "source.scala keyword.declaration", + "storage.type", + "comment.block.documentation punctuation.definition.block.tag", + "comment.block.documentation punctuation.definition.inline.tag", + "entity.tag.apacheconf", + "keyword.other.julia", + "source.julia storage.modifier", + "constant.language.empty-list.haskell", + "meta.function.powershell storage.type.powershell", + "keyword.control.fun", + "punctuation.terminator.function", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "keyword.control.class", + "keyword.control.def", + "source.ocaml keyword markup.underline", + "source.ocaml storage.type markup.underline", + "binding.fsharp keyword", + "function.anonymous keyword", + "function.anonymous keyword.symbol.fsharp", + "meta.embedded.block variable.language punctuation.definition.variable.php", + "keyword.declaration.dart", + "source.wsd keyword.other.class", + "source.wsd keyword.other.linebegin", + "keyword.other.skinparam.keyword", + "keyword.other.nim", + "markup.deleted.diff", + "source.tf support.class.variable", + "meta.function.lua keyword.control.lua", + "markup.block entity.name.tag", + "markup.meta.attribute-list", + "source.zig keyword.default", + "source.zig keyword.structure" + ], + "settings": { + "foreground": "#c37455" + } + }, + { + "name": "STRING", + "scope": [ + "string", + "punctuation.definition.string", + "source.css support.constant", + "entity.name.import.go", + "markup.raw.texttt", + "markup.inserted.diff", + "source.scala punctuation.definition.character", + "constant.character.literal.scala", + "source.tf entity.name" + ], + "settings": { + "foreground": "#72c09f" + } + }, + { + "name": "STRINGINTERPOLATED", + "scope": [ + "string.template", + "punctuation.definition.string.template", + "string.interpolated.python string.quoted.single.python", + "string.quoted.double.heredoc", + "string.quoted.interpolated.vala", + "string.quoted.interpolated.vala punctuation.definition.string", + "string.regexp.apacheconf", + "markup.inline.raw.string", + "markup.inline.raw punctuation.definition.raw", + "string.quoted.double.interpolated.crystal", + "string.quoted.double.interpolated.crystal punctuation.definition.string", + "text.tex markup.raw" + ], + "settings": { + "foreground": "#3f8d6c" + } + }, + { + "name": "NUMBER", + "scope": [ + "constant.numeric", + "constant.language", + "punctuation.separator.decimal.period.php", + "keyword.operator.null-conditional.cs", + "punctuation.separator.question-mark.cs", + "constant.integer.apacheconf", + "keyword.operator.nullable-type", + "constant.language punctuation.definition.variable", + "constant.others.fsharp", + "keyword.other.unit", + "string.quoted.double.skinparam.value", + "source.toml constant", + "source.zig keyword.constant.bool", + "source.zig keyword.constant.default" + ], + "settings": { + "foreground": "#7068b1" + } + }, + { + "name": "FUNCTION", + "scope": [ + "variable.function", + "support.type.property-name", + "entity.name.function", + "string.other.link", + "markup.link", + "support.type.vendored", + "support.other.variable", + "meta.function-call.generic.python", + "meta.method-call.groovy meta.method.groovy", + "meta.class.body.groovy meta.method.body.java storage.type.groovy", + "punctuation.definition.decorator", + "support.function.any-method", + "text.tex support.function", + "text.tex punctuation.definition.function", + "entity.name.section.fsharp entity.name.section.fsharp", + "support.variable.class.function", + "keyword.control.cucumber.table", + "punctuation.decorator", + "source.tf support.class" + ], + "settings": { + "foreground": "#3f848d" + } + }, + { + "name": "SUPPORT", + "scope": [ + "entity.name", + "entity.other", + "support.orther.namespace.use.php", + "meta.use.php", + "support.other.namespace.php", + "support.type", + "support.class", + "punctuation.definition.parameters", + "support.function", + "support.function.construct", + "markup.changed.git_gutter", + "markup.underline.link", + "markup.underline.link.image", + "markup.underline", + "meta.symbol.namespace.clojure", + "entity.mime-type.apacheconf", + "keyword.operator.function.infix", + "entity.name.function.infix", + "entity.name.function.call.kotlin", + "text.tex support.function.verb", + "text.tex support.function.texttt", + "source.reason constant.language.unit", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "constant.language.unit.fsharp", + "source.wsd support.class.preprocessings", + "keyword.language.gherkin.feature.scenario", + "source.nim keyword.other.common.function", + "entity.name.type.namespace", + "entity.name.scope-resolution.function.call" + ], + "settings": { + "foreground": "#72b7c0" + } + }, + { + "name": "MISC", + "scope": [ + "source.js constant.other.object.key.js string.unquoted.label.js", + "source.js punctuation.section.embedded", + "punctuation.definition.template-expression", + "support.class", + "storage.type.string.python", + "string.interpolated.pug", + "support.constant.handlebars", + "source.clojure punctuation.section.set", + "source.clojure punctuation.section.metadata", + "entity.global.clojure", + "source.python meta.function-call.python support.type.python", + "entity.other.inherited-class.python", + "punctuation.definition.interpolation", + "punctuation.section.embedded.begin.ruby", + "punctuation.section.embedded.end.ruby source.ruby", + "support.constant.math", + "entity.namespace.r", + "meta.method-call.groovy storage.type.groovy", + "source.scala entity.name.class.declaration", + "constant.character.escape", + "support.function.macro.julia", + "string.replacement.apacheconf", + "storage.modifier.using.vala", + "constant.other.haskell", + "source.objc entity.name.tag", + "string.quoted.other.literal.upper.crystal punctuation.definition.string", + "meta.embedded.line.crystal punctuation.section.embedded", + "meta.embedded.line.crystal punctuation.section.embedded source.crystal", + "punctuation.section.embedded", + "punctuation.section.tag", + "punctuation.section.embedded source.swift", + "variable.other.bracket punctuation.definition.variable", + "string.interpolated.dollar punctuation.definition.string", + "constant.character.escape punctuation.definition.keyword", + "source.ocaml entity.name.class constant.numeric", + "source.reason entity.name.class", + "keyword.format.specifier.fsharp", + "support.module.elm", + "meta.embedded.block.php punctuation.definition.variable.php", + "source.vala storage.type", + "support.variable.class.group", + "entity.name.type.class", + "source.tf meta.keyword.list", + "source.tf meta.keyword.map", + "entity.name.class.lua", + "markup.substitution" + ], + "settings": { + "foreground": "#5998c0" + } + }, + { + "name": "INVALID", + "scope": [ + "invalid", + "invalid.illegal" + ], + "settings": { + "foreground": "#b16a4e" + } + }, + { + "name": "ITALIC", + "scope": [ + "comment", + "storage.modifier", + "punctuation.definition.comment", + "entity.other", + "variable.language", + "support.type.vendored", + "support.constant.vendored", + "markup.quote", + "markup.italic", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "keyword.control.clojure", + "source.clojure meta.symbol.dynamic", + "keyword.other.this.cs", + "keyword.other.base.cs", + "variable.other.member.c", + "support.type.core.rust", + "variable.other.object.property", + "variable.other.property", + "source.r meta.function.r keyword.control.r", + "comment.line.roxygen.r keyword", + "comment.line.roxygen.r variable.parameter.r", + "keyword.control.inheritance.coffee", + "comment.block.documentation.phpdoc.php keyword", + "keyword.other.array.phpdoc.php", + "storage.type.modifier", + "comment.block.javadoc.java keyword", + "comment.block.javadoc.java variable.parameter.java", + "keyword.operator.documentation.powershell", + "storage.type.scala", + "variable.parameter.function.language.special", + "comment.block.documentation.scala keyword", + "comment.block.documentation.scala variable.parameter", + "support.function.builtin.go", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.ruby", + "source.vala storage.type.generic", + "constant.other.table-name", + "constant.other.placeholder", + "variable.other.field", + "entity.alias.import.go", + "source.swift keyword.other.declaration-specifier", + "support.variable.swift", + "keyword.other.capture-specifier", + "text.tex support.function.emph", + "constant.other.math", + "support.function.textit", + "entity.name.footnote", + "entity.name.function.directive.graphql", + "source.graphql support.type.enum", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "abstract.definition.fsharp keyword", + "abstract.definition.fsharp entity", + "function.anonymous keyword", + "entity.name.record.field.accessor.elm", + "support.type.primitive", + "support.type.builtin", + "keyword.type.cs", + "storage.type.built-in", + "storage.type.primitive", + "source.python support.type.python", + "storage.type.core.rust", + "source.swift support.type", + "source.go storage.type", + "storage.type.php", + "storage.type.function.kotlin", + "entity.name.type.kotlin", + "support.type.julia", + "variable.other.member", + "keyword.other.import", + "keyword.package", + "keyword.import", + "source.wsd keyword.control.diagram", + "keyword.language.gherkin.feature.step", + "source.hlsl storage.type.basic", + "source.apex keyword.type", + "sharing.modifier", + "source.nim storage.type.concrete", + "meta.preprocessor.pragma.nim", + "storage.type.integral", + "entity.name.scope-resolution.function.call", + "support.class.builtin", + "comment.block.documentation storage.type.class", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "meta.import keyword.control", + "keyword.control.export", + "source.vue meta.directive punctuation.separator.key-value", + "keyword.local.lua", + "markup.mark.constrained markup.mark", + "markup.block.open", + "entity.name.type.primitive", + "entity.name.type.numeric", + "source.zig keyword.type", + "source.zig keyword.storage", + "source.zig keyword.structure" + ], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "BOLD", + "scope": [ + "keyword", + "keyword.control", + "keyword.operator", + "keyword.other.template", + "keyword.other.substitution", + "storage.type.function.arrow", + "constant.other.color", + "punctuation.accessor", + "entity.name.section", + "markdown.heading", + "markup.inline.raw punctuation.definition.raw", + "markup.heading", + "storage.type.function.pug", + "storage.type.function.python", + "storage.type.annotation", + "punctuation.bracket.angle", + "keyword.other.new", + "storage.type.generic.wildcard", + "source.go keyword.operator", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "variable.parameter", + "support.function.builtin.rust", + "storage.type.function.coffee", + "entity.name.variable.parameter", + "punctuation.separator.hash.cs", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "meta.function.parameters variable.other", + "entity.name.type.annotation.kotlin", + "storage.type.objc", + "parameter.variable.function", + "markup punctuation.definition", + "punctuation.section.directive", + "punctuation.definition.preprocessor", + "source.ruby punctuation.definition.variable", + "support.function.textbf", + "source.graphql support.type.builtin", + "source.ocaml variable.interpolation string", + "entity.name.function.definition.special.constructor", + "entity.name.function.definition.special.member.destructor.", + "meta.function.parameters variable punctuation.definition.variable.php", + "source.wsd keyword.other.activity", + "keyword.control.class.ruby", + "keyword.control.def.ruby", + "keyword.function.go", + "keyword.other.fn.rust", + "markup.other.anchor", + "markup.list.bullet", + "markup.list punctuation.definition", + "keyword.control.default", + "punctuation.section", + "punctuation.separator", + "punctuation.terminator", + "markup.bold.markdown", + "source.zig storage.type.function" + ], + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "BOLD-ITALIC", + "scope": [ + "markup.quote markup.bold", + "text.html punctuation.section.embedded", + "variable.other.c", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "source.rust meta.attribute.rust", + "meta.attribute.id entity.other.attribute-name", + "source.ocaml punctuation.definition.tag emphasis", + "source.tf entity.name", + "markup.quote punctuation.definition", + "markup.fenced_code punctuation.definition", + "fenced_code.block.language" + ], + "settings": { + "fontStyle": "bold italic" + } + }, + { + "name": "NORMAL", + "scope": [ + "keyword.begin.tag.ejs", + "source.python meta.function.decorator.python support.type.python", + "source.cs keyword.other", + "keyword.other.var.cs", + "source.go keyword", + "storage.modifier.static.rust", + "variable.parameter.r", + "variable.parameter.handlebars", + "storage.modifier.import", + "storage.modifier.package", + "meta.class.identifier storage.modifier", + "keyword.operator.other.powershell", + "source.css variable.parameter", + "string.interpolated variable.parameter", + "source.apacheconf keyword", + "keyword.other.julia", + "storage.modifier.using.vala", + "source.objc keyword.other.property.attribute", + "source.sql keyword.other", + "keyword.other.using.vala", + "keyword.operator.function.infix", + "keyword.control.directive", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "entity.name.function.swift", + "keyword.control.class", + "keyword.control.def", + "punctuation.definition.variable", + "entity.name.section.latex", + "source.ocaml keyword markup.underline", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "keyword.format.specifier.fsharp", + "entity.name.section.fsharp", + "binding.fsharp keyword", + "binding.fsharp keyword.symbol", + "record.fsharp keyword", + "keyword.symbol.fsharp", + "entity.name.section.fsharp keyword", + "namespace.open.fsharp keyword", + "namespace.open.fsharp entity", + "storage.type", + "source.cpp keyword.other", + "source.c keyword.other", + "keyword.other.unit", + "storage.modifier.array.bracket", + "meta.import.haskell keyword", + "keyword.declaration.dart", + "source.wsd keyword.other", + "keyword.other.skinparam", + "source.css keyword.control", + "source.css keyword.operator", + "keyword.language.gherkin.feature.scenario", + "keyword.control.cucumber.table", + "source.toml entity.other.attribute-name", + "source.toml keyword", + "keyword.other.nim", + "source.nim keyword.other.common.function", + "source.nim keyword.other", + "source.scala keyword.declaration", + "source.scala entity.name.class.declaration", + "keyword.control.lua", + "source.css punctuation.section", + "punctuation.section.embedded", + "source.c punctuation.section", + "source.cpp punctuation.section", + "source.java punctuation.section", + "source.php punctuation.section", + "source.powershell punctuation.section", + "source.r punctuation.section", + "source.ruby punctuation.section", + "source.swift punctuation.section", + "source.objc punctuation.section", + "source.zig keyword.constant.bool", + "source.zig keyword.default", + "source.zig keyword.statement", + "source.zig keyword.constant.default" + ], + "settings": { + "fontStyle": "" + } + }, + { + "name": "STRIKETHROUGH", + "scope": [ + "markup.strikethrough" + ], + "settings": { + "fontStyle": "strikethrough" + } + } + ] +} \ No newline at end of file diff --git a/assets/themes/src/vscode/noctis/noctis.json b/assets/themes/src/vscode/noctis/noctis.json new file mode 100644 index 0000000000..cc270fe526 --- /dev/null +++ b/assets/themes/src/vscode/noctis/noctis.json @@ -0,0 +1,1108 @@ +{ + "name": "Noctis", + "type": "dark", + "colors": { + "selection.background": "#107684", + "descriptionForeground": "#929ea0", + "errorForeground": "#e34e1c", + "widget.shadow": "#00000044", + "editor.background": "#052529", + "editor.foreground": "#b2cacd", + "editorLineNumber.foreground": "#4e6b6e", + "editorLineNumber.activeForeground": "#169fb1", + "editorCursor.foreground": "#85efff", + "badge.background": "#40d4e7", + "badge.foreground": "#0f1415", + "activityBar.background": "#052529", + "activityBar.dropBackground": "#929ea065", + "activityBar.foreground": "#169fb1", + "activityBar.inactiveForeground": "#169fb177", + "activityBar.border": "#0f1415", + "activityBarBadge.background": "#40d4e7", + "activityBarBadge.foreground": "#0f1415", + "activityBar.activeBackground": "#40d4e733", + "activityBar.activeBorder": "#40d4e7", + "sideBar.background": "#041d20", + "sideBar.foreground": "#a5b5b5", + "sideBar.border": "#0f1415", + "sideBar.dropBackground": "#041d20", + "sideBarTitle.foreground": "#a5b5b5", + "sideBarSectionHeader.background": "#083d44", + "sideBarSectionHeader.foreground": "#a5b5b5", + "sideBarSectionHeader.border": "#0f1415", + "statusBar.background": "#041d20", + "statusBar.foreground": "#169fb1", + "statusBar.border": "#0f1415", + "statusBar.debuggingBackground": "#041d20", + "statusBar.debuggingForeground": "#df769b50", + "statusBar.debuggingBorder": "#df769baf", + "statusBar.noFolderForeground": "#87a7ab", + "statusBar.noFolderBackground": "#041d20", + "statusBar.noFolderBorder": "#041d20", + "statusBarItem.activeBackground": "#19bacc45", + "statusBarItem.hoverBackground": "#062e32", + "statusBarItem.prominentBackground": "#020c0e", + "statusBarItem.prominentHoverBackground": "#00292e", + "button.background": "#099099", + "button.foreground": "#ebfdff", + "button.hoverBackground": "#0cc", + "dropdown.background": "#073940", + "dropdown.border": "#073940", + "dropdown.foreground": "#87a7ab", + "editorMarkerNavigation.background": "#3a3a5e29", + "editorMarkerNavigationError.background": "#e34e1c", + "editorMarkerNavigationWarning.background": "#e69533", + "editorError.border": "#052529", + "editorError.foreground": "#e34e1c", + "editorWarning.border": "#052529", + "editorWarning.foreground": "#e69533", + "editorInfo.border": "#052529", + "editorInfo.foreground": "#40d4e7", + "editorHint.border": "#49e9a600", + "editorHint.foreground": "#49e9a6", + "editorGroup.emptyBackground": "#5f6b6d33", + "editorGroup.border": "#0f1415", + "editorGroup.dropBackground": "#5f6b6d33", + "editorGroupHeader.noTabsBackground": "#062e32", + "editorGroupHeader.tabsBackground": "#062e32", + "editorGroupHeader.tabsBorder": "#062e32", + "tab.activeBackground": "#052529", + "tab.unfocusedActiveBackground": "#0e1e20", + "tab.activeForeground": "#40d4e7", + "tab.border": "#0f1415", + "tab.inactiveBackground": "#062e32", + "tab.inactiveForeground": "#87a7ab", + "tab.unfocusedActiveForeground": "#87a7ab", + "tab.unfocusedInactiveForeground": "#87a7ab", + "tab.activeBorderTop": "#40d4e7", + "tab.activeModifiedBorder": "#49e9a6", + "tab.activeBorder": "#052529", + "tab.unfocusedActiveBorder": "#052529", + "tab.unfocusedHoverBackground": "#169fb121", + "textBlockQuote.background": "#041d20", + "textBlockQuote.border": "#16a3b6", + "textCodeBlock.background": "#041d20", + "textLink.activeForeground": "#40d4e7", + "textLink.foreground": "#40d4e7", + "textPreformat.foreground": "#e4b781", + "textSeparator.foreground": "#041d20", + "walkThrough.embeddedEditorBackground": "#041d20", + "welcomePage.buttonBackground": "#041d20", + "welcomePage.buttonHoverBackground": "#003742", + "input.background": "#052529", + "input.border": "#073940", + "input.foreground": "#CDD3DE", + "input.placeholderForeground": "#87a7ab", + "inputOption.activeBorder": "#169fb1", + "inputValidation.errorForeground": "#ff4000", + "inputValidation.errorBackground": "#501502ee", + "inputValidation.errorBorder": "#691c02", + "inputValidation.infoForeground": "#40d4e7", + "inputValidation.infoBackground": "#0f6e7bee", + "inputValidation.infoBorder": "#148f9f", + "inputValidation.warningForeground": "#e69533", + "inputValidation.warningBackground": "#82694acc", + "inputValidation.warningBorder": "#a88457", + "editorWidget.background": "#073940", + "editorWidget.border": "#0f1415", + "editorHoverWidget.background": "#073940", + "editorHoverWidget.border": "#0f1415", + "editorSuggestWidget.background": "#073940", + "editorSuggestWidget.border": "#0f1415", + "editorSuggestWidget.foreground": "#87a7ab", + "editorSuggestWidget.highlightForeground": "#40d4e7", + "editorSuggestWidget.selectedBackground": "#0e6671", + "editorGutter.background": "#052529", + "editorGutter.addedBackground": "#8ce99a", + "editorGutter.deletedBackground": "#e34e1c", + "editorGutter.modifiedBackground": "#e0c184", + "editor.selectionBackground": "#169fb144", + "editor.selectionHighlightBackground": "#49ace944", + "editor.inactiveSelectionBackground": "#0e657155", + "editor.wordHighlightStrongBackground": "#cc990033", + "editor.wordHighlightBackground": "#e4b78133", + "editor.findMatchBackground": "#40bf6a11", + "editor.findMatchHighlightBackground": "#0e667179", + "editor.findRangeHighlightBackground": "#49e9a633", + "editor.hoverHighlightBackground": "#169fb13f", + "editor.lineHighlightBackground": "#083d44ee", + "editor.lineHighlightBorder": "#083d44", + "editor.rangeHighlightBackground": "#083d44a1", + "editorLink.activeForeground": "#14a5ff", + "editorWhitespace.foreground": "#ffffff21", + "editorIndentGuide.background": "#223b3f", + "editorIndentGuide.activeBackground": "#3e6f74", + "editorBracketMatch.background": "#169fb122", + "editorBracketMatch.border": "#169fb1", + "editorRuler.foreground": "#29484c", + "editorCodeLens.foreground": "#507b95", + "terminal.ansiBlack": "#324a4d", + "terminal.ansiRed": "#e66533", + "terminal.ansiGreen": "#49e9a6", + "terminal.ansiYellow": "#e4b781", + "terminal.ansiBlue": "#49ace9", + "terminal.ansiMagenta": "#df769b", + "terminal.ansiCyan": "#49d6e9", + "terminal.ansiWhite": "#b2cacd", + "terminal.ansiBrightBlack": "#47686c", + "terminal.ansiBrightRed": "#e97749", + "terminal.ansiBrightGreen": "#60ebb1", + "terminal.ansiBrightYellow": "#e69533", + "terminal.ansiBrightBlue": "#60b6eb", + "terminal.ansiBrightMagenta": "#e798b3", + "terminal.ansiBrightCyan": "#60dbeb", + "terminal.ansiBrightWhite": "#c1d4d7", + "terminal.background": "#03191b", + "terminal.foreground": "#b2cacd", + "terminalCursor.background": "#03191b", + "terminalCursor.foreground": "#b2cacd", + "merge.border": "#05252900", + "merge.currentContentBackground": "#85f1ff22", + "merge.currentHeaderBackground": "#85f1ff44", + "merge.incomingContentBackground": "#9d92f222", + "merge.incomingHeaderBackground": "#9d92f244", + "merge.commonContentBackground": "#ffc18022", + "merge.commonHeaderBackground": "#ffc18044", + "editorOverviewRuler.currentContentForeground": "#85f1ff44", + "editorOverviewRuler.incomingContentForeground": "#9d92f244", + "editorOverviewRuler.commonContentForeground": "#ffc18044", + "editorOverviewRuler.border": "#052529", + "notificationCenter.border": "#073940", + "notificationCenterHeader.foreground": "#87a7ab", + "notificationCenterHeader.background": "#073940", + "notificationToast.border": "#073940", + "notifications.foreground": "#CDD3DE", + "notifications.background": "#073940", + "notifications.border": "#073940", + "notificationLink.foreground": "#87a7ab", + "diffEditor.insertedTextBackground": "#16b67327", + "diffEditor.removedTextBackground": "#e6653341", + "debugToolBar.background": "#041d20", + "debugExceptionWidget.background": "#041d20", + "debugExceptionWidget.border": "#16a3b6", + "extensionButton.prominentBackground": "#099099", + "extensionButton.prominentForeground": "#e5f5f5", + "extensionButton.prominentHoverBackground": "#0cc", + "focusBorder": "#073940", + "foreground": "#b2cacd", + "panel.background": "#03191b", + "panel.border": "#0e6671", + "panelTitle.activeBorder": "#0e6671", + "panelTitle.activeForeground": "#40d4e7", + "panelTitle.inactiveForeground": "#87a7ab", + "peekView.border": "#169fb1", + "peekViewEditor.background": "#002124", + "peekViewEditor.matchHighlightBackground": "#00718079", + "peekViewEditor.matchHighlightBorder": "#007180cc", + "peekViewEditorGutter.background": "#002124", + "peekViewResult.background": "#041d20", + "peekViewResult.fileForeground": "#e4b781", + "peekViewResult.lineForeground": "#87a7ab", + "peekViewResult.matchHighlightBackground": "#073940", + "peekViewResult.selectionBackground": "#073940", + "peekViewResult.selectionForeground": "#87a7ab", + "peekViewTitle.background": "#041d20", + "peekViewTitleDescription.foreground": "#87a7ab", + "peekViewTitleLabel.foreground": "#e4b781", + "progressBar.background": "#40d4e7", + "scrollbar.shadow": "#00000044", + "scrollbarSlider.activeBackground": "#169fb1ad", + "scrollbarSlider.background": "#6a90955b", + "scrollbarSlider.hoverBackground": "#169fb162", + "gitDecoration.addedResourceForeground": "#16b673", + "gitDecoration.modifiedResourceForeground": "#49e9a6", + "gitDecoration.deletedResourceForeground": "#e34e1c", + "gitDecoration.untrackedResourceForeground": "#40d4e7", + "gitDecoration.ignoredResourceForeground": "#5b858b", + "gitDecoration.conflictingResourceForeground": "#e4b781", + "pickerGroup.border": "#0e6671", + "pickerGroup.foreground": "#169fb1", + "list.activeSelectionBackground": "#0e6671", + "list.activeSelectionForeground": "#ebfdff", + "list.dropBackground": "#00404d", + "list.focusBackground": "#00404d", + "list.focusForeground": "#ebfdff", + "list.highlightForeground": "#40d4e7", + "list.hoverBackground": "#0b515b", + "list.hoverForeground": "#ebfdff", + "list.inactiveFocusBackground": "#062d32", + "list.inactiveSelectionBackground": "#07353b", + "list.inactiveSelectionForeground": "#b2cacd", + "list.errorForeground": "#e34e1c", + "list.warningForeground": "#ffa487", + "listFilterWidget.background": "#00404d", + "listFilterWidget.outline": "#49e9a6", + "listFilterWidget.noMatchesOutline": "#e34e1c", + "tree.indentGuidesStroke": "#3e6f74", + "settings.headerForeground": "#b2cacd", + "settings.modifiedItemIndicator": "#15ac31", + "settings.dropdownListBorder": "#0e657188", + "settings.dropdownBackground": "#073940", + "settings.dropdownForeground": "#0cc", + "settings.dropdownBorder": "#073940", + "settings.checkboxBackground": "#073940", + "settings.checkboxForeground": "#0cc", + "settings.checkboxBorder": "#073940", + "settings.textInputBackground": "#073940", + "settings.textInputForeground": "#0cc", + "settings.textInputBorder": "#073940", + "settings.numberInputBackground": "#041d20", + "settings.numberInputForeground": "#7060eb", + "settings.numberInputBorder": "#041d20", + "breadcrumb.foreground": "#87a7ab", + "breadcrumb.background": "#052529", + "breadcrumb.focusForeground": "#40d4e7", + "breadcrumb.activeSelectionForeground": "#ebfdff", + "breadcrumbPicker.background": "#073940", + "titleBar.activeBackground": "#041d20", + "titleBar.activeForeground": "#b2cacd", + "titleBar.inactiveBackground": "#041d20", + "titleBar.inactiveForeground": "#87a7ab", + "menu.background": "#073940", + "menu.foreground": "#87a7ab", + "menu.selectionBackground": "#0b515b", + "menu.selectionForeground": "#40d4e7", + "menu.selectionBorder": "#0b515b", + "menu.separatorBackground": "#40d4e7", + "menubar.selectionBackground": "#0b515b", + "menubar.selectionForeground": "#40d4e7", + "menubar.selectionBorder": "#0b515b", + "editor.snippetTabstopHighlightBackground": "#03181b", + "editor.snippetTabstopHighlightBorder": "#042124", + "editor.snippetFinalTabstopHighlightBackground": "#03181b", + "editor.snippetFinalTabstopHighlightBorder": "#042124", + "minimap.findMatchHighlight": "#49d6e9ee", + "minimap.errorHighlight": "#e34e1cee", + "minimap.warningHighlight": "#e69533ee", + "minimapGutter.addedBackground": "#16b673", + "minimapGutter.modifiedBackground": "#49e9a6", + "minimapGutter.deletedBackground": "#e34e1c", + "minimap.background": "#05252999" + }, + "tokenColors": [ + { + "name": "COMMENT", + "scope": [ + "comment", + "punctuation.definition.comment", + "punctuation.definition.tag", + "comment.block.documentation punctuation.definition.bracket", + "source.ocaml comment constant.regexp meta.separator", + "markup.other.anchor support.constant", + "markup.fenced_code", + "markup.fenced_code punctuation.definition", + "punctuation.definition.heading", + "punctuation.definition.bold.markdown", + "punctuation.definition.italic.markdown", + "punctuation.definition.strikethrough.markdown" + ], + "settings": { + "foreground": "#5b858b" + } + }, + { + "name": "TEXT", + "scope": [ + "constant.character", + "constant.escape", + "text.html.markdown", + "punctuation.definition.list_item", + "keyword.begin.tag.ejs", + "constant.name.attribute.tag.pug", + "source.clojure meta.symbol", + "constant.other.description.jsdoc", + "keyword.other.array.phpdoc.php", + "keyword.operator.other.powershell", + "meta.link.inline punctuation.definition.string", + "source.sql", + "source meta.brace", + "source punctuation", + "text.html punctuation", + "markup meta punctuation.definition", + "meta.bracket.julia", + "meta.array.julia", + "entity.name.footnote", + "source.ocaml punctuation.definition.tag", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "entity.other.attribute-name strong", + "binding.fsharp keyword.symbol.fsharp", + "entity.name.record.field.elm", + "entity.name.record.field.accessor.elm", + "storage.modifier.array.bracket", + "source.css entity.other", + "meta.attribute-selector punctuation.definition.entity", + "markup.other.anchor string", + "punctuation.separator", + "punctuation.section", + "punctuation.terminator" + ], + "settings": { + "foreground": "#b2cacd" + } + }, + { + "name": "KEYWORD", + "scope": [ + "keyword", + "keyword.control", + "keyword.other.template", + "keyword.other.substitution", + "storage.modifier", + "meta.tag.sgml", + "punctuation.accessor", + "constant.other.color", + "entity.name.section", + "markup.heading", + "markup.heading punctuation.definition", + "entity.other.attribute-name.pseudo-class", + "entity.other.attribute-name.pseudo-element", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "storage.type.function.pug", + "text.pug storage.type", + "text.pug meta.tag.other", + "source.clojure storage.control", + "meta.expression.clojure", + "punctuation.separator.slice.python", + "punctuation.separator.question-mark.cs", + "punctuation.definition.parameters.varargs", + "source.go keyword.operator", + "punctuation.separator.pointer-access", + "punctuation.separator.other.ruby", + "keyword.package", + "keyword.import", + "punctuation.definition.keyword", + "punctuation.separator.hash.cs", + "entity.other.attribute-name.pseudo-class.css punctuation.definition.entity.css", + "entity.other.attribute-name.pseudo-element.css punctuation.definition.entity.css", + "source.kotlin storage.type.import", + "source.kotlin storage.type.package", + "constant.string.documentation.powershell", + "punctuation.section.directive", + "storage.type.rust", + "punctuation.definition.attribute", + "punctuation.definition.preprocessor", + "punctuation.separator.namespace", + "punctuation.separator.method", + "keyword.control punctuation.definition.function", + "source.ocaml variable.interpolation string", + "source.reason variable.interpolation", + "punctuation.definition.directive", + "storage.type.modifier", + "keyword.other.class.fileds", + "source.toml entity.other.attribute-name", + "source.css entity.name.tag.custom", + "sharing.modifier", + "keyword.control.class.ruby", + "keyword.control.def.ruby" + ], + "settings": { + "foreground": "#df769b" + } + }, + { + "name": "VARIABLE", + "scope": [ + "variable", + "variable.object", + "variable.other", + "variable.parameter", + "support", + "entity.name.module", + "variable.import.parameter", + "variable.other.class", + "meta.toc-list.id.html", + "source.json meta.structure.dictionary.json support.type.property-name.json", + "meta.var.clojure", + "entity.name.variable", + "source.java meta.class.body.java", + "entity.name.package.go", + "source.c", + "source.cpp", + "source.go", + "source.python", + "meta.function-call.arguments.python", + "source.ruby", + "source.coffee.embedded.source", + "source.coffee", + "storage.modifier.import", + "storage.modifier.package", + "storage.type.annotation", + "punctuation.definition.annotation", + "source.groovy.embedded.source", + "punctuation.definition.variable", + "source.powershell", + "string.quoted.interpolated.vala constant.character.escape.vala", + "source.apacheconf", + "source.objc", + "source.crystal", + "string.quoted.double.kotlin entity.string.template.element.kotlin", + "entity.name.package.kotlin", + "meta.template.expression.kotlin", + "parameter.variable.function", + "variable.other.constant.elixir", + "source.elixir.embedded.source", + "source.sql.embedded", + "punctuation.definition.placeholder", + "source.swift", + "source.julia", + "source.shell", + "variable.other.normal punctuation.definition.variable.shell", + "source.reason variable.language", + "source.reason variable.language string.other.link", + "source.elm meta.value", + "source.elm meta.declaration.module", + "meta.embedded.block variable punctuation.definition.variable.php", + "string.quoted.double.class.other", + "source.toml keyword", + "support.type.nim", + "source.tf meta.template.expression", + "source.scala entity.name.import", + "markup.code", + "markup.fenced_code.block" + ], + "settings": { + "foreground": "#e4b781" + } + }, + { + "name": "ANNOTATION", + "scope": [ + "support.variable.property", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "entity.other.attribute-name.id", + "entity.other.attribute-name.id punctuation.definition.entity", + "entity.name.type.annotation.kotlin", + "support.type.primitive", + "meta.type.parameters entity.name.type", + "meta.type.annotation entity.name.type", + "punctuation.definition.typeparameters", + "source.python support.type.python", + "comment.block.documentation.phpdoc.php keyword.other.type.php", + "storage.type.php", + "keyword.type", + "storage.type.cs", + "storage.type.c", + "storage.type.objc", + "punctuation.definition.storage.type.objc", + "markup punctuation.definition", + "storage.type.powershell", + "comment.block.documentation entity.name.type", + "source.java storage.type", + "storage.type.primitive", + "source.groovy storage.type", + "storage.type.r", + "source.haskell storage.type", + "punctuation.separator.clause-head-body", + "source.go storage.type", + "storage.type.core.rust", + "storage.class.std.rust", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "support.type.vb", + "entity.name.type.kotlin", + "support.type.julia", + "constant.other.reference", + "source.graphql support.type", + "source.reason support.type string", + "entity.name.type.fsharp", + "source.elm storage.type", + "storage.type.user-defined", + "storage.type.built-in", + "support.type.builtin", + "source.swift support.type", + "support.class.crystal", + "storage.type.integral", + "source.cpp storage.type.cpp", + "source.vala storage.type", + "source.hlsl storage.type.basic", + "source.hlsl support.type.other", + "source.apex storage.type", + "source.nim storage.type", + "source.cpp entity.name.type", + "support.class.builtin", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "markup.raw.monospace", + "markup.mark", + "entity.name.type.primitive", + "entity.name.type.numeric" + ], + "settings": { + "foreground": "#d67e5c" + } + }, + { + "name": "CONSTANT", + "scope": [ + "constant", + "variable.other.constant", + "support.constant", + "punctuation.definition.entity", + "constant.character.entity", + "support.variable.magic", + "markup.quote", + "entity.name.type.type-parameter.cs", + "punctuation.bracket.angle", + "entity.name.function.preprocessor.c", + "storage.type.scala", + "entity.helper.apacheconf", + "variable.language.crystal", + "punctuation.definition.constant", + "support.constant punctuation.definition.variable", + "constant.character.math", + "support.class.math", + "source.graphql constant.character", + "source.reason constant.language.list", + "source.cpp variable.other.enummember", + "support.variable.class.hideshow", + "entity.other.attribute-name.class", + "meta.attribute.id entity.other.attribute-name", + "text.html entity.other.attribute-name", + "meta.tag.attributes entity.other.attribute-name", + "text.xml entity.other.attribute-name", + "source.cs entity.other.attribute-name", + "constant.character.format.placeholder", + "constant.other.placeholder", + "source.vue entity.other.attribute-name", + "entity.other.attribute-name.mjml", + "source.vue meta.directive punctuation.separator.key-value", + "meta.definition.attribute-entry punctuation.separator" + ], + "settings": { + "foreground": "#d5971a" + } + }, + { + "name": "TAG", + "scope": [ + "variable.language", + "variable.parameter.function.language.special", + "punctuation.definition.italic", + "punctuation.definition.bold", + "entity.name.tag", + "variable.language punctuation.definition.variable", + "keyword.control.clojure", + "support.type.exception.python", + "keyword.other.this.cs", + "keyword.other.base.cs", + "keyword.other.var.cs", + "storage.modifier.super", + "source.go keyword", + "keyword.function.go", + "meta.separator", + "keyword.other.fn.rust", + "storage.modifier.static.rust", + "source.r meta.function.r keyword.control.r", + "storage.type.def", + "meta.class.identifier storage.modifier", + "source.scala keyword.declaration", + "storage.type", + "comment.block.documentation punctuation.definition.block.tag", + "comment.block.documentation punctuation.definition.inline.tag", + "entity.tag.apacheconf", + "keyword.other.julia", + "source.julia storage.modifier", + "constant.language.empty-list.haskell", + "meta.function.powershell storage.type.powershell", + "keyword.control.fun", + "punctuation.terminator.function", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "keyword.control.class", + "keyword.control.def", + "source.ocaml keyword markup.underline", + "source.ocaml storage.type markup.underline", + "binding.fsharp keyword", + "function.anonymous keyword", + "function.anonymous keyword.symbol.fsharp", + "meta.embedded.block variable.language punctuation.definition.variable.php", + "keyword.declaration.dart", + "source.wsd keyword.other.class", + "source.wsd keyword.other.linebegin", + "keyword.other.skinparam.keyword", + "keyword.other.nim", + "markup.deleted.diff", + "source.tf support.class.variable", + "meta.function.lua keyword.control.lua", + "markup.block entity.name.tag", + "markup.meta.attribute-list", + "source.zig keyword.default", + "source.zig keyword.structure" + ], + "settings": { + "foreground": "#e66533" + } + }, + { + "name": "STRING", + "scope": [ + "string", + "punctuation.definition.string", + "source.css support.constant", + "entity.name.import.go", + "markup.raw.texttt", + "markup.inserted.diff", + "source.scala punctuation.definition.character", + "constant.character.literal.scala", + "source.tf entity.name" + ], + "settings": { + "foreground": "#49e9a6" + } + }, + { + "name": "STRINGINTERPOLATED", + "scope": [ + "string.template", + "punctuation.definition.string.template", + "string.interpolated.python string.quoted.single.python", + "string.quoted.double.heredoc", + "string.quoted.interpolated.vala", + "string.quoted.interpolated.vala punctuation.definition.string", + "string.regexp.apacheconf", + "markup.inline.raw.string", + "markup.inline.raw punctuation.definition.raw", + "string.quoted.double.interpolated.crystal", + "string.quoted.double.interpolated.crystal punctuation.definition.string", + "text.tex markup.raw" + ], + "settings": { + "foreground": "#16b673" + } + }, + { + "name": "NUMBER", + "scope": [ + "constant.numeric", + "constant.language", + "punctuation.separator.decimal.period.php", + "keyword.operator.null-conditional.cs", + "punctuation.separator.question-mark.cs", + "constant.integer.apacheconf", + "keyword.operator.nullable-type", + "constant.language punctuation.definition.variable", + "constant.others.fsharp", + "keyword.other.unit", + "string.quoted.double.skinparam.value", + "source.toml constant", + "source.zig keyword.constant.bool", + "source.zig keyword.constant.default" + ], + "settings": { + "foreground": "#7060eb" + } + }, + { + "name": "FUNCTION", + "scope": [ + "variable.function", + "support.type.property-name", + "entity.name.function", + "string.other.link", + "markup.link", + "support.type.vendored", + "support.other.variable", + "meta.function-call.generic.python", + "meta.method-call.groovy meta.method.groovy", + "meta.class.body.groovy meta.method.body.java storage.type.groovy", + "punctuation.definition.decorator", + "support.function.any-method", + "text.tex support.function", + "text.tex punctuation.definition.function", + "entity.name.section.fsharp entity.name.section.fsharp", + "support.variable.class.function", + "keyword.control.cucumber.table", + "punctuation.decorator", + "source.tf support.class" + ], + "settings": { + "foreground": "#16a3b6" + } + }, + { + "name": "SUPPORT", + "scope": [ + "entity.name", + "entity.other", + "support.orther.namespace.use.php", + "meta.use.php", + "support.other.namespace.php", + "support.type", + "support.class", + "punctuation.definition.parameters", + "support.function", + "support.function.construct", + "markup.changed.git_gutter", + "markup.underline.link", + "markup.underline.link.image", + "markup.underline", + "meta.symbol.namespace.clojure", + "entity.mime-type.apacheconf", + "keyword.operator.function.infix", + "entity.name.function.infix", + "entity.name.function.call.kotlin", + "text.tex support.function.verb", + "text.tex support.function.texttt", + "source.reason constant.language.unit", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "constant.language.unit.fsharp", + "source.wsd support.class.preprocessings", + "keyword.language.gherkin.feature.scenario", + "source.nim keyword.other.common.function", + "entity.name.type.namespace", + "entity.name.scope-resolution.function.call" + ], + "settings": { + "foreground": "#49d6e9" + } + }, + { + "name": "MISC", + "scope": [ + "source.js constant.other.object.key.js string.unquoted.label.js", + "source.js punctuation.section.embedded", + "punctuation.definition.template-expression", + "support.class", + "storage.type.string.python", + "string.interpolated.pug", + "support.constant.handlebars", + "source.clojure punctuation.section.set", + "source.clojure punctuation.section.metadata", + "entity.global.clojure", + "source.python meta.function-call.python support.type.python", + "entity.other.inherited-class.python", + "punctuation.definition.interpolation", + "punctuation.section.embedded.begin.ruby", + "punctuation.section.embedded.end.ruby source.ruby", + "support.constant.math", + "entity.namespace.r", + "meta.method-call.groovy storage.type.groovy", + "source.scala entity.name.class.declaration", + "constant.character.escape", + "support.function.macro.julia", + "string.replacement.apacheconf", + "storage.modifier.using.vala", + "constant.other.haskell", + "source.objc entity.name.tag", + "string.quoted.other.literal.upper.crystal punctuation.definition.string", + "meta.embedded.line.crystal punctuation.section.embedded", + "meta.embedded.line.crystal punctuation.section.embedded source.crystal", + "punctuation.section.embedded", + "punctuation.section.tag", + "punctuation.section.embedded source.swift", + "variable.other.bracket punctuation.definition.variable", + "string.interpolated.dollar punctuation.definition.string", + "constant.character.escape punctuation.definition.keyword", + "source.ocaml entity.name.class constant.numeric", + "source.reason entity.name.class", + "keyword.format.specifier.fsharp", + "support.module.elm", + "meta.embedded.block.php punctuation.definition.variable.php", + "source.vala storage.type", + "support.variable.class.group", + "entity.name.type.class", + "source.tf meta.keyword.list", + "source.tf meta.keyword.map", + "entity.name.class.lua", + "markup.substitution" + ], + "settings": { + "foreground": "#49ace9" + } + }, + { + "name": "INVALID", + "scope": ["invalid", "invalid.illegal"], + "settings": { + "foreground": "#e3541c" + } + }, + { + "name": "ITALIC", + "scope": [ + "comment", + "storage.modifier", + "punctuation.definition.comment", + "entity.other", + "variable.language", + "support.type.vendored", + "support.constant.vendored", + "markup.quote", + "markup.italic", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "keyword.control.clojure", + "source.clojure meta.symbol.dynamic", + "keyword.other.this.cs", + "keyword.other.base.cs", + "variable.other.member.c", + "support.type.core.rust", + "variable.other.object.property", + "variable.other.property", + "source.r meta.function.r keyword.control.r", + "comment.line.roxygen.r keyword", + "comment.line.roxygen.r variable.parameter.r", + "keyword.control.inheritance.coffee", + "comment.block.documentation.phpdoc.php keyword", + "keyword.other.array.phpdoc.php", + "storage.type.modifier", + "comment.block.javadoc.java keyword", + "comment.block.javadoc.java variable.parameter.java", + "keyword.operator.documentation.powershell", + "storage.type.scala", + "variable.parameter.function.language.special", + "comment.block.documentation.scala keyword", + "comment.block.documentation.scala variable.parameter", + "support.function.builtin.go", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.ruby", + "source.vala storage.type.generic", + "constant.other.table-name", + "constant.other.placeholder", + "variable.other.field", + "entity.alias.import.go", + "source.swift keyword.other.declaration-specifier", + "support.variable.swift", + "keyword.other.capture-specifier", + "text.tex support.function.emph", + "constant.other.math", + "support.function.textit", + "entity.name.footnote", + "entity.name.function.directive.graphql", + "source.graphql support.type.enum", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "abstract.definition.fsharp keyword", + "abstract.definition.fsharp entity", + "function.anonymous keyword", + "entity.name.record.field.accessor.elm", + "support.type.primitive", + "support.type.builtin", + "keyword.type.cs", + "storage.type.built-in", + "storage.type.primitive", + "source.python support.type.python", + "storage.type.core.rust", + "source.swift support.type", + "source.go storage.type", + "storage.type.php", + "storage.type.function.kotlin", + "entity.name.type.kotlin", + "support.type.julia", + "variable.other.member", + "keyword.other.import", + "keyword.package", + "keyword.import", + "source.wsd keyword.control.diagram", + "keyword.language.gherkin.feature.step", + "source.hlsl storage.type.basic", + "source.apex keyword.type", + "sharing.modifier", + "source.nim storage.type.concrete", + "meta.preprocessor.pragma.nim", + "storage.type.integral", + "entity.name.scope-resolution.function.call", + "support.class.builtin", + "comment.block.documentation storage.type.class", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "meta.import keyword.control", + "keyword.control.export", + "source.vue meta.directive punctuation.separator.key-value", + "keyword.local.lua", + "markup.mark.constrained markup.mark", + "markup.block.open", + "entity.name.type.primitive", + "entity.name.type.numeric", + "source.zig keyword.type", + "source.zig keyword.storage", + "source.zig keyword.structure" + ], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "BOLD", + "scope": [ + "keyword", + "keyword.control", + "keyword.operator", + "keyword.other.template", + "keyword.other.substitution", + "storage.type.function.arrow", + "constant.other.color", + "punctuation.accessor", + "entity.name.section", + "markdown.heading", + "markup.inline.raw punctuation.definition.raw", + "markup.heading", + "storage.type.function.pug", + "storage.type.function.python", + "storage.type.annotation", + "punctuation.bracket.angle", + "keyword.other.new", + "storage.type.generic.wildcard", + "source.go keyword.operator", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "variable.parameter", + "support.function.builtin.rust", + "storage.type.function.coffee", + "entity.name.variable.parameter", + "punctuation.separator.hash.cs", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "meta.function.parameters variable.other", + "entity.name.type.annotation.kotlin", + "storage.type.objc", + "parameter.variable.function", + "markup punctuation.definition", + "punctuation.section.directive", + "punctuation.definition.preprocessor", + "source.ruby punctuation.definition.variable", + "support.function.textbf", + "source.graphql support.type.builtin", + "source.ocaml variable.interpolation string", + "entity.name.function.definition.special.constructor", + "entity.name.function.definition.special.member.destructor.", + "meta.function.parameters variable punctuation.definition.variable.php", + "source.wsd keyword.other.activity", + "keyword.control.class.ruby", + "keyword.control.def.ruby", + "keyword.function.go", + "keyword.other.fn.rust", + "markup.other.anchor", + "markup.list.bullet", + "markup.list punctuation.definition", + "keyword.control.default", + "punctuation.section", + "punctuation.separator", + "punctuation.terminator", + "markup.bold.markdown", + "source.zig storage.type.function" + ], + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "BOLD-ITALIC", + "scope": [ + "markup.quote markup.bold", + "text.html punctuation.section.embedded", + "variable.other.c", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "source.rust meta.attribute.rust", + "meta.attribute.id entity.other.attribute-name", + "source.ocaml punctuation.definition.tag emphasis", + "source.tf entity.name", + "markup.quote punctuation.definition", + "markup.fenced_code punctuation.definition", + "fenced_code.block.language" + ], + "settings": { + "fontStyle": "bold italic" + } + }, + { + "name": "NORMAL", + "scope": [ + "keyword.begin.tag.ejs", + "source.python meta.function.decorator.python support.type.python", + "source.cs keyword.other", + "keyword.other.var.cs", + "source.go keyword", + "storage.modifier.static.rust", + "variable.parameter.r", + "variable.parameter.handlebars", + "storage.modifier.import", + "storage.modifier.package", + "meta.class.identifier storage.modifier", + "keyword.operator.other.powershell", + "source.css variable.parameter", + "string.interpolated variable.parameter", + "source.apacheconf keyword", + "keyword.other.julia", + "storage.modifier.using.vala", + "source.objc keyword.other.property.attribute", + "source.sql keyword.other", + "keyword.other.using.vala", + "keyword.operator.function.infix", + "keyword.control.directive", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "entity.name.function.swift", + "keyword.control.class", + "keyword.control.def", + "punctuation.definition.variable", + "entity.name.section.latex", + "source.ocaml keyword markup.underline", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "keyword.format.specifier.fsharp", + "entity.name.section.fsharp", + "binding.fsharp keyword", + "binding.fsharp keyword.symbol", + "record.fsharp keyword", + "keyword.symbol.fsharp", + "entity.name.section.fsharp keyword", + "namespace.open.fsharp keyword", + "namespace.open.fsharp entity", + "storage.type", + "source.cpp keyword.other", + "source.c keyword.other", + "keyword.other.unit", + "storage.modifier.array.bracket", + "meta.import.haskell keyword", + "keyword.declaration.dart", + "source.wsd keyword.other", + "keyword.other.skinparam", + "source.css keyword.control", + "source.css keyword.operator", + "keyword.language.gherkin.feature.scenario", + "keyword.control.cucumber.table", + "source.toml entity.other.attribute-name", + "source.toml keyword", + "keyword.other.nim", + "source.nim keyword.other.common.function", + "source.nim keyword.other", + "source.scala keyword.declaration", + "source.scala entity.name.class.declaration", + "keyword.control.lua", + "source.css punctuation.section", + "punctuation.section.embedded", + "source.c punctuation.section", + "source.cpp punctuation.section", + "source.java punctuation.section", + "source.php punctuation.section", + "source.powershell punctuation.section", + "source.r punctuation.section", + "source.ruby punctuation.section", + "source.swift punctuation.section", + "source.objc punctuation.section", + "source.zig keyword.constant.bool", + "source.zig keyword.default", + "source.zig keyword.statement", + "source.zig keyword.constant.default" + ], + "settings": { + "fontStyle": "" + } + }, + { + "name": "STRIKETHROUGH", + "scope": ["markup.strikethrough"], + "settings": { + "fontStyle": "strikethrough" + } + } + ] +} diff --git a/assets/themes/src/vscode/noctis/obscuro.json b/assets/themes/src/vscode/noctis/obscuro.json new file mode 100644 index 0000000000..26d1a02de8 --- /dev/null +++ b/assets/themes/src/vscode/noctis/obscuro.json @@ -0,0 +1,1108 @@ +{ + "name": "Noctis Obscuro", + "type": "dark", + "colors": { + "selection.background": "#107684", + "descriptionForeground": "#929ea0", + "errorForeground": "#e34e1c", + "widget.shadow": "#00000044", + "editor.background": "#031417", + "editor.foreground": "#b2cacd", + "editorLineNumber.foreground": "#4e6b6e", + "editorLineNumber.activeForeground": "#169fb1", + "editorCursor.foreground": "#85efff", + "badge.background": "#169fb1", + "badge.foreground": "#0f1415", + "activityBar.background": "#031417", + "activityBar.dropBackground": "#929ea065", + "activityBar.border": "#0f1415", + "activityBar.foreground": "#169fb1", + "activityBar.inactiveForeground": "#169fb177", + "activityBarBadge.background": "#169fb1", + "activityBarBadge.foreground": "#0f1415", + "activityBar.activeBackground": "#40d4e733", + "activityBar.activeBorder": "#40d4e7", + "sideBar.background": "#021012", + "sideBar.dropBackground": "#042124", + "sideBar.border": "#0f1415", + "sideBar.foreground": "#a5b5b5", + "sideBarSectionHeader.background": "#083d44", + "sideBarSectionHeader.foreground": "#a5b5b5", + "sideBarTitle.foreground": "#a5b5b5", + "sideBarSectionHeader.border": "#0f1415", + "statusBar.foreground": "#169fb1", + "statusBar.background": "#031417", + "statusBar.border": "#0f1415", + "statusBar.debuggingBackground": "#031417", + "statusBar.debuggingForeground": "#df769b50", + "statusBar.debuggingBorder": "#df769baf", + "statusBar.noFolderForeground": "#87a7ab", + "statusBar.noFolderBackground": "#031417", + "statusBar.noFolderBorder": "#031417", + "statusBarItem.activeBackground": "#19bacc45", + "statusBarItem.hoverBackground": "#062e32", + "statusBarItem.prominentBackground": "#020c0e", + "statusBarItem.prominentHoverBackground": "#00292e", + "button.background": "#099099", + "button.foreground": "#ebfdff", + "button.hoverBackground": "#0cc", + "dropdown.background": "#031417", + "dropdown.border": "#031417", + "dropdown.foreground": "#87a7ab", + "editorMarkerNavigation.background": "#3a3a5e29", + "editorMarkerNavigationError.background": "#e34e1c", + "editorMarkerNavigationWarning.background": "#e69533", + "editorError.border": "#031417", + "editorError.foreground": "#e34e1c", + "editorWarning.border": "#031417", + "editorWarning.foreground": "#e69533", + "editorInfo.border": "#031417", + "editorInfo.foreground": "#40d4e7", + "editorHint.border": "#49e9a600", + "editorHint.foreground": "#49e9a6", + "editorGroup.emptyBackground": "#5f6b6d33", + "editorGroup.border": "#0f1415", + "editorGroup.dropBackground": "#5f6b6d33", + "editorGroupHeader.noTabsBackground": "#062e32", + "editorGroupHeader.tabsBackground": "#062e32", + "editorGroupHeader.tabsBorder": "#062e32", + "tab.activeBackground": "#031417", + "tab.unfocusedActiveBackground": "#0b1819", + "tab.activeForeground": "#ebfdff", + "tab.border": "#0f1415", + "tab.inactiveBackground": "#062e32", + "tab.inactiveForeground": "#87a7ab", + "tab.unfocusedActiveForeground": "#87a7ab", + "tab.unfocusedInactiveForeground": "#87a7ab", + "tab.activeBorderTop": "#40d4e7", + "tab.activeModifiedBorder": "#49e9a6", + "tab.activeBorder": "#031417", + "tab.unfocusedActiveBorder": "#031417", + "tab.unfocusedHoverBackground": "#169fb121", + "textBlockQuote.background": "#031417", + "textBlockQuote.border": "#16a3b6", + "textCodeBlock.background": "#031417", + "textLink.activeForeground": "#40d4e7", + "textLink.foreground": "#40d4e7", + "textPreformat.foreground": "#e4b781", + "textSeparator.foreground": "#031417", + "walkThrough.embeddedEditorBackground": "#031417", + "welcomePage.buttonBackground": "#052529", + "welcomePage.buttonHoverBackground": "#062e32", + "input.background": "#052529", + "input.border": "#083f44", + "input.foreground": "#CDD3DE", + "input.placeholderForeground": "#87a7ab", + "inputOption.activeBorder": "#169fb1", + "inputValidation.errorForeground": "#ff4000", + "inputValidation.errorBackground": "#501502ee", + "inputValidation.errorBorder": "#691c02", + "inputValidation.infoForeground": "#40d4e7", + "inputValidation.infoBackground": "#0f6e7bee", + "inputValidation.infoBorder": "#148f9f", + "inputValidation.warningForeground": "#e69533", + "inputValidation.warningBackground": "#82694acc", + "inputValidation.warningBorder": "#a88457", + "editorWidget.background": "#062e32", + "editorWidget.border": "#0f1415", + "editorHoverWidget.background": "#062e32", + "editorHoverWidget.border": "#0f1415", + "editorSuggestWidget.background": "#062e32", + "editorSuggestWidget.border": "#0f1415", + "editorSuggestWidget.foreground": "#87a7ab", + "editorSuggestWidget.highlightForeground": "#40d4e7", + "editorSuggestWidget.selectedBackground": "#0e6671", + "editorGutter.background": "#031417", + "editorGutter.addedBackground": "#8ce99a", + "editorGutter.deletedBackground": "#e34e1c", + "editorGutter.modifiedBackground": "#e4b781", + "editor.selectionBackground": "#169fb144", + "editor.selectionHighlightBackground": "#49ace944", + "editor.inactiveSelectionBackground": "#0e657155", + "editor.wordHighlightStrongBackground": "#cc990033", + "editor.wordHighlightBackground": "#e4b78133", + "editor.findMatchBackground": "#40bf6a11", + "editor.findMatchHighlightBackground": "#0e667179", + "editor.findRangeHighlightBackground": "#49e9a633", + "editor.hoverHighlightBackground": "#169fb13f", + "editor.lineHighlightBackground": "#083d44ee", + "editor.lineHighlightBorder": "#083d44", + "editor.rangeHighlightBackground": "#083d44a1", + "editorLink.activeForeground": "#14a5ff", + "editorWhitespace.foreground": "#ffffff21", + "editorIndentGuide.background": "#223b3f", + "editorIndentGuide.activeBackground": "#3e6f74", + "editorBracketMatch.background": "#169fb122", + "editorBracketMatch.border": "#169fb1", + "editorRuler.foreground": "#243f42", + "editorCodeLens.foreground": "#507b95", + "terminal.ansiBlack": "#324a4d", + "terminal.ansiRed": "#e66533", + "terminal.ansiGreen": "#49e9a6", + "terminal.ansiYellow": "#e4b781", + "terminal.ansiBlue": "#49ace9", + "terminal.ansiMagenta": "#df769b", + "terminal.ansiCyan": "#49d6e9", + "terminal.ansiWhite": "#b2cacd", + "terminal.ansiBrightBlack": "#47686c", + "terminal.ansiBrightRed": "#e97749", + "terminal.ansiBrightGreen": "#60ebb1", + "terminal.ansiBrightYellow": "#e69533", + "terminal.ansiBrightBlue": "#60b6eb", + "terminal.ansiBrightMagenta": "#e798b3", + "terminal.ansiBrightCyan": "#60dbeb", + "terminal.ansiBrightWhite": "#c1d4d7", + "terminal.background": "#020c0e", + "terminal.foreground": "#b2cacd", + "terminalCursor.background": "#020c0e", + "terminalCursor.foreground": "#b2cacd", + "merge.border": "#03141700", + "merge.currentContentBackground": "#85f1ff22", + "merge.currentHeaderBackground": "#85f1ff44", + "merge.incomingContentBackground": "#9d92f222", + "merge.incomingHeaderBackground": "#9d92f244", + "merge.commonContentBackground": "#ffc18022", + "merge.commonHeaderBackground": "#ffc18044", + "editorOverviewRuler.currentContentForeground": "#85f1ff44", + "editorOverviewRuler.incomingContentForeground": "#9d92f244", + "editorOverviewRuler.commonContentForeground": "#ffc18044", + "editorOverviewRuler.border": "#031417", + "notificationCenter.border": "#062e32", + "notificationCenterHeader.foreground": "#87a7ab", + "notificationCenterHeader.background": "#062e32", + "notificationToast.border": "#062e32", + "notifications.foreground": "#CDD3DE", + "notifications.background": "#062e32", + "notifications.border": "#062e32", + "notificationLink.foreground": "#87a7ab", + "diffEditor.insertedTextBackground": "#16b67327", + "diffEditor.removedTextBackground": "#e6653341", + "debugToolBar.background": "#031417", + "debugExceptionWidget.background": "#031417", + "debugExceptionWidget.border": "#16a3b6", + "extensionButton.prominentBackground": "#099099", + "extensionButton.prominentForeground": "#e5f5f5", + "extensionButton.prominentHoverBackground": "#0cc", + "focusBorder": "#062e32", + "foreground": "#b2cacd", + "panel.background": "#020c0e", + "panel.border": "#0e6671", + "panelTitle.activeBorder": "#0e6671", + "panelTitle.activeForeground": "#40d4e7", + "panelTitle.inactiveForeground": "#87a7ab", + "peekView.border": "#169fb1", + "peekViewEditor.background": "#002124", + "peekViewEditor.matchHighlightBackground": "#00718079", + "peekViewEditor.matchHighlightBorder": "#007180cc", + "peekViewEditorGutter.background": "#002124", + "peekViewResult.background": "#031417", + "peekViewResult.fileForeground": "#e4b781", + "peekViewResult.lineForeground": "#87a7ab", + "peekViewResult.matchHighlightBackground": "#062e32", + "peekViewResult.selectionBackground": "#062e32", + "peekViewResult.selectionForeground": "#87a7ab", + "peekViewTitle.background": "#031417", + "peekViewTitleDescription.foreground": "#87a7ab", + "peekViewTitleLabel.foreground": "#e4b781", + "progressBar.background": "#40d4e7", + "scrollbar.shadow": "#00000044", + "scrollbarSlider.activeBackground": "#169fb1ad", + "scrollbarSlider.background": "#6a90955b", + "scrollbarSlider.hoverBackground": "#169fb162", + "gitDecoration.addedResourceForeground": "#16b673", + "gitDecoration.modifiedResourceForeground": "#49e9a6", + "gitDecoration.deletedResourceForeground": "#e34e1c", + "gitDecoration.untrackedResourceForeground": "#40d4e7", + "gitDecoration.ignoredResourceForeground": "#647e82", + "gitDecoration.conflictingResourceForeground": "#e4b781", + "pickerGroup.border": "#0e6671", + "pickerGroup.foreground": "#169fb1", + "list.activeSelectionBackground": "#0e6671", + "list.activeSelectionForeground": "#ebfdff", + "list.dropBackground": "#00404d", + "list.focusBackground": "#00404d", + "list.focusForeground": "#ebfdff", + "list.highlightForeground": "#40d4e7", + "list.hoverBackground": "#0b515b", + "list.hoverForeground": "#ebfdff", + "list.inactiveFocusBackground": "#062d32", + "list.inactiveSelectionBackground": "#07353b", + "list.inactiveSelectionForeground": "#b2cacd", + "list.errorForeground": "#e34e1c", + "list.warningForeground": "#ffa487", + "listFilterWidget.background": "#00404d", + "listFilterWidget.outline": "#49e9a6", + "listFilterWidget.noMatchesOutline": "#e34e1c", + "tree.indentGuidesStroke": "#3e6f74", + "settings.headerForeground": "#b2cacd", + "settings.modifiedItemIndicator": "#15ac31", + "settings.dropdownListBorder": "#0e657188", + "settings.dropdownBackground": "#073940", + "settings.dropdownForeground": "#0cc", + "settings.dropdownBorder": "#073940", + "settings.checkboxBackground": "#073940", + "settings.checkboxForeground": "#0cc", + "settings.checkboxBorder": "#073940", + "settings.textInputBackground": "#073940", + "settings.textInputForeground": "#0cc", + "settings.textInputBorder": "#073940", + "settings.numberInputBackground": "#062e32", + "settings.numberInputForeground": "#7060eb", + "settings.numberInputBorder": "#062e32", + "breadcrumb.foreground": "#87a7ab", + "breadcrumb.background": "#031417", + "breadcrumb.focusForeground": "#40d4e7", + "breadcrumb.activeSelectionForeground": "#ebfdff", + "breadcrumbPicker.background": "#062e32", + "titleBar.activeBackground": "#031417", + "titleBar.activeForeground": "#b2cacd", + "titleBar.inactiveBackground": "#031417", + "titleBar.inactiveForeground": "#87a7ab", + "menu.background": "#062e32", + "menu.foreground": "#87a7ab", + "menu.selectionBackground": "#0b515b", + "menu.selectionForeground": "#40d4e7", + "menu.selectionBorder": "#0b515b", + "menu.separatorBackground": "#40d4e7", + "menubar.selectionBackground": "#0b515b", + "menubar.selectionForeground": "#40d4e7", + "menubar.selectionBorder": "#0b515b", + "editor.snippetTabstopHighlightBackground": "#06292d", + "editor.snippetTabstopHighlightBorder": "#073136", + "editor.snippetFinalTabstopHighlightBackground": "#06292d", + "editor.snippetFinalTabstopHighlightBorder": "#073136", + "minimap.findMatchHighlight": "#49d6e9ee", + "minimap.errorHighlight": "#e34e1cee", + "minimap.warningHighlight": "#e69533ee", + "minimapGutter.addedBackground": "#16b673", + "minimapGutter.modifiedBackground": "#49e9a6", + "minimapGutter.deletedBackground": "#e34e1c", + "minimap.background": "#03141799" + }, + "tokenColors": [ + { + "name": "COMMENT", + "scope": [ + "comment", + "punctuation.definition.comment", + "punctuation.definition.tag", + "comment.block.documentation punctuation.definition.bracket", + "source.ocaml comment constant.regexp meta.separator", + "markup.other.anchor support.constant", + "markup.fenced_code", + "markup.fenced_code punctuation.definition", + "punctuation.definition.heading", + "punctuation.definition.bold.markdown", + "punctuation.definition.italic.markdown", + "punctuation.definition.strikethrough.markdown" + ], + "settings": { + "foreground": "#5b858b" + } + }, + { + "name": "TEXT", + "scope": [ + "constant.character", + "constant.escape", + "text.html.markdown", + "punctuation.definition.list_item", + "keyword.begin.tag.ejs", + "constant.name.attribute.tag.pug", + "source.clojure meta.symbol", + "constant.other.description.jsdoc", + "keyword.other.array.phpdoc.php", + "keyword.operator.other.powershell", + "meta.link.inline punctuation.definition.string", + "source.sql", + "source meta.brace", + "source punctuation", + "text.html punctuation", + "markup meta punctuation.definition", + "meta.bracket.julia", + "meta.array.julia", + "entity.name.footnote", + "source.ocaml punctuation.definition.tag", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "entity.other.attribute-name strong", + "binding.fsharp keyword.symbol.fsharp", + "entity.name.record.field.elm", + "entity.name.record.field.accessor.elm", + "storage.modifier.array.bracket", + "source.css entity.other", + "meta.attribute-selector punctuation.definition.entity", + "markup.other.anchor string", + "punctuation.separator", + "punctuation.section", + "punctuation.terminator" + ], + "settings": { + "foreground": "#b2cacd" + } + }, + { + "name": "KEYWORD", + "scope": [ + "keyword", + "keyword.control", + "keyword.other.template", + "keyword.other.substitution", + "storage.modifier", + "meta.tag.sgml", + "punctuation.accessor", + "constant.other.color", + "entity.name.section", + "markup.heading", + "markup.heading punctuation.definition", + "entity.other.attribute-name.pseudo-class", + "entity.other.attribute-name.pseudo-element", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "storage.type.function.pug", + "text.pug storage.type", + "text.pug meta.tag.other", + "source.clojure storage.control", + "meta.expression.clojure", + "punctuation.separator.slice.python", + "punctuation.separator.question-mark.cs", + "punctuation.definition.parameters.varargs", + "source.go keyword.operator", + "punctuation.separator.pointer-access", + "punctuation.separator.other.ruby", + "keyword.package", + "keyword.import", + "punctuation.definition.keyword", + "punctuation.separator.hash.cs", + "entity.other.attribute-name.pseudo-class.css punctuation.definition.entity.css", + "entity.other.attribute-name.pseudo-element.css punctuation.definition.entity.css", + "source.kotlin storage.type.import", + "source.kotlin storage.type.package", + "constant.string.documentation.powershell", + "punctuation.section.directive", + "storage.type.rust", + "punctuation.definition.attribute", + "punctuation.definition.preprocessor", + "punctuation.separator.namespace", + "punctuation.separator.method", + "keyword.control punctuation.definition.function", + "source.ocaml variable.interpolation string", + "source.reason variable.interpolation", + "punctuation.definition.directive", + "storage.type.modifier", + "keyword.other.class.fileds", + "source.toml entity.other.attribute-name", + "source.css entity.name.tag.custom", + "sharing.modifier", + "keyword.control.class.ruby", + "keyword.control.def.ruby" + ], + "settings": { + "foreground": "#df769b" + } + }, + { + "name": "VARIABLE", + "scope": [ + "variable", + "variable.object", + "variable.other", + "variable.parameter", + "support", + "entity.name.module", + "variable.import.parameter", + "variable.other.class", + "meta.toc-list.id.html", + "source.json meta.structure.dictionary.json support.type.property-name.json", + "meta.var.clojure", + "entity.name.variable", + "source.java meta.class.body.java", + "entity.name.package.go", + "source.c", + "source.cpp", + "source.go", + "source.python", + "meta.function-call.arguments.python", + "source.ruby", + "source.coffee.embedded.source", + "source.coffee", + "storage.modifier.import", + "storage.modifier.package", + "storage.type.annotation", + "punctuation.definition.annotation", + "source.groovy.embedded.source", + "punctuation.definition.variable", + "source.powershell", + "string.quoted.interpolated.vala constant.character.escape.vala", + "source.apacheconf", + "source.objc", + "source.crystal", + "string.quoted.double.kotlin entity.string.template.element.kotlin", + "entity.name.package.kotlin", + "meta.template.expression.kotlin", + "parameter.variable.function", + "variable.other.constant.elixir", + "source.elixir.embedded.source", + "source.sql.embedded", + "punctuation.definition.placeholder", + "source.swift", + "source.julia", + "source.shell", + "variable.other.normal punctuation.definition.variable.shell", + "source.reason variable.language", + "source.reason variable.language string.other.link", + "source.elm meta.value", + "source.elm meta.declaration.module", + "meta.embedded.block variable punctuation.definition.variable.php", + "string.quoted.double.class.other", + "source.toml keyword", + "support.type.nim", + "source.tf meta.template.expression", + "source.scala entity.name.import", + "markup.code", + "markup.fenced_code.block" + ], + "settings": { + "foreground": "#e4b781" + } + }, + { + "name": "ANNOTATION", + "scope": [ + "support.variable.property", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "entity.other.attribute-name.id", + "entity.other.attribute-name.id punctuation.definition.entity", + "entity.name.type.annotation.kotlin", + "support.type.primitive", + "meta.type.parameters entity.name.type", + "meta.type.annotation entity.name.type", + "punctuation.definition.typeparameters", + "source.python support.type.python", + "comment.block.documentation.phpdoc.php keyword.other.type.php", + "storage.type.php", + "keyword.type", + "storage.type.cs", + "storage.type.c", + "storage.type.objc", + "punctuation.definition.storage.type.objc", + "markup punctuation.definition", + "storage.type.powershell", + "comment.block.documentation entity.name.type", + "source.java storage.type", + "storage.type.primitive", + "source.groovy storage.type", + "storage.type.r", + "source.haskell storage.type", + "punctuation.separator.clause-head-body", + "source.go storage.type", + "storage.type.core.rust", + "storage.class.std.rust", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "support.type.vb", + "entity.name.type.kotlin", + "support.type.julia", + "constant.other.reference", + "source.graphql support.type", + "source.reason support.type string", + "entity.name.type.fsharp", + "source.elm storage.type", + "storage.type.user-defined", + "storage.type.built-in", + "support.type.builtin", + "source.swift support.type", + "support.class.crystal", + "storage.type.integral", + "source.cpp storage.type.cpp", + "source.vala storage.type", + "source.hlsl storage.type.basic", + "source.hlsl support.type.other", + "source.apex storage.type", + "source.nim storage.type", + "source.cpp entity.name.type", + "support.class.builtin", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "markup.raw.monospace", + "markup.mark", + "entity.name.type.primitive", + "entity.name.type.numeric" + ], + "settings": { + "foreground": "#d67e5c" + } + }, + { + "name": "CONSTANT", + "scope": [ + "constant", + "variable.other.constant", + "support.constant", + "punctuation.definition.entity", + "constant.character.entity", + "support.variable.magic", + "markup.quote", + "entity.name.type.type-parameter.cs", + "punctuation.bracket.angle", + "entity.name.function.preprocessor.c", + "storage.type.scala", + "entity.helper.apacheconf", + "variable.language.crystal", + "punctuation.definition.constant", + "support.constant punctuation.definition.variable", + "constant.character.math", + "support.class.math", + "source.graphql constant.character", + "source.reason constant.language.list", + "source.cpp variable.other.enummember", + "support.variable.class.hideshow", + "entity.other.attribute-name.class", + "meta.attribute.id entity.other.attribute-name", + "text.html entity.other.attribute-name", + "meta.tag.attributes entity.other.attribute-name", + "text.xml entity.other.attribute-name", + "source.cs entity.other.attribute-name", + "constant.character.format.placeholder", + "constant.other.placeholder", + "source.vue entity.other.attribute-name", + "entity.other.attribute-name.mjml", + "source.vue meta.directive punctuation.separator.key-value", + "meta.definition.attribute-entry punctuation.separator" + ], + "settings": { + "foreground": "#d5971a" + } + }, + { + "name": "TAG", + "scope": [ + "variable.language", + "variable.parameter.function.language.special", + "punctuation.definition.italic", + "punctuation.definition.bold", + "entity.name.tag", + "variable.language punctuation.definition.variable", + "keyword.control.clojure", + "support.type.exception.python", + "keyword.other.this.cs", + "keyword.other.base.cs", + "keyword.other.var.cs", + "storage.modifier.super", + "source.go keyword", + "keyword.function.go", + "meta.separator", + "keyword.other.fn.rust", + "storage.modifier.static.rust", + "source.r meta.function.r keyword.control.r", + "storage.type.def", + "meta.class.identifier storage.modifier", + "source.scala keyword.declaration", + "storage.type", + "comment.block.documentation punctuation.definition.block.tag", + "comment.block.documentation punctuation.definition.inline.tag", + "entity.tag.apacheconf", + "keyword.other.julia", + "source.julia storage.modifier", + "constant.language.empty-list.haskell", + "meta.function.powershell storage.type.powershell", + "keyword.control.fun", + "punctuation.terminator.function", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "keyword.control.class", + "keyword.control.def", + "source.ocaml keyword markup.underline", + "source.ocaml storage.type markup.underline", + "binding.fsharp keyword", + "function.anonymous keyword", + "function.anonymous keyword.symbol.fsharp", + "meta.embedded.block variable.language punctuation.definition.variable.php", + "keyword.declaration.dart", + "source.wsd keyword.other.class", + "source.wsd keyword.other.linebegin", + "keyword.other.skinparam.keyword", + "keyword.other.nim", + "markup.deleted.diff", + "source.tf support.class.variable", + "meta.function.lua keyword.control.lua", + "markup.block entity.name.tag", + "markup.meta.attribute-list", + "source.zig keyword.default", + "source.zig keyword.structure" + ], + "settings": { + "foreground": "#e66533" + } + }, + { + "name": "STRING", + "scope": [ + "string", + "punctuation.definition.string", + "source.css support.constant", + "entity.name.import.go", + "markup.raw.texttt", + "markup.inserted.diff", + "source.scala punctuation.definition.character", + "constant.character.literal.scala", + "source.tf entity.name" + ], + "settings": { + "foreground": "#49e9a6" + } + }, + { + "name": "STRINGINTERPOLATED", + "scope": [ + "string.template", + "punctuation.definition.string.template", + "string.interpolated.python string.quoted.single.python", + "string.quoted.double.heredoc", + "string.quoted.interpolated.vala", + "string.quoted.interpolated.vala punctuation.definition.string", + "string.regexp.apacheconf", + "markup.inline.raw.string", + "markup.inline.raw punctuation.definition.raw", + "string.quoted.double.interpolated.crystal", + "string.quoted.double.interpolated.crystal punctuation.definition.string", + "text.tex markup.raw" + ], + "settings": { + "foreground": "#16b673" + } + }, + { + "name": "NUMBER", + "scope": [ + "constant.numeric", + "constant.language", + "punctuation.separator.decimal.period.php", + "keyword.operator.null-conditional.cs", + "punctuation.separator.question-mark.cs", + "constant.integer.apacheconf", + "keyword.operator.nullable-type", + "constant.language punctuation.definition.variable", + "constant.others.fsharp", + "keyword.other.unit", + "string.quoted.double.skinparam.value", + "source.toml constant", + "source.zig keyword.constant.bool", + "source.zig keyword.constant.default" + ], + "settings": { + "foreground": "#7060eb" + } + }, + { + "name": "FUNCTION", + "scope": [ + "variable.function", + "support.type.property-name", + "entity.name.function", + "string.other.link", + "markup.link", + "support.type.vendored", + "support.other.variable", + "meta.function-call.generic.python", + "meta.method-call.groovy meta.method.groovy", + "meta.class.body.groovy meta.method.body.java storage.type.groovy", + "punctuation.definition.decorator", + "support.function.any-method", + "text.tex support.function", + "text.tex punctuation.definition.function", + "entity.name.section.fsharp entity.name.section.fsharp", + "support.variable.class.function", + "keyword.control.cucumber.table", + "punctuation.decorator", + "source.tf support.class" + ], + "settings": { + "foreground": "#16a3b6" + } + }, + { + "name": "SUPPORT", + "scope": [ + "entity.name", + "entity.other", + "support.orther.namespace.use.php", + "meta.use.php", + "support.other.namespace.php", + "support.type", + "support.class", + "punctuation.definition.parameters", + "support.function", + "support.function.construct", + "markup.changed.git_gutter", + "markup.underline.link", + "markup.underline.link.image", + "markup.underline", + "meta.symbol.namespace.clojure", + "entity.mime-type.apacheconf", + "keyword.operator.function.infix", + "entity.name.function.infix", + "entity.name.function.call.kotlin", + "text.tex support.function.verb", + "text.tex support.function.texttt", + "source.reason constant.language.unit", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "constant.language.unit.fsharp", + "source.wsd support.class.preprocessings", + "keyword.language.gherkin.feature.scenario", + "source.nim keyword.other.common.function", + "entity.name.type.namespace", + "entity.name.scope-resolution.function.call" + ], + "settings": { + "foreground": "#49d6e9" + } + }, + { + "name": "MISC", + "scope": [ + "source.js constant.other.object.key.js string.unquoted.label.js", + "source.js punctuation.section.embedded", + "punctuation.definition.template-expression", + "support.class", + "storage.type.string.python", + "string.interpolated.pug", + "support.constant.handlebars", + "source.clojure punctuation.section.set", + "source.clojure punctuation.section.metadata", + "entity.global.clojure", + "source.python meta.function-call.python support.type.python", + "entity.other.inherited-class.python", + "punctuation.definition.interpolation", + "punctuation.section.embedded.begin.ruby", + "punctuation.section.embedded.end.ruby source.ruby", + "support.constant.math", + "entity.namespace.r", + "meta.method-call.groovy storage.type.groovy", + "source.scala entity.name.class.declaration", + "constant.character.escape", + "support.function.macro.julia", + "string.replacement.apacheconf", + "storage.modifier.using.vala", + "constant.other.haskell", + "source.objc entity.name.tag", + "string.quoted.other.literal.upper.crystal punctuation.definition.string", + "meta.embedded.line.crystal punctuation.section.embedded", + "meta.embedded.line.crystal punctuation.section.embedded source.crystal", + "punctuation.section.embedded", + "punctuation.section.tag", + "punctuation.section.embedded source.swift", + "variable.other.bracket punctuation.definition.variable", + "string.interpolated.dollar punctuation.definition.string", + "constant.character.escape punctuation.definition.keyword", + "source.ocaml entity.name.class constant.numeric", + "source.reason entity.name.class", + "keyword.format.specifier.fsharp", + "support.module.elm", + "meta.embedded.block.php punctuation.definition.variable.php", + "source.vala storage.type", + "support.variable.class.group", + "entity.name.type.class", + "source.tf meta.keyword.list", + "source.tf meta.keyword.map", + "entity.name.class.lua", + "markup.substitution" + ], + "settings": { + "foreground": "#49ace9" + } + }, + { + "name": "INVALID", + "scope": ["invalid", "invalid.illegal"], + "settings": { + "foreground": "#e3541c" + } + }, + { + "name": "ITALIC", + "scope": [ + "comment", + "storage.modifier", + "punctuation.definition.comment", + "entity.other", + "variable.language", + "support.type.vendored", + "support.constant.vendored", + "markup.quote", + "markup.italic", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "keyword.control.clojure", + "source.clojure meta.symbol.dynamic", + "keyword.other.this.cs", + "keyword.other.base.cs", + "variable.other.member.c", + "support.type.core.rust", + "variable.other.object.property", + "variable.other.property", + "source.r meta.function.r keyword.control.r", + "comment.line.roxygen.r keyword", + "comment.line.roxygen.r variable.parameter.r", + "keyword.control.inheritance.coffee", + "comment.block.documentation.phpdoc.php keyword", + "keyword.other.array.phpdoc.php", + "storage.type.modifier", + "comment.block.javadoc.java keyword", + "comment.block.javadoc.java variable.parameter.java", + "keyword.operator.documentation.powershell", + "storage.type.scala", + "variable.parameter.function.language.special", + "comment.block.documentation.scala keyword", + "comment.block.documentation.scala variable.parameter", + "support.function.builtin.go", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.ruby", + "source.vala storage.type.generic", + "constant.other.table-name", + "constant.other.placeholder", + "variable.other.field", + "entity.alias.import.go", + "source.swift keyword.other.declaration-specifier", + "support.variable.swift", + "keyword.other.capture-specifier", + "text.tex support.function.emph", + "constant.other.math", + "support.function.textit", + "entity.name.footnote", + "entity.name.function.directive.graphql", + "source.graphql support.type.enum", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "abstract.definition.fsharp keyword", + "abstract.definition.fsharp entity", + "function.anonymous keyword", + "entity.name.record.field.accessor.elm", + "support.type.primitive", + "support.type.builtin", + "keyword.type.cs", + "storage.type.built-in", + "storage.type.primitive", + "source.python support.type.python", + "storage.type.core.rust", + "source.swift support.type", + "source.go storage.type", + "storage.type.php", + "storage.type.function.kotlin", + "entity.name.type.kotlin", + "support.type.julia", + "variable.other.member", + "keyword.other.import", + "keyword.package", + "keyword.import", + "source.wsd keyword.control.diagram", + "keyword.language.gherkin.feature.step", + "source.hlsl storage.type.basic", + "source.apex keyword.type", + "sharing.modifier", + "source.nim storage.type.concrete", + "meta.preprocessor.pragma.nim", + "storage.type.integral", + "entity.name.scope-resolution.function.call", + "support.class.builtin", + "comment.block.documentation storage.type.class", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "meta.import keyword.control", + "keyword.control.export", + "source.vue meta.directive punctuation.separator.key-value", + "keyword.local.lua", + "markup.mark.constrained markup.mark", + "markup.block.open", + "entity.name.type.primitive", + "entity.name.type.numeric", + "source.zig keyword.type", + "source.zig keyword.storage", + "source.zig keyword.structure" + ], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "BOLD", + "scope": [ + "keyword", + "keyword.control", + "keyword.operator", + "keyword.other.template", + "keyword.other.substitution", + "storage.type.function.arrow", + "constant.other.color", + "punctuation.accessor", + "entity.name.section", + "markdown.heading", + "markup.inline.raw punctuation.definition.raw", + "markup.heading", + "storage.type.function.pug", + "storage.type.function.python", + "storage.type.annotation", + "punctuation.bracket.angle", + "keyword.other.new", + "storage.type.generic.wildcard", + "source.go keyword.operator", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "variable.parameter", + "support.function.builtin.rust", + "storage.type.function.coffee", + "entity.name.variable.parameter", + "punctuation.separator.hash.cs", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "meta.function.parameters variable.other", + "entity.name.type.annotation.kotlin", + "storage.type.objc", + "parameter.variable.function", + "markup punctuation.definition", + "punctuation.section.directive", + "punctuation.definition.preprocessor", + "source.ruby punctuation.definition.variable", + "support.function.textbf", + "source.graphql support.type.builtin", + "source.ocaml variable.interpolation string", + "entity.name.function.definition.special.constructor", + "entity.name.function.definition.special.member.destructor.", + "meta.function.parameters variable punctuation.definition.variable.php", + "source.wsd keyword.other.activity", + "keyword.control.class.ruby", + "keyword.control.def.ruby", + "keyword.function.go", + "keyword.other.fn.rust", + "markup.other.anchor", + "markup.list.bullet", + "markup.list punctuation.definition", + "keyword.control.default", + "punctuation.section", + "punctuation.separator", + "punctuation.terminator", + "markup.bold.markdown", + "source.zig storage.type.function" + ], + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "BOLD-ITALIC", + "scope": [ + "markup.quote markup.bold", + "text.html punctuation.section.embedded", + "variable.other.c", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "source.rust meta.attribute.rust", + "meta.attribute.id entity.other.attribute-name", + "source.ocaml punctuation.definition.tag emphasis", + "source.tf entity.name", + "markup.quote punctuation.definition", + "markup.fenced_code punctuation.definition", + "fenced_code.block.language" + ], + "settings": { + "fontStyle": "bold italic" + } + }, + { + "name": "NORMAL", + "scope": [ + "keyword.begin.tag.ejs", + "source.python meta.function.decorator.python support.type.python", + "source.cs keyword.other", + "keyword.other.var.cs", + "source.go keyword", + "storage.modifier.static.rust", + "variable.parameter.r", + "variable.parameter.handlebars", + "storage.modifier.import", + "storage.modifier.package", + "meta.class.identifier storage.modifier", + "keyword.operator.other.powershell", + "source.css variable.parameter", + "string.interpolated variable.parameter", + "source.apacheconf keyword", + "keyword.other.julia", + "storage.modifier.using.vala", + "source.objc keyword.other.property.attribute", + "source.sql keyword.other", + "keyword.other.using.vala", + "keyword.operator.function.infix", + "keyword.control.directive", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "entity.name.function.swift", + "keyword.control.class", + "keyword.control.def", + "punctuation.definition.variable", + "entity.name.section.latex", + "source.ocaml keyword markup.underline", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "keyword.format.specifier.fsharp", + "entity.name.section.fsharp", + "binding.fsharp keyword", + "binding.fsharp keyword.symbol", + "record.fsharp keyword", + "keyword.symbol.fsharp", + "entity.name.section.fsharp keyword", + "namespace.open.fsharp keyword", + "namespace.open.fsharp entity", + "storage.type", + "source.cpp keyword.other", + "source.c keyword.other", + "keyword.other.unit", + "storage.modifier.array.bracket", + "meta.import.haskell keyword", + "keyword.declaration.dart", + "source.wsd keyword.other", + "keyword.other.skinparam", + "source.css keyword.control", + "source.css keyword.operator", + "keyword.language.gherkin.feature.scenario", + "keyword.control.cucumber.table", + "source.toml entity.other.attribute-name", + "source.toml keyword", + "keyword.other.nim", + "source.nim keyword.other.common.function", + "source.nim keyword.other", + "source.scala keyword.declaration", + "source.scala entity.name.class.declaration", + "keyword.control.lua", + "source.css punctuation.section", + "punctuation.section.embedded", + "source.c punctuation.section", + "source.cpp punctuation.section", + "source.java punctuation.section", + "source.php punctuation.section", + "source.powershell punctuation.section", + "source.r punctuation.section", + "source.ruby punctuation.section", + "source.swift punctuation.section", + "source.objc punctuation.section", + "source.zig keyword.constant.bool", + "source.zig keyword.default", + "source.zig keyword.statement", + "source.zig keyword.constant.default" + ], + "settings": { + "fontStyle": "" + } + }, + { + "name": "STRIKETHROUGH", + "scope": ["markup.strikethrough"], + "settings": { + "fontStyle": "strikethrough" + } + } + ] +} diff --git a/assets/themes/src/vscode/noctis/sereno.json b/assets/themes/src/vscode/noctis/sereno.json new file mode 100644 index 0000000000..05768aff35 --- /dev/null +++ b/assets/themes/src/vscode/noctis/sereno.json @@ -0,0 +1,1108 @@ +{ + "name": "Noctis Sereno", + "type": "dark", + "colors": { + "selection.background": "#107684", + "descriptionForeground": "#929ea0", + "errorForeground": "#e34e1c", + "widget.shadow": "#00000044", + "editor.background": "#062e32", + "editor.foreground": "#b2cacd", + "editorLineNumber.foreground": "#4e6b6e", + "editorLineNumber.activeForeground": "#169fb1", + "editorCursor.foreground": "#85efff", + "badge.background": "#40d4e7", + "badge.foreground": "#0f1415", + "activityBar.background": "#062e32", + "activityBar.dropBackground": "#929ea065", + "activityBar.border": "#0f1415", + "activityBar.foreground": "#169fb1", + "activityBar.inactiveForeground": "#169fb177", + "activityBarBadge.background": "#40d4e7", + "activityBarBadge.foreground": "#0f1415", + "activityBar.activeBackground": "#40d4e733", + "activityBar.activeBorder": "#40d4e7", + "sideBar.background": "#052629", + "sideBar.dropBackground": "#052629dd", + "sideBar.border": "#0f1415", + "sideBar.foreground": "#a5b5b5", + "sideBarSectionHeader.background": "#083d44", + "sideBarSectionHeader.foreground": "#a5b5b5", + "sideBarSectionHeader.border": "#0f1415", + "sideBarTitle.foreground": "#a5b5b5", + "statusBar.background": "#052629", + "statusBar.foreground": "#169fb1", + "statusBar.border": "#0f1415", + "statusBar.debuggingBackground": "#052629", + "statusBar.debuggingForeground": "#df769b50", + "statusBar.debuggingBorder": "#df769baf", + "statusBar.noFolderForeground": "#87a7ab", + "statusBar.noFolderBackground": "#052629", + "statusBar.noFolderBorder": "#052629", + "statusBarItem.activeBackground": "#19bacc45", + "statusBarItem.hoverBackground": "#07373b", + "statusBarItem.prominentBackground": "#03191b", + "statusBarItem.prominentHoverBackground": "#003338", + "button.background": "#099099", + "button.foreground": "#ebfdff", + "button.hoverBackground": "#0cc", + "dropdown.background": "#083f44", + "dropdown.border": "#083f44", + "dropdown.foreground": "#87a7ab", + "editorMarkerNavigation.background": "#3a3a5e29", + "editorMarkerNavigationError.background": "#e34e1c", + "editorMarkerNavigationWarning.background": "#e69533", + "editorError.border": "#062e32", + "editorError.foreground": "#e34e1c", + "editorWarning.border": "#062e32", + "editorWarning.foreground": "#e69533", + "editorInfo.border": "#062e32", + "editorInfo.foreground": "#40d4e7", + "editorHint.border": "#49e9a600", + "editorHint.foreground": "#49e9a6", + "editorGroup.emptyBackground": "#5f6b6d33", + "editorGroup.border": "#0f1415", + "editorGroup.dropBackground": "#5f6b6d33", + "editorGroupHeader.noTabsBackground": "#062e32", + "editorGroupHeader.tabsBackground": "#062e32", + "editorGroupHeader.tabsBorder": "#062e32", + "tab.activeBackground": "#062e32", + "tab.unfocusedActiveBackground": "#112527", + "tab.activeForeground": "#40d4e7", + "tab.border": "#0f1415", + "tab.inactiveBackground": "#062e32", + "tab.inactiveForeground": "#87a7ab", + "tab.unfocusedActiveForeground": "#87a7ab", + "tab.unfocusedInactiveForeground": "#87a7ab", + "tab.activeBorderTop": "#40d4e7", + "tab.activeModifiedBorder": "#49e9a6", + "tab.activeBorder": "#062e32", + "tab.unfocusedActiveBorder": "#062e32", + "tab.unfocusedHoverBackground": "#169fb121", + "textBlockQuote.background": "#052629", + "textBlockQuote.border": "#16a3b6", + "textCodeBlock.background": "#052629", + "textLink.activeForeground": "#40d4e7", + "textLink.foreground": "#40d4e7", + "textPreformat.foreground": "#e4b781", + "textSeparator.foreground": "#052629", + "walkThrough.embeddedEditorBackground": "#052629", + "welcomePage.buttonBackground": "#052629", + "welcomePage.buttonHoverBackground": "#003742", + "input.background": "#062e32", + "input.border": "#083d44", + "input.foreground": "#CDD3DE", + "input.placeholderForeground": "#87a7ab", + "inputOption.activeBorder": "#169fb1", + "inputValidation.errorForeground": "#ff4000", + "inputValidation.errorBackground": "#501502ee", + "inputValidation.errorBorder": "#691c02", + "inputValidation.infoForeground": "#40d4e7", + "inputValidation.infoBackground": "#0f6e7bee", + "inputValidation.infoBorder": "#148f9f", + "inputValidation.warningForeground": "#e69533", + "inputValidation.warningBackground": "#82694acc", + "inputValidation.warningBorder": "#a88457", + "editorWidget.background": "#083d44", + "editorWidget.border": "#0f1415", + "editorHoverWidget.background": "#083d44", + "editorHoverWidget.border": "#0f1415", + "editorSuggestWidget.background": "#083d44", + "editorSuggestWidget.border": "#0f1415", + "editorSuggestWidget.foreground": "#87a7ab", + "editorSuggestWidget.highlightForeground": "#40d4e7", + "editorSuggestWidget.selectedBackground": "#0e6671", + "editorGutter.background": "#062e32", + "editorGutter.addedBackground": "#8ce99a", + "editorGutter.deletedBackground": "#e34e1c", + "editorGutter.modifiedBackground": "#e0c184", + "editor.selectionBackground": "#169fb144", + "editor.selectionHighlightBackground": "#49ace944", + "editor.inactiveSelectionBackground": "#0e657155", + "editor.wordHighlightStrongBackground": "#cc990033", + "editor.wordHighlightBackground": "#e4b78133", + "editor.findMatchBackground": "#40bf6a11", + "editor.findMatchHighlightBackground": "#0e667179", + "editor.findRangeHighlightBackground": "#49e9a633", + "editor.hoverHighlightBackground": "#169fb13f", + "editor.lineHighlightBackground": "#083d44ee", + "editor.lineHighlightBorder": "#083d44", + "editor.rangeHighlightBackground": "#083d44a1", + "editorLink.activeForeground": "#14a5ff", + "editorWhitespace.foreground": "#ffffff21", + "editorIndentGuide.background": "#223b3f", + "editorIndentGuide.activeBackground": "#3e6f74", + "editorBracketMatch.background": "#169fb122", + "editorBracketMatch.border": "#169fb1", + "editorRuler.foreground": "#29484c", + "editorCodeLens.foreground": "#507b95", + "terminal.ansiBlack": "#324a4d", + "terminal.ansiRed": "#e66533", + "terminal.ansiGreen": "#49e9a6", + "terminal.ansiYellow": "#e4b781", + "terminal.ansiBlue": "#49ace9", + "terminal.ansiMagenta": "#df769b", + "terminal.ansiCyan": "#49d6e9", + "terminal.ansiWhite": "#b2cacd", + "terminal.ansiBrightBlack": "#47686c", + "terminal.ansiBrightRed": "#e97749", + "terminal.ansiBrightGreen": "#60ebb1", + "terminal.ansiBrightYellow": "#e69533", + "terminal.ansiBrightBlue": "#60b6eb", + "terminal.ansiBrightMagenta": "#e798b3", + "terminal.ansiBrightCyan": "#60dbeb", + "terminal.ansiBrightWhite": "#c1d4d7", + "terminal.background": "#041d20", + "terminal.foreground": "#b2cacd", + "terminalCursor.background": "#041d20", + "terminalCursor.foreground": "#b2cacd", + "merge.border": "#062e3200", + "merge.currentContentBackground": "#85f1ff22", + "merge.currentHeaderBackground": "#85f1ff44", + "merge.incomingContentBackground": "#9d92f222", + "merge.incomingHeaderBackground": "#9d92f244", + "merge.commonContentBackground": "#ffc18022", + "merge.commonHeaderBackground": "#ffc18044", + "editorOverviewRuler.currentContentForeground": "#85f1ff44", + "editorOverviewRuler.incomingContentForeground": "#9d92f244", + "editorOverviewRuler.commonContentForeground": "#ffc18044", + "editorOverviewRuler.border": "#062e32", + "notificationCenter.border": "#083d44", + "notificationCenterHeader.foreground": "#87a7ab", + "notificationCenterHeader.background": "#083d44", + "notificationToast.border": "#083d44", + "notifications.foreground": "#CDD3DE", + "notifications.background": "#083d44", + "notifications.border": "#083d44", + "notificationLink.foreground": "#87a7ab", + "diffEditor.insertedTextBackground": "#16b67327", + "diffEditor.removedTextBackground": "#e6653341", + "debugToolBar.background": "#052629", + "debugExceptionWidget.background": "#052629", + "debugExceptionWidget.border": "#16a3b6", + "extensionButton.prominentBackground": "#099099", + "extensionButton.prominentForeground": "#e5f5f5", + "extensionButton.prominentHoverBackground": "#0cc", + "focusBorder": "#083d44", + "foreground": "#b2cacd", + "panel.background": "#041d20", + "panel.border": "#169fb1", + "panelTitle.activeBorder": "#169fb1", + "panelTitle.activeForeground": "#40d4e7", + "panelTitle.inactiveForeground": "#87a7ab", + "peekView.border": "#169fb1", + "peekViewEditor.background": "#002124", + "peekViewEditor.matchHighlightBackground": "#00718079", + "peekViewEditor.matchHighlightBorder": "#007180cc", + "peekViewEditorGutter.background": "#002124", + "peekViewResult.background": "#052629", + "peekViewResult.fileForeground": "#e4b781", + "peekViewResult.lineForeground": "#87a7ab", + "peekViewResult.matchHighlightBackground": "#083d44", + "peekViewResult.selectionBackground": "#083d44", + "peekViewResult.selectionForeground": "#87a7ab", + "peekViewTitle.background": "#052629", + "peekViewTitleDescription.foreground": "#87a7ab", + "peekViewTitleLabel.foreground": "#e4b781", + "progressBar.background": "#40d4e7", + "scrollbar.shadow": "#00000044", + "scrollbarSlider.activeBackground": "#169fb1ad", + "scrollbarSlider.background": "#6a90955b", + "scrollbarSlider.hoverBackground": "#169fb162", + "gitDecoration.addedResourceForeground": "#16b673", + "gitDecoration.modifiedResourceForeground": "#49e9a6", + "gitDecoration.deletedResourceForeground": "#e34e1c", + "gitDecoration.untrackedResourceForeground": "#40d4e7", + "gitDecoration.ignoredResourceForeground": "#647e82", + "gitDecoration.conflictingResourceForeground": "#e4b781", + "pickerGroup.border": "#0e6671", + "pickerGroup.foreground": "#169fb1", + "list.activeSelectionBackground": "#0e6671", + "list.activeSelectionForeground": "#ebfdff", + "list.dropBackground": "#00404d", + "list.focusBackground": "#00404d", + "list.focusForeground": "#ebfdff", + "list.highlightForeground": "#40d4e7", + "list.hoverBackground": "#0b515b", + "list.hoverForeground": "#ebfdff", + "list.inactiveFocusBackground": "#062d32", + "list.inactiveSelectionBackground": "#07353b", + "list.inactiveSelectionForeground": "#b2cacd", + "list.errorForeground": "#e34e1c", + "list.warningForeground": "#ffa487", + "listFilterWidget.background": "#00404d", + "listFilterWidget.outline": "#49e9a6", + "listFilterWidget.noMatchesOutline": "#e34e1c", + "tree.indentGuidesStroke": "#3e6f74", + "settings.headerForeground": "#b2cacd", + "settings.modifiedItemIndicator": "#15ac31", + "settings.dropdownListBorder": "#0e657188", + "settings.dropdownBackground": "#083d44", + "settings.dropdownForeground": "#0cc", + "settings.dropdownBorder": "#083d44", + "settings.checkboxBackground": "#083d44", + "settings.checkboxForeground": "#0cc", + "settings.checkboxBorder": "#083d44", + "settings.textInputBackground": "#083d44", + "settings.textInputForeground": "#0cc", + "settings.textInputBorder": "#083d44", + "settings.numberInputBackground": "#052629", + "settings.numberInputForeground": "#7060eb", + "settings.numberInputBorder": "#052629", + "breadcrumb.foreground": "#87a7ab", + "breadcrumb.background": "#062e32", + "breadcrumb.focusForeground": "#40d4e7", + "breadcrumb.activeSelectionForeground": "#ebfdff", + "breadcrumbPicker.background": "#083d44", + "titleBar.activeBackground": "#052629", + "titleBar.activeForeground": "#b2cacd", + "titleBar.inactiveBackground": "#052629", + "titleBar.inactiveForeground": "#87a7ab", + "menu.background": "#083d44", + "menu.foreground": "#87a7ab", + "menu.selectionBackground": "#0b515b", + "menu.selectionForeground": "#40d4e7", + "menu.selectionBorder": "#0b515b", + "menu.separatorBackground": "#40d4e7", + "menubar.selectionBackground": "#0b515b", + "menubar.selectionForeground": "#40d4e7", + "menubar.selectionBorder": "#0b515b", + "editor.snippetTabstopHighlightBackground": "#052629", + "editor.snippetTabstopHighlightBorder": "#062f32", + "editor.snippetFinalTabstopHighlightBackground": "#052629", + "editor.snippetFinalTabstopHighlightBorder": "#062f32", + "minimap.findMatchHighlight": "#49d6e9ee", + "minimap.errorHighlight": "#e34e1cee", + "minimap.warningHighlight": "#e69533ee", + "minimapGutter.addedBackground": "#16b673", + "minimapGutter.modifiedBackground": "#49e9a6", + "minimapGutter.deletedBackground": "#e34e1c", + "minimap.background": "#062e3299" + }, + "tokenColors": [ + { + "name": "COMMENT", + "scope": [ + "comment", + "punctuation.definition.comment", + "punctuation.definition.tag", + "comment.block.documentation punctuation.definition.bracket", + "source.ocaml comment constant.regexp meta.separator", + "markup.other.anchor support.constant", + "markup.fenced_code", + "markup.fenced_code punctuation.definition", + "punctuation.definition.heading", + "punctuation.definition.bold.markdown", + "punctuation.definition.italic.markdown", + "punctuation.definition.strikethrough.markdown" + ], + "settings": { + "foreground": "#5b858b" + } + }, + { + "name": "TEXT", + "scope": [ + "constant.character", + "constant.escape", + "text.html.markdown", + "punctuation.definition.list_item", + "keyword.begin.tag.ejs", + "constant.name.attribute.tag.pug", + "source.clojure meta.symbol", + "constant.other.description.jsdoc", + "keyword.other.array.phpdoc.php", + "keyword.operator.other.powershell", + "meta.link.inline punctuation.definition.string", + "source.sql", + "source meta.brace", + "source punctuation", + "text.html punctuation", + "markup meta punctuation.definition", + "meta.bracket.julia", + "meta.array.julia", + "entity.name.footnote", + "source.ocaml punctuation.definition.tag", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "entity.other.attribute-name strong", + "binding.fsharp keyword.symbol.fsharp", + "entity.name.record.field.elm", + "entity.name.record.field.accessor.elm", + "storage.modifier.array.bracket", + "source.css entity.other", + "meta.attribute-selector punctuation.definition.entity", + "markup.other.anchor string", + "punctuation.separator", + "punctuation.section", + "punctuation.terminator" + ], + "settings": { + "foreground": "#b2cacd" + } + }, + { + "name": "KEYWORD", + "scope": [ + "keyword", + "keyword.control", + "keyword.other.template", + "keyword.other.substitution", + "storage.modifier", + "meta.tag.sgml", + "punctuation.accessor", + "constant.other.color", + "entity.name.section", + "markup.heading", + "markup.heading punctuation.definition", + "entity.other.attribute-name.pseudo-class", + "entity.other.attribute-name.pseudo-element", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "storage.type.function.pug", + "text.pug storage.type", + "text.pug meta.tag.other", + "source.clojure storage.control", + "meta.expression.clojure", + "punctuation.separator.slice.python", + "punctuation.separator.question-mark.cs", + "punctuation.definition.parameters.varargs", + "source.go keyword.operator", + "punctuation.separator.pointer-access", + "punctuation.separator.other.ruby", + "keyword.package", + "keyword.import", + "punctuation.definition.keyword", + "punctuation.separator.hash.cs", + "entity.other.attribute-name.pseudo-class.css punctuation.definition.entity.css", + "entity.other.attribute-name.pseudo-element.css punctuation.definition.entity.css", + "source.kotlin storage.type.import", + "source.kotlin storage.type.package", + "constant.string.documentation.powershell", + "punctuation.section.directive", + "storage.type.rust", + "punctuation.definition.attribute", + "punctuation.definition.preprocessor", + "punctuation.separator.namespace", + "punctuation.separator.method", + "keyword.control punctuation.definition.function", + "source.ocaml variable.interpolation string", + "source.reason variable.interpolation", + "punctuation.definition.directive", + "storage.type.modifier", + "keyword.other.class.fileds", + "source.toml entity.other.attribute-name", + "source.css entity.name.tag.custom", + "sharing.modifier", + "keyword.control.class.ruby", + "keyword.control.def.ruby" + ], + "settings": { + "foreground": "#df769b" + } + }, + { + "name": "VARIABLE", + "scope": [ + "variable", + "variable.object", + "variable.other", + "variable.parameter", + "support", + "entity.name.module", + "variable.import.parameter", + "variable.other.class", + "meta.toc-list.id.html", + "source.json meta.structure.dictionary.json support.type.property-name.json", + "meta.var.clojure", + "entity.name.variable", + "source.java meta.class.body.java", + "entity.name.package.go", + "source.c", + "source.cpp", + "source.go", + "source.python", + "meta.function-call.arguments.python", + "source.ruby", + "source.coffee.embedded.source", + "source.coffee", + "storage.modifier.import", + "storage.modifier.package", + "storage.type.annotation", + "punctuation.definition.annotation", + "source.groovy.embedded.source", + "punctuation.definition.variable", + "source.powershell", + "string.quoted.interpolated.vala constant.character.escape.vala", + "source.apacheconf", + "source.objc", + "source.crystal", + "string.quoted.double.kotlin entity.string.template.element.kotlin", + "entity.name.package.kotlin", + "meta.template.expression.kotlin", + "parameter.variable.function", + "variable.other.constant.elixir", + "source.elixir.embedded.source", + "source.sql.embedded", + "punctuation.definition.placeholder", + "source.swift", + "source.julia", + "source.shell", + "variable.other.normal punctuation.definition.variable.shell", + "source.reason variable.language", + "source.reason variable.language string.other.link", + "source.elm meta.value", + "source.elm meta.declaration.module", + "meta.embedded.block variable punctuation.definition.variable.php", + "string.quoted.double.class.other", + "source.toml keyword", + "support.type.nim", + "source.tf meta.template.expression", + "source.scala entity.name.import", + "markup.code", + "markup.fenced_code.block" + ], + "settings": { + "foreground": "#e4b781" + } + }, + { + "name": "ANNOTATION", + "scope": [ + "support.variable.property", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "entity.other.attribute-name.id", + "entity.other.attribute-name.id punctuation.definition.entity", + "entity.name.type.annotation.kotlin", + "support.type.primitive", + "meta.type.parameters entity.name.type", + "meta.type.annotation entity.name.type", + "punctuation.definition.typeparameters", + "source.python support.type.python", + "comment.block.documentation.phpdoc.php keyword.other.type.php", + "storage.type.php", + "keyword.type", + "storage.type.cs", + "storage.type.c", + "storage.type.objc", + "punctuation.definition.storage.type.objc", + "markup punctuation.definition", + "storage.type.powershell", + "comment.block.documentation entity.name.type", + "source.java storage.type", + "storage.type.primitive", + "source.groovy storage.type", + "storage.type.r", + "source.haskell storage.type", + "punctuation.separator.clause-head-body", + "source.go storage.type", + "storage.type.core.rust", + "storage.class.std.rust", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "support.type.vb", + "entity.name.type.kotlin", + "support.type.julia", + "constant.other.reference", + "source.graphql support.type", + "source.reason support.type string", + "entity.name.type.fsharp", + "source.elm storage.type", + "storage.type.user-defined", + "storage.type.built-in", + "support.type.builtin", + "source.swift support.type", + "support.class.crystal", + "storage.type.integral", + "source.cpp storage.type.cpp", + "source.vala storage.type", + "source.hlsl storage.type.basic", + "source.hlsl support.type.other", + "source.apex storage.type", + "source.nim storage.type", + "source.cpp entity.name.type", + "support.class.builtin", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "markup.raw.monospace", + "markup.mark", + "entity.name.type.primitive", + "entity.name.type.numeric" + ], + "settings": { + "foreground": "#d67e5c" + } + }, + { + "name": "CONSTANT", + "scope": [ + "constant", + "variable.other.constant", + "support.constant", + "punctuation.definition.entity", + "constant.character.entity", + "support.variable.magic", + "markup.quote", + "entity.name.type.type-parameter.cs", + "punctuation.bracket.angle", + "entity.name.function.preprocessor.c", + "storage.type.scala", + "entity.helper.apacheconf", + "variable.language.crystal", + "punctuation.definition.constant", + "support.constant punctuation.definition.variable", + "constant.character.math", + "support.class.math", + "source.graphql constant.character", + "source.reason constant.language.list", + "source.cpp variable.other.enummember", + "support.variable.class.hideshow", + "entity.other.attribute-name.class", + "meta.attribute.id entity.other.attribute-name", + "text.html entity.other.attribute-name", + "meta.tag.attributes entity.other.attribute-name", + "text.xml entity.other.attribute-name", + "source.cs entity.other.attribute-name", + "constant.character.format.placeholder", + "constant.other.placeholder", + "source.vue entity.other.attribute-name", + "entity.other.attribute-name.mjml", + "source.vue meta.directive punctuation.separator.key-value", + "meta.definition.attribute-entry punctuation.separator" + ], + "settings": { + "foreground": "#d5971a" + } + }, + { + "name": "TAG", + "scope": [ + "variable.language", + "variable.parameter.function.language.special", + "punctuation.definition.italic", + "punctuation.definition.bold", + "entity.name.tag", + "variable.language punctuation.definition.variable", + "keyword.control.clojure", + "support.type.exception.python", + "keyword.other.this.cs", + "keyword.other.base.cs", + "keyword.other.var.cs", + "storage.modifier.super", + "source.go keyword", + "keyword.function.go", + "meta.separator", + "keyword.other.fn.rust", + "storage.modifier.static.rust", + "source.r meta.function.r keyword.control.r", + "storage.type.def", + "meta.class.identifier storage.modifier", + "source.scala keyword.declaration", + "storage.type", + "comment.block.documentation punctuation.definition.block.tag", + "comment.block.documentation punctuation.definition.inline.tag", + "entity.tag.apacheconf", + "keyword.other.julia", + "source.julia storage.modifier", + "constant.language.empty-list.haskell", + "meta.function.powershell storage.type.powershell", + "keyword.control.fun", + "punctuation.terminator.function", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "keyword.control.class", + "keyword.control.def", + "source.ocaml keyword markup.underline", + "source.ocaml storage.type markup.underline", + "binding.fsharp keyword", + "function.anonymous keyword", + "function.anonymous keyword.symbol.fsharp", + "meta.embedded.block variable.language punctuation.definition.variable.php", + "keyword.declaration.dart", + "source.wsd keyword.other.class", + "source.wsd keyword.other.linebegin", + "keyword.other.skinparam.keyword", + "keyword.other.nim", + "markup.deleted.diff", + "source.tf support.class.variable", + "meta.function.lua keyword.control.lua", + "markup.block entity.name.tag", + "markup.meta.attribute-list", + "source.zig keyword.default", + "source.zig keyword.structure" + ], + "settings": { + "foreground": "#e66533" + } + }, + { + "name": "STRING", + "scope": [ + "string", + "punctuation.definition.string", + "source.css support.constant", + "entity.name.import.go", + "markup.raw.texttt", + "markup.inserted.diff", + "source.scala punctuation.definition.character", + "constant.character.literal.scala", + "source.tf entity.name" + ], + "settings": { + "foreground": "#49e9a6" + } + }, + { + "name": "STRINGINTERPOLATED", + "scope": [ + "string.template", + "punctuation.definition.string.template", + "string.interpolated.python string.quoted.single.python", + "string.quoted.double.heredoc", + "string.quoted.interpolated.vala", + "string.quoted.interpolated.vala punctuation.definition.string", + "string.regexp.apacheconf", + "markup.inline.raw.string", + "markup.inline.raw punctuation.definition.raw", + "string.quoted.double.interpolated.crystal", + "string.quoted.double.interpolated.crystal punctuation.definition.string", + "text.tex markup.raw" + ], + "settings": { + "foreground": "#16b673" + } + }, + { + "name": "NUMBER", + "scope": [ + "constant.numeric", + "constant.language", + "punctuation.separator.decimal.period.php", + "keyword.operator.null-conditional.cs", + "punctuation.separator.question-mark.cs", + "constant.integer.apacheconf", + "keyword.operator.nullable-type", + "constant.language punctuation.definition.variable", + "constant.others.fsharp", + "keyword.other.unit", + "string.quoted.double.skinparam.value", + "source.toml constant", + "source.zig keyword.constant.bool", + "source.zig keyword.constant.default" + ], + "settings": { + "foreground": "#7060eb" + } + }, + { + "name": "FUNCTION", + "scope": [ + "variable.function", + "support.type.property-name", + "entity.name.function", + "string.other.link", + "markup.link", + "support.type.vendored", + "support.other.variable", + "meta.function-call.generic.python", + "meta.method-call.groovy meta.method.groovy", + "meta.class.body.groovy meta.method.body.java storage.type.groovy", + "punctuation.definition.decorator", + "support.function.any-method", + "text.tex support.function", + "text.tex punctuation.definition.function", + "entity.name.section.fsharp entity.name.section.fsharp", + "support.variable.class.function", + "keyword.control.cucumber.table", + "punctuation.decorator", + "source.tf support.class" + ], + "settings": { + "foreground": "#16a3b6" + } + }, + { + "name": "SUPPORT", + "scope": [ + "entity.name", + "entity.other", + "support.orther.namespace.use.php", + "meta.use.php", + "support.other.namespace.php", + "support.type", + "support.class", + "punctuation.definition.parameters", + "support.function", + "support.function.construct", + "markup.changed.git_gutter", + "markup.underline.link", + "markup.underline.link.image", + "markup.underline", + "meta.symbol.namespace.clojure", + "entity.mime-type.apacheconf", + "keyword.operator.function.infix", + "entity.name.function.infix", + "entity.name.function.call.kotlin", + "text.tex support.function.verb", + "text.tex support.function.texttt", + "source.reason constant.language.unit", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "constant.language.unit.fsharp", + "source.wsd support.class.preprocessings", + "keyword.language.gherkin.feature.scenario", + "source.nim keyword.other.common.function", + "entity.name.type.namespace", + "entity.name.scope-resolution.function.call" + ], + "settings": { + "foreground": "#49d6e9" + } + }, + { + "name": "MISC", + "scope": [ + "source.js constant.other.object.key.js string.unquoted.label.js", + "source.js punctuation.section.embedded", + "punctuation.definition.template-expression", + "support.class", + "storage.type.string.python", + "string.interpolated.pug", + "support.constant.handlebars", + "source.clojure punctuation.section.set", + "source.clojure punctuation.section.metadata", + "entity.global.clojure", + "source.python meta.function-call.python support.type.python", + "entity.other.inherited-class.python", + "punctuation.definition.interpolation", + "punctuation.section.embedded.begin.ruby", + "punctuation.section.embedded.end.ruby source.ruby", + "support.constant.math", + "entity.namespace.r", + "meta.method-call.groovy storage.type.groovy", + "source.scala entity.name.class.declaration", + "constant.character.escape", + "support.function.macro.julia", + "string.replacement.apacheconf", + "storage.modifier.using.vala", + "constant.other.haskell", + "source.objc entity.name.tag", + "string.quoted.other.literal.upper.crystal punctuation.definition.string", + "meta.embedded.line.crystal punctuation.section.embedded", + "meta.embedded.line.crystal punctuation.section.embedded source.crystal", + "punctuation.section.embedded", + "punctuation.section.tag", + "punctuation.section.embedded source.swift", + "variable.other.bracket punctuation.definition.variable", + "string.interpolated.dollar punctuation.definition.string", + "constant.character.escape punctuation.definition.keyword", + "source.ocaml entity.name.class constant.numeric", + "source.reason entity.name.class", + "keyword.format.specifier.fsharp", + "support.module.elm", + "meta.embedded.block.php punctuation.definition.variable.php", + "source.vala storage.type", + "support.variable.class.group", + "entity.name.type.class", + "source.tf meta.keyword.list", + "source.tf meta.keyword.map", + "entity.name.class.lua", + "markup.substitution" + ], + "settings": { + "foreground": "#49ace9" + } + }, + { + "name": "INVALID", + "scope": ["invalid", "invalid.illegal"], + "settings": { + "foreground": "#e3541c" + } + }, + { + "name": "ITALIC", + "scope": [ + "comment", + "storage.modifier", + "punctuation.definition.comment", + "entity.other", + "variable.language", + "support.type.vendored", + "support.constant.vendored", + "markup.quote", + "markup.italic", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "keyword.control.clojure", + "source.clojure meta.symbol.dynamic", + "keyword.other.this.cs", + "keyword.other.base.cs", + "variable.other.member.c", + "support.type.core.rust", + "variable.other.object.property", + "variable.other.property", + "source.r meta.function.r keyword.control.r", + "comment.line.roxygen.r keyword", + "comment.line.roxygen.r variable.parameter.r", + "keyword.control.inheritance.coffee", + "comment.block.documentation.phpdoc.php keyword", + "keyword.other.array.phpdoc.php", + "storage.type.modifier", + "comment.block.javadoc.java keyword", + "comment.block.javadoc.java variable.parameter.java", + "keyword.operator.documentation.powershell", + "storage.type.scala", + "variable.parameter.function.language.special", + "comment.block.documentation.scala keyword", + "comment.block.documentation.scala variable.parameter", + "support.function.builtin.go", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.ruby", + "source.vala storage.type.generic", + "constant.other.table-name", + "constant.other.placeholder", + "variable.other.field", + "entity.alias.import.go", + "source.swift keyword.other.declaration-specifier", + "support.variable.swift", + "keyword.other.capture-specifier", + "text.tex support.function.emph", + "constant.other.math", + "support.function.textit", + "entity.name.footnote", + "entity.name.function.directive.graphql", + "source.graphql support.type.enum", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "abstract.definition.fsharp keyword", + "abstract.definition.fsharp entity", + "function.anonymous keyword", + "entity.name.record.field.accessor.elm", + "support.type.primitive", + "support.type.builtin", + "keyword.type.cs", + "storage.type.built-in", + "storage.type.primitive", + "source.python support.type.python", + "storage.type.core.rust", + "source.swift support.type", + "source.go storage.type", + "storage.type.php", + "storage.type.function.kotlin", + "entity.name.type.kotlin", + "support.type.julia", + "variable.other.member", + "keyword.other.import", + "keyword.package", + "keyword.import", + "source.wsd keyword.control.diagram", + "keyword.language.gherkin.feature.step", + "source.hlsl storage.type.basic", + "source.apex keyword.type", + "sharing.modifier", + "source.nim storage.type.concrete", + "meta.preprocessor.pragma.nim", + "storage.type.integral", + "entity.name.scope-resolution.function.call", + "support.class.builtin", + "comment.block.documentation storage.type.class", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "meta.import keyword.control", + "keyword.control.export", + "source.vue meta.directive punctuation.separator.key-value", + "keyword.local.lua", + "markup.mark.constrained markup.mark", + "markup.block.open", + "entity.name.type.primitive", + "entity.name.type.numeric", + "source.zig keyword.type", + "source.zig keyword.storage", + "source.zig keyword.structure" + ], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "BOLD", + "scope": [ + "keyword", + "keyword.control", + "keyword.operator", + "keyword.other.template", + "keyword.other.substitution", + "storage.type.function.arrow", + "constant.other.color", + "punctuation.accessor", + "entity.name.section", + "markdown.heading", + "markup.inline.raw punctuation.definition.raw", + "markup.heading", + "storage.type.function.pug", + "storage.type.function.python", + "storage.type.annotation", + "punctuation.bracket.angle", + "keyword.other.new", + "storage.type.generic.wildcard", + "source.go keyword.operator", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "variable.parameter", + "support.function.builtin.rust", + "storage.type.function.coffee", + "entity.name.variable.parameter", + "punctuation.separator.hash.cs", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "meta.function.parameters variable.other", + "entity.name.type.annotation.kotlin", + "storage.type.objc", + "parameter.variable.function", + "markup punctuation.definition", + "punctuation.section.directive", + "punctuation.definition.preprocessor", + "source.ruby punctuation.definition.variable", + "support.function.textbf", + "source.graphql support.type.builtin", + "source.ocaml variable.interpolation string", + "entity.name.function.definition.special.constructor", + "entity.name.function.definition.special.member.destructor.", + "meta.function.parameters variable punctuation.definition.variable.php", + "source.wsd keyword.other.activity", + "keyword.control.class.ruby", + "keyword.control.def.ruby", + "keyword.function.go", + "keyword.other.fn.rust", + "markup.other.anchor", + "markup.list.bullet", + "markup.list punctuation.definition", + "keyword.control.default", + "punctuation.section", + "punctuation.separator", + "punctuation.terminator", + "markup.bold.markdown", + "source.zig storage.type.function" + ], + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "BOLD-ITALIC", + "scope": [ + "markup.quote markup.bold", + "text.html punctuation.section.embedded", + "variable.other.c", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "source.rust meta.attribute.rust", + "meta.attribute.id entity.other.attribute-name", + "source.ocaml punctuation.definition.tag emphasis", + "source.tf entity.name", + "markup.quote punctuation.definition", + "markup.fenced_code punctuation.definition", + "fenced_code.block.language" + ], + "settings": { + "fontStyle": "bold italic" + } + }, + { + "name": "NORMAL", + "scope": [ + "keyword.begin.tag.ejs", + "source.python meta.function.decorator.python support.type.python", + "source.cs keyword.other", + "keyword.other.var.cs", + "source.go keyword", + "storage.modifier.static.rust", + "variable.parameter.r", + "variable.parameter.handlebars", + "storage.modifier.import", + "storage.modifier.package", + "meta.class.identifier storage.modifier", + "keyword.operator.other.powershell", + "source.css variable.parameter", + "string.interpolated variable.parameter", + "source.apacheconf keyword", + "keyword.other.julia", + "storage.modifier.using.vala", + "source.objc keyword.other.property.attribute", + "source.sql keyword.other", + "keyword.other.using.vala", + "keyword.operator.function.infix", + "keyword.control.directive", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "entity.name.function.swift", + "keyword.control.class", + "keyword.control.def", + "punctuation.definition.variable", + "entity.name.section.latex", + "source.ocaml keyword markup.underline", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "keyword.format.specifier.fsharp", + "entity.name.section.fsharp", + "binding.fsharp keyword", + "binding.fsharp keyword.symbol", + "record.fsharp keyword", + "keyword.symbol.fsharp", + "entity.name.section.fsharp keyword", + "namespace.open.fsharp keyword", + "namespace.open.fsharp entity", + "storage.type", + "source.cpp keyword.other", + "source.c keyword.other", + "keyword.other.unit", + "storage.modifier.array.bracket", + "meta.import.haskell keyword", + "keyword.declaration.dart", + "source.wsd keyword.other", + "keyword.other.skinparam", + "source.css keyword.control", + "source.css keyword.operator", + "keyword.language.gherkin.feature.scenario", + "keyword.control.cucumber.table", + "source.toml entity.other.attribute-name", + "source.toml keyword", + "keyword.other.nim", + "source.nim keyword.other.common.function", + "source.nim keyword.other", + "source.scala keyword.declaration", + "source.scala entity.name.class.declaration", + "keyword.control.lua", + "source.css punctuation.section", + "punctuation.section.embedded", + "source.c punctuation.section", + "source.cpp punctuation.section", + "source.java punctuation.section", + "source.php punctuation.section", + "source.powershell punctuation.section", + "source.r punctuation.section", + "source.ruby punctuation.section", + "source.swift punctuation.section", + "source.objc punctuation.section", + "source.zig keyword.constant.bool", + "source.zig keyword.default", + "source.zig keyword.statement", + "source.zig keyword.constant.default" + ], + "settings": { + "fontStyle": "" + } + }, + { + "name": "STRIKETHROUGH", + "scope": ["markup.strikethrough"], + "settings": { + "fontStyle": "strikethrough" + } + } + ] +} diff --git a/assets/themes/src/vscode/noctis/uva.json b/assets/themes/src/vscode/noctis/uva.json new file mode 100644 index 0000000000..6ccbff372b --- /dev/null +++ b/assets/themes/src/vscode/noctis/uva.json @@ -0,0 +1,1112 @@ +{ + "name": "Noctis Uva", + "type": "dark", + "colors": { + "selection.background": "#7a70c277", + "descriptionForeground": "#7a70c2", + "errorForeground": "#e34e1c", + "widget.shadow": "#00000044", + "editor.background": "#292640", + "editor.foreground": "#c5c2d6", + "editorLineNumber.foreground": "#5c5973", + "editorLineNumber.activeForeground": "#7a70c2", + "editorCursor.foreground": "#bbb3ff", + "badge.background": "#998ef1", + "badge.foreground": "#171523", + "activityBar.background": "#292640", + "activityBar.dropBackground": "#7a70c265", + "activityBar.border": "#171523", + "activityBar.foreground": "#6e67a8", + "activityBar.inactiveForeground": "#6e67a877", + "activityBarBadge.background": "#998ef1", + "activityBarBadge.foreground": "#171523", + "activityBar.activeBackground": "#998ef133", + "activityBar.activeBorder": "#998ef1", + "sideBar.background": "#232136", + "sideBar.dropBackground": "#232136", + "sideBar.border": "#171523", + "sideBar.foreground": "#a9a5c0", + "sideBarSectionHeader.background": "#2f2c49", + "sideBarSectionHeader.foreground": "#a9a5c0", + "sideBarTitle.foreground": "#a9a5c0", + "sideBarSectionHeader.border": "#171523", + "statusBar.foreground": "#6e67a8", + "statusBar.background": "#292640", + "statusBar.border": "#171523", + "statusBar.debuggingBackground": "#292640", + "statusBar.debuggingForeground": "#ff80ac50", + "statusBar.debuggingBorder": "#ff80acaf", + "statusBar.noFolderForeground": "#8787ab", + "statusBar.noFolderBackground": "#292640", + "statusBar.noFolderBorder": "#292640", + "statusBarItem.activeBackground": "#564d9977", + "statusBarItem.hoverBackground": "#363253", + "statusBarItem.prominentBackground": "#1f1d30", + "statusBarItem.prominentHoverBackground": "#1b1641", + "button.background": "#007f99", + "button.foreground": "#edebff", + "button.hoverBackground": "#0ac", + "dropdown.background": "#2f2c49", + "dropdown.border": "#2f2c49", + "dropdown.foreground": "#7a70c2", + "editorMarkerNavigation.background": "#3a3a5e29", + "editorMarkerNavigationError.background": "#e34e1c", + "editorMarkerNavigationWarning.background": "#e69533", + "editorError.border": "#292640", + "editorError.foreground": "#e34e1c", + "editorWarning.border": "#292640", + "editorWarning.foreground": "#e69533", + "editorInfo.border": "#292640", + "editorInfo.foreground": "#998ef1", + "editorHint.border": "#49e9a600", + "editorHint.foreground": "#49e9a6", + "editorGroup.emptyBackground": "#5c597333", + "editorGroup.border": "#171523", + "editorGroup.dropBackground": "#5c597333", + "editorGroupHeader.noTabsBackground": "#2f2c49", + "editorGroupHeader.tabsBackground": "#2f2c49", + "editorGroupHeader.tabsBorder": "#2f2c49", + "tab.activeBackground": "#292640", + "tab.unfocusedActiveBackground": "#2d2b3b", + "tab.activeForeground": "#998ef1", + "tab.border": "#171523", + "tab.inactiveBackground": "#2f2c49", + "tab.inactiveForeground": "#a9a5c0", + "tab.unfocusedActiveForeground": "#a9a5c0", + "tab.unfocusedInactiveForeground": "#a9a5c0", + "tab.activeBorderTop": "#998ef1", + "tab.activeModifiedBorder": "#49e9a6", + "tab.activeBorder": "#292640", + "tab.unfocusedActiveBorder": "#292640", + "tab.unfocusedHoverBackground": "#998ef121", + "textBlockQuote.background": "#292640", + "textBlockQuote.border": "#6e67a8", + "textCodeBlock.background": "#292640", + "textLink.activeForeground": "#998ef1", + "textLink.foreground": "#998ef1", + "textPreformat.foreground": "#ffc180", + "textSeparator.foreground": "#292640", + "walkThrough.embeddedEditorBackground": "#292640", + "welcomePage.buttonBackground": "#1f1d30", + "welcomePage.buttonHoverBackground": "#2f2c49", + "input.background": "#1f1d30", + "input.border": "#27274e", + "input.foreground": "#CDD3DE", + "input.placeholderForeground": "#8787ab", + "inputOption.activeBorder": "#6e67a8", + "inputValidation.errorForeground": "#ff4000", + "inputValidation.errorBackground": "#501502ee", + "inputValidation.errorBorder": "#691c02", + "inputValidation.infoForeground": "#40d4e7", + "inputValidation.infoBackground": "#0f6e7bee", + "inputValidation.infoBorder": "#148f9f", + "inputValidation.warningForeground": "#e69533", + "inputValidation.warningBackground": "#82694acc", + "inputValidation.warningBorder": "#a88457", + "editorWidget.background": "#2f2c49", + "editorWidget.border": "#171523", + "editorHoverWidget.background": "#322d52", + "editorHoverWidget.border": "#171523", + "editorSuggestWidget.background": "#322d52", + "editorSuggestWidget.border": "#171523", + "editorSuggestWidget.foreground": "#a9a5c0", + "editorSuggestWidget.highlightForeground": "#998ef1", + "editorSuggestWidget.selectedBackground": "#453f73", + "editorGutter.background": "#292640", + "editorGutter.addedBackground": "#8ce99a", + "editorGutter.deletedBackground": "#e34e1c", + "editorGutter.modifiedBackground": "#ffc180", + "editor.selectionBackground": "#6e67a855", + "editor.selectionHighlightBackground": "#49ace933", + "editor.inactiveSelectionBackground": "#6e67a833", + "editor.wordHighlightStrongBackground": "#cc990033", + "editor.wordHighlightBackground": "#e4b78133", + "editor.findMatchBackground": "#40bf6a11", + "editor.findMatchHighlightBackground": "#0e667179", + "editor.findRangeHighlightBackground": "#49e9a622", + "editor.hoverHighlightBackground": "#6e67a83f", + "editor.lineHighlightBackground": "#35305aee", + "editor.lineHighlightBorder": "#35305a", + "editor.rangeHighlightBackground": "#49d6e922", + "editorLink.activeForeground": "#14a5ff", + "editorWhitespace.foreground": "#ffffff21", + "editorIndentGuide.background": "#383450", + "editorIndentGuide.activeBackground": "#595289", + "editorBracketMatch.background": "#6e67a822", + "editorBracketMatch.border": "#6e67a8", + "editorRuler.foreground": "#473856", + "editorCodeLens.foreground": "#776284", + "terminal.ansiBlack": "#302f3d", + "terminal.ansiRed": "#e66533", + "terminal.ansiGreen": "#49e9a6", + "terminal.ansiYellow": "#e4b781", + "terminal.ansiBlue": "#49ace9", + "terminal.ansiMagenta": "#df769b", + "terminal.ansiCyan": "#49d6e9", + "terminal.ansiWhite": "#b6b3cc", + "terminal.ansiBrightBlack": "#504e65", + "terminal.ansiBrightRed": "#e97749", + "terminal.ansiBrightGreen": "#60ebb1", + "terminal.ansiBrightYellow": "#e69533", + "terminal.ansiBrightBlue": "#60b6eb", + "terminal.ansiBrightMagenta": "#e798b3", + "terminal.ansiBrightCyan": "#60dbeb", + "terminal.ansiBrightWhite": "#c5c2d6", + "terminal.background": "#1f1d30", + "terminal.foreground": "#c5c2d6", + "terminalCursor.background": "#1f1d30", + "terminalCursor.foreground": "#c5c2d6", + "merge.border": "#29264000", + "merge.currentContentBackground": "#85f1ff22", + "merge.currentHeaderBackground": "#85f1ff44", + "merge.incomingContentBackground": "#9d92f222", + "merge.incomingHeaderBackground": "#9d92f244", + "merge.commonContentBackground": "#ffc18022", + "merge.commonHeaderBackground": "#ffc18044", + "editorOverviewRuler.currentContentForeground": "#85f1ff44", + "editorOverviewRuler.incomingContentForeground": "#9d92f244", + "editorOverviewRuler.commonContentForeground": "#ffc18044", + "editorOverviewRuler.border": "#292640", + "notificationCenter.border": "#2f2c49", + "notificationCenterHeader.foreground": "#8787ab", + "notificationCenterHeader.background": "#2f2c49", + "notificationToast.border": "#2f2c49", + "notifications.foreground": "#CDD3DE", + "notifications.background": "#2f2c49", + "notifications.border": "#2f2c49", + "notificationLink.foreground": "#8787ab", + "diffEditor.insertedTextBackground": "#16b67327", + "diffEditor.removedTextBackground": "#e6653341", + "debugToolBar.background": "#292640", + "debugExceptionWidget.background": "#292640", + "debugExceptionWidget.border": "#6e67a8", + "extensionButton.prominentBackground": "#008c99", + "extensionButton.prominentForeground": "#e5f5f5", + "extensionButton.prominentHoverBackground": "#00bbcc", + "focusBorder": "#2f2c49", + "foreground": "#c5c2d6", + "panel.background": "#1f1d30", + "panel.border": "#6e67a8", + "panelTitle.activeBorder": "#6e67a8", + "panelTitle.activeForeground": "#998ef1", + "panelTitle.inactiveForeground": "#716c93", + "peekView.border": "#6e67a8", + "peekViewEditor.background": "#201d3a", + "peekViewEditor.matchHighlightBackground": "#4c448899", + "peekViewEditorGutter.background": "#201d3a", + "peekViewResult.background": "#221f3d", + "peekViewResult.fileForeground": "#ffc180", + "peekViewResult.lineForeground": "#8787ab", + "peekViewResult.matchHighlightBackground": "#343050", + "peekViewResult.selectionBackground": "#343050", + "peekViewResult.selectionForeground": "#8787ab", + "peekViewTitle.background": "#221f3d", + "peekViewTitleDescription.foreground": "#8787ab", + "peekViewTitleLabel.foreground": "#ffc180", + "progressBar.background": "#998ef1", + "scrollbar.shadow": "#00000044", + "scrollbarSlider.activeBackground": "#7060eb77", + "scrollbarSlider.background": "#7060eb33", + "scrollbarSlider.hoverBackground": "#7060eb55", + "gitDecoration.addedResourceForeground": "#16b673", + "gitDecoration.modifiedResourceForeground": "#49e9a6", + "gitDecoration.deletedResourceForeground": "#e34e1c", + "gitDecoration.untrackedResourceForeground": "#40d4e7", + "gitDecoration.ignoredResourceForeground": "#5b788b", + "gitDecoration.conflictingResourceForeground": "#ffc180", + "pickerGroup.border": "#6e67a8", + "pickerGroup.foreground": "#998ef1", + "list.activeSelectionBackground": "#332e5c", + "list.activeSelectionForeground": "#edebff", + "list.dropBackground": "#202040", + "list.focusBackground": "#3a3a78", + "list.focusForeground": "#edebff", + "list.highlightForeground": "#998ef1", + "list.hoverBackground": "#383866", + "list.hoverForeground": "#edebff", + "list.inactiveFocusBackground": "#2b2843", + "list.inactiveSelectionBackground": "#2f2c49", + "list.inactiveSelectionForeground": "#c5c2d6", + "list.errorForeground": "#e34e1c", + "list.warningForeground": "#ffa857", + "listFilterWidget.background": "#202040", + "listFilterWidget.outline": "#49e9a6", + "listFilterWidget.noMatchesOutline": "#e34e1c", + "tree.indentGuidesStroke": "#5c5973", + "settings.headerForeground": "#c5c2d6", + "settings.modifiedItemIndicator": "#15ac31", + "settings.dropdownListBorder": "#49408c77", + "settings.dropdownBackground": "#2f2c49", + "settings.dropdownForeground": "#0ac", + "settings.dropdownBorder": "#2f2c49", + "settings.checkboxBackground": "#2f2c49", + "settings.checkboxForeground": "#0ac", + "settings.checkboxBorder": "#2f2c49", + "settings.textInputBackground": "#2f2c49", + "settings.textInputForeground": "#0ac", + "settings.textInputBorder": "#2f2c49", + "settings.numberInputBackground": "#1f1d30", + "settings.numberInputForeground": "#7060eb", + "settings.numberInputBorder": "#1f1d30", + "breadcrumb.foreground": "#a9a5c0", + "breadcrumb.background": "#292640", + "breadcrumb.focusForeground": "#998ef1", + "breadcrumb.activeSelectionForeground": "#edebff", + "breadcrumbPicker.background": "#2f2c49", + "titleBar.activeBackground": "#292640", + "titleBar.activeForeground": "#c5c2d6", + "titleBar.inactiveBackground": "#292640", + "titleBar.inactiveForeground": "#a9a5c0", + "menu.background": "#2f2c49", + "menu.foreground": "#a9a5c0", + "menu.selectionBackground": "#3a3a78", + "menu.selectionForeground": "#998ef1", + "menu.selectionBorder": "#3a3a78", + "menu.separatorBackground": "#998ef1", + "menubar.selectionBackground": "#3a3a78", + "menubar.selectionForeground": "#998ef1", + "menubar.selectionBorder": "#3a3a78", + "editor.snippetTabstopHighlightBackground": "#211f33", + "editor.snippetTabstopHighlightBorder": "#2b2843", + "editor.snippetFinalTabstopHighlightBackground": "#211f33", + "editor.snippetFinalTabstopHighlightBorder": "#2b2843", + "minimap.findMatchHighlight": "#998ef1ee", + "minimap.errorHighlight": "#e34e1cee", + "minimap.warningHighlight": "#e69533ee", + "minimapGutter.addedBackground": "#16b673", + "minimapGutter.modifiedBackground": "#49e9a6", + "minimapGutter.deletedBackground": "#e34e1c", + "minimap.background": "#29264099" + }, + "tokenColors": [ + { + "name": "COMMENT", + "scope": [ + "comment", + "punctuation.definition.comment", + "punctuation.definition.tag", + "comment.block.documentation punctuation.definition.bracket", + "source.ocaml comment constant.regexp meta.separator", + "markup.other.anchor support.constant", + "markup.fenced_code", + "markup.fenced_code punctuation.definition", + "punctuation.definition.heading", + "punctuation.definition.bold.markdown", + "punctuation.definition.italic.markdown", + "punctuation.definition.strikethrough.markdown" + ], + "settings": { + "foreground": "#716c93" + } + }, + { + "name": "TEXT", + "scope": [ + "constant.character", + "constant.escape", + "text.html.markdown", + "punctuation.definition.list_item", + "keyword.begin.tag.ejs", + "constant.name.attribute.tag.pug", + "source.clojure meta.symbol", + "constant.other.description.jsdoc", + "keyword.other.array.phpdoc.php", + "keyword.operator.other.powershell", + "meta.link.inline punctuation.definition.string", + "source.sql", + "source meta.brace", + "source punctuation", + "text.html punctuation", + "markup meta punctuation.definition", + "meta.bracket.julia", + "meta.array.julia", + "entity.name.footnote", + "source.ocaml punctuation.definition.tag", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "entity.other.attribute-name strong", + "binding.fsharp keyword.symbol.fsharp", + "entity.name.record.field.elm", + "entity.name.record.field.accessor.elm", + "storage.modifier.array.bracket", + "source.css entity.other", + "meta.attribute-selector punctuation.definition.entity", + "markup.other.anchor string", + "punctuation.separator", + "punctuation.section", + "punctuation.terminator" + ], + "settings": { + "foreground": "#c5c2d6" + } + }, + { + "name": "KEYWORD", + "scope": [ + "keyword", + "keyword.control", + "keyword.other.template", + "keyword.other.substitution", + "storage.modifier", + "meta.tag.sgml", + "punctuation.accessor", + "constant.other.color", + "entity.name.section", + "markup.heading", + "markup.heading punctuation.definition", + "entity.other.attribute-name.pseudo-class", + "entity.other.attribute-name.pseudo-element", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "storage.type.function.pug", + "text.pug storage.type", + "text.pug meta.tag.other", + "source.clojure storage.control", + "meta.expression.clojure", + "punctuation.separator.slice.python", + "punctuation.separator.question-mark.cs", + "punctuation.definition.parameters.varargs", + "source.go keyword.operator", + "punctuation.separator.pointer-access", + "punctuation.separator.other.ruby", + "keyword.package", + "keyword.import", + "punctuation.definition.keyword", + "punctuation.separator.hash.cs", + "entity.other.attribute-name.pseudo-class.css punctuation.definition.entity.css", + "entity.other.attribute-name.pseudo-element.css punctuation.definition.entity.css", + "source.kotlin storage.type.import", + "source.kotlin storage.type.package", + "constant.string.documentation.powershell", + "punctuation.section.directive", + "storage.type.rust", + "punctuation.definition.attribute", + "punctuation.definition.preprocessor", + "punctuation.separator.namespace", + "punctuation.separator.method", + "keyword.control punctuation.definition.function", + "source.ocaml variable.interpolation string", + "source.reason variable.interpolation", + "punctuation.definition.directive", + "storage.type.modifier", + "keyword.other.class.fileds", + "source.toml entity.other.attribute-name", + "source.css entity.name.tag.custom", + "sharing.modifier", + "keyword.control.class.ruby", + "keyword.control.def.ruby" + ], + "settings": { + "foreground": "#df769b" + } + }, + { + "name": "VARIABLE", + "scope": [ + "variable", + "variable.object", + "variable.other", + "variable.parameter", + "support", + "entity.name.module", + "variable.import.parameter", + "variable.other.class", + "meta.toc-list.id.html", + "source.json meta.structure.dictionary.json support.type.property-name.json", + "meta.var.clojure", + "entity.name.variable", + "source.java meta.class.body.java", + "entity.name.package.go", + "source.c", + "source.cpp", + "source.go", + "source.python", + "meta.function-call.arguments.python", + "source.ruby", + "source.coffee.embedded.source", + "source.coffee", + "storage.modifier.import", + "storage.modifier.package", + "storage.type.annotation", + "punctuation.definition.annotation", + "source.groovy.embedded.source", + "punctuation.definition.variable", + "source.powershell", + "string.quoted.interpolated.vala constant.character.escape.vala", + "source.apacheconf", + "source.objc", + "source.crystal", + "string.quoted.double.kotlin entity.string.template.element.kotlin", + "entity.name.package.kotlin", + "meta.template.expression.kotlin", + "parameter.variable.function", + "variable.other.constant.elixir", + "source.elixir.embedded.source", + "source.sql.embedded", + "punctuation.definition.placeholder", + "source.swift", + "source.julia", + "source.shell", + "variable.other.normal punctuation.definition.variable.shell", + "source.reason variable.language", + "source.reason variable.language string.other.link", + "source.elm meta.value", + "source.elm meta.declaration.module", + "meta.embedded.block variable punctuation.definition.variable.php", + "string.quoted.double.class.other", + "source.toml keyword", + "support.type.nim", + "source.tf meta.template.expression", + "source.scala entity.name.import", + "markup.code", + "markup.fenced_code.block" + ], + "settings": { + "foreground": "#e4b781" + } + }, + { + "name": "ANNOTATION", + "scope": [ + "support.variable.property", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "entity.other.attribute-name.id", + "entity.other.attribute-name.id punctuation.definition.entity", + "entity.name.type.annotation.kotlin", + "support.type.primitive", + "meta.type.parameters entity.name.type", + "meta.type.annotation entity.name.type", + "punctuation.definition.typeparameters", + "source.python support.type.python", + "comment.block.documentation.phpdoc.php keyword.other.type.php", + "storage.type.php", + "keyword.type", + "storage.type.cs", + "storage.type.c", + "storage.type.objc", + "punctuation.definition.storage.type.objc", + "markup punctuation.definition", + "storage.type.powershell", + "comment.block.documentation entity.name.type", + "source.java storage.type", + "storage.type.primitive", + "source.groovy storage.type", + "storage.type.r", + "source.haskell storage.type", + "punctuation.separator.clause-head-body", + "source.go storage.type", + "storage.type.core.rust", + "storage.class.std.rust", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "support.type.vb", + "entity.name.type.kotlin", + "support.type.julia", + "constant.other.reference", + "source.graphql support.type", + "source.reason support.type string", + "entity.name.type.fsharp", + "source.elm storage.type", + "storage.type.user-defined", + "storage.type.built-in", + "support.type.builtin", + "source.swift support.type", + "support.class.crystal", + "storage.type.integral", + "source.cpp storage.type.cpp", + "source.vala storage.type", + "source.hlsl storage.type.basic", + "source.hlsl support.type.other", + "source.apex storage.type", + "source.nim storage.type", + "source.cpp entity.name.type", + "support.class.builtin", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "markup.raw.monospace", + "markup.mark", + "entity.name.type.primitive", + "entity.name.type.numeric" + ], + "settings": { + "foreground": "#d67e5c" + } + }, + { + "name": "CONSTANT", + "scope": [ + "constant", + "variable.other.constant", + "support.constant", + "punctuation.definition.entity", + "constant.character.entity", + "support.variable.magic", + "markup.quote", + "entity.name.type.type-parameter.cs", + "punctuation.bracket.angle", + "entity.name.function.preprocessor.c", + "storage.type.scala", + "entity.helper.apacheconf", + "variable.language.crystal", + "punctuation.definition.constant", + "support.constant punctuation.definition.variable", + "constant.character.math", + "support.class.math", + "source.graphql constant.character", + "source.reason constant.language.list", + "source.cpp variable.other.enummember", + "support.variable.class.hideshow", + "entity.other.attribute-name.class", + "meta.attribute.id entity.other.attribute-name", + "text.html entity.other.attribute-name", + "meta.tag.attributes entity.other.attribute-name", + "text.xml entity.other.attribute-name", + "source.cs entity.other.attribute-name", + "constant.character.format.placeholder", + "constant.other.placeholder", + "source.vue entity.other.attribute-name", + "entity.other.attribute-name.mjml", + "source.vue meta.directive punctuation.separator.key-value", + "meta.definition.attribute-entry punctuation.separator" + ], + "settings": { + "foreground": "#d5971a" + } + }, + { + "name": "TAG", + "scope": [ + "variable.language", + "variable.parameter.function.language.special", + "punctuation.definition.italic", + "punctuation.definition.bold", + "entity.name.tag", + "variable.language punctuation.definition.variable", + "keyword.control.clojure", + "support.type.exception.python", + "keyword.other.this.cs", + "keyword.other.base.cs", + "keyword.other.var.cs", + "storage.modifier.super", + "source.go keyword", + "keyword.function.go", + "meta.separator", + "keyword.other.fn.rust", + "storage.modifier.static.rust", + "source.r meta.function.r keyword.control.r", + "storage.type.def", + "meta.class.identifier storage.modifier", + "source.scala keyword.declaration", + "storage.type", + "comment.block.documentation punctuation.definition.block.tag", + "comment.block.documentation punctuation.definition.inline.tag", + "entity.tag.apacheconf", + "keyword.other.julia", + "source.julia storage.modifier", + "constant.language.empty-list.haskell", + "meta.function.powershell storage.type.powershell", + "keyword.control.fun", + "punctuation.terminator.function", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "keyword.control.class", + "keyword.control.def", + "source.ocaml keyword markup.underline", + "source.ocaml storage.type markup.underline", + "binding.fsharp keyword", + "function.anonymous keyword", + "function.anonymous keyword.symbol.fsharp", + "meta.embedded.block variable.language punctuation.definition.variable.php", + "keyword.declaration.dart", + "source.wsd keyword.other.class", + "source.wsd keyword.other.linebegin", + "keyword.other.skinparam.keyword", + "keyword.other.nim", + "markup.deleted.diff", + "source.tf support.class.variable", + "meta.function.lua keyword.control.lua", + "markup.block entity.name.tag", + "markup.meta.attribute-list", + "source.zig keyword.default", + "source.zig keyword.structure" + ], + "settings": { + "foreground": "#e66533" + } + }, + { + "name": "STRING", + "scope": [ + "string", + "punctuation.definition.string", + "source.css support.constant", + "entity.name.import.go", + "markup.raw.texttt", + "markup.inserted.diff", + "source.scala punctuation.definition.character", + "constant.character.literal.scala", + "source.tf entity.name" + ], + "settings": { + "foreground": "#49e9a6" + } + }, + { + "name": "STRINGINTERPOLATED", + "scope": [ + "string.template", + "punctuation.definition.string.template", + "string.interpolated.python string.quoted.single.python", + "string.quoted.double.heredoc", + "string.quoted.interpolated.vala", + "string.quoted.interpolated.vala punctuation.definition.string", + "string.regexp.apacheconf", + "markup.inline.raw.string", + "markup.inline.raw punctuation.definition.raw", + "string.quoted.double.interpolated.crystal", + "string.quoted.double.interpolated.crystal punctuation.definition.string", + "text.tex markup.raw" + ], + "settings": { + "foreground": "#16b673" + } + }, + { + "name": "NUMBER", + "scope": [ + "constant.numeric", + "constant.language", + "punctuation.separator.decimal.period.php", + "keyword.operator.null-conditional.cs", + "punctuation.separator.question-mark.cs", + "constant.integer.apacheconf", + "keyword.operator.nullable-type", + "constant.language punctuation.definition.variable", + "constant.others.fsharp", + "keyword.other.unit", + "string.quoted.double.skinparam.value", + "source.toml constant", + "source.zig keyword.constant.bool", + "source.zig keyword.constant.default" + ], + "settings": { + "foreground": "#7060eb" + } + }, + { + "name": "FUNCTION", + "scope": [ + "variable.function", + "support.type.property-name", + "entity.name.function", + "string.other.link", + "markup.link", + "support.type.vendored", + "support.other.variable", + "meta.function-call.generic.python", + "meta.method-call.groovy meta.method.groovy", + "meta.class.body.groovy meta.method.body.java storage.type.groovy", + "punctuation.definition.decorator", + "support.function.any-method", + "text.tex support.function", + "text.tex punctuation.definition.function", + "entity.name.section.fsharp entity.name.section.fsharp", + "support.variable.class.function", + "keyword.control.cucumber.table", + "punctuation.decorator", + "source.tf support.class" + ], + "settings": { + "foreground": "#16a3b6" + } + }, + { + "name": "SUPPORT", + "scope": [ + "entity.name", + "entity.other", + "support.orther.namespace.use.php", + "meta.use.php", + "support.other.namespace.php", + "support.type", + "support.class", + "punctuation.definition.parameters", + "support.function", + "support.function.construct", + "markup.changed.git_gutter", + "markup.underline.link", + "markup.underline.link.image", + "markup.underline", + "meta.symbol.namespace.clojure", + "entity.mime-type.apacheconf", + "keyword.operator.function.infix", + "entity.name.function.infix", + "entity.name.function.call.kotlin", + "text.tex support.function.verb", + "text.tex support.function.texttt", + "source.reason constant.language.unit", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "constant.language.unit.fsharp", + "source.wsd support.class.preprocessings", + "keyword.language.gherkin.feature.scenario", + "source.nim keyword.other.common.function", + "entity.name.type.namespace", + "entity.name.scope-resolution.function.call" + ], + "settings": { + "foreground": "#49d6e9" + } + }, + { + "name": "MISC", + "scope": [ + "source.js constant.other.object.key.js string.unquoted.label.js", + "source.js punctuation.section.embedded", + "punctuation.definition.template-expression", + "support.class", + "storage.type.string.python", + "string.interpolated.pug", + "support.constant.handlebars", + "source.clojure punctuation.section.set", + "source.clojure punctuation.section.metadata", + "entity.global.clojure", + "source.python meta.function-call.python support.type.python", + "entity.other.inherited-class.python", + "punctuation.definition.interpolation", + "punctuation.section.embedded.begin.ruby", + "punctuation.section.embedded.end.ruby source.ruby", + "support.constant.math", + "entity.namespace.r", + "meta.method-call.groovy storage.type.groovy", + "source.scala entity.name.class.declaration", + "constant.character.escape", + "support.function.macro.julia", + "string.replacement.apacheconf", + "storage.modifier.using.vala", + "constant.other.haskell", + "source.objc entity.name.tag", + "string.quoted.other.literal.upper.crystal punctuation.definition.string", + "meta.embedded.line.crystal punctuation.section.embedded", + "meta.embedded.line.crystal punctuation.section.embedded source.crystal", + "punctuation.section.embedded", + "punctuation.section.tag", + "punctuation.section.embedded source.swift", + "variable.other.bracket punctuation.definition.variable", + "string.interpolated.dollar punctuation.definition.string", + "constant.character.escape punctuation.definition.keyword", + "source.ocaml entity.name.class constant.numeric", + "source.reason entity.name.class", + "keyword.format.specifier.fsharp", + "support.module.elm", + "meta.embedded.block.php punctuation.definition.variable.php", + "source.vala storage.type", + "support.variable.class.group", + "entity.name.type.class", + "source.tf meta.keyword.list", + "source.tf meta.keyword.map", + "entity.name.class.lua", + "markup.substitution" + ], + "settings": { + "foreground": "#49ace9" + } + }, + { + "name": "INVALID", + "scope": [ + "invalid", + "invalid.illegal" + ], + "settings": { + "foreground": "#e3541c" + } + }, + { + "name": "ITALIC", + "scope": [ + "comment", + "storage.modifier", + "punctuation.definition.comment", + "entity.other", + "variable.language", + "support.type.vendored", + "support.constant.vendored", + "markup.quote", + "markup.italic", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "keyword.control.clojure", + "source.clojure meta.symbol.dynamic", + "keyword.other.this.cs", + "keyword.other.base.cs", + "variable.other.member.c", + "support.type.core.rust", + "variable.other.object.property", + "variable.other.property", + "source.r meta.function.r keyword.control.r", + "comment.line.roxygen.r keyword", + "comment.line.roxygen.r variable.parameter.r", + "keyword.control.inheritance.coffee", + "comment.block.documentation.phpdoc.php keyword", + "keyword.other.array.phpdoc.php", + "storage.type.modifier", + "comment.block.javadoc.java keyword", + "comment.block.javadoc.java variable.parameter.java", + "keyword.operator.documentation.powershell", + "storage.type.scala", + "variable.parameter.function.language.special", + "comment.block.documentation.scala keyword", + "comment.block.documentation.scala variable.parameter", + "support.function.builtin.go", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.ruby", + "source.vala storage.type.generic", + "constant.other.table-name", + "constant.other.placeholder", + "variable.other.field", + "entity.alias.import.go", + "source.swift keyword.other.declaration-specifier", + "support.variable.swift", + "keyword.other.capture-specifier", + "text.tex support.function.emph", + "constant.other.math", + "support.function.textit", + "entity.name.footnote", + "entity.name.function.directive.graphql", + "source.graphql support.type.enum", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "abstract.definition.fsharp keyword", + "abstract.definition.fsharp entity", + "function.anonymous keyword", + "entity.name.record.field.accessor.elm", + "support.type.primitive", + "support.type.builtin", + "keyword.type.cs", + "storage.type.built-in", + "storage.type.primitive", + "source.python support.type.python", + "storage.type.core.rust", + "source.swift support.type", + "source.go storage.type", + "storage.type.php", + "storage.type.function.kotlin", + "entity.name.type.kotlin", + "support.type.julia", + "variable.other.member", + "keyword.other.import", + "keyword.package", + "keyword.import", + "source.wsd keyword.control.diagram", + "keyword.language.gherkin.feature.step", + "source.hlsl storage.type.basic", + "source.apex keyword.type", + "sharing.modifier", + "source.nim storage.type.concrete", + "meta.preprocessor.pragma.nim", + "storage.type.integral", + "entity.name.scope-resolution.function.call", + "support.class.builtin", + "comment.block.documentation storage.type.class", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "meta.import keyword.control", + "keyword.control.export", + "source.vue meta.directive punctuation.separator.key-value", + "keyword.local.lua", + "markup.mark.constrained markup.mark", + "markup.block.open", + "entity.name.type.primitive", + "entity.name.type.numeric", + "source.zig keyword.type", + "source.zig keyword.storage", + "source.zig keyword.structure" + ], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "BOLD", + "scope": [ + "keyword", + "keyword.control", + "keyword.operator", + "keyword.other.template", + "keyword.other.substitution", + "storage.type.function.arrow", + "constant.other.color", + "punctuation.accessor", + "entity.name.section", + "markdown.heading", + "markup.inline.raw punctuation.definition.raw", + "markup.heading", + "storage.type.function.pug", + "storage.type.function.python", + "storage.type.annotation", + "punctuation.bracket.angle", + "keyword.other.new", + "storage.type.generic.wildcard", + "source.go keyword.operator", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "variable.parameter", + "support.function.builtin.rust", + "storage.type.function.coffee", + "entity.name.variable.parameter", + "punctuation.separator.hash.cs", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "meta.function.parameters variable.other", + "entity.name.type.annotation.kotlin", + "storage.type.objc", + "parameter.variable.function", + "markup punctuation.definition", + "punctuation.section.directive", + "punctuation.definition.preprocessor", + "source.ruby punctuation.definition.variable", + "support.function.textbf", + "source.graphql support.type.builtin", + "source.ocaml variable.interpolation string", + "entity.name.function.definition.special.constructor", + "entity.name.function.definition.special.member.destructor.", + "meta.function.parameters variable punctuation.definition.variable.php", + "source.wsd keyword.other.activity", + "keyword.control.class.ruby", + "keyword.control.def.ruby", + "keyword.function.go", + "keyword.other.fn.rust", + "markup.other.anchor", + "markup.list.bullet", + "markup.list punctuation.definition", + "keyword.control.default", + "punctuation.section", + "punctuation.separator", + "punctuation.terminator", + "markup.bold.markdown", + "source.zig storage.type.function" + ], + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "BOLD-ITALIC", + "scope": [ + "markup.quote markup.bold", + "text.html punctuation.section.embedded", + "variable.other.c", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "source.rust meta.attribute.rust", + "meta.attribute.id entity.other.attribute-name", + "source.ocaml punctuation.definition.tag emphasis", + "source.tf entity.name", + "markup.quote punctuation.definition", + "markup.fenced_code punctuation.definition", + "fenced_code.block.language" + ], + "settings": { + "fontStyle": "bold italic" + } + }, + { + "name": "NORMAL", + "scope": [ + "keyword.begin.tag.ejs", + "source.python meta.function.decorator.python support.type.python", + "source.cs keyword.other", + "keyword.other.var.cs", + "source.go keyword", + "storage.modifier.static.rust", + "variable.parameter.r", + "variable.parameter.handlebars", + "storage.modifier.import", + "storage.modifier.package", + "meta.class.identifier storage.modifier", + "keyword.operator.other.powershell", + "source.css variable.parameter", + "string.interpolated variable.parameter", + "source.apacheconf keyword", + "keyword.other.julia", + "storage.modifier.using.vala", + "source.objc keyword.other.property.attribute", + "source.sql keyword.other", + "keyword.other.using.vala", + "keyword.operator.function.infix", + "keyword.control.directive", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "entity.name.function.swift", + "keyword.control.class", + "keyword.control.def", + "punctuation.definition.variable", + "entity.name.section.latex", + "source.ocaml keyword markup.underline", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "keyword.format.specifier.fsharp", + "entity.name.section.fsharp", + "binding.fsharp keyword", + "binding.fsharp keyword.symbol", + "record.fsharp keyword", + "keyword.symbol.fsharp", + "entity.name.section.fsharp keyword", + "namespace.open.fsharp keyword", + "namespace.open.fsharp entity", + "storage.type", + "source.cpp keyword.other", + "source.c keyword.other", + "keyword.other.unit", + "storage.modifier.array.bracket", + "meta.import.haskell keyword", + "keyword.declaration.dart", + "source.wsd keyword.other", + "keyword.other.skinparam", + "source.css keyword.control", + "source.css keyword.operator", + "keyword.language.gherkin.feature.scenario", + "keyword.control.cucumber.table", + "source.toml entity.other.attribute-name", + "source.toml keyword", + "keyword.other.nim", + "source.nim keyword.other.common.function", + "source.nim keyword.other", + "source.scala keyword.declaration", + "source.scala entity.name.class.declaration", + "keyword.control.lua", + "source.css punctuation.section", + "punctuation.section.embedded", + "source.c punctuation.section", + "source.cpp punctuation.section", + "source.java punctuation.section", + "source.php punctuation.section", + "source.powershell punctuation.section", + "source.r punctuation.section", + "source.ruby punctuation.section", + "source.swift punctuation.section", + "source.objc punctuation.section", + "source.zig keyword.constant.bool", + "source.zig keyword.default", + "source.zig keyword.statement", + "source.zig keyword.constant.default" + ], + "settings": { + "fontStyle": "" + } + }, + { + "name": "STRIKETHROUGH", + "scope": [ + "markup.strikethrough" + ], + "settings": { + "fontStyle": "strikethrough" + } + } + ] +} \ No newline at end of file diff --git a/assets/themes/src/vscode/noctis/viola.json b/assets/themes/src/vscode/noctis/viola.json new file mode 100644 index 0000000000..4d474ad311 --- /dev/null +++ b/assets/themes/src/vscode/noctis/viola.json @@ -0,0 +1,1112 @@ +{ + "name": "Noctis Viola", + "type": "dark", + "colors": { + "selection.background": "#bf8ef166", + "descriptionForeground": "#996bc7", + "errorForeground": "#e34e1c", + "widget.shadow": "#00000044", + "editor.background": "#30243d", + "editor.foreground": "#ccbfd9", + "editorLineNumber.foreground": "#665973", + "editorLineNumber.activeForeground": "#996bc7", + "editorCursor.foreground": "#d9b3ff", + "badge.background": "#bf8ef1", + "badge.foreground": "#1c1226", + "activityBar.background": "#30243d", + "activityBar.dropBackground": "#996bc765", + "activityBar.border": "#1c1226", + "activityBar.foreground": "#8767a8", + "activityBar.inactiveForeground": "#8767a877", + "activityBarBadge.background": "#bf8ef1", + "activityBarBadge.foreground": "#1c1226", + "activityBar.activeBackground": "#bf8ef133", + "activityBar.activeBorder": "#bf8ef1", + "sideBar.background": "#2b2136", + "sideBar.dropBackground": "#2b2136", + "sideBar.border": "#1c1226", + "sideBar.foreground": "#b3a5c0", + "sideBarSectionHeader.background": "#3d2e4d", + "sideBarSectionHeader.foreground": "#b3a5c0", + "sideBarTitle.foreground": "#b3a5c0", + "sideBarSectionHeader.border": "#1c1226", + "statusBar.foreground": "#8767a8", + "statusBar.background": "#30243d", + "statusBar.border": "#1c1226", + "statusBar.debuggingBackground": "#30243d", + "statusBar.debuggingForeground": "#ff80ac50", + "statusBar.debuggingBorder": "#ff80acaf", + "statusBar.noFolderForeground": "#9987ab", + "statusBar.noFolderBackground": "#30243d", + "statusBar.noFolderBorder": "#30243d", + "statusBarItem.activeBackground": "#734b9b88", + "statusBarItem.hoverBackground": "#422b5a", + "statusBarItem.prominentBackground": "#21162d", + "statusBarItem.prominentHoverBackground": "#2b1145", + "button.background": "#007f99", + "button.foreground": "#edebff", + "button.hoverBackground": "#0ac", + "dropdown.background": "#3d2e4d", + "dropdown.border": "#3d2e4d", + "dropdown.foreground": "#996bc7", + "editorMarkerNavigation.background": "#4c326729", + "editorMarkerNavigationError.background": "#e34e1c", + "editorMarkerNavigationWarning.background": "#e69533", + "editorError.border": "#30243d", + "editorError.foreground": "#e34e1c", + "editorWarning.border": "#30243d", + "editorWarning.foreground": "#e69533", + "editorInfo.border": "#30243d", + "editorInfo.foreground": "#bf8ef1", + "editorHint.border": "#49e9a600", + "editorHint.foreground": "#49e9a6", + "editorGroup.emptyBackground": "#66597333", + "editorGroup.border": "#1c1226", + "editorGroup.dropBackground": "#66597333", + "editorGroupHeader.noTabsBackground": "#3d2e4d", + "editorGroupHeader.tabsBackground": "#3d2e4d", + "editorGroupHeader.tabsBorder": "#3d2e4d", + "tab.activeBackground": "#30243d", + "tab.unfocusedActiveBackground": "#302b36", + "tab.activeForeground": "#bf8ef1", + "tab.border": "#1c1226", + "tab.inactiveBackground": "#3d2e4d", + "tab.inactiveForeground": "#b3a5c0", + "tab.unfocusedActiveForeground": "#b3a5c0", + "tab.unfocusedInactiveForeground": "#b3a5c0", + "tab.activeBorderTop": "#bf8ef1", + "tab.activeModifiedBorder": "#49e9a6", + "tab.activeBorder": "#30243d", + "tab.unfocusedActiveBorder": "#30243d", + "tab.unfocusedHoverBackground": "#996bc721", + "textBlockQuote.background": "#30243d", + "textBlockQuote.border": "#8767a8", + "textCodeBlock.background": "#30243d", + "textLink.activeForeground": "#bf8ef1", + "textLink.foreground": "#bf8ef1", + "textPreformat.foreground": "#ffc180", + "textSeparator.foreground": "#30243d", + "walkThrough.embeddedEditorBackground": "#30243d", + "welcomePage.buttonBackground": "#291d35", + "welcomePage.buttonHoverBackground": "#3d2e4d", + "input.background": "#291d35", + "input.border": "#402956", + "input.foreground": "#CDD3DE", + "input.placeholderForeground": "#9987ab", + "inputOption.activeBorder": "#8767a8", + "inputValidation.errorForeground": "#ff4000", + "inputValidation.errorBackground": "#501502ee", + "inputValidation.errorBorder": "#691c02", + "inputValidation.infoForeground": "#40d4e7", + "inputValidation.infoBackground": "#0f6e7bee", + "inputValidation.infoBorder": "#148f9f", + "inputValidation.warningForeground": "#e69533", + "inputValidation.warningBackground": "#82694acc", + "inputValidation.warningBorder": "#a88457", + "editorWidget.background": "#3d2e4d", + "editorWidget.border": "#1c1226", + "editorHoverWidget.background": "#462d5d", + "editorHoverWidget.border": "#1c1226", + "editorSuggestWidget.background": "#462d5d", + "editorSuggestWidget.border": "#1c1226", + "editorSuggestWidget.foreground": "#b3a5c0", + "editorSuggestWidget.highlightForeground": "#bf8ef1", + "editorSuggestWidget.selectedBackground": "#593a78", + "editorGutter.background": "#30243d", + "editorGutter.addedBackground": "#8ce99a", + "editorGutter.deletedBackground": "#e34e1c", + "editorGutter.modifiedBackground": "#ffc180", + "editor.selectionBackground": "#8767a855", + "editor.selectionHighlightBackground": "#49ace933", + "editor.inactiveSelectionBackground": "#8767a833", + "editor.wordHighlightStrongBackground": "#cc990033", + "editor.wordHighlightBackground": "#e4b78133", + "editor.findMatchBackground": "#40bf6a11", + "editor.findMatchHighlightBackground": "#0e667179", + "editor.findRangeHighlightBackground": "#49e9a622", + "editor.hoverHighlightBackground": "#8767a83f", + "editor.lineHighlightBackground": "#402d53ee", + "editor.lineHighlightBorder": "#402d53", + "editor.rangeHighlightBackground": "#49d6e922", + "editorLink.activeForeground": "#14a5ff", + "editorWhitespace.foreground": "#ffffff21", + "editorIndentGuide.background": "#422e56", + "editorIndentGuide.activeBackground": "#595289", + "editorBracketMatch.background": "#8767a822", + "editorBracketMatch.border": "#8767a8", + "editorRuler.foreground": "#473856", + "editorCodeLens.foreground": "#776284", + "terminal.ansiBlack": "#362f3d", + "terminal.ansiRed": "#e66533", + "terminal.ansiGreen": "#49e9a6", + "terminal.ansiYellow": "#e4b781", + "terminal.ansiBlue": "#49ace9", + "terminal.ansiMagenta": "#df769b", + "terminal.ansiCyan": "#49d6e9", + "terminal.ansiWhite": "#bfafcf", + "terminal.ansiBrightBlack": "#594e65", + "terminal.ansiBrightRed": "#e97749", + "terminal.ansiBrightGreen": "#60ebb1", + "terminal.ansiBrightYellow": "#e69533", + "terminal.ansiBrightBlue": "#60b6eb", + "terminal.ansiBrightMagenta": "#e798b3", + "terminal.ansiBrightCyan": "#60dbeb", + "terminal.ansiBrightWhite": "#ccbfd9", + "terminal.background": "#291d35", + "terminal.foreground": "#ccbfd9", + "terminalCursor.background": "#291d35", + "terminalCursor.foreground": "#ccbfd9", + "merge.border": "#30243d00", + "merge.currentContentBackground": "#85f1ff22", + "merge.currentHeaderBackground": "#85f1ff44", + "merge.incomingContentBackground": "#9d92f222", + "merge.incomingHeaderBackground": "#9d92f244", + "merge.commonContentBackground": "#ffc18022", + "merge.commonHeaderBackground": "#ffc18044", + "editorOverviewRuler.currentContentForeground": "#85f1ff44", + "editorOverviewRuler.incomingContentForeground": "#9d92f244", + "editorOverviewRuler.commonContentForeground": "#ffc18044", + "editorOverviewRuler.border": "#30243d", + "notificationCenter.border": "#3d2e4d", + "notificationCenterHeader.foreground": "#9987ab", + "notificationCenterHeader.background": "#3d2e4d", + "notificationToast.border": "#3d2e4d", + "notifications.foreground": "#CDD3DE", + "notifications.background": "#3d2e4d", + "notifications.border": "#3d2e4d", + "notificationLink.foreground": "#9987ab", + "diffEditor.insertedTextBackground": "#16b67327", + "diffEditor.removedTextBackground": "#e6653341", + "debugToolBar.background": "#30243d", + "debugExceptionWidget.background": "#30243d", + "debugExceptionWidget.border": "#8767a8", + "extensionButton.prominentBackground": "#008c99", + "extensionButton.prominentForeground": "#e5f5f5", + "extensionButton.prominentHoverBackground": "#00bbcc", + "focusBorder": "#3d2e4d", + "foreground": "#ccbfd9", + "panel.background": "#291d35", + "panel.border": "#8767a8", + "panelTitle.activeBorder": "#8767a8", + "panelTitle.activeForeground": "#bf8ef1", + "panelTitle.inactiveForeground": "#725b8b", + "peekView.border": "#8767a8", + "peekViewEditor.background": "#2b1d3a", + "peekViewEditor.matchHighlightBackground": "#63438499", + "peekViewEditorGutter.background": "#2b1d3a", + "peekViewResult.background": "#2e1f3d", + "peekViewResult.fileForeground": "#ffc180", + "peekViewResult.lineForeground": "#9987ab", + "peekViewResult.matchHighlightBackground": "#343050", + "peekViewResult.selectionBackground": "#343050", + "peekViewResult.selectionForeground": "#9987ab", + "peekViewTitle.background": "#2e1f3d", + "peekViewTitleDescription.foreground": "#9987ab", + "peekViewTitleLabel.foreground": "#ffc180", + "progressBar.background": "#bf8ef1", + "scrollbar.shadow": "#00000044", + "scrollbarSlider.activeBackground": "#a660eb77", + "scrollbarSlider.background": "#a660eb33", + "scrollbarSlider.hoverBackground": "#a660eb55", + "gitDecoration.addedResourceForeground": "#16b673", + "gitDecoration.modifiedResourceForeground": "#49e9a6", + "gitDecoration.deletedResourceForeground": "#e34e1c", + "gitDecoration.untrackedResourceForeground": "#40d4e7", + "gitDecoration.ignoredResourceForeground": "#5b788b", + "gitDecoration.conflictingResourceForeground": "#ffc180", + "pickerGroup.border": "#8767a8", + "pickerGroup.foreground": "#bf8ef1", + "list.activeSelectionBackground": "#472e60", + "list.activeSelectionForeground": "#edebff", + "list.dropBackground": "#302040", + "list.focusBackground": "#593a78", + "list.focusForeground": "#edebff", + "list.highlightForeground": "#bf8ef1", + "list.hoverBackground": "#6a448d", + "list.hoverForeground": "#edebff", + "list.inactiveFocusBackground": "#362546", + "list.inactiveSelectionBackground": "#3d2e4d", + "list.inactiveSelectionForeground": "#ccbfd9", + "list.errorForeground": "#e34e1c", + "list.warningForeground": "#ffa857", + "listFilterWidget.background": "#302040", + "listFilterWidget.outline": "#49e9a6", + "listFilterWidget.noMatchesOutline": "#e34e1c", + "tree.indentGuidesStroke": "#665973", + "settings.headerForeground": "#ccbfd9", + "settings.modifiedItemIndicator": "#15ac31", + "settings.dropdownListBorder": "#66408c77", + "settings.dropdownBackground": "#3d2e4d", + "settings.dropdownForeground": "#0ac", + "settings.dropdownBorder": "#3d2e4d", + "settings.checkboxBackground": "#3d2e4d", + "settings.checkboxForeground": "#0ac", + "settings.checkboxBorder": "#3d2e4d", + "settings.textInputBackground": "#3d2e4d", + "settings.textInputForeground": "#0ac", + "settings.textInputBorder": "#3d2e4d", + "settings.numberInputBackground": "#291d35", + "settings.numberInputForeground": "#a660eb", + "settings.numberInputBorder": "#291d35", + "breadcrumb.foreground": "#b3a5c0", + "breadcrumb.background": "#30243d", + "breadcrumb.focusForeground": "#bf8ef1", + "breadcrumb.activeSelectionForeground": "#edebff", + "breadcrumbPicker.background": "#3d2e4d", + "titleBar.activeBackground": "#30243d", + "titleBar.activeForeground": "#ccbfd9", + "titleBar.inactiveBackground": "#30243d", + "titleBar.inactiveForeground": "#b3a5c0", + "menu.background": "#3d2e4d", + "menu.foreground": "#b3a5c0", + "menu.selectionBackground": "#593a78", + "menu.selectionForeground": "#bf8ef1", + "menu.selectionBorder": "#593a78", + "menu.separatorBackground": "#bf8ef1", + "menubar.selectionBackground": "#593a78", + "menubar.selectionForeground": "#bf8ef1", + "menubar.selectionBorder": "#593a78", + "editor.snippetTabstopHighlightBackground": "#21162d", + "editor.snippetTabstopHighlightBorder": "#30243d", + "editor.snippetFinalTabstopHighlightBackground": "#21162d", + "editor.snippetFinalTabstopHighlightBorder": "#30243d", + "minimap.findMatchHighlight": "#bf8ef1aa", + "minimap.errorHighlight": "#e34e1cee", + "minimap.warningHighlight": "#e69533ee", + "minimapGutter.addedBackground": "#16b673", + "minimapGutter.modifiedBackground": "#49e9a6", + "minimapGutter.deletedBackground": "#e34e1c", + "minimap.background": "#30243d99" + }, + "tokenColors": [ + { + "name": "COMMENT", + "scope": [ + "comment", + "punctuation.definition.comment", + "punctuation.definition.tag", + "comment.block.documentation punctuation.definition.bracket", + "source.ocaml comment constant.regexp meta.separator", + "markup.other.anchor support.constant", + "markup.fenced_code", + "markup.fenced_code punctuation.definition", + "punctuation.definition.heading", + "punctuation.definition.bold.markdown", + "punctuation.definition.italic.markdown", + "punctuation.definition.strikethrough.markdown" + ], + "settings": { + "foreground": "#7f659a" + } + }, + { + "name": "TEXT", + "scope": [ + "constant.character", + "constant.escape", + "text.html.markdown", + "punctuation.definition.list_item", + "keyword.begin.tag.ejs", + "constant.name.attribute.tag.pug", + "source.clojure meta.symbol", + "constant.other.description.jsdoc", + "keyword.other.array.phpdoc.php", + "keyword.operator.other.powershell", + "meta.link.inline punctuation.definition.string", + "source.sql", + "source meta.brace", + "source punctuation", + "text.html punctuation", + "markup meta punctuation.definition", + "meta.bracket.julia", + "meta.array.julia", + "entity.name.footnote", + "source.ocaml punctuation.definition.tag", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "entity.other.attribute-name strong", + "binding.fsharp keyword.symbol.fsharp", + "entity.name.record.field.elm", + "entity.name.record.field.accessor.elm", + "storage.modifier.array.bracket", + "source.css entity.other", + "meta.attribute-selector punctuation.definition.entity", + "markup.other.anchor string", + "punctuation.separator", + "punctuation.section", + "punctuation.terminator" + ], + "settings": { + "foreground": "#ccbfd9" + } + }, + { + "name": "KEYWORD", + "scope": [ + "keyword", + "keyword.control", + "keyword.other.template", + "keyword.other.substitution", + "storage.modifier", + "meta.tag.sgml", + "punctuation.accessor", + "constant.other.color", + "entity.name.section", + "markup.heading", + "markup.heading punctuation.definition", + "entity.other.attribute-name.pseudo-class", + "entity.other.attribute-name.pseudo-element", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "storage.type.function.pug", + "text.pug storage.type", + "text.pug meta.tag.other", + "source.clojure storage.control", + "meta.expression.clojure", + "punctuation.separator.slice.python", + "punctuation.separator.question-mark.cs", + "punctuation.definition.parameters.varargs", + "source.go keyword.operator", + "punctuation.separator.pointer-access", + "punctuation.separator.other.ruby", + "keyword.package", + "keyword.import", + "punctuation.definition.keyword", + "punctuation.separator.hash.cs", + "entity.other.attribute-name.pseudo-class.css punctuation.definition.entity.css", + "entity.other.attribute-name.pseudo-element.css punctuation.definition.entity.css", + "source.kotlin storage.type.import", + "source.kotlin storage.type.package", + "constant.string.documentation.powershell", + "punctuation.section.directive", + "storage.type.rust", + "punctuation.definition.attribute", + "punctuation.definition.preprocessor", + "punctuation.separator.namespace", + "punctuation.separator.method", + "keyword.control punctuation.definition.function", + "source.ocaml variable.interpolation string", + "source.reason variable.interpolation", + "punctuation.definition.directive", + "storage.type.modifier", + "keyword.other.class.fileds", + "source.toml entity.other.attribute-name", + "source.css entity.name.tag.custom", + "sharing.modifier", + "keyword.control.class.ruby", + "keyword.control.def.ruby" + ], + "settings": { + "foreground": "#df769b" + } + }, + { + "name": "VARIABLE", + "scope": [ + "variable", + "variable.object", + "variable.other", + "variable.parameter", + "support", + "entity.name.module", + "variable.import.parameter", + "variable.other.class", + "meta.toc-list.id.html", + "source.json meta.structure.dictionary.json support.type.property-name.json", + "meta.var.clojure", + "entity.name.variable", + "source.java meta.class.body.java", + "entity.name.package.go", + "source.c", + "source.cpp", + "source.go", + "source.python", + "meta.function-call.arguments.python", + "source.ruby", + "source.coffee.embedded.source", + "source.coffee", + "storage.modifier.import", + "storage.modifier.package", + "storage.type.annotation", + "punctuation.definition.annotation", + "source.groovy.embedded.source", + "punctuation.definition.variable", + "source.powershell", + "string.quoted.interpolated.vala constant.character.escape.vala", + "source.apacheconf", + "source.objc", + "source.crystal", + "string.quoted.double.kotlin entity.string.template.element.kotlin", + "entity.name.package.kotlin", + "meta.template.expression.kotlin", + "parameter.variable.function", + "variable.other.constant.elixir", + "source.elixir.embedded.source", + "source.sql.embedded", + "punctuation.definition.placeholder", + "source.swift", + "source.julia", + "source.shell", + "variable.other.normal punctuation.definition.variable.shell", + "source.reason variable.language", + "source.reason variable.language string.other.link", + "source.elm meta.value", + "source.elm meta.declaration.module", + "meta.embedded.block variable punctuation.definition.variable.php", + "string.quoted.double.class.other", + "source.toml keyword", + "support.type.nim", + "source.tf meta.template.expression", + "source.scala entity.name.import", + "markup.code", + "markup.fenced_code.block" + ], + "settings": { + "foreground": "#e4b781" + } + }, + { + "name": "ANNOTATION", + "scope": [ + "support.variable.property", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "entity.other.attribute-name.id", + "entity.other.attribute-name.id punctuation.definition.entity", + "entity.name.type.annotation.kotlin", + "support.type.primitive", + "meta.type.parameters entity.name.type", + "meta.type.annotation entity.name.type", + "punctuation.definition.typeparameters", + "source.python support.type.python", + "comment.block.documentation.phpdoc.php keyword.other.type.php", + "storage.type.php", + "keyword.type", + "storage.type.cs", + "storage.type.c", + "storage.type.objc", + "punctuation.definition.storage.type.objc", + "markup punctuation.definition", + "storage.type.powershell", + "comment.block.documentation entity.name.type", + "source.java storage.type", + "storage.type.primitive", + "source.groovy storage.type", + "storage.type.r", + "source.haskell storage.type", + "punctuation.separator.clause-head-body", + "source.go storage.type", + "storage.type.core.rust", + "storage.class.std.rust", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "support.type.vb", + "entity.name.type.kotlin", + "support.type.julia", + "constant.other.reference", + "source.graphql support.type", + "source.reason support.type string", + "entity.name.type.fsharp", + "source.elm storage.type", + "storage.type.user-defined", + "storage.type.built-in", + "support.type.builtin", + "source.swift support.type", + "support.class.crystal", + "storage.type.integral", + "source.cpp storage.type.cpp", + "source.vala storage.type", + "source.hlsl storage.type.basic", + "source.hlsl support.type.other", + "source.apex storage.type", + "source.nim storage.type", + "source.cpp entity.name.type", + "support.class.builtin", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "markup.raw.monospace", + "markup.mark", + "entity.name.type.primitive", + "entity.name.type.numeric" + ], + "settings": { + "foreground": "#d67e5c" + } + }, + { + "name": "CONSTANT", + "scope": [ + "constant", + "variable.other.constant", + "support.constant", + "punctuation.definition.entity", + "constant.character.entity", + "support.variable.magic", + "markup.quote", + "entity.name.type.type-parameter.cs", + "punctuation.bracket.angle", + "entity.name.function.preprocessor.c", + "storage.type.scala", + "entity.helper.apacheconf", + "variable.language.crystal", + "punctuation.definition.constant", + "support.constant punctuation.definition.variable", + "constant.character.math", + "support.class.math", + "source.graphql constant.character", + "source.reason constant.language.list", + "source.cpp variable.other.enummember", + "support.variable.class.hideshow", + "entity.other.attribute-name.class", + "meta.attribute.id entity.other.attribute-name", + "text.html entity.other.attribute-name", + "meta.tag.attributes entity.other.attribute-name", + "text.xml entity.other.attribute-name", + "source.cs entity.other.attribute-name", + "constant.character.format.placeholder", + "constant.other.placeholder", + "source.vue entity.other.attribute-name", + "entity.other.attribute-name.mjml", + "source.vue meta.directive punctuation.separator.key-value", + "meta.definition.attribute-entry punctuation.separator" + ], + "settings": { + "foreground": "#d5971a" + } + }, + { + "name": "TAG", + "scope": [ + "variable.language", + "variable.parameter.function.language.special", + "punctuation.definition.italic", + "punctuation.definition.bold", + "entity.name.tag", + "variable.language punctuation.definition.variable", + "keyword.control.clojure", + "support.type.exception.python", + "keyword.other.this.cs", + "keyword.other.base.cs", + "keyword.other.var.cs", + "storage.modifier.super", + "source.go keyword", + "keyword.function.go", + "meta.separator", + "keyword.other.fn.rust", + "storage.modifier.static.rust", + "source.r meta.function.r keyword.control.r", + "storage.type.def", + "meta.class.identifier storage.modifier", + "source.scala keyword.declaration", + "storage.type", + "comment.block.documentation punctuation.definition.block.tag", + "comment.block.documentation punctuation.definition.inline.tag", + "entity.tag.apacheconf", + "keyword.other.julia", + "source.julia storage.modifier", + "constant.language.empty-list.haskell", + "meta.function.powershell storage.type.powershell", + "keyword.control.fun", + "punctuation.terminator.function", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "keyword.control.class", + "keyword.control.def", + "source.ocaml keyword markup.underline", + "source.ocaml storage.type markup.underline", + "binding.fsharp keyword", + "function.anonymous keyword", + "function.anonymous keyword.symbol.fsharp", + "meta.embedded.block variable.language punctuation.definition.variable.php", + "keyword.declaration.dart", + "source.wsd keyword.other.class", + "source.wsd keyword.other.linebegin", + "keyword.other.skinparam.keyword", + "keyword.other.nim", + "markup.deleted.diff", + "source.tf support.class.variable", + "meta.function.lua keyword.control.lua", + "markup.block entity.name.tag", + "markup.meta.attribute-list", + "source.zig keyword.default", + "source.zig keyword.structure" + ], + "settings": { + "foreground": "#e66533" + } + }, + { + "name": "STRING", + "scope": [ + "string", + "punctuation.definition.string", + "source.css support.constant", + "entity.name.import.go", + "markup.raw.texttt", + "markup.inserted.diff", + "source.scala punctuation.definition.character", + "constant.character.literal.scala", + "source.tf entity.name" + ], + "settings": { + "foreground": "#49e9a6" + } + }, + { + "name": "STRINGINTERPOLATED", + "scope": [ + "string.template", + "punctuation.definition.string.template", + "string.interpolated.python string.quoted.single.python", + "string.quoted.double.heredoc", + "string.quoted.interpolated.vala", + "string.quoted.interpolated.vala punctuation.definition.string", + "string.regexp.apacheconf", + "markup.inline.raw.string", + "markup.inline.raw punctuation.definition.raw", + "string.quoted.double.interpolated.crystal", + "string.quoted.double.interpolated.crystal punctuation.definition.string", + "text.tex markup.raw" + ], + "settings": { + "foreground": "#16b673" + } + }, + { + "name": "NUMBER", + "scope": [ + "constant.numeric", + "constant.language", + "punctuation.separator.decimal.period.php", + "keyword.operator.null-conditional.cs", + "punctuation.separator.question-mark.cs", + "constant.integer.apacheconf", + "keyword.operator.nullable-type", + "constant.language punctuation.definition.variable", + "constant.others.fsharp", + "keyword.other.unit", + "string.quoted.double.skinparam.value", + "source.toml constant", + "source.zig keyword.constant.bool", + "source.zig keyword.constant.default" + ], + "settings": { + "foreground": "#7060eb" + } + }, + { + "name": "FUNCTION", + "scope": [ + "variable.function", + "support.type.property-name", + "entity.name.function", + "string.other.link", + "markup.link", + "support.type.vendored", + "support.other.variable", + "meta.function-call.generic.python", + "meta.method-call.groovy meta.method.groovy", + "meta.class.body.groovy meta.method.body.java storage.type.groovy", + "punctuation.definition.decorator", + "support.function.any-method", + "text.tex support.function", + "text.tex punctuation.definition.function", + "entity.name.section.fsharp entity.name.section.fsharp", + "support.variable.class.function", + "keyword.control.cucumber.table", + "punctuation.decorator", + "source.tf support.class" + ], + "settings": { + "foreground": "#16a3b6" + } + }, + { + "name": "SUPPORT", + "scope": [ + "entity.name", + "entity.other", + "support.orther.namespace.use.php", + "meta.use.php", + "support.other.namespace.php", + "support.type", + "support.class", + "punctuation.definition.parameters", + "support.function", + "support.function.construct", + "markup.changed.git_gutter", + "markup.underline.link", + "markup.underline.link.image", + "markup.underline", + "meta.symbol.namespace.clojure", + "entity.mime-type.apacheconf", + "keyword.operator.function.infix", + "entity.name.function.infix", + "entity.name.function.call.kotlin", + "text.tex support.function.verb", + "text.tex support.function.texttt", + "source.reason constant.language.unit", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "constant.language.unit.fsharp", + "source.wsd support.class.preprocessings", + "keyword.language.gherkin.feature.scenario", + "source.nim keyword.other.common.function", + "entity.name.type.namespace", + "entity.name.scope-resolution.function.call" + ], + "settings": { + "foreground": "#49d6e9" + } + }, + { + "name": "MISC", + "scope": [ + "source.js constant.other.object.key.js string.unquoted.label.js", + "source.js punctuation.section.embedded", + "punctuation.definition.template-expression", + "support.class", + "storage.type.string.python", + "string.interpolated.pug", + "support.constant.handlebars", + "source.clojure punctuation.section.set", + "source.clojure punctuation.section.metadata", + "entity.global.clojure", + "source.python meta.function-call.python support.type.python", + "entity.other.inherited-class.python", + "punctuation.definition.interpolation", + "punctuation.section.embedded.begin.ruby", + "punctuation.section.embedded.end.ruby source.ruby", + "support.constant.math", + "entity.namespace.r", + "meta.method-call.groovy storage.type.groovy", + "source.scala entity.name.class.declaration", + "constant.character.escape", + "support.function.macro.julia", + "string.replacement.apacheconf", + "storage.modifier.using.vala", + "constant.other.haskell", + "source.objc entity.name.tag", + "string.quoted.other.literal.upper.crystal punctuation.definition.string", + "meta.embedded.line.crystal punctuation.section.embedded", + "meta.embedded.line.crystal punctuation.section.embedded source.crystal", + "punctuation.section.embedded", + "punctuation.section.tag", + "punctuation.section.embedded source.swift", + "variable.other.bracket punctuation.definition.variable", + "string.interpolated.dollar punctuation.definition.string", + "constant.character.escape punctuation.definition.keyword", + "source.ocaml entity.name.class constant.numeric", + "source.reason entity.name.class", + "keyword.format.specifier.fsharp", + "support.module.elm", + "meta.embedded.block.php punctuation.definition.variable.php", + "source.vala storage.type", + "support.variable.class.group", + "entity.name.type.class", + "source.tf meta.keyword.list", + "source.tf meta.keyword.map", + "entity.name.class.lua", + "markup.substitution" + ], + "settings": { + "foreground": "#49ace9" + } + }, + { + "name": "INVALID", + "scope": [ + "invalid", + "invalid.illegal" + ], + "settings": { + "foreground": "#e3541c" + } + }, + { + "name": "ITALIC", + "scope": [ + "comment", + "storage.modifier", + "punctuation.definition.comment", + "entity.other", + "variable.language", + "support.type.vendored", + "support.constant.vendored", + "markup.quote", + "markup.italic", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "keyword.control.clojure", + "source.clojure meta.symbol.dynamic", + "keyword.other.this.cs", + "keyword.other.base.cs", + "variable.other.member.c", + "support.type.core.rust", + "variable.other.object.property", + "variable.other.property", + "source.r meta.function.r keyword.control.r", + "comment.line.roxygen.r keyword", + "comment.line.roxygen.r variable.parameter.r", + "keyword.control.inheritance.coffee", + "comment.block.documentation.phpdoc.php keyword", + "keyword.other.array.phpdoc.php", + "storage.type.modifier", + "comment.block.javadoc.java keyword", + "comment.block.javadoc.java variable.parameter.java", + "keyword.operator.documentation.powershell", + "storage.type.scala", + "variable.parameter.function.language.special", + "comment.block.documentation.scala keyword", + "comment.block.documentation.scala variable.parameter", + "support.function.builtin.go", + "constant.other.symbol.hashkey.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.ruby", + "source.vala storage.type.generic", + "constant.other.table-name", + "constant.other.placeholder", + "variable.other.field", + "entity.alias.import.go", + "source.swift keyword.other.declaration-specifier", + "support.variable.swift", + "keyword.other.capture-specifier", + "text.tex support.function.emph", + "constant.other.math", + "support.function.textit", + "entity.name.footnote", + "entity.name.function.directive.graphql", + "source.graphql support.type.enum", + "source.ocaml entity.name.filename", + "source.reason entity.name.filename", + "abstract.definition.fsharp keyword", + "abstract.definition.fsharp entity", + "function.anonymous keyword", + "entity.name.record.field.accessor.elm", + "support.type.primitive", + "support.type.builtin", + "keyword.type.cs", + "storage.type.built-in", + "storage.type.primitive", + "source.python support.type.python", + "storage.type.core.rust", + "source.swift support.type", + "source.go storage.type", + "storage.type.php", + "storage.type.function.kotlin", + "entity.name.type.kotlin", + "support.type.julia", + "variable.other.member", + "keyword.other.import", + "keyword.package", + "keyword.import", + "source.wsd keyword.control.diagram", + "keyword.language.gherkin.feature.step", + "source.hlsl storage.type.basic", + "source.apex keyword.type", + "sharing.modifier", + "source.nim storage.type.concrete", + "meta.preprocessor.pragma.nim", + "storage.type.integral", + "entity.name.scope-resolution.function.call", + "support.class.builtin", + "comment.block.documentation storage.type.class", + "source.tf meta.keyword.string", + "source.tf meta.keyword.number", + "source.scala entity.name.class", + "meta.import keyword.control", + "keyword.control.export", + "source.vue meta.directive punctuation.separator.key-value", + "keyword.local.lua", + "markup.mark.constrained markup.mark", + "markup.block.open", + "entity.name.type.primitive", + "entity.name.type.numeric", + "source.zig keyword.type", + "source.zig keyword.storage", + "source.zig keyword.structure" + ], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "BOLD", + "scope": [ + "keyword", + "keyword.control", + "keyword.operator", + "keyword.other.template", + "keyword.other.substitution", + "storage.type.function.arrow", + "constant.other.color", + "punctuation.accessor", + "entity.name.section", + "markdown.heading", + "markup.inline.raw punctuation.definition.raw", + "markup.heading", + "storage.type.function.pug", + "storage.type.function.python", + "storage.type.annotation", + "punctuation.bracket.angle", + "keyword.other.new", + "storage.type.generic.wildcard", + "source.go keyword.operator", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "variable.parameter", + "support.function.builtin.rust", + "storage.type.function.coffee", + "entity.name.variable.parameter", + "punctuation.separator.hash.cs", + "constant.other.symbol.ruby punctuation.definition.constant.ruby", + "constant.other.symbol.hashkey.ruby punctuation.definition.constant.ruby", + "meta.function.parameters variable.other", + "entity.name.type.annotation.kotlin", + "storage.type.objc", + "parameter.variable.function", + "markup punctuation.definition", + "punctuation.section.directive", + "punctuation.definition.preprocessor", + "source.ruby punctuation.definition.variable", + "support.function.textbf", + "source.graphql support.type.builtin", + "source.ocaml variable.interpolation string", + "entity.name.function.definition.special.constructor", + "entity.name.function.definition.special.member.destructor.", + "meta.function.parameters variable punctuation.definition.variable.php", + "source.wsd keyword.other.activity", + "keyword.control.class.ruby", + "keyword.control.def.ruby", + "keyword.function.go", + "keyword.other.fn.rust", + "markup.other.anchor", + "markup.list.bullet", + "markup.list punctuation.definition", + "keyword.control.default", + "punctuation.section", + "punctuation.separator", + "punctuation.terminator", + "markup.bold.markdown", + "source.zig storage.type.function" + ], + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "BOLD-ITALIC", + "scope": [ + "markup.quote markup.bold", + "text.html punctuation.section.embedded", + "variable.other.c", + "storage.modifier.lifetime.rust", + "entity.name.lifetime.rust", + "source.rust meta.attribute.rust", + "meta.attribute.id entity.other.attribute-name", + "source.ocaml punctuation.definition.tag emphasis", + "source.tf entity.name", + "markup.quote punctuation.definition", + "markup.fenced_code punctuation.definition", + "fenced_code.block.language" + ], + "settings": { + "fontStyle": "bold italic" + } + }, + { + "name": "NORMAL", + "scope": [ + "keyword.begin.tag.ejs", + "source.python meta.function.decorator.python support.type.python", + "source.cs keyword.other", + "keyword.other.var.cs", + "source.go keyword", + "storage.modifier.static.rust", + "variable.parameter.r", + "variable.parameter.handlebars", + "storage.modifier.import", + "storage.modifier.package", + "meta.class.identifier storage.modifier", + "keyword.operator.other.powershell", + "source.css variable.parameter", + "string.interpolated variable.parameter", + "source.apacheconf keyword", + "keyword.other.julia", + "storage.modifier.using.vala", + "source.objc keyword.other.property.attribute", + "source.sql keyword.other", + "keyword.other.using.vala", + "keyword.operator.function.infix", + "keyword.control.directive", + "keyword.other.rust", + "keyword.other.declaration-specifier.swift", + "entity.name.function.swift", + "keyword.control.class", + "keyword.control.def", + "punctuation.definition.variable", + "entity.name.section.latex", + "source.ocaml keyword markup.underline", + "source.ocaml constant.language constant.numeric entity.other.attribute-name.id.css", + "source.reason entity.other.attribute-name constant.language constant.numeric", + "keyword.format.specifier.fsharp", + "entity.name.section.fsharp", + "binding.fsharp keyword", + "binding.fsharp keyword.symbol", + "record.fsharp keyword", + "keyword.symbol.fsharp", + "entity.name.section.fsharp keyword", + "namespace.open.fsharp keyword", + "namespace.open.fsharp entity", + "storage.type", + "source.cpp keyword.other", + "source.c keyword.other", + "keyword.other.unit", + "storage.modifier.array.bracket", + "meta.import.haskell keyword", + "keyword.declaration.dart", + "source.wsd keyword.other", + "keyword.other.skinparam", + "source.css keyword.control", + "source.css keyword.operator", + "keyword.language.gherkin.feature.scenario", + "keyword.control.cucumber.table", + "source.toml entity.other.attribute-name", + "source.toml keyword", + "keyword.other.nim", + "source.nim keyword.other.common.function", + "source.nim keyword.other", + "source.scala keyword.declaration", + "source.scala entity.name.class.declaration", + "keyword.control.lua", + "source.css punctuation.section", + "punctuation.section.embedded", + "source.c punctuation.section", + "source.cpp punctuation.section", + "source.java punctuation.section", + "source.php punctuation.section", + "source.powershell punctuation.section", + "source.r punctuation.section", + "source.ruby punctuation.section", + "source.swift punctuation.section", + "source.objc punctuation.section", + "source.zig keyword.constant.bool", + "source.zig keyword.default", + "source.zig keyword.statement", + "source.zig keyword.constant.default" + ], + "settings": { + "fontStyle": "" + } + }, + { + "name": "STRIKETHROUGH", + "scope": [ + "markup.strikethrough" + ], + "settings": { + "fontStyle": "strikethrough" + } + } + ] +} \ No newline at end of file diff --git a/crates/theme2/src/theme2.rs b/crates/theme2/src/theme2.rs index 707d275730..bbeea1817f 100644 --- a/crates/theme2/src/theme2.rs +++ b/crates/theme2/src/theme2.rs @@ -5,6 +5,7 @@ mod registry; mod scale; mod settings; mod syntax; +mod themes; use ::settings::Settings; pub use colors::*; @@ -14,6 +15,7 @@ pub use registry::*; pub use scale::*; pub use settings::*; pub use syntax::*; +pub use themes::*; use gpui::{AppContext, Hsla, SharedString}; diff --git a/crates/theme2/src/themes/andromeda.rs b/crates/theme2/src/themes/andromeda.rs new file mode 100644 index 0000000000..780c002a76 --- /dev/null +++ b/crates/theme2/src/themes/andromeda.rs @@ -0,0 +1,18 @@ + + use gpui::rgba; + + use crate::{ + default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, + SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, + }; + + pub fn andromeda() -> ThemeFamily { + ThemeFamily { + id: "59c3749c-1bd0-4ee7-903b-5ffc7d097bf1".into(), + name: "Andromeda".into(), + author: "Eliver Lara (EliverLara)".into(), + themes: vec![ThemeVariant { id: "bdd515ce-a2e2-4414-a877-521bde0b47a1".into(), name: "Andromeda".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x1b1d23ff).into(), border_variant: rgba(0x1b1d23ff).into(), border_focused: rgba(0x1b1d23ff).into(), border_transparent: rgba(0x1b1d23ff).into(), elevated_surface_background: rgba(0x23262eff).into(), surface_background: rgba(0x23262eff).into(), background: rgba(0x23262eff).into(), element_background: rgba(0x00e8c5cc).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xd4cdd8ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x23262eff).into(), tab_active_background: rgba(0x23262eff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x111113ff).into(), terminal_ansi_bright_black: rgba(0x000000e6).into(), terminal_ansi_bright_red: rgba(0xee5d42ff).into(), terminal_ansi_bright_green: rgba(0x95e072ff).into(), terminal_ansi_bright_yellow: rgba(0xffe66dff).into(), terminal_ansi_bright_blue: rgba(0x7bb7ffff).into(), terminal_ansi_bright_magenta: rgba(0xff00a9ff).into(), terminal_ansi_bright_cyan: rgba(0x00e8c6ff).into(), terminal_ansi_bright_white: rgba(0xb0b4baff).into(), terminal_ansi_black: rgba(0x000000f2).into(), terminal_ansi_red: rgba(0xee5d42ff).into(), terminal_ansi_green: rgba(0x95e072ff).into(), terminal_ansi_yellow: rgba(0xffe66dff).into(), terminal_ansi_blue: rgba(0x7bb7ffff).into(), terminal_ansi_magenta: rgba(0xff00a9ff).into(), terminal_ansi_cyan: rgba(0x00e8c6ff).into(), terminal_ansi_white: rgba(0xedeef0ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "c296bb0e-d931-4b11-a480-b1b79cc931b3".into(), name: "Andromeda Bordered".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x1b1d23ff).into(), border_variant: rgba(0x1b1d23ff).into(), border_focused: rgba(0x1b1d23ff).into(), border_transparent: rgba(0x1b1d23ff).into(), elevated_surface_background: rgba(0x23262eff).into(), surface_background: rgba(0x23262eff).into(), background: rgba(0x262933ff).into(), element_background: rgba(0x00e8c5cc).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xd4cdd8ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x23262eff).into(), tab_active_background: rgba(0x262933ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x111113ff).into(), terminal_ansi_bright_black: rgba(0x000000e6).into(), terminal_ansi_bright_red: rgba(0xee5d42ff).into(), terminal_ansi_bright_green: rgba(0x95e072ff).into(), terminal_ansi_bright_yellow: rgba(0xffe66dff).into(), terminal_ansi_bright_blue: rgba(0x7bb7ffff).into(), terminal_ansi_bright_magenta: rgba(0xff00a9ff).into(), terminal_ansi_bright_cyan: rgba(0x00e8c6ff).into(), terminal_ansi_bright_white: rgba(0xb0b4baff).into(), terminal_ansi_black: rgba(0x000000f2).into(), terminal_ansi_red: rgba(0xee5d42ff).into(), terminal_ansi_green: rgba(0x95e072ff).into(), terminal_ansi_yellow: rgba(0xffe66dff).into(), terminal_ansi_blue: rgba(0x7bb7ffff).into(), terminal_ansi_magenta: rgba(0xff00a9ff).into(), terminal_ansi_cyan: rgba(0x00e8c6ff).into(), terminal_ansi_white: rgba(0xedeef0ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }], + scales: default_color_scales(), +} + } + \ No newline at end of file diff --git a/crates/theme2/src/themes/ayu.rs b/crates/theme2/src/themes/ayu.rs new file mode 100644 index 0000000000..664c6e4938 --- /dev/null +++ b/crates/theme2/src/themes/ayu.rs @@ -0,0 +1,18 @@ + + use gpui::rgba; + + use crate::{ + default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, + SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, + }; + + pub fn ayu() -> ThemeFamily { + ThemeFamily { + id: "d002a0c0-915d-4778-9b6e-33e212ce36ad".into(), + name: "Ayu".into(), + author: "dempfi (Ike Ku)".into(), + themes: vec![ThemeVariant { id: "5c9909bb-b36d-438d-bad3-0a4d4d1d98cd".into(), name: "Ayu Light".into(), appearance: Appearance::Light, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x6b7d8f1f).into(), border_variant: rgba(0x6b7d8f1f).into(), border_focused: rgba(0x6b7d8f1f).into(), border_transparent: rgba(0x6b7d8f1f).into(), elevated_surface_background: rgba(0xf8f9faff).into(), surface_background: rgba(0xf8f9faff).into(), background: rgba(0xf8f9faff).into(), element_background: rgba(0xffaa32ff).into(), element_hover: rgba(0xe8e8ecff).into(), element_active: rgba(0xe0e1e6ff).into(), element_selected: rgba(0xe0e1e6ff).into(), element_disabled: rgba(0x0000320f).into(), element_placeholder: rgba(0x60646cff).into(), element_drop_target: rgba(0x008bff0b).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0xe8e8ecff).into(), ghost_element_active: rgba(0xe0e1e6ff).into(), ghost_element_selected: rgba(0xe0e1e6ff).into(), ghost_element_disabled: rgba(0x0000320f).into(), text: rgba(0x8a9199ff).into(), text_muted: rgba(0x60646cff).into(), text_placeholder: rgba(0x80838dff).into(), text_disabled: rgba(0x8b8d98ff).into(), text_accent: rgba(0x0c73ceff).into(), icon: rgba(0x60646cff).into(), icon_muted: rgba(0x80838dff).into(), icon_disabled: rgba(0x8b8d98ff).into(), icon_placeholder: rgba(0x80838dff).into(), icon_accent: rgba(0x0c73ceff).into(), status_bar_background: rgba(0xf9f9fbff).into(), title_bar_background: rgba(0xf9f9fbff).into(), toolbar_background: rgba(0xfcfcfdff).into(), tab_bar_background: rgba(0xf9f9fbff).into(), tab_inactive_background: rgba(0xf8f9faff).into(), tab_active_background: rgba(0xf8f9faff).into(), editor_background: rgba(0xfcfcfdff).into(), editor_subheader_background: rgba(0xf9f9fbff).into(), editor_active_line: rgba(0x0000320f).into(), terminal_background: rgba(0xf8f9faff).into(), terminal_ansi_bright_black: rgba(0x686868ff).into(), terminal_ansi_bright_red: rgba(0xef7070ff).into(), terminal_ansi_bright_green: rgba(0x86b300ff).into(), terminal_ansi_bright_yellow: rgba(0xf2ad48ff).into(), terminal_ansi_bright_blue: rgba(0x389ee6ff).into(), terminal_ansi_bright_magenta: rgba(0xa37accff).into(), terminal_ansi_bright_cyan: rgba(0x4bbf98ff).into(), terminal_ansi_bright_white: rgba(0xd1d1d1ff).into(), terminal_ansi_black: rgba(0x000000ff).into(), terminal_ansi_red: rgba(0xea6c6dff).into(), terminal_ansi_green: rgba(0x6cbf43ff).into(), terminal_ansi_yellow: rgba(0xeca944ff).into(), terminal_ansi_blue: rgba(0x3198e1ff).into(), terminal_ansi_magenta: rgba(0x9e75c7ff).into(), terminal_ansi_cyan: rgba(0x46ba94ff).into(), terminal_ansi_white: rgba(0xc7c7c7ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "fc965133-79ea-408a-8418-6e58124d6116".into(), name: "Ayu Mirage".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x171a24ff).into(), border_variant: rgba(0x171a24ff).into(), border_focused: rgba(0x171a24ff).into(), border_transparent: rgba(0x171a24ff).into(), elevated_surface_background: rgba(0x1f2430ff).into(), surface_background: rgba(0x1f2430ff).into(), background: rgba(0x1f2430ff).into(), element_background: rgba(0xffcb65ff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0x707a8cff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x1f2430ff).into(), tab_active_background: rgba(0x1f2430ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x1f2430ff).into(), terminal_ansi_bright_black: rgba(0x686868ff).into(), terminal_ansi_bright_red: rgba(0xf18678ff).into(), terminal_ansi_bright_green: rgba(0xd4fe7fff).into(), terminal_ansi_bright_yellow: rgba(0xffd173ff).into(), terminal_ansi_bright_blue: rgba(0x73cfffff).into(), terminal_ansi_bright_magenta: rgba(0xdfbfffff).into(), terminal_ansi_bright_cyan: rgba(0x95e6cbff).into(), terminal_ansi_bright_white: rgba(0xffffffff).into(), terminal_ansi_black: rgba(0x171a24ff).into(), terminal_ansi_red: rgba(0xed8173ff).into(), terminal_ansi_green: rgba(0x86d96bff).into(), terminal_ansi_yellow: rgba(0xfacc6eff).into(), terminal_ansi_blue: rgba(0x6ccafaff).into(), terminal_ansi_magenta: rgba(0xdabafaff).into(), terminal_ansi_cyan: rgba(0x90e1c6ff).into(), terminal_ansi_white: rgba(0xc7c7c7ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "3b9fd3a3-3582-4de9-ae4b-dfffccc0f0e0".into(), name: "Ayu Dark".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x1e232bff).into(), border_variant: rgba(0x1e232bff).into(), border_focused: rgba(0x1e232bff).into(), border_transparent: rgba(0x1e232bff).into(), elevated_surface_background: rgba(0x0b0e14ff).into(), surface_background: rgba(0x0b0e14ff).into(), background: rgba(0x0b0e14ff).into(), element_background: rgba(0xe6b450ff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0x565b66ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x0b0e14ff).into(), tab_active_background: rgba(0x0b0e14ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x0b0e14ff).into(), terminal_ansi_bright_black: rgba(0x686868ff).into(), terminal_ansi_bright_red: rgba(0xef7077ff).into(), terminal_ansi_bright_green: rgba(0xa9d94bff).into(), terminal_ansi_bright_yellow: rgba(0xffb353ff).into(), terminal_ansi_bright_blue: rgba(0x59c2ffff).into(), terminal_ansi_bright_magenta: rgba(0xd2a6ffff).into(), terminal_ansi_bright_cyan: rgba(0x95e6cbff).into(), terminal_ansi_bright_white: rgba(0xffffffff).into(), terminal_ansi_black: rgba(0x1e232bff).into(), terminal_ansi_red: rgba(0xea6c72ff).into(), terminal_ansi_green: rgba(0x7ed962ff).into(), terminal_ansi_yellow: rgba(0xf9af4fff).into(), terminal_ansi_blue: rgba(0x52bdfaff).into(), terminal_ansi_magenta: rgba(0xcca1faff).into(), terminal_ansi_cyan: rgba(0x90e1c6ff).into(), terminal_ansi_white: rgba(0xc7c7c7ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }], + scales: default_color_scales(), +} + } + \ No newline at end of file diff --git a/crates/theme2/src/themes/dracula.rs b/crates/theme2/src/themes/dracula.rs new file mode 100644 index 0000000000..3bb9d0c0bc --- /dev/null +++ b/crates/theme2/src/themes/dracula.rs @@ -0,0 +1,18 @@ + + use gpui::rgba; + + use crate::{ + default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, + SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, + }; + + pub fn dracula() -> ThemeFamily { + ThemeFamily { + id: "a8d7fe1f-5446-4d10-a462-5c4693d889d3".into(), + name: "Dracula".into(), + author: "Zeno Rocha".into(), + themes: vec![ThemeVariant { id: "ff2a239f-097b-4c86-a517-14011cd7fb52".into(), name: "Dracula".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0xbd93f9ff).into(), border_variant: rgba(0xbd93f9ff).into(), border_focused: rgba(0xbd93f9ff).into(), border_transparent: rgba(0xbd93f9ff).into(), elevated_surface_background: rgba(0x282a35ff).into(), surface_background: rgba(0x282a35ff).into(), background: rgba(0x282a35ff).into(), element_background: rgba(0x44475aff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xf8f8f2ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x21222cff).into(), tab_active_background: rgba(0x282a35ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x282a35ff).into(), terminal_ansi_bright_black: rgba(0x6272a4ff).into(), terminal_ansi_bright_red: rgba(0xff6d6dff).into(), terminal_ansi_bright_green: rgba(0x69ff94ff).into(), terminal_ansi_bright_yellow: rgba(0xffffa5ff).into(), terminal_ansi_bright_blue: rgba(0xd6abfeff).into(), terminal_ansi_bright_magenta: rgba(0xff92dfff).into(), terminal_ansi_bright_cyan: rgba(0xa3fefeff).into(), terminal_ansi_bright_white: rgba(0xffffffff).into(), terminal_ansi_black: rgba(0x21222cff).into(), terminal_ansi_red: rgba(0xff5555ff).into(), terminal_ansi_green: rgba(0x50fa7bff).into(), terminal_ansi_yellow: rgba(0xf1fa8cff).into(), terminal_ansi_blue: rgba(0xbd93f9ff).into(), terminal_ansi_magenta: rgba(0xff79c6ff).into(), terminal_ansi_cyan: rgba(0x8be9fdff).into(), terminal_ansi_white: rgba(0xf8f8f2ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }], + scales: default_color_scales(), +} + } + \ No newline at end of file diff --git a/crates/theme2/src/themes/gruvbox.rs b/crates/theme2/src/themes/gruvbox.rs new file mode 100644 index 0000000000..8ed6787c03 --- /dev/null +++ b/crates/theme2/src/themes/gruvbox.rs @@ -0,0 +1,18 @@ + + use gpui::rgba; + + use crate::{ + default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, + SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, + }; + + pub fn gruvbox() -> ThemeFamily { + ThemeFamily { + id: "aed09b4b-6e2c-4de2-ac0e-a17f5575b8ce".into(), + name: "Gruvbox".into(), + author: "morhetz".into(), + themes: vec![ThemeVariant { id: "53e773b8-60fe-40dc-b624-ab33a834627b".into(), name: "Gruvbox Dark Hard".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x3c3836ff).into(), border_variant: rgba(0x3c3836ff).into(), border_focused: rgba(0x3c3836ff).into(), border_transparent: rgba(0x3c3836ff).into(), elevated_surface_background: rgba(0x18191bff).into(), surface_background: rgba(0x18191bff).into(), background: rgba(0x1d2021ff).into(), element_background: rgba(0x44858780).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xebdbb2ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x1d2021ff).into(), tab_active_background: rgba(0x32302fff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x1d2021ff).into(), terminal_ansi_bright_black: rgba(0x928374ff).into(), terminal_ansi_bright_red: rgba(0xfb4833ff).into(), terminal_ansi_bright_green: rgba(0xb8bb25ff).into(), terminal_ansi_bright_yellow: rgba(0xfabd2eff).into(), terminal_ansi_bright_blue: rgba(0x83a598ff).into(), terminal_ansi_bright_magenta: rgba(0xd3869bff).into(), terminal_ansi_bright_cyan: rgba(0x8ec07cff).into(), terminal_ansi_bright_white: rgba(0xebdbb2ff).into(), terminal_ansi_black: rgba(0x3c3836ff).into(), terminal_ansi_red: rgba(0xcc241cff).into(), terminal_ansi_green: rgba(0x989719ff).into(), terminal_ansi_yellow: rgba(0xd79920ff).into(), terminal_ansi_blue: rgba(0x448587ff).into(), terminal_ansi_magenta: rgba(0xb16185ff).into(), terminal_ansi_cyan: rgba(0x679d6aff).into(), terminal_ansi_white: rgba(0xa89984ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "515bf7d7-1299-437e-a130-35e8bc76fe4e".into(), name: "Gruvbox Dark Medium".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x3c3836ff).into(), border_variant: rgba(0x3c3836ff).into(), border_focused: rgba(0x3c3836ff).into(), border_transparent: rgba(0x3c3836ff).into(), elevated_surface_background: rgba(0x18191bff).into(), surface_background: rgba(0x18191bff).into(), background: rgba(0x282828ff).into(), element_background: rgba(0x44858780).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xebdbb2ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x282828ff).into(), tab_active_background: rgba(0x3c3836ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x282828ff).into(), terminal_ansi_bright_black: rgba(0x928374ff).into(), terminal_ansi_bright_red: rgba(0xfb4833ff).into(), terminal_ansi_bright_green: rgba(0xb8bb25ff).into(), terminal_ansi_bright_yellow: rgba(0xfabd2eff).into(), terminal_ansi_bright_blue: rgba(0x83a598ff).into(), terminal_ansi_bright_magenta: rgba(0xd3869bff).into(), terminal_ansi_bright_cyan: rgba(0x8ec07cff).into(), terminal_ansi_bright_white: rgba(0xebdbb2ff).into(), terminal_ansi_black: rgba(0x3c3836ff).into(), terminal_ansi_red: rgba(0xcc241cff).into(), terminal_ansi_green: rgba(0x989719ff).into(), terminal_ansi_yellow: rgba(0xd79920ff).into(), terminal_ansi_blue: rgba(0x448587ff).into(), terminal_ansi_magenta: rgba(0xb16185ff).into(), terminal_ansi_cyan: rgba(0x679d6aff).into(), terminal_ansi_white: rgba(0xa89984ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "afb31789-7208-491a-b1ac-f92780a9bff5".into(), name: "Gruvbox Dark Soft".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x3c3836ff).into(), border_variant: rgba(0x3c3836ff).into(), border_focused: rgba(0x3c3836ff).into(), border_transparent: rgba(0x3c3836ff).into(), elevated_surface_background: rgba(0x18191bff).into(), surface_background: rgba(0x18191bff).into(), background: rgba(0x32302fff).into(), element_background: rgba(0x44858780).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xebdbb2ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x32302fff).into(), tab_active_background: rgba(0x504945ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x32302fff).into(), terminal_ansi_bright_black: rgba(0x928374ff).into(), terminal_ansi_bright_red: rgba(0xfb4833ff).into(), terminal_ansi_bright_green: rgba(0xb8bb25ff).into(), terminal_ansi_bright_yellow: rgba(0xfabd2eff).into(), terminal_ansi_bright_blue: rgba(0x83a598ff).into(), terminal_ansi_bright_magenta: rgba(0xd3869bff).into(), terminal_ansi_bright_cyan: rgba(0x8ec07cff).into(), terminal_ansi_bright_white: rgba(0xebdbb2ff).into(), terminal_ansi_black: rgba(0x3c3836ff).into(), terminal_ansi_red: rgba(0xcc241cff).into(), terminal_ansi_green: rgba(0x989719ff).into(), terminal_ansi_yellow: rgba(0xd79920ff).into(), terminal_ansi_blue: rgba(0x448587ff).into(), terminal_ansi_magenta: rgba(0xb16185ff).into(), terminal_ansi_cyan: rgba(0x679d6aff).into(), terminal_ansi_white: rgba(0xa89984ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "a8802a22-d4ae-49b9-9785-b912844fc9e0".into(), name: "Gruvbox Light Hard".into(), appearance: Appearance::Light, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0xebdbb2ff).into(), border_variant: rgba(0xebdbb2ff).into(), border_focused: rgba(0xebdbb2ff).into(), border_transparent: rgba(0xebdbb2ff).into(), elevated_surface_background: rgba(0xf9f9fbff).into(), surface_background: rgba(0xf9f9fbff).into(), background: rgba(0xf9f5d7ff).into(), element_background: rgba(0x44858780).into(), element_hover: rgba(0xe8e8ecff).into(), element_active: rgba(0xe0e1e6ff).into(), element_selected: rgba(0xe0e1e6ff).into(), element_disabled: rgba(0x0000320f).into(), element_placeholder: rgba(0x60646cff).into(), element_drop_target: rgba(0x008bff0b).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0xe8e8ecff).into(), ghost_element_active: rgba(0xe0e1e6ff).into(), ghost_element_selected: rgba(0xe0e1e6ff).into(), ghost_element_disabled: rgba(0x0000320f).into(), text: rgba(0x3c3836ff).into(), text_muted: rgba(0x60646cff).into(), text_placeholder: rgba(0x80838dff).into(), text_disabled: rgba(0x8b8d98ff).into(), text_accent: rgba(0x0c73ceff).into(), icon: rgba(0x60646cff).into(), icon_muted: rgba(0x80838dff).into(), icon_disabled: rgba(0x8b8d98ff).into(), icon_placeholder: rgba(0x80838dff).into(), icon_accent: rgba(0x0c73ceff).into(), status_bar_background: rgba(0xf9f9fbff).into(), title_bar_background: rgba(0xf9f9fbff).into(), toolbar_background: rgba(0xfcfcfdff).into(), tab_bar_background: rgba(0xf9f9fbff).into(), tab_inactive_background: rgba(0xf9f5d7ff).into(), tab_active_background: rgba(0xf2e5bcff).into(), editor_background: rgba(0xfcfcfdff).into(), editor_subheader_background: rgba(0xf9f9fbff).into(), editor_active_line: rgba(0x0000320f).into(), terminal_background: rgba(0xf9f5d7ff).into(), terminal_ansi_bright_black: rgba(0x928374ff).into(), terminal_ansi_bright_red: rgba(0x9d0006ff).into(), terminal_ansi_bright_green: rgba(0x79740eff).into(), terminal_ansi_bright_yellow: rgba(0xb57613ff).into(), terminal_ansi_bright_blue: rgba(0x066578ff).into(), terminal_ansi_bright_magenta: rgba(0x8f3e71ff).into(), terminal_ansi_bright_cyan: rgba(0x427b58ff).into(), terminal_ansi_bright_white: rgba(0x3c3836ff).into(), terminal_ansi_black: rgba(0xebdbb2ff).into(), terminal_ansi_red: rgba(0xcc241cff).into(), terminal_ansi_green: rgba(0x989719ff).into(), terminal_ansi_yellow: rgba(0xd79920ff).into(), terminal_ansi_blue: rgba(0x448587ff).into(), terminal_ansi_magenta: rgba(0xb16185ff).into(), terminal_ansi_cyan: rgba(0x679d6aff).into(), terminal_ansi_white: rgba(0x7c6f64ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "de7f0ba5-5ea8-483b-a71a-bd1313c84dfb".into(), name: "Gruvbox Light Medium".into(), appearance: Appearance::Light, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0xebdbb2ff).into(), border_variant: rgba(0xebdbb2ff).into(), border_focused: rgba(0xebdbb2ff).into(), border_transparent: rgba(0xebdbb2ff).into(), elevated_surface_background: rgba(0xf9f9fbff).into(), surface_background: rgba(0xf9f9fbff).into(), background: rgba(0xfbf1c7ff).into(), element_background: rgba(0x44858780).into(), element_hover: rgba(0xe8e8ecff).into(), element_active: rgba(0xe0e1e6ff).into(), element_selected: rgba(0xe0e1e6ff).into(), element_disabled: rgba(0x0000320f).into(), element_placeholder: rgba(0x60646cff).into(), element_drop_target: rgba(0x008bff0b).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0xe8e8ecff).into(), ghost_element_active: rgba(0xe0e1e6ff).into(), ghost_element_selected: rgba(0xe0e1e6ff).into(), ghost_element_disabled: rgba(0x0000320f).into(), text: rgba(0x3c3836ff).into(), text_muted: rgba(0x60646cff).into(), text_placeholder: rgba(0x80838dff).into(), text_disabled: rgba(0x8b8d98ff).into(), text_accent: rgba(0x0c73ceff).into(), icon: rgba(0x60646cff).into(), icon_muted: rgba(0x80838dff).into(), icon_disabled: rgba(0x8b8d98ff).into(), icon_placeholder: rgba(0x80838dff).into(), icon_accent: rgba(0x0c73ceff).into(), status_bar_background: rgba(0xf9f9fbff).into(), title_bar_background: rgba(0xf9f9fbff).into(), toolbar_background: rgba(0xfcfcfdff).into(), tab_bar_background: rgba(0xf9f9fbff).into(), tab_inactive_background: rgba(0xfbf1c7ff).into(), tab_active_background: rgba(0xebdbb2ff).into(), editor_background: rgba(0xfcfcfdff).into(), editor_subheader_background: rgba(0xf9f9fbff).into(), editor_active_line: rgba(0x0000320f).into(), terminal_background: rgba(0xfbf1c7ff).into(), terminal_ansi_bright_black: rgba(0x928374ff).into(), terminal_ansi_bright_red: rgba(0x9d0006ff).into(), terminal_ansi_bright_green: rgba(0x79740eff).into(), terminal_ansi_bright_yellow: rgba(0xb57613ff).into(), terminal_ansi_bright_blue: rgba(0x066578ff).into(), terminal_ansi_bright_magenta: rgba(0x8f3e71ff).into(), terminal_ansi_bright_cyan: rgba(0x427b58ff).into(), terminal_ansi_bright_white: rgba(0x3c3836ff).into(), terminal_ansi_black: rgba(0xebdbb2ff).into(), terminal_ansi_red: rgba(0xcc241cff).into(), terminal_ansi_green: rgba(0x989719ff).into(), terminal_ansi_yellow: rgba(0xd79920ff).into(), terminal_ansi_blue: rgba(0x448587ff).into(), terminal_ansi_magenta: rgba(0xb16185ff).into(), terminal_ansi_cyan: rgba(0x679d6aff).into(), terminal_ansi_white: rgba(0x7c6f64ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "45966b1b-6f0c-411b-be6b-3db6626f48c7".into(), name: "Gruvbox Light Soft".into(), appearance: Appearance::Light, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0xebdbb2ff).into(), border_variant: rgba(0xebdbb2ff).into(), border_focused: rgba(0xebdbb2ff).into(), border_transparent: rgba(0xebdbb2ff).into(), elevated_surface_background: rgba(0xf9f9fbff).into(), surface_background: rgba(0xf9f9fbff).into(), background: rgba(0xf2e5bcff).into(), element_background: rgba(0x44858780).into(), element_hover: rgba(0xe8e8ecff).into(), element_active: rgba(0xe0e1e6ff).into(), element_selected: rgba(0xe0e1e6ff).into(), element_disabled: rgba(0x0000320f).into(), element_placeholder: rgba(0x60646cff).into(), element_drop_target: rgba(0x008bff0b).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0xe8e8ecff).into(), ghost_element_active: rgba(0xe0e1e6ff).into(), ghost_element_selected: rgba(0xe0e1e6ff).into(), ghost_element_disabled: rgba(0x0000320f).into(), text: rgba(0x3c3836ff).into(), text_muted: rgba(0x60646cff).into(), text_placeholder: rgba(0x80838dff).into(), text_disabled: rgba(0x8b8d98ff).into(), text_accent: rgba(0x0c73ceff).into(), icon: rgba(0x60646cff).into(), icon_muted: rgba(0x80838dff).into(), icon_disabled: rgba(0x8b8d98ff).into(), icon_placeholder: rgba(0x80838dff).into(), icon_accent: rgba(0x0c73ceff).into(), status_bar_background: rgba(0xf9f9fbff).into(), title_bar_background: rgba(0xf9f9fbff).into(), toolbar_background: rgba(0xfcfcfdff).into(), tab_bar_background: rgba(0xf9f9fbff).into(), tab_inactive_background: rgba(0xf2e5bcff).into(), tab_active_background: rgba(0xd5c4a1ff).into(), editor_background: rgba(0xfcfcfdff).into(), editor_subheader_background: rgba(0xf9f9fbff).into(), editor_active_line: rgba(0x0000320f).into(), terminal_background: rgba(0xf2e5bcff).into(), terminal_ansi_bright_black: rgba(0x928374ff).into(), terminal_ansi_bright_red: rgba(0x9d0006ff).into(), terminal_ansi_bright_green: rgba(0x79740eff).into(), terminal_ansi_bright_yellow: rgba(0xb57613ff).into(), terminal_ansi_bright_blue: rgba(0x066578ff).into(), terminal_ansi_bright_magenta: rgba(0x8f3e71ff).into(), terminal_ansi_bright_cyan: rgba(0x427b58ff).into(), terminal_ansi_bright_white: rgba(0x3c3836ff).into(), terminal_ansi_black: rgba(0xebdbb2ff).into(), terminal_ansi_red: rgba(0xcc241cff).into(), terminal_ansi_green: rgba(0x989719ff).into(), terminal_ansi_yellow: rgba(0xd79920ff).into(), terminal_ansi_blue: rgba(0x448587ff).into(), terminal_ansi_magenta: rgba(0xb16185ff).into(), terminal_ansi_cyan: rgba(0x679d6aff).into(), terminal_ansi_white: rgba(0x7c6f64ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }], + scales: default_color_scales(), +} + } + \ No newline at end of file diff --git a/crates/theme2/src/themes/mod.rs b/crates/theme2/src/themes/mod.rs new file mode 100644 index 0000000000..af2b0d51ee --- /dev/null +++ b/crates/theme2/src/themes/mod.rs @@ -0,0 +1,12 @@ + +mod andromeda; +mod ayu; +mod dracula; +mod gruvbox; +mod notctis; + +pub use andromeda::*; +pub use ayu::*; +pub use dracula::*; +pub use gruvbox::*; +pub use notctis::*; diff --git a/crates/theme2/src/themes/notctis.rs b/crates/theme2/src/themes/notctis.rs new file mode 100644 index 0000000000..4a21844e48 --- /dev/null +++ b/crates/theme2/src/themes/notctis.rs @@ -0,0 +1,18 @@ + + use gpui::rgba; + + use crate::{ + default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, + SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, + }; + + pub fn notctis() -> ThemeFamily { + ThemeFamily { + id: "ad886135-2fff-4311-b2bb-2ce1ebd1c50d".into(), + name: "Notctis".into(), + author: "Liviu Schera (liviuschera)".into(), + themes: vec![ThemeVariant { id: "b79ece4f-89f3-4388-94ad-edeabfddba87".into(), name: "Noctis Azureus".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x1579b6ff).into(), border_variant: rgba(0x1579b6ff).into(), border_focused: rgba(0x1579b6ff).into(), border_transparent: rgba(0x1579b6ff).into(), elevated_surface_background: rgba(0x051b28ff).into(), surface_background: rgba(0x051b28ff).into(), background: rgba(0x07263aff).into(), element_background: rgba(0x007e99ff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xbecfdaff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x08324eff).into(), tab_active_background: rgba(0x07263aff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x051b28ff).into(), terminal_ansi_bright_black: rgba(0x475e6cff).into(), terminal_ansi_bright_red: rgba(0xe97749ff).into(), terminal_ansi_bright_green: rgba(0x5febb1ff).into(), terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), terminal_ansi_bright_white: rgba(0xbecfdaff).into(), terminal_ansi_black: rgba(0x28343dff).into(), terminal_ansi_red: rgba(0xe66432ff).into(), terminal_ansi_green: rgba(0x49e9a6ff).into(), terminal_ansi_yellow: rgba(0xe4b781ff).into(), terminal_ansi_blue: rgba(0x49ace9ff).into(), terminal_ansi_magenta: rgba(0xdf759aff).into(), terminal_ansi_cyan: rgba(0x49d5e9ff).into(), terminal_ansi_white: rgba(0xaec3d0ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "664a1471-1c92-44d1-84c5-3b8de9f40c5b".into(), name: "Noctis Bordo".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x997582ff).into(), border_variant: rgba(0x997582ff).into(), border_focused: rgba(0x997582ff).into(), border_transparent: rgba(0x997582ff).into(), elevated_surface_background: rgba(0x272022ff).into(), surface_background: rgba(0x272022ff).into(), background: rgba(0x322a2dff).into(), element_background: rgba(0x007e99ff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xcbbec2ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x413036ff).into(), tab_active_background: rgba(0x322a2dff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x272022ff).into(), terminal_ansi_bright_black: rgba(0x69545bff).into(), terminal_ansi_bright_red: rgba(0xe97749ff).into(), terminal_ansi_bright_green: rgba(0x5febb1ff).into(), terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), terminal_ansi_bright_white: rgba(0xcbbec2ff).into(), terminal_ansi_black: rgba(0x47393eff).into(), terminal_ansi_red: rgba(0xe66432ff).into(), terminal_ansi_green: rgba(0x49e9a6ff).into(), terminal_ansi_yellow: rgba(0xe4b781ff).into(), terminal_ansi_blue: rgba(0x49ace9ff).into(), terminal_ansi_magenta: rgba(0xdf759aff).into(), terminal_ansi_cyan: rgba(0x49d5e9ff).into(), terminal_ansi_white: rgba(0xb9acb0ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "a42edabe-8b86-482e-ae16-d036183ed66b".into(), name: "Noctus Hibernus".into(), appearance: Appearance::Light, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x00c6e0ff).into(), border_variant: rgba(0x00c6e0ff).into(), border_focused: rgba(0x00c6e0ff).into(), border_transparent: rgba(0x00c6e0ff).into(), elevated_surface_background: rgba(0xe1eeefff).into(), surface_background: rgba(0xe1eeefff).into(), background: rgba(0xf4f6f6ff).into(), element_background: rgba(0x089099ff).into(), element_hover: rgba(0xe8e8ecff).into(), element_active: rgba(0xe0e1e6ff).into(), element_selected: rgba(0xe0e1e6ff).into(), element_disabled: rgba(0x0000320f).into(), element_placeholder: rgba(0x60646cff).into(), element_drop_target: rgba(0x008bff0b).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0xe8e8ecff).into(), ghost_element_active: rgba(0xe0e1e6ff).into(), ghost_element_selected: rgba(0xe0e1e6ff).into(), ghost_element_disabled: rgba(0x0000320f).into(), text: rgba(0x005661ff).into(), text_muted: rgba(0x60646cff).into(), text_placeholder: rgba(0x80838dff).into(), text_disabled: rgba(0x8b8d98ff).into(), text_accent: rgba(0x0c73ceff).into(), icon: rgba(0x60646cff).into(), icon_muted: rgba(0x80838dff).into(), icon_disabled: rgba(0x8b8d98ff).into(), icon_placeholder: rgba(0x80838dff).into(), icon_accent: rgba(0x0c73ceff).into(), status_bar_background: rgba(0xf9f9fbff).into(), title_bar_background: rgba(0xf9f9fbff).into(), toolbar_background: rgba(0xfcfcfdff).into(), tab_bar_background: rgba(0xf9f9fbff).into(), tab_inactive_background: rgba(0xcaedf2ff).into(), tab_active_background: rgba(0xf4f6f6ff).into(), editor_background: rgba(0xfcfcfdff).into(), editor_subheader_background: rgba(0xf9f9fbff).into(), editor_active_line: rgba(0x0000320f).into(), terminal_background: rgba(0xe1eeefff).into(), terminal_ansi_bright_black: rgba(0x004d57ff).into(), terminal_ansi_bright_red: rgba(0xff3f00ff).into(), terminal_ansi_bright_green: rgba(0x00d17aff).into(), terminal_ansi_bright_yellow: rgba(0xff8c00ff).into(), terminal_ansi_bright_blue: rgba(0x0ea3ffff).into(), terminal_ansi_bright_magenta: rgba(0xff6b9eff).into(), terminal_ansi_bright_cyan: rgba(0x00cae6ff).into(), terminal_ansi_bright_white: rgba(0xbbc3c4ff).into(), terminal_ansi_black: rgba(0x003b41ff).into(), terminal_ansi_red: rgba(0xe34d1bff).into(), terminal_ansi_green: rgba(0x00b368ff).into(), terminal_ansi_yellow: rgba(0xf49724ff).into(), terminal_ansi_blue: rgba(0x0094f0ff).into(), terminal_ansi_magenta: rgba(0xff5792ff).into(), terminal_ansi_cyan: rgba(0x00bdd6ff).into(), terminal_ansi_white: rgba(0x8ca6a6ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "5999de6b-6933-47d7-bcce-cba3d34d8f38".into(), name: "Noctis Lilac".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0xaea4f4ff).into(), border_variant: rgba(0xaea4f4ff).into(), border_focused: rgba(0xaea4f4ff).into(), border_transparent: rgba(0xaea4f4ff).into(), elevated_surface_background: rgba(0xe9e7f3ff).into(), surface_background: rgba(0xe9e7f3ff).into(), background: rgba(0xf2f1f8ff).into(), element_background: rgba(0x8d7ffeff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0x0c006bff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0xe2dff6ff).into(), tab_active_background: rgba(0xf2f1f8ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0xe9e7f3ff).into(), terminal_ansi_bright_black: rgba(0x0f0080ff).into(), terminal_ansi_bright_red: rgba(0xff3f00ff).into(), terminal_ansi_bright_green: rgba(0x00d17aff).into(), terminal_ansi_bright_yellow: rgba(0xff8c00ff).into(), terminal_ansi_bright_blue: rgba(0x0ea3ffff).into(), terminal_ansi_bright_magenta: rgba(0xff6b9eff).into(), terminal_ansi_bright_cyan: rgba(0x00cae6ff).into(), terminal_ansi_bright_white: rgba(0xbbc3c4ff).into(), terminal_ansi_black: rgba(0x0c006bff).into(), terminal_ansi_red: rgba(0xe34d1bff).into(), terminal_ansi_green: rgba(0x00b368ff).into(), terminal_ansi_yellow: rgba(0xf49724ff).into(), terminal_ansi_blue: rgba(0x0094f0ff).into(), terminal_ansi_magenta: rgba(0xff5792ff).into(), terminal_ansi_cyan: rgba(0x00bdd6ff).into(), terminal_ansi_white: rgba(0x8ca6a6ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "45aee81e-7464-4ce3-a5a2-0d48e943eb5c".into(), name: "Noctis Lux".into(), appearance: Appearance::Light, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x00c6e0ff).into(), border_variant: rgba(0x00c6e0ff).into(), border_focused: rgba(0x00c6e0ff).into(), border_transparent: rgba(0x00c6e0ff).into(), elevated_surface_background: rgba(0xf6eddaff).into(), surface_background: rgba(0xf6eddaff).into(), background: rgba(0xfef8ecff).into(), element_background: rgba(0x089099ff).into(), element_hover: rgba(0xe8e8ecff).into(), element_active: rgba(0xe0e1e6ff).into(), element_selected: rgba(0xe0e1e6ff).into(), element_disabled: rgba(0x0000320f).into(), element_placeholder: rgba(0x60646cff).into(), element_drop_target: rgba(0x008bff0b).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0xe8e8ecff).into(), ghost_element_active: rgba(0xe0e1e6ff).into(), ghost_element_selected: rgba(0xe0e1e6ff).into(), ghost_element_disabled: rgba(0x0000320f).into(), text: rgba(0x005661ff).into(), text_muted: rgba(0x60646cff).into(), text_placeholder: rgba(0x80838dff).into(), text_disabled: rgba(0x8b8d98ff).into(), text_accent: rgba(0x0c73ceff).into(), icon: rgba(0x60646cff).into(), icon_muted: rgba(0x80838dff).into(), icon_disabled: rgba(0x8b8d98ff).into(), icon_placeholder: rgba(0x80838dff).into(), icon_accent: rgba(0x0c73ceff).into(), status_bar_background: rgba(0xf9f9fbff).into(), title_bar_background: rgba(0xf9f9fbff).into(), toolbar_background: rgba(0xfcfcfdff).into(), tab_bar_background: rgba(0xf9f9fbff).into(), tab_inactive_background: rgba(0xf0e9d6ff).into(), tab_active_background: rgba(0xfef8ecff).into(), editor_background: rgba(0xfcfcfdff).into(), editor_subheader_background: rgba(0xf9f9fbff).into(), editor_active_line: rgba(0x0000320f).into(), terminal_background: rgba(0xf6eddaff).into(), terminal_ansi_bright_black: rgba(0x004d57ff).into(), terminal_ansi_bright_red: rgba(0xff3f00ff).into(), terminal_ansi_bright_green: rgba(0x00d17aff).into(), terminal_ansi_bright_yellow: rgba(0xff8c00ff).into(), terminal_ansi_bright_blue: rgba(0x0ea3ffff).into(), terminal_ansi_bright_magenta: rgba(0xff6b9eff).into(), terminal_ansi_bright_cyan: rgba(0x00cae6ff).into(), terminal_ansi_bright_white: rgba(0xbbc3c4ff).into(), terminal_ansi_black: rgba(0x003b41ff).into(), terminal_ansi_red: rgba(0xe34d1bff).into(), terminal_ansi_green: rgba(0x00b368ff).into(), terminal_ansi_yellow: rgba(0xf49724ff).into(), terminal_ansi_blue: rgba(0x0094f0ff).into(), terminal_ansi_magenta: rgba(0xff5792ff).into(), terminal_ansi_cyan: rgba(0x00bdd6ff).into(), terminal_ansi_white: rgba(0x8ca6a6ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "aea2719c-b339-41ff-a008-9ed15172c56a".into(), name: "Noctis Minimus".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x496c83ff).into(), border_variant: rgba(0x496c83ff).into(), border_focused: rgba(0x496c83ff).into(), border_transparent: rgba(0x496c83ff).into(), elevated_surface_background: rgba(0x0e1920ff).into(), surface_background: rgba(0x0e1920ff).into(), background: rgba(0x1b2932ff).into(), element_background: rgba(0x2e616bff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xc5cdd3ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x202d37ff).into(), tab_active_background: rgba(0x1b2932ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x0e1920ff).into(), terminal_ansi_bright_black: rgba(0x425866ff).into(), terminal_ansi_bright_red: rgba(0xca8468ff).into(), terminal_ansi_bright_green: rgba(0x84c8abff).into(), terminal_ansi_bright_yellow: rgba(0xd1aa7bff).into(), terminal_ansi_bright_blue: rgba(0x68a4caff).into(), terminal_ansi_bright_magenta: rgba(0xc88da2ff).into(), terminal_ansi_bright_cyan: rgba(0x84bfc8ff).into(), terminal_ansi_bright_white: rgba(0xc5d1d3ff).into(), terminal_ansi_black: rgba(0x182935ff).into(), terminal_ansi_red: rgba(0xc08872ff).into(), terminal_ansi_green: rgba(0x72c09fff).into(), terminal_ansi_yellow: rgba(0xc8a984ff).into(), terminal_ansi_blue: rgba(0x6095b7ff).into(), terminal_ansi_magenta: rgba(0xc28097ff).into(), terminal_ansi_cyan: rgba(0x72b7c0ff).into(), terminal_ansi_white: rgba(0xc5cdd3ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "aa3f19d1-b767-4a33-b424-96ee06f91d50".into(), name: "Noctis".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x0d6571ff).into(), border_variant: rgba(0x0d6571ff).into(), border_focused: rgba(0x0d6571ff).into(), border_transparent: rgba(0x0d6571ff).into(), elevated_surface_background: rgba(0x03181aff).into(), surface_background: rgba(0x03181aff).into(), background: rgba(0x052428ff).into(), element_background: rgba(0x089099ff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xb1c9ccff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x052e32ff).into(), tab_active_background: rgba(0x052428ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x03181aff).into(), terminal_ansi_bright_black: rgba(0x47686cff).into(), terminal_ansi_bright_red: rgba(0xe97749ff).into(), terminal_ansi_bright_green: rgba(0x5febb1ff).into(), terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), terminal_ansi_bright_white: rgba(0xc1d4d7ff).into(), terminal_ansi_black: rgba(0x324a4dff).into(), terminal_ansi_red: rgba(0xe66432ff).into(), terminal_ansi_green: rgba(0x49e9a6ff).into(), terminal_ansi_yellow: rgba(0xe4b781ff).into(), terminal_ansi_blue: rgba(0x49ace9ff).into(), terminal_ansi_magenta: rgba(0xdf759aff).into(), terminal_ansi_cyan: rgba(0x49d5e9ff).into(), terminal_ansi_white: rgba(0xb1c9ccff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "19cd0824-8b0f-446a-8f2f-46d88f103cb7".into(), name: "Noctis Obscuro".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x0d6571ff).into(), border_variant: rgba(0x0d6571ff).into(), border_focused: rgba(0x0d6571ff).into(), border_transparent: rgba(0x0d6571ff).into(), elevated_surface_background: rgba(0x020c0eff).into(), surface_background: rgba(0x020c0eff).into(), background: rgba(0x031316ff).into(), element_background: rgba(0x089099ff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xb1c9ccff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x052e32ff).into(), tab_active_background: rgba(0x031316ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x020c0eff).into(), terminal_ansi_bright_black: rgba(0x47686cff).into(), terminal_ansi_bright_red: rgba(0xe97749ff).into(), terminal_ansi_bright_green: rgba(0x5febb1ff).into(), terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), terminal_ansi_bright_white: rgba(0xc1d4d7ff).into(), terminal_ansi_black: rgba(0x324a4dff).into(), terminal_ansi_red: rgba(0xe66432ff).into(), terminal_ansi_green: rgba(0x49e9a6ff).into(), terminal_ansi_yellow: rgba(0xe4b781ff).into(), terminal_ansi_blue: rgba(0x49ace9ff).into(), terminal_ansi_magenta: rgba(0xdf759aff).into(), terminal_ansi_cyan: rgba(0x49d5e9ff).into(), terminal_ansi_white: rgba(0xb1c9ccff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "01ae3458-f6a4-4d37-b348-88f99295cb13".into(), name: "Noctis Sereno".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x0d6571ff).into(), border_variant: rgba(0x0d6571ff).into(), border_focused: rgba(0x0d6571ff).into(), border_transparent: rgba(0x0d6571ff).into(), elevated_surface_background: rgba(0x020c0eff).into(), surface_background: rgba(0x020c0eff).into(), background: rgba(0x031316ff).into(), element_background: rgba(0x089099ff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xb1c9ccff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x052e32ff).into(), tab_active_background: rgba(0x031316ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x020c0eff).into(), terminal_ansi_bright_black: rgba(0x47686cff).into(), terminal_ansi_bright_red: rgba(0xe97749ff).into(), terminal_ansi_bright_green: rgba(0x5febb1ff).into(), terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), terminal_ansi_bright_white: rgba(0xc1d4d7ff).into(), terminal_ansi_black: rgba(0x324a4dff).into(), terminal_ansi_red: rgba(0xe66432ff).into(), terminal_ansi_green: rgba(0x49e9a6ff).into(), terminal_ansi_yellow: rgba(0xe4b781ff).into(), terminal_ansi_blue: rgba(0x49ace9ff).into(), terminal_ansi_magenta: rgba(0xdf759aff).into(), terminal_ansi_cyan: rgba(0x49d5e9ff).into(), terminal_ansi_white: rgba(0xb1c9ccff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "5c3f4b73-63c6-4732-b57c-8cae9868d08b".into(), name: "Noctis Uva".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x6d66a7ff).into(), border_variant: rgba(0x6d66a7ff).into(), border_focused: rgba(0x6d66a7ff).into(), border_transparent: rgba(0x6d66a7ff).into(), elevated_surface_background: rgba(0x1f1d30ff).into(), surface_background: rgba(0x1f1d30ff).into(), background: rgba(0x292640ff).into(), element_background: rgba(0x007e99ff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xc5c2d6ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x2f2c49ff).into(), tab_active_background: rgba(0x292640ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x1f1d30ff).into(), terminal_ansi_bright_black: rgba(0x504e65ff).into(), terminal_ansi_bright_red: rgba(0xe97749ff).into(), terminal_ansi_bright_green: rgba(0x5febb1ff).into(), terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), terminal_ansi_bright_white: rgba(0xc5c2d6ff).into(), terminal_ansi_black: rgba(0x302f3dff).into(), terminal_ansi_red: rgba(0xe66432ff).into(), terminal_ansi_green: rgba(0x49e9a6ff).into(), terminal_ansi_yellow: rgba(0xe4b781ff).into(), terminal_ansi_blue: rgba(0x49ace9ff).into(), terminal_ansi_magenta: rgba(0xdf759aff).into(), terminal_ansi_cyan: rgba(0x49d5e9ff).into(), terminal_ansi_white: rgba(0xb6b3ccff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "544dcfe0-a878-4e58-b3d2-f6f28f765266".into(), name: "Noctis Viola".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x8666a7ff).into(), border_variant: rgba(0x8666a7ff).into(), border_focused: rgba(0x8666a7ff).into(), border_transparent: rgba(0x8666a7ff).into(), elevated_surface_background: rgba(0x291d35ff).into(), surface_background: rgba(0x291d35ff).into(), background: rgba(0x30243dff).into(), element_background: rgba(0x007e99ff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xccbfd9ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x3d2e4dff).into(), tab_active_background: rgba(0x30243dff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x291d35ff).into(), terminal_ansi_bright_black: rgba(0x594e65ff).into(), terminal_ansi_bright_red: rgba(0xe97749ff).into(), terminal_ansi_bright_green: rgba(0x5febb1ff).into(), terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), terminal_ansi_bright_white: rgba(0xccbfd9ff).into(), terminal_ansi_black: rgba(0x362f3dff).into(), terminal_ansi_red: rgba(0xe66432ff).into(), terminal_ansi_green: rgba(0x49e9a6ff).into(), terminal_ansi_yellow: rgba(0xe4b781ff).into(), terminal_ansi_blue: rgba(0x49ace9ff).into(), terminal_ansi_magenta: rgba(0xdf759aff).into(), terminal_ansi_cyan: rgba(0x49d5e9ff).into(), terminal_ansi_white: rgba(0xbfafcfff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }], + scales: default_color_scales(), +} + } + \ No newline at end of file diff --git a/crates/theme_importer/src/main.rs b/crates/theme_importer/src/main.rs index e2436b1129..8ee4df2e96 100644 --- a/crates/theme_importer/src/main.rs +++ b/crates/theme_importer/src/main.rs @@ -52,11 +52,14 @@ pub struct ThemeMetadata { fn main() -> Result<()> { SimpleLogger::init(LevelFilter::Info, Default::default()).expect("could not initialize logger"); + println!("Creating path: assets/themes/src/vscode/"); let vscode_themes_path = PathBuf::from_str("assets/themes/src/vscode/")?; let mut theme_families = Vec::new(); for theme_family_dir in fs::read_dir(&vscode_themes_path)? { + println!("Reading directory: {:?}", vscode_themes_path); + let theme_family_dir = theme_family_dir?; if theme_family_dir.file_name().to_str() == Some(".DS_Store") { @@ -69,6 +72,10 @@ fn main() -> Result<()> { .ok_or(anyhow!("no file stem")) .map(|stem| stem.to_string_lossy().to_string())?; + println!( + "Opening file: {:?}", + theme_family_dir.path().join("family.json") + ); let family_metadata_file = File::open(theme_family_dir.path().join("family.json")) .context(format!("no `family.json` found for '{theme_family_slug}'"))?; @@ -82,7 +89,13 @@ fn main() -> Result<()> { for theme_metadata in family_metadata.themes { let theme_file_path = theme_family_dir.path().join(&theme_metadata.file_name); - let theme_file = File::open(&theme_file_path)?; + let theme_file = match File::open(&theme_file_path) { + Ok(file) => file, + Err(_) => { + println!("Failed to open file at path: {:?}", theme_file_path); + continue; + } + }; let vscode_theme: VsCodeTheme = serde_json::from_reader(theme_file) .context(format!("failed to parse theme {theme_file_path:?}"))?; @@ -114,6 +127,10 @@ fn main() -> Result<()> { let mut output_file = File::create(themes_output_path.join(format!("{theme_family_slug}.rs")))?; + println!( + "Creating file: {:?}", + themes_output_path.join(format!("{theme_family_slug}.rs")) + ); let theme_module = format!( r#" @@ -136,6 +153,10 @@ fn main() -> Result<()> { theme_modules.push(theme_family_slug); } + println!( + "Creating file: {:?}", + themes_output_path.join(format!("mod.rs")) + ); let mut mod_rs_file = File::create(themes_output_path.join(format!("mod.rs")))?; let mod_rs_contents = format!( From d88dccffbc035178e8437204f9e41d23c3c04485 Mon Sep 17 00:00:00 2001 From: Conrad Irwin Date: Mon, 6 Nov 2023 11:02:30 -0700 Subject: [PATCH 68/76] Allow multiple subscriptions from one entity handle --- crates/gpui2/src/subscription.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/gpui2/src/subscription.rs b/crates/gpui2/src/subscription.rs index 744e83bbbd..2f4ec0d2f1 100644 --- a/crates/gpui2/src/subscription.rs +++ b/crates/gpui2/src/subscription.rs @@ -38,7 +38,7 @@ where lock.subscribers .entry(emitter_key.clone()) .or_default() - .insert(Default::default()) + .get_or_insert_with(|| Default::default()) .insert(subscriber_id, callback); let this = self.0.clone(); Subscription { From d224f511fabbe9db12023bdf97a3cf3d4a148d3b Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Mon, 6 Nov 2023 19:22:25 +0100 Subject: [PATCH 69/76] Add interactivity to `Checkbox` component (#3240) This PR adds interactivity to the `Checkbox` component. They can now be checked and unchecked by clicking them. Release Notes: - N/A --- crates/gpui2/src/element.rs | 13 +++ crates/ui2/src/components/button.rs | 2 +- crates/ui2/src/components/checkbox.rs | 117 +++++++++++++------------ crates/ui2/src/prelude.rs | 11 ++- crates/ui2/src/to_extract/workspace.rs | 23 ++++- 5 files changed, 108 insertions(+), 58 deletions(-) diff --git a/crates/gpui2/src/element.rs b/crates/gpui2/src/element.rs index a92dbd6ff9..2a0f557272 100644 --- a/crates/gpui2/src/element.rs +++ b/crates/gpui2/src/element.rs @@ -212,6 +212,19 @@ pub trait Component { { self.map(|this| if condition { then(this) } else { this }) } + + fn when_some(self, option: Option, then: impl FnOnce(Self, T) -> Self) -> Self + where + Self: Sized, + { + self.map(|this| { + if let Some(value) = option { + then(this, value) + } else { + this + } + }) + } } impl Component for AnyElement { diff --git a/crates/ui2/src/components/button.rs b/crates/ui2/src/components/button.rs index c13460aadd..178813dd5f 100644 --- a/crates/ui2/src/components/button.rs +++ b/crates/ui2/src/components/button.rs @@ -61,7 +61,7 @@ impl ButtonVariant { } } -pub type ClickHandler = Arc) + Send + Sync>; +pub type ClickHandler = Arc) + Send + Sync>; struct ButtonHandlers { click: Option>, diff --git a/crates/ui2/src/components/checkbox.rs b/crates/ui2/src/components/checkbox.rs index 4b6a6240bb..9632a66810 100644 --- a/crates/ui2/src/components/checkbox.rs +++ b/crates/ui2/src/components/checkbox.rs @@ -1,63 +1,58 @@ -///! # Checkbox -///! -///! Checkboxes are used for multiple choices, not for mutually exclusive choices. -///! Each checkbox works independently from other checkboxes in the list, -///! therefore checking an additional box does not affect any other selections. +use std::sync::Arc; + use gpui2::{ - div, Component, ParentElement, SharedString, StatelessInteractive, Styled, ViewContext, + div, Component, ElementId, ParentElement, StatefulInteractive, StatelessInteractive, Styled, + ViewContext, }; use theme2::ActiveTheme; -use crate::{Icon, IconColor, IconElement, Selected}; +use crate::{Icon, IconColor, IconElement, Selection}; +pub type CheckHandler = Arc) + Send + Sync>; + +/// # Checkbox +/// +/// Checkboxes are used for multiple choices, not for mutually exclusive choices. +/// Each checkbox works independently from other checkboxes in the list, +/// therefore checking an additional box does not affect any other selections. #[derive(Component)] -pub struct Checkbox { - id: SharedString, - checked: Selected, +pub struct Checkbox { + id: ElementId, + checked: Selection, disabled: bool, + on_click: Option>, } -impl Checkbox { - pub fn new(id: impl Into) -> Self { +impl Checkbox { + pub fn new(id: impl Into, checked: Selection) -> Self { Self { id: id.into(), - checked: Selected::Unselected, + checked, disabled: false, + on_click: None, } } - pub fn toggle(mut self) -> Self { - self.checked = match self.checked { - Selected::Selected => Selected::Unselected, - Selected::Unselected => Selected::Selected, - Selected::Indeterminate => Selected::Selected, - }; - self - } - - pub fn set_indeterminate(mut self) -> Self { - self.checked = Selected::Indeterminate; - self - } - - pub fn set_disabled(mut self, disabled: bool) -> Self { + pub fn disabled(mut self, disabled: bool) -> Self { self.disabled = disabled; self } - pub fn render(self, _view: &mut V, cx: &mut ViewContext) -> impl Component { - let group_id = format!("checkbox_group_{}", self.id); + pub fn on_click( + mut self, + handler: impl 'static + Fn(Selection, &mut V, &mut ViewContext) + Send + Sync, + ) -> Self { + self.on_click = Some(Arc::new(handler)); + self + } + + pub fn render(self, _view: &mut V, cx: &mut ViewContext) -> impl Component { + let group_id = format!("checkbox_group_{:?}", self.id); - // The icon is different depending on the state of the checkbox. - // - // We need the match to return all the same type, - // so we wrap the eatch result in a div. - // - // We are still exploring the best way to handle this. let icon = match self.checked { // When selected, we show a checkmark. - Selected::Selected => { - div().child( + Selection::Selected => { + Some( IconElement::new(Icon::Check) .size(crate::IconSize::Small) .color( @@ -71,8 +66,8 @@ impl Checkbox { ) } // In an indeterminate state, we show a dash. - Selected::Indeterminate => { - div().child( + Selection::Indeterminate => { + Some( IconElement::new(Icon::Dash) .size(crate::IconSize::Small) .color( @@ -86,7 +81,7 @@ impl Checkbox { ) } // When unselected, we show nothing. - Selected::Unselected => div(), + Selection::Unselected => None, }; // A checkbox could be in an indeterminate state, @@ -98,7 +93,7 @@ impl Checkbox { // For the sake of styles we treat the indeterminate state as selected, // but it's icon will be different. let selected = - self.checked == Selected::Selected || self.checked == Selected::Indeterminate; + self.checked == Selection::Selected || self.checked == Selection::Indeterminate; // We could use something like this to make the checkbox background when selected: // @@ -127,6 +122,7 @@ impl Checkbox { }; div() + .id(self.id) // Rather than adding `px_1()` to add some space around the checkbox, // we use a larger parent element to create a slightly larger // click area for the checkbox. @@ -161,7 +157,13 @@ impl Checkbox { el.bg(cx.theme().colors().element_hover) }) }) - .child(icon), + .children(icon), + ) + .when_some( + self.on_click.filter(|_| !self.disabled), + |this, on_click| { + this.on_click(move |view, _, cx| on_click(self.checked.inverse(), view, cx)) + }, ) } } @@ -182,7 +184,7 @@ mod stories { fn render(&mut self, cx: &mut ViewContext) -> Self::Element { Story::container(cx) - .child(Story::title_for::<_, Checkbox>(cx)) + .child(Story::title_for::<_, Checkbox>(cx)) .child(Story::label(cx, "Default")) .child( h_stack() @@ -191,9 +193,12 @@ mod stories { .rounded_md() .border() .border_color(cx.theme().colors().border) - .child(Checkbox::new("checkbox-enabled")) - .child(Checkbox::new("checkbox-intermediate").set_indeterminate()) - .child(Checkbox::new("checkbox-selected").toggle()), + .child(Checkbox::new("checkbox-enabled", Selection::Unselected)) + .child(Checkbox::new( + "checkbox-intermediate", + Selection::Indeterminate, + )) + .child(Checkbox::new("checkbox-selected", Selection::Selected)), ) .child(Story::label(cx, "Disabled")) .child( @@ -203,16 +208,20 @@ mod stories { .rounded_md() .border() .border_color(cx.theme().colors().border) - .child(Checkbox::new("checkbox-disabled").set_disabled(true)) .child( - Checkbox::new("checkbox-disabled-intermediate") - .set_disabled(true) - .set_indeterminate(), + Checkbox::new("checkbox-disabled", Selection::Unselected) + .disabled(true), ) .child( - Checkbox::new("checkbox-disabled-selected") - .set_disabled(true) - .toggle(), + Checkbox::new( + "checkbox-disabled-intermediate", + Selection::Indeterminate, + ) + .disabled(true), + ) + .child( + Checkbox::new("checkbox-disabled-selected", Selection::Selected) + .disabled(true), ), ) } diff --git a/crates/ui2/src/prelude.rs b/crates/ui2/src/prelude.rs index 072ed00060..134b293d3d 100644 --- a/crates/ui2/src/prelude.rs +++ b/crates/ui2/src/prelude.rs @@ -155,9 +155,18 @@ impl InteractionState { } #[derive(Debug, Default, PartialEq, Eq, Hash, Clone, Copy)] -pub enum Selected { +pub enum Selection { #[default] Unselected, Indeterminate, Selected, } + +impl Selection { + pub fn inverse(&self) -> Self { + match self { + Self::Unselected | Self::Indeterminate => Self::Selected, + Self::Selected => Self::Unselected, + } + } +} diff --git a/crates/ui2/src/to_extract/workspace.rs b/crates/ui2/src/to_extract/workspace.rs index 97570a33e3..77b9bc4539 100644 --- a/crates/ui2/src/to_extract/workspace.rs +++ b/crates/ui2/src/to_extract/workspace.rs @@ -7,8 +7,8 @@ use theme2::ThemeSettings; use crate::prelude::*; use crate::{ - static_livestream, v_stack, AssistantPanel, Button, ChatMessage, ChatPanel, CollabPanel, - EditorPane, Label, LanguageSelector, NotificationsPanel, Pane, PaneGroup, Panel, + static_livestream, v_stack, AssistantPanel, Button, ChatMessage, ChatPanel, Checkbox, + CollabPanel, EditorPane, Label, LanguageSelector, NotificationsPanel, Pane, PaneGroup, Panel, PanelAllowedSides, PanelSide, ProjectPanel, SplitDirection, StatusBar, Terminal, TitleBar, Toast, ToastOrigin, }; @@ -42,6 +42,7 @@ pub struct Workspace { show_terminal: bool, show_debug: bool, show_language_selector: bool, + test_checkbox_selection: Selection, debug: Gpui2UiDebug, } @@ -58,6 +59,7 @@ impl Workspace { show_language_selector: false, show_debug: false, show_notifications_panel: true, + test_checkbox_selection: Selection::Unselected, debug: Gpui2UiDebug::default(), } } @@ -217,6 +219,23 @@ impl Render for Workspace { .text_color(cx.theme().colors().text) .bg(cx.theme().colors().background) .child(self.title_bar.clone()) + .child( + div() + .absolute() + .top_12() + .left_12() + .z_index(99) + .bg(cx.theme().colors().background) + .child( + Checkbox::new("test_checkbox", self.test_checkbox_selection).on_click( + |selection, workspace: &mut Workspace, cx| { + workspace.test_checkbox_selection = selection; + + cx.notify(); + }, + ), + ), + ) .child( div() .flex_1() From 3940e02a73f9dab99b147f6d4f419ce58eb8ce43 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Mon, 6 Nov 2023 13:25:27 -0500 Subject: [PATCH 70/76] Add Nord Theme --- assets/themes/src/vscode/nord/LICENSE | 21 + assets/themes/src/vscode/nord/family.json | 11 + assets/themes/src/vscode/nord/nord.json | 1353 +++++++++++++++++++++ 3 files changed, 1385 insertions(+) create mode 100644 assets/themes/src/vscode/nord/LICENSE create mode 100644 assets/themes/src/vscode/nord/family.json create mode 100644 assets/themes/src/vscode/nord/nord.json diff --git a/assets/themes/src/vscode/nord/LICENSE b/assets/themes/src/vscode/nord/LICENSE new file mode 100644 index 0000000000..996f8fb612 --- /dev/null +++ b/assets/themes/src/vscode/nord/LICENSE @@ -0,0 +1,21 @@ +MIT License (MIT) + +Copyright (c) 2016-present Sven Greb (https://www.svengreb.de) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/assets/themes/src/vscode/nord/family.json b/assets/themes/src/vscode/nord/family.json new file mode 100644 index 0000000000..eb0e94d202 --- /dev/null +++ b/assets/themes/src/vscode/nord/family.json @@ -0,0 +1,11 @@ +{ + "name": "Nord", + "author": "Sven Greb (svengreb)", + "themes": [ + { + "name": "Nord", + "file_name": "nord.json", + "appearance": "dark" + } + ] +} diff --git a/assets/themes/src/vscode/nord/nord.json b/assets/themes/src/vscode/nord/nord.json new file mode 100644 index 0000000000..480bf9abe0 --- /dev/null +++ b/assets/themes/src/vscode/nord/nord.json @@ -0,0 +1,1353 @@ +{ + "name": "Nord", + "type": "dark", + "semanticHighlighting": true, + "colors": { + "focusBorder": "#3b4252", + "foreground": "#d8dee9", + "activityBar.background": "#2e3440", + "activityBar.dropBackground": "#3b4252", + "activityBar.foreground": "#d8dee9", + "activityBar.activeBorder": "#88c0d0", + "activityBar.activeBackground": "#3b4252", + "activityBarBadge.background": "#88c0d0", + "activityBarBadge.foreground": "#2e3440", + "badge.foreground": "#2e3440", + "badge.background": "#88c0d0", + "button.background": "#88c0d0ee", + "button.foreground": "#2e3440", + "button.hoverBackground": "#88c0d0", + "button.secondaryBackground": "#434c5e", + "button.secondaryForeground": "#d8dee9", + "button.secondaryHoverBackground": "#4c566a", + "charts.red": "#bf616a", + "charts.blue": "#81a1c1", + "charts.yellow": "#ebcb8b", + "charts.orange": "#d08770", + "charts.green": "#a3be8c", + "charts.purple": "#b48ead", + "charts.foreground": "#d8dee9", + "charts.lines": "#88c0d0", + "debugConsole.infoForeground": "#88c0d0", + "debugConsole.warningForeground": "#ebcb8b", + "debugConsole.errorForeground": "#bf616a", + "debugConsole.sourceForeground": "#616e88", + "debugConsoleInputIcon.foreground": "#81a1c1", + "debugExceptionWidget.background": "#4c566a", + "debugExceptionWidget.border": "#2e3440", + "debugToolBar.background": "#3b4252", + "descriptionForeground": "#d8dee9e6", + "diffEditor.insertedTextBackground": "#81a1c133", + "diffEditor.removedTextBackground": "#bf616a4d", + "dropdown.background": "#3b4252", + "dropdown.border": "#3b4252", + "dropdown.foreground": "#d8dee9", + "editorActiveLineNumber.foreground": "#d8dee9cc", + "editorCursor.foreground": "#d8dee9", + "editorHint.border": "#ebcb8b00", + "editorHint.foreground": "#ebcb8b", + "editorIndentGuide.background": "#434c5eb3", + "editorIndentGuide.activeBackground": "#4c566a", + "editorInlayHint.background": "#434c5e", + "editorInlayHint.foreground": "#d8dee9", + "editorLineNumber.foreground": "#4c566a", + "editorLineNumber.activeForeground": "#d8dee9", + "editorWhitespace.foreground": "#4c566ab3", + "editorWidget.background": "#2e3440", + "editorWidget.border": "#3b4252", + "editor.background": "#2e3440", + "editor.foreground": "#d8dee9", + "editor.hoverHighlightBackground": "#3b4252", + "editor.findMatchBackground": "#88c0d066", + "editor.findMatchHighlightBackground": "#88c0d033", + "editor.findRangeHighlightBackground": "#88c0d033", + "editor.lineHighlightBackground": "#3b4252", + "editor.lineHighlightBorder": "#3b4252", + "editor.inactiveSelectionBackground": "#434c5ecc", + "editor.inlineValuesBackground": "#4c566a", + "editor.inlineValuesForeground": "#eceff4", + "editor.selectionBackground": "#434c5ecc", + "editor.selectionHighlightBackground": "#434c5ecc", + "editor.rangeHighlightBackground": "#434c5e52", + "editor.wordHighlightBackground": "#81a1c166", + "editor.wordHighlightStrongBackground": "#81a1c199", + "editor.stackFrameHighlightBackground": "#5e81ac", + "editor.focusedStackFrameHighlightBackground": "#5e81ac", + "editorError.foreground": "#bf616a", + "editorError.border": "#bf616a00", + "editorWarning.foreground": "#ebcb8b", + "editorWarning.border": "#ebcb8b00", + "editorBracketMatch.background": "#2e344000", + "editorBracketMatch.border": "#88c0d0", + "editorBracketHighlight.foreground1": "#8fbcbb", + "editorBracketHighlight.foreground2": "#88c0d0", + "editorBracketHighlight.foreground3": "#81a1c1", + "editorBracketHighlight.foreground4": "#5e81ac", + "editorBracketHighlight.foreground5": "#8fbcbb", + "editorBracketHighlight.foreground6": "#88c0d0", + "editorBracketHighlight.unexpectedBracket.foreground": "#bf616a", + "editorCodeLens.foreground": "#4c566a", + "editorGroup.background": "#2e3440", + "editorGroup.border": "#3b425201", + "editorGroup.dropBackground": "#3b425299", + "editorGroupHeader.border": "#3b425200", + "editorGroupHeader.noTabsBackground": "#2e3440", + "editorGroupHeader.tabsBackground": "#2e3440", + "editorGroupHeader.tabsBorder": "#3b425200", + "editorGutter.background": "#2e3440", + "editorGutter.modifiedBackground": "#ebcb8b", + "editorGutter.addedBackground": "#a3be8c", + "editorGutter.deletedBackground": "#bf616a", + "editorHoverWidget.background": "#3b4252", + "editorHoverWidget.border": "#3b4252", + "editorLink.activeForeground": "#88c0d0", + "editorMarkerNavigation.background": "#5e81acc0", + "editorMarkerNavigationError.background": "#bf616ac0", + "editorMarkerNavigationWarning.background": "#ebcb8bc0", + "editorOverviewRuler.border": "#3b4252", + "editorOverviewRuler.currentContentForeground": "#3b4252", + "editorOverviewRuler.incomingContentForeground": "#3b4252", + "editorOverviewRuler.findMatchForeground": "#88c0d066", + "editorOverviewRuler.rangeHighlightForeground": "#88c0d066", + "editorOverviewRuler.selectionHighlightForeground": "#88c0d066", + "editorOverviewRuler.wordHighlightForeground": "#88c0d066", + "editorOverviewRuler.wordHighlightStrongForeground": "#88c0d066", + "editorOverviewRuler.modifiedForeground": "#ebcb8b", + "editorOverviewRuler.addedForeground": "#a3be8c", + "editorOverviewRuler.deletedForeground": "#bf616a", + "editorOverviewRuler.errorForeground": "#bf616a", + "editorOverviewRuler.warningForeground": "#ebcb8b", + "editorOverviewRuler.infoForeground": "#81a1c1", + "editorRuler.foreground": "#434c5e", + "editorSuggestWidget.background": "#2e3440", + "editorSuggestWidget.border": "#3b4252", + "editorSuggestWidget.foreground": "#d8dee9", + "editorSuggestWidget.focusHighlightForeground": "#88c0d0", + "editorSuggestWidget.highlightForeground": "#88c0d0", + "editorSuggestWidget.selectedBackground": "#434c5e", + "editorSuggestWidget.selectedForeground": "#d8dee9", + "extensionButton.prominentForeground": "#d8dee9", + "extensionButton.prominentBackground": "#434c5e", + "extensionButton.prominentHoverBackground": "#4c566a", + "errorForeground": "#bf616a", + "gitDecoration.modifiedResourceForeground": "#ebcb8b", + "gitDecoration.deletedResourceForeground": "#bf616a", + "gitDecoration.untrackedResourceForeground": "#a3be8c", + "gitDecoration.ignoredResourceForeground": "#d8dee966", + "gitDecoration.conflictingResourceForeground": "#5e81ac", + "gitDecoration.submoduleResourceForeground": "#8fbcbb", + "gitDecoration.stageDeletedResourceForeground": "#bf616a", + "gitDecoration.stageModifiedResourceForeground": "#ebcb8b", + "input.background": "#3b4252", + "input.foreground": "#d8dee9", + "input.placeholderForeground": "#d8dee999", + "input.border": "#3b4252", + "inputOption.activeBackground": "#5e81ac", + "inputOption.activeBorder": "#5e81ac", + "inputOption.activeForeground": "#eceff4", + "inputValidation.errorBackground": "#bf616a", + "inputValidation.errorBorder": "#bf616a", + "inputValidation.infoBackground": "#81a1c1", + "inputValidation.infoBorder": "#81a1c1", + "inputValidation.warningBackground": "#d08770", + "inputValidation.warningBorder": "#d08770", + "keybindingLabel.background": "#4c566a", + "keybindingLabel.border": "#4c566a", + "keybindingLabel.bottomBorder": "#4c566a", + "keybindingLabel.foreground": "#d8dee9", + "list.activeSelectionBackground": "#88c0d0", + "list.activeSelectionForeground": "#2e3440", + "list.inactiveSelectionBackground": "#434c5e", + "list.inactiveSelectionForeground": "#d8dee9", + "list.inactiveFocusBackground": "#434c5ecc", + "list.hoverForeground": "#eceff4", + "list.focusForeground": "#d8dee9", + "list.focusBackground": "#88c0d099", + "list.focusHighlightForeground": "#eceff4", + "list.hoverBackground": "#3b4252", + "list.dropBackground": "#88c0d099", + "list.highlightForeground": "#88c0d0", + "list.errorForeground": "#bf616a", + "list.warningForeground": "#ebcb8b", + "merge.currentHeaderBackground": "#81a1c166", + "merge.currentContentBackground": "#81a1c14d", + "merge.incomingHeaderBackground": "#8fbcbb66", + "merge.incomingContentBackground": "#8fbcbb4d", + "merge.border": "#3b425200", + "minimap.background": "#2e3440", + "minimap.errorHighlight": "#bf616acc", + "minimap.findMatchHighlight": "#88c0d0", + "minimap.selectionHighlight": "#88c0d0cc", + "minimap.warningHighlight": "#ebcb8bcc", + "minimapGutter.addedBackground": "#a3be8c", + "minimapGutter.deletedBackground": "#bf616a", + "minimapGutter.modifiedBackground": "#ebcb8b", + "minimapSlider.activeBackground": "#434c5eaa", + "minimapSlider.background": "#434c5e99", + "minimapSlider.hoverBackground": "#434c5eaa", + + /* `notification.*` keys are legacy support for VS Code versions >1.21.0 */ + "notification.background": "#3b4252", + "notification.buttonBackground": "#434c5e", + "notification.buttonForeground": "#d8dee9", + "notification.buttonHoverBackground": "#4c566a", + "notification.errorBackground": "#bf616a", + "notification.errorForeground": "#2e3440", + "notification.foreground": "#d8dee9", + "notification.infoBackground": "#88c0d0", + "notification.infoForeground": "#2e3440", + "notification.warningBackground": "#ebcb8b", + "notification.warningForeground": "#2e3440", + + "notificationCenter.border": "#3b425200", + "notificationCenterHeader.background": "#2e3440", + "notificationCenterHeader.foreground": "#88c0d0", + "notificationLink.foreground": "#88c0d0", + "notifications.background": "#3b4252", + "notifications.border": "#2e3440", + "notifications.foreground": "#d8dee9", + "notificationToast.border": "#3b425200", + + "panel.background": "#2e3440", + "panel.border": "#3b4252", + "panelTitle.activeBorder": "#88c0d000", + "panelTitle.activeForeground": "#88c0d0", + "panelTitle.inactiveForeground": "#d8dee9", + "peekView.border": "#4c566a", + "peekViewEditor.background": "#2e3440", + "peekViewEditorGutter.background": "#2e3440", + "peekViewEditor.matchHighlightBackground": "#88c0d04d", + "peekViewResult.background": "#2e3440", + "peekViewResult.fileForeground": "#88c0d0", + "peekViewResult.lineForeground": "#d8dee966", + "peekViewResult.matchHighlightBackground": "#88c0d0cc", + "peekViewResult.selectionBackground": "#434c5e", + "peekViewResult.selectionForeground": "#d8dee9", + "peekViewTitle.background": "#3b4252", + "peekViewTitleDescription.foreground": "#d8dee9", + "peekViewTitleLabel.foreground": "#88c0d0", + "pickerGroup.border": "#3b4252", + "pickerGroup.foreground": "#88c0d0", + "progressBar.background": "#88c0d0", + "quickInputList.focusBackground": "#88c0d0", + "quickInputList.focusForeground": "#2e3440", + "sash.hoverBorder": "#88c0d0", + "scrollbar.shadow": "#00000066", + "scrollbarSlider.activeBackground": "#434c5eaa", + "scrollbarSlider.background": "#434c5e99", + "scrollbarSlider.hoverBackground": "#434c5eaa", + "selection.background": "#88c0d099", + "sideBar.background": "#2e3440", + "sideBar.foreground": "#d8dee9", + "sideBar.border": "#3b4252", + "sideBarSectionHeader.background": "#3b4252", + "sideBarSectionHeader.foreground": "#d8dee9", + "sideBarTitle.foreground": "#d8dee9", + "statusBar.background": "#3b4252", + "statusBar.debuggingBackground": "#5e81ac", + "statusBar.debuggingForeground": "#d8dee9", + "statusBar.noFolderForeground": "#d8dee9", + "statusBar.noFolderBackground": "#3b4252", + "statusBar.foreground": "#d8dee9", + "statusBarItem.activeBackground": "#4c566a", + "statusBarItem.hoverBackground": "#434c5e", + "statusBarItem.prominentBackground": "#3b4252", + "statusBarItem.prominentHoverBackground": "#434c5e", + "statusBarItem.errorBackground": "#3b4252", + "statusBarItem.errorForeground": "#bf616a", + "statusBarItem.warningBackground": "#ebcb8b", + "statusBarItem.warningForeground": "#2e3440", + "statusBar.border": "#3b425200", + "tab.activeBackground": "#3b4252", + "tab.activeForeground": "#d8dee9", + "tab.border": "#3b425200", + "tab.activeBorder": "#88c0d000", + "tab.unfocusedActiveBorder": "#88c0d000", + "tab.inactiveBackground": "#2e3440", + "tab.inactiveForeground": "#d8dee966", + "tab.unfocusedActiveForeground": "#d8dee999", + "tab.unfocusedInactiveForeground": "#d8dee966", + "tab.hoverBackground": "#3b4252cc", + "tab.unfocusedHoverBackground": "#3b4252b3", + "tab.hoverBorder": "#88c0d000", + "tab.unfocusedHoverBorder": "#88c0d000", + "tab.activeBorderTop": "#88c0d000", + "tab.unfocusedActiveBorderTop": "#88c0d000", + "tab.lastPinnedBorder": "#4c566a", + "terminal.background": "#2e3440", + "terminal.foreground": "#d8dee9", + "terminal.ansiBlack": "#3b4252", + "terminal.ansiRed": "#bf616a", + "terminal.ansiGreen": "#a3be8c", + "terminal.ansiYellow": "#ebcb8b", + "terminal.ansiBlue": "#81a1c1", + "terminal.ansiMagenta": "#b48ead", + "terminal.ansiCyan": "#88c0d0", + "terminal.ansiWhite": "#e5e9f0", + "terminal.ansiBrightBlack": "#4c566a", + "terminal.ansiBrightRed": "#bf616a", + "terminal.ansiBrightGreen": "#a3be8c", + "terminal.ansiBrightYellow": "#ebcb8b", + "terminal.ansiBrightBlue": "#81a1c1", + "terminal.ansiBrightMagenta": "#b48ead", + "terminal.ansiBrightCyan": "#8fbcbb", + "terminal.ansiBrightWhite": "#eceff4", + "terminal.tab.activeBorder": "#88c0d0", + "textBlockQuote.background": "#3b4252", + "textBlockQuote.border": "#81a1c1", + "textCodeBlock.background": "#4c566a", + "textLink.activeForeground": "#88c0d0", + "textLink.foreground": "#88c0d0", + "textPreformat.foreground": "#8fbcbb", + "textSeparator.foreground": "#eceff4", + "titleBar.activeBackground": "#2e3440", + "titleBar.activeForeground": "#d8dee9", + "titleBar.border": "#2e344000", + "titleBar.inactiveBackground": "#2e3440", + "titleBar.inactiveForeground": "#d8dee966", + "tree.indentGuidesStroke": "#616e88", + "walkThrough.embeddedEditorBackground": "#2e3440", + "welcomePage.buttonBackground": "#434c5e", + "welcomePage.buttonHoverBackground": "#4c566a", + "widget.shadow": "#00000066" + }, + "tokenColors": [ + { + "settings": { + "foreground": "#d8dee9ff", + "background": "#2e3440ff" + } + }, + { + "scope": "emphasis", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "strong", + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "Comment", + "scope": "comment", + "settings": { + "foreground": "#616E88" + } + }, + { + "name": "Constant Character", + "scope": "constant.character", + "settings": { + "foreground": "#EBCB8B" + } + }, + { + "name": "Constant Character Escape", + "scope": "constant.character.escape", + "settings": { + "foreground": "#EBCB8B" + } + }, + { + "name": "Constant Language", + "scope": "constant.language", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Constant Numeric", + "scope": "constant.numeric", + "settings": { + "foreground": "#B48EAD" + } + }, + { + "name": "Constant Regexp", + "scope": "constant.regexp", + "settings": { + "foreground": "#EBCB8B" + } + }, + { + "name": "Entity Name Class/Type", + "scope": ["entity.name.class", "entity.name.type.class"], + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "Entity Name Function", + "scope": "entity.name.function", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "Entity Name Tag", + "scope": "entity.name.tag", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Entity Other Attribute Name", + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "Entity Other Inherited Class", + "scope": "entity.other.inherited-class", + "settings": { + "fontStyle": "bold", + "foreground": "#8FBCBB" + } + }, + { + "name": "Invalid Deprecated", + "scope": "invalid.deprecated", + "settings": { + "foreground": "#D8DEE9", + "background": "#EBCB8B" + } + }, + { + "name": "Invalid Illegal", + "scope": "invalid.illegal", + "settings": { + "foreground": "#D8DEE9", + "background": "#BF616A" + } + }, + { + "name": "Keyword", + "scope": "keyword", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Keyword Operator", + "scope": "keyword.operator", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Keyword Other New", + "scope": "keyword.other.new", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Markup Bold", + "scope": "markup.bold", + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "Markup Changed", + "scope": "markup.changed", + "settings": { + "foreground": "#EBCB8B" + } + }, + { + "name": "Markup Deleted", + "scope": "markup.deleted", + "settings": { + "foreground": "#BF616A" + } + }, + { + "name": "Markup Inserted", + "scope": "markup.inserted", + "settings": { + "foreground": "#A3BE8C" + } + }, + { + "name": "Meta Preprocessor", + "scope": "meta.preprocessor", + "settings": { + "foreground": "#5E81AC" + } + }, + { + "name": "Punctuation", + "scope": "punctuation", + "settings": { + "foreground": "#ECEFF4" + } + }, + { + "name": "Punctuation Definition Parameters", + "scope": [ + "punctuation.definition.method-parameters", + "punctuation.definition.function-parameters", + "punctuation.definition.parameters" + ], + "settings": { + "foreground": "#ECEFF4" + } + }, + { + "name": "Punctuation Definition Tag", + "scope": "punctuation.definition.tag", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Punctuation Definition Comment", + "scope": [ + "punctuation.definition.comment", + "punctuation.end.definition.comment", + "punctuation.start.definition.comment" + ], + "settings": { + "foreground": "#616E88" + } + }, + { + "name": "Punctuation Section", + "scope": "punctuation.section", + "settings": { + "foreground": "#ECEFF4" + } + }, + { + "name": "Punctuation Section Embedded", + "scope": ["punctuation.section.embedded.begin", "punctuation.section.embedded.end"], + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Punctuation Terminator", + "scope": "punctuation.terminator", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Punctuation Variable", + "scope": "punctuation.definition.variable", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Storage", + "scope": "storage", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "String", + "scope": "string", + "settings": { + "foreground": "#A3BE8C" + } + }, + { + "name": "String Regexp", + "scope": "string.regexp", + "settings": { + "foreground": "#EBCB8B" + } + }, + { + "name": "Support Class", + "scope": "support.class", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "Support Constant", + "scope": "support.constant", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Support Function", + "scope": "support.function", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "Support Function Construct", + "scope": "support.function.construct", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Support Type", + "scope": "support.type", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "Support Type Exception", + "scope": "support.type.exception", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "Token Debug", + "scope": "token.debug-token", + "settings": { + "foreground": "#b48ead" + } + }, + { + "name": "Token Error", + "scope": "token.error-token", + "settings": { + "foreground": "#bf616a" + } + }, + { + "name": "Token Info", + "scope": "token.info-token", + "settings": { + "foreground": "#88c0d0" + } + }, + { + "name": "Token Warning", + "scope": "token.warn-token", + "settings": { + "foreground": "#ebcb8b" + } + }, + { + "name": "Variable", + "scope": "variable.other", + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "Variable Language", + "scope": "variable.language", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Variable Parameter", + "scope": "variable.parameter", + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "[C/CPP] Punctuation Separator Pointer-Access", + "scope": "punctuation.separator.pointer-access.c", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[C/CPP] Meta Preprocessor Include", + "scope": ["source.c meta.preprocessor.include", "source.c string.quoted.other.lt-gt.include"], + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[C/CPP] Conditional Directive", + "scope": [ + "source.cpp keyword.control.directive.conditional", + "source.cpp punctuation.definition.directive", + "source.c keyword.control.directive.conditional", + "source.c punctuation.definition.directive" + ], + "settings": { + "foreground": "#5E81AC", + "fontStyle": "bold" + } + }, + { + "name": "[CSS] Constant Other Color RGB Value", + "scope": "source.css constant.other.color.rgb-value", + "settings": { + "foreground": "#B48EAD" + } + }, + { + "name": "[CSS](Function) Meta Property-Value", + "scope": "source.css meta.property-value", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[CSS] Media Queries", + "scope": [ + "source.css keyword.control.at-rule.media", + "source.css keyword.control.at-rule.media punctuation.definition.keyword" + ], + "settings": { + "foreground": "#D08770" + } + }, + { + "name": "[CSS] Punctuation Definition Keyword", + "scope": "source.css punctuation.definition.keyword", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[CSS] Support Type Property Name", + "scope": "source.css support.type.property-name", + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "[diff] Meta Range Context", + "scope": "source.diff meta.diff.range.context", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[diff] Meta Header From-File", + "scope": "source.diff meta.diff.header.from-file", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[diff] Punctuation Definition From-File", + "scope": "source.diff punctuation.definition.from-file", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[diff] Punctuation Definition Range", + "scope": "source.diff punctuation.definition.range", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[diff] Punctuation Definition Separator", + "scope": "source.diff punctuation.definition.separator", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[Elixir](JakeBecker.elixir-ls) module names", + "scope": "entity.name.type.module.elixir", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Elixir](JakeBecker.elixir-ls) module attributes", + "scope": "variable.other.readwrite.module.elixir", + "settings": { + "foreground": "#D8DEE9", + "fontStyle": "bold" + } + }, + { + "name": "[Elixir](JakeBecker.elixir-ls) atoms", + "scope": "constant.other.symbol.elixir", + "settings": { + "foreground": "#D8DEE9", + "fontStyle": "bold" + } + }, + { + "name": "[Elixir](JakeBecker.elixir-ls) modules", + "scope": "variable.other.constant.elixir", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Go] String Format Placeholder", + "scope": "source.go constant.other.placeholder.go", + "settings": { + "foreground": "#EBCB8B" + } + }, + { + "name": "[Java](JavaDoc) Comment Block Documentation HTML Entities", + "scope": "source.java comment.block.documentation.javadoc punctuation.definition.entity.html", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[Java](JavaDoc) Constant Other", + "scope": "source.java constant.other", + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "[Java](JavaDoc) Keyword Other Documentation", + "scope": "source.java keyword.other.documentation", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java](JavaDoc) Keyword Other Documentation Author", + "scope": "source.java keyword.other.documentation.author.javadoc", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java](JavaDoc) Keyword Other Documentation Directive/Custom", + "scope": ["source.java keyword.other.documentation.directive", "source.java keyword.other.documentation.custom"], + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java](JavaDoc) Keyword Other Documentation See", + "scope": "source.java keyword.other.documentation.see.javadoc", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java] Meta Method-Call", + "scope": "source.java meta.method-call meta.method", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[Java](JavaDoc) Meta Tag Template Link", + "scope": ["source.java meta.tag.template.link.javadoc", "source.java string.other.link.title.javadoc"], + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java](JavaDoc) Meta Tag Template Value", + "scope": "source.java meta.tag.template.value.javadoc", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[Java](JavaDoc) Punctuation Definition Keyword", + "scope": "source.java punctuation.definition.keyword.javadoc", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java](JavaDoc) Punctuation Definition Tag", + "scope": [ + "source.java punctuation.definition.tag.begin.javadoc", + "source.java punctuation.definition.tag.end.javadoc" + ], + "settings": { + "foreground": "#616E88" + } + }, + { + "name": "[Java] Storage Modifier Import", + "scope": "source.java storage.modifier.import", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java] Storage Modifier Package", + "scope": "source.java storage.modifier.package", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java] Storage Type", + "scope": "source.java storage.type", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java] Storage Type Annotation", + "scope": "source.java storage.type.annotation", + "settings": { + "foreground": "#D08770" + } + }, + { + "name": "[Java] Storage Type Generic", + "scope": "source.java storage.type.generic", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java] Storage Type Primitive", + "scope": "source.java storage.type.primitive", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[JavaScript] Decorator", + "scope": [ + "source.js punctuation.decorator", + "source.js meta.decorator variable.other.readwrite", + "source.js meta.decorator entity.name.function" + ], + "settings": { + "foreground": "#D08770" + } + }, + { + "name": "[JavaScript] Meta Object-Literal Key", + "scope": "source.js meta.object-literal.key", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[JavaScript](JSDoc) Storage Type Class", + "scope": "source.js storage.type.class.jsdoc", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[JavaScript] String Template Literals Punctuation", + "scope": [ + "source.js string.quoted.template punctuation.quasi.element.begin", + "source.js string.quoted.template punctuation.quasi.element.end", + "source.js string.template punctuation.definition.template-expression" + ], + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[JavaScript] Interpolated String Template Punctuation Functions", + "scope": "source.js string.quoted.template meta.method-call.with-arguments", + "settings": { + "foreground": "#ECEFF4" + } + }, + { + "name": "[JavaScript] String Template Literal Variable", + "scope": [ + "source.js string.template meta.template.expression support.variable.property", + "source.js string.template meta.template.expression variable.other.object" + ], + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "[JavaScript] Support Type Primitive", + "scope": "source.js support.type.primitive", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[JavaScript] Variable Other Object", + "scope": "source.js variable.other.object", + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "[JavaScript] Variable Other Read-Write Alias", + "scope": "source.js variable.other.readwrite.alias", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[JavaScript] Parentheses in Template Strings", + "scope": [ + "source.js meta.embedded.line meta.brace.square", + "source.js meta.embedded.line meta.brace.round", + /* Required for extension `mgmcdermott.vscode-language-babel`. */ + "source.js string.quoted.template meta.brace.square", + "source.js string.quoted.template meta.brace.round" + ], + "settings": { + "foreground": "#ECEFF4" + } + }, + { + "name": "[HTML] Constant Character Entity", + "scope": "text.html.basic constant.character.entity.html", + "settings": { + "foreground": "#EBCB8B" + } + }, + { + "name": "[HTML] Constant Other Inline-Data", + "scope": "text.html.basic constant.other.inline-data", + "settings": { + "foreground": "#D08770", + "fontStyle": "italic" + } + }, + { + "name": "[HTML] Meta Tag SGML Doctype", + "scope": "text.html.basic meta.tag.sgml.doctype", + "settings": { + "foreground": "#5E81AC" + } + }, + { + "name": "[HTML] Punctuation Definition Entity", + "scope": "text.html.basic punctuation.definition.entity", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[INI] Entity Name Section Group-Title", + "scope": "source.properties entity.name.section.group-title.ini", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[INI] Punctuation Separator Key-Value", + "scope": "source.properties punctuation.separator.key-value.ini", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[Markdown] Markup Fenced Code Block", + "scope": [ + "text.html.markdown markup.fenced_code.block", + "text.html.markdown markup.fenced_code.block punctuation.definition" + ], + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Markdown] Markup Heading", + "scope": "markup.heading", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[Markdown] Markup Inline", + "scope": [ + "text.html.markdown markup.inline.raw", + "text.html.markdown markup.inline.raw punctuation.definition.raw" + ], + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Markdown] Markup Italic", + "scope": "text.html.markdown markup.italic", + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "[Markdown] Markup Link", + "scope": "text.html.markdown markup.underline.link", + "settings": { + "fontStyle": "underline" + } + }, + { + "name": "[Markdown] Markup List Numbered/Unnumbered", + "scope": "text.html.markdown beginning.punctuation.definition.list", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[Markdown] Markup Quote Punctuation Definition", + "scope": "text.html.markdown beginning.punctuation.definition.quote", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Markdown] Markup Quote Punctuation Definition", + "scope": "text.html.markdown markup.quote", + "settings": { + "foreground": "#616E88" + } + }, + { + "name": "[Markdown] Markup Math Constant", + "scope": "text.html.markdown constant.character.math.tex", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[Markdown] Markup Math Definition Marker", + "scope": [ + "text.html.markdown punctuation.definition.math.begin", + "text.html.markdown punctuation.definition.math.end" + ], + "settings": { + "foreground": "#5E81AC" + } + }, + { + "name": "[Markdown] Markup Math Function Definition Marker", + "scope": "text.html.markdown punctuation.definition.function.math.tex", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[Markdown] Markup Math Operator", + "scope": "text.html.markdown punctuation.math.operator.latex", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[Markdown] Punctuation Definition Heading", + "scope": "text.html.markdown punctuation.definition.heading", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[Markdown] Punctuation Definition Constant/String", + "scope": [ + "text.html.markdown punctuation.definition.constant", + "text.html.markdown punctuation.definition.string" + ], + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[Markdown] String Other Link Description/Title", + "scope": [ + "text.html.markdown constant.other.reference.link", + "text.html.markdown string.other.link.description", + "text.html.markdown string.other.link.title" + ], + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[Perl] Perl Sigils", + "scope": "source.perl punctuation.definition.variable", + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "[PHP] Meta Function-Call Object", + "scope": ["source.php meta.function-call", "source.php meta.function-call.object"], + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[Python] Decorator", + "scope": ["source.python entity.name.function.decorator", "source.python meta.function.decorator support.type"], + "settings": { + "foreground": "#D08770" + } + }, + { + "name": "[Python] Function Call", + "scope": "source.python meta.function-call.generic", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[Python] Support Type", + "scope": "source.python support.type", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[Python] Function Parameter", + "scope": ["source.python variable.parameter.function.language"], + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "[Python] Function Parameter Special", + "scope": ["source.python meta.function.parameters variable.parameter.function.language.special.self"], + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[SCSS] Punctuation Definition Interpolation Bracket Curly", + "scope": [ + "source.css.scss punctuation.definition.interpolation.begin.bracket.curly", + "source.css.scss punctuation.definition.interpolation.end.bracket.curly" + ], + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[SCSS] Variable Interpolation", + "scope": "source.css.scss variable.interpolation", + "settings": { + "foreground": "#D8DEE9", + "fontStyle": "italic" + } + }, + { + "name": "[TypeScript] Decorators", + "scope": [ + "source.ts punctuation.decorator", + "source.ts meta.decorator variable.other.readwrite", + "source.ts meta.decorator entity.name.function", + "source.tsx punctuation.decorator", + "source.tsx meta.decorator variable.other.readwrite", + "source.tsx meta.decorator entity.name.function" + ], + "settings": { + "foreground": "#D08770" + } + }, + { + "name": "[TypeScript] Object-literal keys", + "scope": ["source.ts meta.object-literal.key", "source.tsx meta.object-literal.key"], + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "[TypeScript] Object-literal functions", + "scope": [ + "source.ts meta.object-literal.key entity.name.function", + "source.tsx meta.object-literal.key entity.name.function" + ], + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[TypeScript] Type/Class", + "scope": [ + "source.ts support.class", + "source.ts support.type", + "source.ts entity.name.type", + "source.ts entity.name.class", + "source.tsx support.class", + "source.tsx support.type", + "source.tsx entity.name.type", + "source.tsx entity.name.class" + ], + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[TypeScript] Static Class Support", + "scope": [ + "source.ts support.constant.math", + "source.ts support.constant.dom", + "source.ts support.constant.json", + "source.tsx support.constant.math", + "source.tsx support.constant.dom", + "source.tsx support.constant.json" + ], + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[TypeScript] Variables", + "scope": ["source.ts support.variable", "source.tsx support.variable"], + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "[TypeScript] Parentheses in Template Strings", + "scope": [ + "source.ts meta.embedded.line meta.brace.square", + "source.ts meta.embedded.line meta.brace.round", + "source.tsx meta.embedded.line meta.brace.square", + "source.tsx meta.embedded.line meta.brace.round" + ], + "settings": { + "foreground": "#ECEFF4" + } + }, + { + "name": "[XML] Entity Name Tag Namespace", + "scope": "text.xml entity.name.tag.namespace", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[XML] Keyword Other Doctype", + "scope": "text.xml keyword.other.doctype", + "settings": { + "foreground": "#5E81AC" + } + }, + { + "name": "[XML] Meta Tag Preprocessor", + "scope": "text.xml meta.tag.preprocessor entity.name.tag", + "settings": { + "foreground": "#5E81AC" + } + }, + { + "name": "[XML] Entity Name Tag Namespace", + "scope": ["text.xml string.unquoted.cdata", "text.xml string.unquoted.cdata punctuation.definition.string"], + "settings": { + "foreground": "#D08770", + "fontStyle": "italic" + } + }, + { + "name": "[YAML] Entity Name Tag", + "scope": "source.yaml entity.name.tag", + "settings": { + "foreground": "#8FBCBB" + } + } + ] +} From 496518f3e8f8b1be75e7367e3b80ba4ce774496c Mon Sep 17 00:00:00 2001 From: Conrad Irwin Date: Mon, 6 Nov 2023 11:46:10 -0700 Subject: [PATCH 71/76] Use gpui instead of gpui2 consistenytly --- crates/gpui2/src/styled.rs | 2 +- crates/gpui2_macros/src/derive_component.rs | 6 +++--- crates/gpui2_macros/src/style_helpers.rs | 4 ++-- crates/live_kit_client2/Cargo.toml | 6 +++--- crates/live_kit_client2/examples/test_app.rs | 6 +++--- crates/live_kit_client2/src/test.rs | 2 +- crates/storybook2/Cargo.toml | 4 ++-- crates/storybook2/src/assets.rs | 2 +- crates/storybook2/src/stories/colors.rs | 4 ++-- crates/storybook2/src/stories/focus.rs | 4 ++-- crates/storybook2/src/stories/kitchen_sink.rs | 2 +- crates/storybook2/src/stories/scroll.rs | 4 ++-- crates/storybook2/src/stories/text.rs | 4 ++-- crates/storybook2/src/stories/z_index.rs | 2 +- crates/storybook2/src/story_selector.rs | 2 +- crates/storybook2/src/storybook2.rs | 8 ++++---- crates/terminal2/src/mappings/colors.rs | 2 +- crates/ui2/Cargo.toml | 2 +- crates/ui2/docs/hello-world.md | 10 +++++----- crates/ui2/src/components/avatar.rs | 6 +++--- crates/ui2/src/components/button.rs | 4 ++-- crates/ui2/src/components/checkbox.rs | 4 ++-- crates/ui2/src/components/context_menu.rs | 2 +- crates/ui2/src/components/details.rs | 2 +- crates/ui2/src/components/facepile.rs | 2 +- crates/ui2/src/components/icon.rs | 4 ++-- crates/ui2/src/components/icon_button.rs | 2 +- crates/ui2/src/components/indicator.rs | 2 +- crates/ui2/src/components/input.rs | 2 +- crates/ui2/src/components/keybinding.rs | 2 +- crates/ui2/src/components/label.rs | 4 ++-- crates/ui2/src/components/list.rs | 2 +- crates/ui2/src/components/modal.rs | 2 +- crates/ui2/src/components/notification_toast.rs | 2 +- crates/ui2/src/components/palette.rs | 4 ++-- crates/ui2/src/components/panel.rs | 4 ++-- crates/ui2/src/components/player.rs | 2 +- crates/ui2/src/components/slot.rs | 2 +- crates/ui2/src/components/stack.rs | 2 +- crates/ui2/src/components/tab.rs | 2 +- crates/ui2/src/components/toast.rs | 4 ++-- crates/ui2/src/components/toggle.rs | 2 +- crates/ui2/src/components/tooltip.rs | 2 +- crates/ui2/src/prelude.rs | 4 ++-- crates/ui2/src/settings.rs | 2 +- crates/ui2/src/static_data.rs | 2 +- crates/ui2/src/story.rs | 2 +- crates/ui2/src/to_extract/assistant_panel.rs | 4 ++-- crates/ui2/src/to_extract/breadcrumb.rs | 4 ++-- crates/ui2/src/to_extract/buffer.rs | 4 ++-- crates/ui2/src/to_extract/buffer_search.rs | 2 +- crates/ui2/src/to_extract/chat_panel.rs | 2 +- crates/ui2/src/to_extract/collab_panel.rs | 2 +- crates/ui2/src/to_extract/command_palette.rs | 2 +- crates/ui2/src/to_extract/copilot.rs | 2 +- crates/ui2/src/to_extract/editor_pane.rs | 2 +- crates/ui2/src/to_extract/language_selector.rs | 2 +- crates/ui2/src/to_extract/multi_buffer.rs | 2 +- crates/ui2/src/to_extract/notifications_panel.rs | 4 ++-- crates/ui2/src/to_extract/panes.rs | 2 +- crates/ui2/src/to_extract/project_panel.rs | 4 ++-- crates/ui2/src/to_extract/recent_projects.rs | 2 +- crates/ui2/src/to_extract/tab_bar.rs | 4 ++-- crates/ui2/src/to_extract/terminal.rs | 4 ++-- crates/ui2/src/to_extract/theme_selector.rs | 2 +- crates/ui2/src/to_extract/title_bar.rs | 2 +- crates/ui2/src/to_extract/toolbar.rs | 4 ++-- crates/ui2/src/to_extract/traffic_lights.rs | 2 +- crates/ui2/src/to_extract/workspace.rs | 4 ++-- crates/zed2/src/languages/language_plugin.rs | 2 +- test.rs | 6 +++--- 71 files changed, 111 insertions(+), 111 deletions(-) diff --git a/crates/gpui2/src/styled.rs b/crates/gpui2/src/styled.rs index 4a9a5d7ecf..a272ab95b1 100644 --- a/crates/gpui2/src/styled.rs +++ b/crates/gpui2/src/styled.rs @@ -1,5 +1,5 @@ use crate::{ - self as gpui2, hsla, point, px, relative, rems, AlignItems, CursorStyle, DefiniteLength, + self as gpui, hsla, point, px, relative, rems, AlignItems, CursorStyle, DefiniteLength, Display, Fill, FlexDirection, Hsla, JustifyContent, Length, Position, Rems, SharedString, StyleRefinement, Visibility, }; diff --git a/crates/gpui2_macros/src/derive_component.rs b/crates/gpui2_macros/src/derive_component.rs index a946703310..aaf814497a 100644 --- a/crates/gpui2_macros/src/derive_component.rs +++ b/crates/gpui2_macros/src/derive_component.rs @@ -28,9 +28,9 @@ pub fn derive_component(input: TokenStream) -> TokenStream { let (_, ty_generics, _) = ast.generics.split_for_impl(); let expanded = quote! { - impl #impl_generics gpui2::Component<#view_type> for #name #ty_generics #where_clause { - fn render(self) -> gpui2::AnyElement<#view_type> { - (move |view_state: &mut #view_type, cx: &mut gpui2::ViewContext<'_, #view_type>| self.render(view_state, cx)) + impl #impl_generics gpui::Component<#view_type> for #name #ty_generics #where_clause { + fn render(self) -> gpui::AnyElement<#view_type> { + (move |view_state: &mut #view_type, cx: &mut gpui::ViewContext<'_, #view_type>| self.render(view_state, cx)) .render() } } diff --git a/crates/gpui2_macros/src/style_helpers.rs b/crates/gpui2_macros/src/style_helpers.rs index 9e47d85ef1..57aef03afa 100644 --- a/crates/gpui2_macros/src/style_helpers.rs +++ b/crates/gpui2_macros/src/style_helpers.rs @@ -123,7 +123,7 @@ fn generate_predefined_setter( .iter() .map(|field_tokens| { quote! { - style.#field_tokens = Some((#negation_token gpui2::#length_tokens).into()); + style.#field_tokens = Some((#negation_token gpui::#length_tokens).into()); } }) .collect::>(); @@ -163,7 +163,7 @@ fn generate_custom_value_setter( let method = quote! { #[doc = #doc_string] - fn #method_name(mut self, length: impl std::clone::Clone + Into) -> Self where Self: std::marker::Sized { + fn #method_name(mut self, length: impl std::clone::Clone + Into) -> Self where Self: std::marker::Sized { let style = self.style(); #(#field_assignments)* self diff --git a/crates/live_kit_client2/Cargo.toml b/crates/live_kit_client2/Cargo.toml index 5adb711948..b606434b05 100644 --- a/crates/live_kit_client2/Cargo.toml +++ b/crates/live_kit_client2/Cargo.toml @@ -16,14 +16,14 @@ name = "test_app" test-support = [ "async-trait", "collections/test-support", - "gpui2/test-support", + "gpui/test-support", "live_kit_server", "nanoid", ] [dependencies] collections = { path = "../collections", optional = true } -gpui2 = { package = "gpui2", path = "../gpui2", optional = true } +gpui = { package = "gpui2", path = "../gpui2", optional = true } live_kit_server = { path = "../live_kit_server", optional = true } media = { path = "../media" } @@ -41,7 +41,7 @@ nanoid = { version ="0.4", optional = true} [dev-dependencies] collections = { path = "../collections", features = ["test-support"] } -gpui2 = { package = "gpui2", path = "../gpui2", features = ["test-support"] } +gpui = { package = "gpui2", path = "../gpui2", features = ["test-support"] } live_kit_server = { path = "../live_kit_server" } media = { path = "../media" } nanoid = "0.4" diff --git a/crates/live_kit_client2/examples/test_app.rs b/crates/live_kit_client2/examples/test_app.rs index 4062441a06..98302eb35c 100644 --- a/crates/live_kit_client2/examples/test_app.rs +++ b/crates/live_kit_client2/examples/test_app.rs @@ -1,7 +1,7 @@ use std::{sync::Arc, time::Duration}; use futures::StreamExt; -use gpui2::KeyBinding; +use gpui::KeyBinding; use live_kit_client2::{ LocalAudioTrack, LocalVideoTrack, RemoteAudioTrackUpdate, RemoteVideoTrackUpdate, Room, }; @@ -16,7 +16,7 @@ struct Quit; fn main() { SimpleLogger::init(LevelFilter::Info, Default::default()).expect("could not initialize logger"); - gpui2::App::production(Arc::new(())).run(|cx| { + gpui::App::production(Arc::new(())).run(|cx| { #[cfg(any(test, feature = "test-support"))] println!("USING TEST LIVEKIT"); @@ -173,6 +173,6 @@ fn main() { }); } -fn quit(_: &Quit, cx: &mut gpui2::AppContext) { +fn quit(_: &Quit, cx: &mut gpui::AppContext) { cx.quit(); } diff --git a/crates/live_kit_client2/src/test.rs b/crates/live_kit_client2/src/test.rs index 10c97e8d81..6367e53ba8 100644 --- a/crates/live_kit_client2/src/test.rs +++ b/crates/live_kit_client2/src/test.rs @@ -2,7 +2,7 @@ use anyhow::{anyhow, Context, Result}; use async_trait::async_trait; use collections::{BTreeMap, HashMap}; use futures::Stream; -use gpui2::BackgroundExecutor; +use gpui::BackgroundExecutor; use live_kit_server::token; use media::core_video::CVImageBuffer; use parking_lot::Mutex; diff --git a/crates/storybook2/Cargo.toml b/crates/storybook2/Cargo.toml index 0f335ae984..1f3a0b33cc 100644 --- a/crates/storybook2/Cargo.toml +++ b/crates/storybook2/Cargo.toml @@ -14,7 +14,7 @@ anyhow.workspace = true backtrace-on-stack-overflow = "0.3.0" clap = { version = "4.4", features = ["derive", "string"] } chrono = "0.4" -gpui2 = { path = "../gpui2" } +gpui = { package = "gpui2", path = "../gpui2" } itertools = "0.11.0" log.workspace = true rust-embed.workspace = true @@ -29,4 +29,4 @@ ui = { package = "ui2", path = "../ui2", features = ["stories"] } util = { path = "../util" } [dev-dependencies] -gpui2 = { path = "../gpui2", features = ["test-support"] } +gpui = { package = "gpui2", path = "../gpui2", features = ["test-support"] } diff --git a/crates/storybook2/src/assets.rs b/crates/storybook2/src/assets.rs index 3d42984548..9fc71917b4 100644 --- a/crates/storybook2/src/assets.rs +++ b/crates/storybook2/src/assets.rs @@ -1,7 +1,7 @@ use std::borrow::Cow; use anyhow::{anyhow, Result}; -use gpui2::{AssetSource, SharedString}; +use gpui::{AssetSource, SharedString}; use rust_embed::RustEmbed; #[derive(RustEmbed)] diff --git a/crates/storybook2/src/stories/colors.rs b/crates/storybook2/src/stories/colors.rs index c1c65d62fa..13b7b36a8c 100644 --- a/crates/storybook2/src/stories/colors.rs +++ b/crates/storybook2/src/stories/colors.rs @@ -1,5 +1,5 @@ use crate::story::Story; -use gpui2::{px, Div, Render}; +use gpui::{px, Div, Render}; use theme2::{default_color_scales, ColorScaleStep}; use ui::prelude::*; @@ -20,7 +20,7 @@ impl Render for ColorsStory { .flex_col() .gap_1() .overflow_y_scroll() - .text_color(gpui2::white()) + .text_color(gpui::white()) .children(color_scales.into_iter().map(|scale| { div() .flex() diff --git a/crates/storybook2/src/stories/focus.rs b/crates/storybook2/src/stories/focus.rs index aa71040b47..16c03f87d5 100644 --- a/crates/storybook2/src/stories/focus.rs +++ b/crates/storybook2/src/stories/focus.rs @@ -1,4 +1,4 @@ -use gpui2::{ +use gpui::{ div, Div, FocusEnabled, Focusable, KeyBinding, ParentElement, Render, StatefulInteraction, StatelessInteractive, Styled, View, VisualContext, WindowContext, }; @@ -33,7 +33,7 @@ impl FocusStory { impl Render for FocusStory { type Element = Div, FocusEnabled>; - fn render(&mut self, cx: &mut gpui2::ViewContext) -> Self::Element { + fn render(&mut self, cx: &mut gpui::ViewContext) -> Self::Element { let theme = cx.theme(); let color_1 = theme.styles.git.created; let color_2 = theme.styles.git.modified; diff --git a/crates/storybook2/src/stories/kitchen_sink.rs b/crates/storybook2/src/stories/kitchen_sink.rs index cf8277c4f4..54d6f2a3a9 100644 --- a/crates/storybook2/src/stories/kitchen_sink.rs +++ b/crates/storybook2/src/stories/kitchen_sink.rs @@ -1,5 +1,5 @@ use crate::{story::Story, story_selector::ComponentStory}; -use gpui2::{Div, Render, StatefulInteraction, View, VisualContext}; +use gpui::{Div, Render, StatefulInteraction, View, VisualContext}; use strum::IntoEnumIterator; use ui::prelude::*; diff --git a/crates/storybook2/src/stories/scroll.rs b/crates/storybook2/src/stories/scroll.rs index 9236629c34..cdb48603e0 100644 --- a/crates/storybook2/src/stories/scroll.rs +++ b/crates/storybook2/src/stories/scroll.rs @@ -1,4 +1,4 @@ -use gpui2::{ +use gpui::{ div, px, Component, Div, ParentElement, Render, SharedString, StatefulInteraction, Styled, View, VisualContext, WindowContext, }; @@ -15,7 +15,7 @@ impl ScrollStory { impl Render for ScrollStory { type Element = Div>; - fn render(&mut self, cx: &mut gpui2::ViewContext) -> Self::Element { + fn render(&mut self, cx: &mut gpui::ViewContext) -> Self::Element { let theme = cx.theme(); let color_1 = theme.styles.git.created; let color_2 = theme.styles.git.modified; diff --git a/crates/storybook2/src/stories/text.rs b/crates/storybook2/src/stories/text.rs index 85a9fd51a6..b4a4c86e7e 100644 --- a/crates/storybook2/src/stories/text.rs +++ b/crates/storybook2/src/stories/text.rs @@ -1,4 +1,4 @@ -use gpui2::{div, white, Div, ParentElement, Render, Styled, View, VisualContext, WindowContext}; +use gpui::{div, white, Div, ParentElement, Render, Styled, View, VisualContext, WindowContext}; pub struct TextStory; @@ -11,7 +11,7 @@ impl TextStory { impl Render for TextStory { type Element = Div; - fn render(&mut self, cx: &mut gpui2::ViewContext) -> Self::Element { + fn render(&mut self, cx: &mut gpui::ViewContext) -> Self::Element { div().size_full().bg(white()).child(concat!( "The quick brown fox jumps over the lazy dog. ", "Meanwhile, the lazy dog decided it was time for a change. ", diff --git a/crates/storybook2/src/stories/z_index.rs b/crates/storybook2/src/stories/z_index.rs index c0e1456bc0..46ec0f4a35 100644 --- a/crates/storybook2/src/stories/z_index.rs +++ b/crates/storybook2/src/stories/z_index.rs @@ -1,4 +1,4 @@ -use gpui2::{px, rgb, Div, Hsla, Render}; +use gpui::{px, rgb, Div, Hsla, Render}; use ui::prelude::*; use crate::story::Story; diff --git a/crates/storybook2/src/story_selector.rs b/crates/storybook2/src/story_selector.rs index 2adf2956d3..f59208ccb8 100644 --- a/crates/storybook2/src/story_selector.rs +++ b/crates/storybook2/src/story_selector.rs @@ -5,7 +5,7 @@ use crate::stories::*; use anyhow::anyhow; use clap::builder::PossibleValue; use clap::ValueEnum; -use gpui2::{AnyView, VisualContext}; +use gpui::{AnyView, VisualContext}; use strum::{EnumIter, EnumString, IntoEnumIterator}; use ui::prelude::*; use ui::{AvatarStory, ButtonStory, DetailsStory, IconStory, InputStory, LabelStory}; diff --git a/crates/storybook2/src/storybook2.rs b/crates/storybook2/src/storybook2.rs index 4e2c439db0..c8849c1342 100644 --- a/crates/storybook2/src/storybook2.rs +++ b/crates/storybook2/src/storybook2.rs @@ -8,7 +8,7 @@ mod story_selector; use std::sync::Arc; use clap::Parser; -use gpui2::{ +use gpui::{ div, px, size, AnyView, AppContext, Bounds, Div, Render, ViewContext, VisualContext, WindowBounds, WindowOptions, }; @@ -22,7 +22,7 @@ use ui::prelude::*; use crate::assets::Assets; use crate::story_selector::StorySelector; -// gpui2::actions! { +// gpui::actions! { // storybook, // [ToggleInspector] // } @@ -51,7 +51,7 @@ fn main() { let theme_name = args.theme.unwrap_or("Zed Pro Moonlight".to_string()); let asset_source = Arc::new(Assets); - gpui2::App::production(asset_source).run(move |cx| { + gpui::App::production(asset_source).run(move |cx| { load_embedded_fonts(cx).unwrap(); let mut store = SettingsStore::default(); @@ -116,7 +116,7 @@ impl Render for StoryWrapper { } } -fn load_embedded_fonts(cx: &AppContext) -> gpui2::Result<()> { +fn load_embedded_fonts(cx: &AppContext) -> gpui::Result<()> { let font_paths = cx.asset_source().list("fonts")?; let mut embedded_fonts = Vec::new(); for font_path in font_paths { diff --git a/crates/terminal2/src/mappings/colors.rs b/crates/terminal2/src/mappings/colors.rs index fc3557b4e8..d3c8443cbf 100644 --- a/crates/terminal2/src/mappings/colors.rs +++ b/crates/terminal2/src/mappings/colors.rs @@ -1,6 +1,6 @@ // todo!() use alacritty_terminal::term::color::Rgb as AlacRgb; -// use gpui2::color::Color; +// use gpui::color::Color; // use theme2::TerminalStyle; ///Converts a 2, 8, or 24 bit color ANSI color to the GPUI equivalent diff --git a/crates/ui2/Cargo.toml b/crates/ui2/Cargo.toml index f11fd652b6..754bca371f 100644 --- a/crates/ui2/Cargo.toml +++ b/crates/ui2/Cargo.toml @@ -7,7 +7,7 @@ publish = false [dependencies] anyhow.workspace = true chrono = "0.4" -gpui2 = { path = "../gpui2" } +gpui = { package = "gpui2", path = "../gpui2" } itertools = { version = "0.11.0", optional = true } serde.workspace = true settings2 = { path = "../settings2" } diff --git a/crates/ui2/docs/hello-world.md b/crates/ui2/docs/hello-world.md index c6ded9ce34..e8ed3bb944 100644 --- a/crates/ui2/docs/hello-world.md +++ b/crates/ui2/docs/hello-world.md @@ -40,12 +40,12 @@ impl TodoList { All of this is relatively straightforward. -We use [gpui2::SharedString] in components instead of [std::string::String]. This allows us to [TODO: someone who actually knows please explain why we use SharedString]. +We use [gpui::SharedString] in components instead of [std::string::String]. This allows us to [TODO: someone who actually knows please explain why we use SharedString]. When we want to pass an action we pass a `ClickHandler`. Whenever we want to add an action, the struct it belongs to needs to be generic over the view type `V`. ~~~rust -use gpui2::hsla +use gpui::hsla impl TodoList { // ... @@ -74,7 +74,7 @@ As you start using the Tailwind-style conventions you will be surprised how quic **Why `50.0/360.0` in `hsla()`?** -gpui [gpui2::Hsla] use `0.0-1.0` for all it's values, but it is common for tools to use `0-360` for hue. +gpui [gpui::Hsla] use `0.0-1.0` for all it's values, but it is common for tools to use `0-360` for hue. This may change in the future, but this is a little trick that let's you use familiar looking values. @@ -98,7 +98,7 @@ impl TodoList { Now we have access to the complete set of colors defined in the theme. ~~~rust -use gpui2::hsla +use gpui::hsla impl TodoList { // ... @@ -113,7 +113,7 @@ impl TodoList { Let's finish up some basic styles for the container then move on to adding the other elements. ~~~rust -use gpui2::hsla +use gpui::hsla impl TodoList { // ... diff --git a/crates/ui2/src/components/avatar.rs b/crates/ui2/src/components/avatar.rs index ff574a2042..9c993dfc06 100644 --- a/crates/ui2/src/components/avatar.rs +++ b/crates/ui2/src/components/avatar.rs @@ -1,4 +1,4 @@ -use gpui2::img; +use gpui::img; use crate::prelude::*; @@ -33,7 +33,7 @@ impl Avatar { img.uri(self.src.clone()) .size_4() // todo!(Pull the avatar fallback background from the theme.) - .bg(gpui2::red()) + .bg(gpui::red()) } } @@ -44,7 +44,7 @@ pub use stories::*; mod stories { use super::*; use crate::Story; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; pub struct AvatarStory; diff --git a/crates/ui2/src/components/button.rs b/crates/ui2/src/components/button.rs index 178813dd5f..437daaa982 100644 --- a/crates/ui2/src/components/button.rs +++ b/crates/ui2/src/components/button.rs @@ -1,6 +1,6 @@ use std::sync::Arc; -use gpui2::{div, rems, DefiniteLength, Hsla, MouseButton, WindowContext}; +use gpui::{div, rems, DefiniteLength, Hsla, MouseButton, WindowContext}; use crate::{h_stack, Icon, IconColor, IconElement, Label, LabelColor, LineHeightStyle}; use crate::{prelude::*, IconButton}; @@ -234,7 +234,7 @@ pub use stories::*; mod stories { use super::*; use crate::{h_stack, v_stack, LabelColor, Story}; - use gpui2::{rems, Div, Render}; + use gpui::{rems, Div, Render}; use strum::IntoEnumIterator; pub struct ButtonStory; diff --git a/crates/ui2/src/components/checkbox.rs b/crates/ui2/src/components/checkbox.rs index 9632a66810..9f7c10a104 100644 --- a/crates/ui2/src/components/checkbox.rs +++ b/crates/ui2/src/components/checkbox.rs @@ -1,6 +1,6 @@ use std::sync::Arc; -use gpui2::{ +use gpui::{ div, Component, ElementId, ParentElement, StatefulInteractive, StatelessInteractive, Styled, ViewContext, }; @@ -175,7 +175,7 @@ pub use stories::*; mod stories { use super::*; use crate::{h_stack, Story}; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; pub struct CheckboxStory; diff --git a/crates/ui2/src/components/context_menu.rs b/crates/ui2/src/components/context_menu.rs index 87be445c19..117be12779 100644 --- a/crates/ui2/src/components/context_menu.rs +++ b/crates/ui2/src/components/context_menu.rs @@ -65,7 +65,7 @@ pub use stories::*; mod stories { use super::*; use crate::story::Story; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; pub struct ContextMenuStory; diff --git a/crates/ui2/src/components/details.rs b/crates/ui2/src/components/details.rs index 1d22c81774..c7f6cc1839 100644 --- a/crates/ui2/src/components/details.rs +++ b/crates/ui2/src/components/details.rs @@ -47,7 +47,7 @@ pub use stories::*; mod stories { use super::*; use crate::{Button, Story}; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; pub struct DetailsStory; diff --git a/crates/ui2/src/components/facepile.rs b/crates/ui2/src/components/facepile.rs index 21dd848a28..efac4925f8 100644 --- a/crates/ui2/src/components/facepile.rs +++ b/crates/ui2/src/components/facepile.rs @@ -33,7 +33,7 @@ pub use stories::*; mod stories { use super::*; use crate::{static_players, Story}; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; pub struct FacepileStory; diff --git a/crates/ui2/src/components/icon.rs b/crates/ui2/src/components/icon.rs index fa1e1c6315..907f3f9187 100644 --- a/crates/ui2/src/components/icon.rs +++ b/crates/ui2/src/components/icon.rs @@ -1,4 +1,4 @@ -use gpui2::{rems, svg, Hsla}; +use gpui::{rems, svg, Hsla}; use strum::EnumIter; use crate::prelude::*; @@ -204,7 +204,7 @@ pub use stories::*; #[cfg(feature = "stories")] mod stories { - use gpui2::{Div, Render}; + use gpui::{Div, Render}; use strum::IntoEnumIterator; use crate::Story; diff --git a/crates/ui2/src/components/icon_button.rs b/crates/ui2/src/components/icon_button.rs index 8fe1a1fa9b..cb4fb4d7f0 100644 --- a/crates/ui2/src/components/icon_button.rs +++ b/crates/ui2/src/components/icon_button.rs @@ -1,6 +1,6 @@ use std::sync::Arc; -use gpui2::{rems, MouseButton}; +use gpui::{rems, MouseButton}; use crate::{h_stack, prelude::*}; use crate::{ClickHandler, Icon, IconColor, IconElement}; diff --git a/crates/ui2/src/components/indicator.rs b/crates/ui2/src/components/indicator.rs index 94398ab7f6..83030ebbee 100644 --- a/crates/ui2/src/components/indicator.rs +++ b/crates/ui2/src/components/indicator.rs @@ -1,4 +1,4 @@ -use gpui2::px; +use gpui::px; use crate::prelude::*; diff --git a/crates/ui2/src/components/input.rs b/crates/ui2/src/components/input.rs index f288f3ca56..e9f520346c 100644 --- a/crates/ui2/src/components/input.rs +++ b/crates/ui2/src/components/input.rs @@ -111,7 +111,7 @@ pub use stories::*; mod stories { use super::*; use crate::Story; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; pub struct InputStory; diff --git a/crates/ui2/src/components/keybinding.rs b/crates/ui2/src/components/keybinding.rs index 8b8fba8c08..22bbc747a2 100644 --- a/crates/ui2/src/components/keybinding.rs +++ b/crates/ui2/src/components/keybinding.rs @@ -158,7 +158,7 @@ pub use stories::*; mod stories { use super::*; use crate::Story; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; use itertools::Itertools; pub struct KeybindingStory; diff --git a/crates/ui2/src/components/label.rs b/crates/ui2/src/components/label.rs index d1d4d6630c..dd078d2331 100644 --- a/crates/ui2/src/components/label.rs +++ b/crates/ui2/src/components/label.rs @@ -1,4 +1,4 @@ -use gpui2::{relative, rems, Hsla, WindowContext}; +use gpui::{relative, rems, Hsla, WindowContext}; use smallvec::SmallVec; use crate::prelude::*; @@ -194,7 +194,7 @@ pub use stories::*; mod stories { use super::*; use crate::Story; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; pub struct LabelStory; diff --git a/crates/ui2/src/components/list.rs b/crates/ui2/src/components/list.rs index b30beacd98..c11860e9a5 100644 --- a/crates/ui2/src/components/list.rs +++ b/crates/ui2/src/components/list.rs @@ -1,4 +1,4 @@ -use gpui2::div; +use gpui::div; use crate::settings::user_settings; use crate::{ diff --git a/crates/ui2/src/components/modal.rs b/crates/ui2/src/components/modal.rs index 26986474e0..75528b5c34 100644 --- a/crates/ui2/src/components/modal.rs +++ b/crates/ui2/src/components/modal.rs @@ -1,4 +1,4 @@ -use gpui2::AnyElement; +use gpui::AnyElement; use smallvec::SmallVec; use crate::{h_stack, prelude::*, v_stack, Button, Icon, IconButton, Label}; diff --git a/crates/ui2/src/components/notification_toast.rs b/crates/ui2/src/components/notification_toast.rs index e8739b925c..aeb2aa6ed9 100644 --- a/crates/ui2/src/components/notification_toast.rs +++ b/crates/ui2/src/components/notification_toast.rs @@ -1,4 +1,4 @@ -use gpui2::rems; +use gpui::rems; use crate::prelude::*; use crate::{h_stack, Icon}; diff --git a/crates/ui2/src/components/palette.rs b/crates/ui2/src/components/palette.rs index 269b39d86d..7f736433fc 100644 --- a/crates/ui2/src/components/palette.rs +++ b/crates/ui2/src/components/palette.rs @@ -153,13 +153,13 @@ impl PaletteItem { } } -use gpui2::ElementId; +use gpui::ElementId; #[cfg(feature = "stories")] pub use stories::*; #[cfg(feature = "stories")] mod stories { - use gpui2::{Div, Render}; + use gpui::{Div, Render}; use crate::{ModifierKeys, Story}; diff --git a/crates/ui2/src/components/panel.rs b/crates/ui2/src/components/panel.rs index ba88abb337..1762003a2c 100644 --- a/crates/ui2/src/components/panel.rs +++ b/crates/ui2/src/components/panel.rs @@ -1,4 +1,4 @@ -use gpui2::{AbsoluteLength, AnyElement}; +use gpui::{AbsoluteLength, AnyElement}; use smallvec::SmallVec; use crate::prelude::*; @@ -126,7 +126,7 @@ pub use stories::*; mod stories { use super::*; use crate::{Label, Story}; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; pub struct PanelStory; diff --git a/crates/ui2/src/components/player.rs b/crates/ui2/src/components/player.rs index b6c80400cf..dc034a5373 100644 --- a/crates/ui2/src/components/player.rs +++ b/crates/ui2/src/components/player.rs @@ -1,4 +1,4 @@ -use gpui2::{Hsla, ViewContext}; +use gpui::{Hsla, ViewContext}; use crate::prelude::*; diff --git a/crates/ui2/src/components/slot.rs b/crates/ui2/src/components/slot.rs index f980e2fbda..a672694dc5 100644 --- a/crates/ui2/src/components/slot.rs +++ b/crates/ui2/src/components/slot.rs @@ -1,4 +1,4 @@ -use gpui2::SharedString; +use gpui::SharedString; use crate::Icon; diff --git a/crates/ui2/src/components/stack.rs b/crates/ui2/src/components/stack.rs index 1b019ad4d9..d7bd0eb04f 100644 --- a/crates/ui2/src/components/stack.rs +++ b/crates/ui2/src/components/stack.rs @@ -1,4 +1,4 @@ -use gpui2::{div, Div}; +use gpui::{div, Div}; use crate::prelude::*; diff --git a/crates/ui2/src/components/tab.rs b/crates/ui2/src/components/tab.rs index 47de0541f1..416db2d172 100644 --- a/crates/ui2/src/components/tab.rs +++ b/crates/ui2/src/components/tab.rs @@ -1,6 +1,6 @@ use crate::prelude::*; use crate::{Icon, IconColor, IconElement, Label, LabelColor}; -use gpui2::{red, Div, ElementId, Render, View, VisualContext}; +use gpui::{red, Div, ElementId, Render, View, VisualContext}; #[derive(Component, Clone)] pub struct Tab { diff --git a/crates/ui2/src/components/toast.rs b/crates/ui2/src/components/toast.rs index 4ab6625dba..4164be2c3e 100644 --- a/crates/ui2/src/components/toast.rs +++ b/crates/ui2/src/components/toast.rs @@ -1,4 +1,4 @@ -use gpui2::AnyElement; +use gpui::AnyElement; use smallvec::SmallVec; use crate::prelude::*; @@ -70,7 +70,7 @@ pub use stories::*; #[cfg(feature = "stories")] mod stories { - use gpui2::{Div, Render}; + use gpui::{Div, Render}; use crate::{Label, Story}; diff --git a/crates/ui2/src/components/toggle.rs b/crates/ui2/src/components/toggle.rs index adde367581..368c95662f 100644 --- a/crates/ui2/src/components/toggle.rs +++ b/crates/ui2/src/components/toggle.rs @@ -1,4 +1,4 @@ -use gpui2::{div, Component, ParentElement}; +use gpui::{div, Component, ParentElement}; use crate::{Icon, IconColor, IconElement, IconSize}; diff --git a/crates/ui2/src/components/tooltip.rs b/crates/ui2/src/components/tooltip.rs index c05214eea4..8463092012 100644 --- a/crates/ui2/src/components/tooltip.rs +++ b/crates/ui2/src/components/tooltip.rs @@ -1,4 +1,4 @@ -use gpui2::{div, px, Div, ParentElement, Render, SharedString, Styled, ViewContext}; +use gpui::{div, px, Div, ParentElement, Render, SharedString, Styled, ViewContext}; use theme2::ActiveTheme; #[derive(Clone, Debug)] diff --git a/crates/ui2/src/prelude.rs b/crates/ui2/src/prelude.rs index 134b293d3d..c942f0aa3b 100644 --- a/crates/ui2/src/prelude.rs +++ b/crates/ui2/src/prelude.rs @@ -1,4 +1,4 @@ -pub use gpui2::{ +pub use gpui::{ div, Component, Element, ElementId, ParentElement, SharedString, StatefulInteractive, StatelessInteractive, Styled, ViewContext, WindowContext, }; @@ -7,7 +7,7 @@ pub use crate::elevation::*; pub use crate::ButtonVariant; pub use theme2::ActiveTheme; -use gpui2::Hsla; +use gpui::Hsla; use strum::EnumIter; #[derive(Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash, Clone, Copy, EnumIter)] diff --git a/crates/ui2/src/settings.rs b/crates/ui2/src/settings.rs index 6a9426f623..c3ac78316e 100644 --- a/crates/ui2/src/settings.rs +++ b/crates/ui2/src/settings.rs @@ -1,6 +1,6 @@ use std::ops::Deref; -use gpui2::{rems, AbsoluteLength, AppContext, WindowContext}; +use gpui::{rems, AbsoluteLength, AppContext, WindowContext}; use crate::prelude::*; diff --git a/crates/ui2/src/static_data.rs b/crates/ui2/src/static_data.rs index 5342e1fb16..ffdd3fee98 100644 --- a/crates/ui2/src/static_data.rs +++ b/crates/ui2/src/static_data.rs @@ -3,7 +3,7 @@ use std::str::FromStr; use std::sync::Arc; use chrono::DateTime; -use gpui2::{AppContext, ViewContext}; +use gpui::{AppContext, ViewContext}; use rand::Rng; use theme2::ActiveTheme; diff --git a/crates/ui2/src/story.rs b/crates/ui2/src/story.rs index dea4e342b4..94e38267f4 100644 --- a/crates/ui2/src/story.rs +++ b/crates/ui2/src/story.rs @@ -1,4 +1,4 @@ -use gpui2::Div; +use gpui::Div; use crate::prelude::*; diff --git a/crates/ui2/src/to_extract/assistant_panel.rs b/crates/ui2/src/to_extract/assistant_panel.rs index 51c123ad9e..8a35757f5c 100644 --- a/crates/ui2/src/to_extract/assistant_panel.rs +++ b/crates/ui2/src/to_extract/assistant_panel.rs @@ -1,6 +1,6 @@ use crate::prelude::*; use crate::{Icon, IconButton, Label, Panel, PanelSide}; -use gpui2::{rems, AbsoluteLength}; +use gpui::{rems, AbsoluteLength}; #[derive(Component)] pub struct AssistantPanel { @@ -77,7 +77,7 @@ pub use stories::*; mod stories { use super::*; use crate::Story; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; pub struct AssistantPanelStory; impl Render for AssistantPanelStory { diff --git a/crates/ui2/src/to_extract/breadcrumb.rs b/crates/ui2/src/to_extract/breadcrumb.rs index 163dfabfb0..cd7df87646 100644 --- a/crates/ui2/src/to_extract/breadcrumb.rs +++ b/crates/ui2/src/to_extract/breadcrumb.rs @@ -2,7 +2,7 @@ use std::path::PathBuf; use crate::prelude::*; use crate::{h_stack, HighlightedText}; -use gpui2::Div; +use gpui::Div; #[derive(Clone)] pub struct Symbol(pub Vec); @@ -73,7 +73,7 @@ pub use stories::*; mod stories { use super::*; use crate::Story; - use gpui2::Render; + use gpui::Render; use std::str::FromStr; pub struct BreadcrumbStory; diff --git a/crates/ui2/src/to_extract/buffer.rs b/crates/ui2/src/to_extract/buffer.rs index e12beff2fc..8ab435e994 100644 --- a/crates/ui2/src/to_extract/buffer.rs +++ b/crates/ui2/src/to_extract/buffer.rs @@ -1,4 +1,4 @@ -use gpui2::{Hsla, WindowContext}; +use gpui::{Hsla, WindowContext}; use crate::prelude::*; use crate::{h_stack, v_stack, Icon, IconElement}; @@ -235,7 +235,7 @@ mod stories { empty_buffer_example, hello_world_rust_buffer_example, hello_world_rust_buffer_with_status_example, Story, }; - use gpui2::{rems, Div, Render}; + use gpui::{rems, Div, Render}; pub struct BufferStory; diff --git a/crates/ui2/src/to_extract/buffer_search.rs b/crates/ui2/src/to_extract/buffer_search.rs index 02f689ca3e..9993cd3612 100644 --- a/crates/ui2/src/to_extract/buffer_search.rs +++ b/crates/ui2/src/to_extract/buffer_search.rs @@ -1,4 +1,4 @@ -use gpui2::{Div, Render, View, VisualContext}; +use gpui::{Div, Render, View, VisualContext}; use crate::prelude::*; use crate::{h_stack, Icon, IconButton, IconColor, Input}; diff --git a/crates/ui2/src/to_extract/chat_panel.rs b/crates/ui2/src/to_extract/chat_panel.rs index f4f1ddf433..538b5dfceb 100644 --- a/crates/ui2/src/to_extract/chat_panel.rs +++ b/crates/ui2/src/to_extract/chat_panel.rs @@ -108,7 +108,7 @@ pub use stories::*; #[cfg(feature = "stories")] mod stories { use chrono::DateTime; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; use crate::{Panel, Story}; diff --git a/crates/ui2/src/to_extract/collab_panel.rs b/crates/ui2/src/to_extract/collab_panel.rs index 9d9dc861e2..7b785ae9e1 100644 --- a/crates/ui2/src/to_extract/collab_panel.rs +++ b/crates/ui2/src/to_extract/collab_panel.rs @@ -92,7 +92,7 @@ pub use stories::*; mod stories { use super::*; use crate::Story; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; pub struct CollabPanelStory; diff --git a/crates/ui2/src/to_extract/command_palette.rs b/crates/ui2/src/to_extract/command_palette.rs index 63db4359e7..8a9461c796 100644 --- a/crates/ui2/src/to_extract/command_palette.rs +++ b/crates/ui2/src/to_extract/command_palette.rs @@ -27,7 +27,7 @@ pub use stories::*; #[cfg(feature = "stories")] mod stories { - use gpui2::{Div, Render}; + use gpui::{Div, Render}; use crate::Story; diff --git a/crates/ui2/src/to_extract/copilot.rs b/crates/ui2/src/to_extract/copilot.rs index 51523d48f0..8750ab3c51 100644 --- a/crates/ui2/src/to_extract/copilot.rs +++ b/crates/ui2/src/to_extract/copilot.rs @@ -25,7 +25,7 @@ pub use stories::*; #[cfg(feature = "stories")] mod stories { - use gpui2::{Div, Render}; + use gpui::{Div, Render}; use crate::Story; diff --git a/crates/ui2/src/to_extract/editor_pane.rs b/crates/ui2/src/to_extract/editor_pane.rs index 8e54d2c2e8..fd21e81242 100644 --- a/crates/ui2/src/to_extract/editor_pane.rs +++ b/crates/ui2/src/to_extract/editor_pane.rs @@ -1,6 +1,6 @@ use std::path::PathBuf; -use gpui2::{Div, Render, View, VisualContext}; +use gpui::{Div, Render, View, VisualContext}; use crate::prelude::*; use crate::{ diff --git a/crates/ui2/src/to_extract/language_selector.rs b/crates/ui2/src/to_extract/language_selector.rs index fa7f5b2bd7..694ca78e9c 100644 --- a/crates/ui2/src/to_extract/language_selector.rs +++ b/crates/ui2/src/to_extract/language_selector.rs @@ -40,7 +40,7 @@ pub use stories::*; mod stories { use super::*; use crate::Story; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; pub struct LanguageSelectorStory; diff --git a/crates/ui2/src/to_extract/multi_buffer.rs b/crates/ui2/src/to_extract/multi_buffer.rs index 1334703015..78a22d51d0 100644 --- a/crates/ui2/src/to_extract/multi_buffer.rs +++ b/crates/ui2/src/to_extract/multi_buffer.rs @@ -40,7 +40,7 @@ pub use stories::*; mod stories { use super::*; use crate::{hello_world_rust_buffer_example, Story}; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; pub struct MultiBufferStory; diff --git a/crates/ui2/src/to_extract/notifications_panel.rs b/crates/ui2/src/to_extract/notifications_panel.rs index 84794b71b2..b2cc4a7846 100644 --- a/crates/ui2/src/to_extract/notifications_panel.rs +++ b/crates/ui2/src/to_extract/notifications_panel.rs @@ -345,7 +345,7 @@ impl Notification { } use chrono::NaiveDateTime; -use gpui2::{px, Styled}; +use gpui::{px, Styled}; #[cfg(feature = "stories")] pub use stories::*; @@ -353,7 +353,7 @@ pub use stories::*; mod stories { use super::*; use crate::{Panel, Story}; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; pub struct NotificationsPanelStory; diff --git a/crates/ui2/src/to_extract/panes.rs b/crates/ui2/src/to_extract/panes.rs index a1e040b0ca..b57b77d5ee 100644 --- a/crates/ui2/src/to_extract/panes.rs +++ b/crates/ui2/src/to_extract/panes.rs @@ -1,4 +1,4 @@ -use gpui2::{hsla, red, AnyElement, ElementId, ExternalPaths, Hsla, Length, Size, View}; +use gpui::{hsla, red, AnyElement, ElementId, ExternalPaths, Hsla, Length, Size, View}; use smallvec::SmallVec; use crate::prelude::*; diff --git a/crates/ui2/src/to_extract/project_panel.rs b/crates/ui2/src/to_extract/project_panel.rs index a34a30bcbc..d4f5c72426 100644 --- a/crates/ui2/src/to_extract/project_panel.rs +++ b/crates/ui2/src/to_extract/project_panel.rs @@ -46,7 +46,7 @@ impl ProjectPanel { } } -use gpui2::ElementId; +use gpui::ElementId; #[cfg(feature = "stories")] pub use stories::*; @@ -54,7 +54,7 @@ pub use stories::*; mod stories { use super::*; use crate::{Panel, Story}; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; pub struct ProjectPanelStory; diff --git a/crates/ui2/src/to_extract/recent_projects.rs b/crates/ui2/src/to_extract/recent_projects.rs index d5a9dd1b22..3d4f551490 100644 --- a/crates/ui2/src/to_extract/recent_projects.rs +++ b/crates/ui2/src/to_extract/recent_projects.rs @@ -36,7 +36,7 @@ pub use stories::*; mod stories { use super::*; use crate::Story; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; pub struct RecentProjectsStory; diff --git a/crates/ui2/src/to_extract/tab_bar.rs b/crates/ui2/src/to_extract/tab_bar.rs index a128044183..aff095c639 100644 --- a/crates/ui2/src/to_extract/tab_bar.rs +++ b/crates/ui2/src/to_extract/tab_bar.rs @@ -92,7 +92,7 @@ impl TabBar { } } -use gpui2::ElementId; +use gpui::ElementId; #[cfg(feature = "stories")] pub use stories::*; @@ -100,7 +100,7 @@ pub use stories::*; mod stories { use super::*; use crate::Story; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; pub struct TabBarStory; diff --git a/crates/ui2/src/to_extract/terminal.rs b/crates/ui2/src/to_extract/terminal.rs index b912a59607..6c36f35152 100644 --- a/crates/ui2/src/to_extract/terminal.rs +++ b/crates/ui2/src/to_extract/terminal.rs @@ -1,4 +1,4 @@ -use gpui2::{relative, rems, Size}; +use gpui::{relative, rems, Size}; use crate::prelude::*; use crate::{Icon, IconButton, Pane, Tab}; @@ -83,7 +83,7 @@ pub use stories::*; mod stories { use super::*; use crate::Story; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; pub struct TerminalStory; impl Render for TerminalStory { diff --git a/crates/ui2/src/to_extract/theme_selector.rs b/crates/ui2/src/to_extract/theme_selector.rs index 5c67f1cd3e..7f911b50bf 100644 --- a/crates/ui2/src/to_extract/theme_selector.rs +++ b/crates/ui2/src/to_extract/theme_selector.rs @@ -39,7 +39,7 @@ pub use stories::*; #[cfg(feature = "stories")] mod stories { - use gpui2::{Div, Render}; + use gpui::{Div, Render}; use crate::Story; diff --git a/crates/ui2/src/to_extract/title_bar.rs b/crates/ui2/src/to_extract/title_bar.rs index 2fa201440a..87d7dd4146 100644 --- a/crates/ui2/src/to_extract/title_bar.rs +++ b/crates/ui2/src/to_extract/title_bar.rs @@ -1,7 +1,7 @@ use std::sync::atomic::AtomicBool; use std::sync::Arc; -use gpui2::{Div, Render, View, VisualContext}; +use gpui::{Div, Render, View, VisualContext}; use crate::prelude::*; use crate::settings::user_settings; diff --git a/crates/ui2/src/to_extract/toolbar.rs b/crates/ui2/src/to_extract/toolbar.rs index 0e3e7c259f..81918f34a7 100644 --- a/crates/ui2/src/to_extract/toolbar.rs +++ b/crates/ui2/src/to_extract/toolbar.rs @@ -1,4 +1,4 @@ -use gpui2::AnyElement; +use gpui::AnyElement; use smallvec::SmallVec; use crate::prelude::*; @@ -73,7 +73,7 @@ mod stories { use std::path::PathBuf; use std::str::FromStr; - use gpui2::{Div, Render}; + use gpui::{Div, Render}; use crate::{Breadcrumb, HighlightedText, Icon, IconButton, Story, Symbol}; diff --git a/crates/ui2/src/to_extract/traffic_lights.rs b/crates/ui2/src/to_extract/traffic_lights.rs index 677fae886c..245ff377f2 100644 --- a/crates/ui2/src/to_extract/traffic_lights.rs +++ b/crates/ui2/src/to_extract/traffic_lights.rs @@ -77,7 +77,7 @@ pub use stories::*; #[cfg(feature = "stories")] mod stories { - use gpui2::{Div, Render}; + use gpui::{Div, Render}; use crate::Story; diff --git a/crates/ui2/src/to_extract/workspace.rs b/crates/ui2/src/to_extract/workspace.rs index 77b9bc4539..d6de8a8288 100644 --- a/crates/ui2/src/to_extract/workspace.rs +++ b/crates/ui2/src/to_extract/workspace.rs @@ -1,7 +1,7 @@ use std::sync::Arc; use chrono::DateTime; -use gpui2::{px, relative, Div, Render, Size, View, VisualContext}; +use gpui::{px, relative, Div, Render, Size, View, VisualContext}; use settings2::Settings; use theme2::ThemeSettings; @@ -373,7 +373,7 @@ pub use stories::*; #[cfg(feature = "stories")] mod stories { use super::*; - use gpui2::VisualContext; + use gpui::VisualContext; pub struct WorkspaceStory { workspace: View, diff --git a/crates/zed2/src/languages/language_plugin.rs b/crates/zed2/src/languages/language_plugin.rs index a160cca228..968cc819fd 100644 --- a/crates/zed2/src/languages/language_plugin.rs +++ b/crates/zed2/src/languages/language_plugin.rs @@ -2,7 +2,7 @@ use anyhow::{anyhow, Result}; use async_trait::async_trait; use collections::HashMap; use futures::lock::Mutex; -use gpui2::executor::Background; +use gpui::executor::Background; use language2::{LanguageServerName, LspAdapter, LspAdapterDelegate}; use lsp2::LanguageServerBinary; use plugin_runtime::{Plugin, PluginBinary, PluginBuilder, WasiFn}; diff --git a/test.rs b/test.rs index 6553e633c8..4a7b9faa8f 100644 --- a/test.rs +++ b/test.rs @@ -410,7 +410,7 @@ mod components { themes::rose_pine, }; use gpui::{platform::MouseButton, ViewContext}; - use gpui2_macros::Element; + use gpui_macros::Element; use std::{marker::PhantomData, rc::Rc}; struct ButtonHandlers { click: Option)>>, @@ -535,7 +535,7 @@ mod element { platform::{MouseButton, MouseButtonEvent}, EngineLayout, EventContext, RenderContext, ViewContext, }; - use gpui2_macros::tailwind_lengths; + use gpui_macros::tailwind_lengths; use std::{ any::{Any, TypeId}, cell::Cell, @@ -4572,7 +4572,7 @@ mod frame { }; use anyhow::{anyhow, Result}; use gpui::LayoutNodeId; - use gpui2_macros::IntoElement; + use gpui_macros::IntoElement; #[element_crate = "crate"] pub struct Frame { style: OptionalStyle, From c47c64184c20fda23fc8ea8b23520df4a906e58f Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Mon, 6 Nov 2023 14:54:21 -0500 Subject: [PATCH 72/76] Add additional themes, update theme importer --- assets/themes/src/vscode/nord/nord.json | 2711 ++++++++++---------- crates/theme2/src/registry.rs | 7 +- crates/theme2/src/themes/.gitkeep | 0 crates/theme2/src/themes/andromeda.rs | 4 +- crates/theme2/src/themes/ayu.rs | 4 +- crates/theme2/src/themes/dracula.rs | 4 +- crates/theme2/src/themes/gruvbox.rs | 4 +- crates/theme2/src/themes/mod.rs | 23 +- crates/theme2/src/themes/nord.rs | 18 + crates/theme2/src/themes/notctis.rs | 4 +- crates/theme_importer/src/main.rs | 73 +- crates/theme_importer/src/theme_printer.rs | 2 + crates/theme_importer/src/vscode.rs | 8 + 13 files changed, 1479 insertions(+), 1383 deletions(-) delete mode 100644 crates/theme2/src/themes/.gitkeep create mode 100644 crates/theme2/src/themes/nord.rs diff --git a/assets/themes/src/vscode/nord/nord.json b/assets/themes/src/vscode/nord/nord.json index 480bf9abe0..bb300297c1 100644 --- a/assets/themes/src/vscode/nord/nord.json +++ b/assets/themes/src/vscode/nord/nord.json @@ -1,1353 +1,1368 @@ { - "name": "Nord", - "type": "dark", - "semanticHighlighting": true, - "colors": { - "focusBorder": "#3b4252", - "foreground": "#d8dee9", - "activityBar.background": "#2e3440", - "activityBar.dropBackground": "#3b4252", - "activityBar.foreground": "#d8dee9", - "activityBar.activeBorder": "#88c0d0", - "activityBar.activeBackground": "#3b4252", - "activityBarBadge.background": "#88c0d0", - "activityBarBadge.foreground": "#2e3440", - "badge.foreground": "#2e3440", - "badge.background": "#88c0d0", - "button.background": "#88c0d0ee", - "button.foreground": "#2e3440", - "button.hoverBackground": "#88c0d0", - "button.secondaryBackground": "#434c5e", - "button.secondaryForeground": "#d8dee9", - "button.secondaryHoverBackground": "#4c566a", - "charts.red": "#bf616a", - "charts.blue": "#81a1c1", - "charts.yellow": "#ebcb8b", - "charts.orange": "#d08770", - "charts.green": "#a3be8c", - "charts.purple": "#b48ead", - "charts.foreground": "#d8dee9", - "charts.lines": "#88c0d0", - "debugConsole.infoForeground": "#88c0d0", - "debugConsole.warningForeground": "#ebcb8b", - "debugConsole.errorForeground": "#bf616a", - "debugConsole.sourceForeground": "#616e88", - "debugConsoleInputIcon.foreground": "#81a1c1", - "debugExceptionWidget.background": "#4c566a", - "debugExceptionWidget.border": "#2e3440", - "debugToolBar.background": "#3b4252", - "descriptionForeground": "#d8dee9e6", - "diffEditor.insertedTextBackground": "#81a1c133", - "diffEditor.removedTextBackground": "#bf616a4d", - "dropdown.background": "#3b4252", - "dropdown.border": "#3b4252", - "dropdown.foreground": "#d8dee9", - "editorActiveLineNumber.foreground": "#d8dee9cc", - "editorCursor.foreground": "#d8dee9", - "editorHint.border": "#ebcb8b00", - "editorHint.foreground": "#ebcb8b", - "editorIndentGuide.background": "#434c5eb3", - "editorIndentGuide.activeBackground": "#4c566a", - "editorInlayHint.background": "#434c5e", - "editorInlayHint.foreground": "#d8dee9", - "editorLineNumber.foreground": "#4c566a", - "editorLineNumber.activeForeground": "#d8dee9", - "editorWhitespace.foreground": "#4c566ab3", - "editorWidget.background": "#2e3440", - "editorWidget.border": "#3b4252", - "editor.background": "#2e3440", - "editor.foreground": "#d8dee9", - "editor.hoverHighlightBackground": "#3b4252", - "editor.findMatchBackground": "#88c0d066", - "editor.findMatchHighlightBackground": "#88c0d033", - "editor.findRangeHighlightBackground": "#88c0d033", - "editor.lineHighlightBackground": "#3b4252", - "editor.lineHighlightBorder": "#3b4252", - "editor.inactiveSelectionBackground": "#434c5ecc", - "editor.inlineValuesBackground": "#4c566a", - "editor.inlineValuesForeground": "#eceff4", - "editor.selectionBackground": "#434c5ecc", - "editor.selectionHighlightBackground": "#434c5ecc", - "editor.rangeHighlightBackground": "#434c5e52", - "editor.wordHighlightBackground": "#81a1c166", - "editor.wordHighlightStrongBackground": "#81a1c199", - "editor.stackFrameHighlightBackground": "#5e81ac", - "editor.focusedStackFrameHighlightBackground": "#5e81ac", - "editorError.foreground": "#bf616a", - "editorError.border": "#bf616a00", - "editorWarning.foreground": "#ebcb8b", - "editorWarning.border": "#ebcb8b00", - "editorBracketMatch.background": "#2e344000", - "editorBracketMatch.border": "#88c0d0", - "editorBracketHighlight.foreground1": "#8fbcbb", - "editorBracketHighlight.foreground2": "#88c0d0", - "editorBracketHighlight.foreground3": "#81a1c1", - "editorBracketHighlight.foreground4": "#5e81ac", - "editorBracketHighlight.foreground5": "#8fbcbb", - "editorBracketHighlight.foreground6": "#88c0d0", - "editorBracketHighlight.unexpectedBracket.foreground": "#bf616a", - "editorCodeLens.foreground": "#4c566a", - "editorGroup.background": "#2e3440", - "editorGroup.border": "#3b425201", - "editorGroup.dropBackground": "#3b425299", - "editorGroupHeader.border": "#3b425200", - "editorGroupHeader.noTabsBackground": "#2e3440", - "editorGroupHeader.tabsBackground": "#2e3440", - "editorGroupHeader.tabsBorder": "#3b425200", - "editorGutter.background": "#2e3440", - "editorGutter.modifiedBackground": "#ebcb8b", - "editorGutter.addedBackground": "#a3be8c", - "editorGutter.deletedBackground": "#bf616a", - "editorHoverWidget.background": "#3b4252", - "editorHoverWidget.border": "#3b4252", - "editorLink.activeForeground": "#88c0d0", - "editorMarkerNavigation.background": "#5e81acc0", - "editorMarkerNavigationError.background": "#bf616ac0", - "editorMarkerNavigationWarning.background": "#ebcb8bc0", - "editorOverviewRuler.border": "#3b4252", - "editorOverviewRuler.currentContentForeground": "#3b4252", - "editorOverviewRuler.incomingContentForeground": "#3b4252", - "editorOverviewRuler.findMatchForeground": "#88c0d066", - "editorOverviewRuler.rangeHighlightForeground": "#88c0d066", - "editorOverviewRuler.selectionHighlightForeground": "#88c0d066", - "editorOverviewRuler.wordHighlightForeground": "#88c0d066", - "editorOverviewRuler.wordHighlightStrongForeground": "#88c0d066", - "editorOverviewRuler.modifiedForeground": "#ebcb8b", - "editorOverviewRuler.addedForeground": "#a3be8c", - "editorOverviewRuler.deletedForeground": "#bf616a", - "editorOverviewRuler.errorForeground": "#bf616a", - "editorOverviewRuler.warningForeground": "#ebcb8b", - "editorOverviewRuler.infoForeground": "#81a1c1", - "editorRuler.foreground": "#434c5e", - "editorSuggestWidget.background": "#2e3440", - "editorSuggestWidget.border": "#3b4252", - "editorSuggestWidget.foreground": "#d8dee9", - "editorSuggestWidget.focusHighlightForeground": "#88c0d0", - "editorSuggestWidget.highlightForeground": "#88c0d0", - "editorSuggestWidget.selectedBackground": "#434c5e", - "editorSuggestWidget.selectedForeground": "#d8dee9", - "extensionButton.prominentForeground": "#d8dee9", - "extensionButton.prominentBackground": "#434c5e", - "extensionButton.prominentHoverBackground": "#4c566a", - "errorForeground": "#bf616a", - "gitDecoration.modifiedResourceForeground": "#ebcb8b", - "gitDecoration.deletedResourceForeground": "#bf616a", - "gitDecoration.untrackedResourceForeground": "#a3be8c", - "gitDecoration.ignoredResourceForeground": "#d8dee966", - "gitDecoration.conflictingResourceForeground": "#5e81ac", - "gitDecoration.submoduleResourceForeground": "#8fbcbb", - "gitDecoration.stageDeletedResourceForeground": "#bf616a", - "gitDecoration.stageModifiedResourceForeground": "#ebcb8b", - "input.background": "#3b4252", - "input.foreground": "#d8dee9", - "input.placeholderForeground": "#d8dee999", - "input.border": "#3b4252", - "inputOption.activeBackground": "#5e81ac", - "inputOption.activeBorder": "#5e81ac", - "inputOption.activeForeground": "#eceff4", - "inputValidation.errorBackground": "#bf616a", - "inputValidation.errorBorder": "#bf616a", - "inputValidation.infoBackground": "#81a1c1", - "inputValidation.infoBorder": "#81a1c1", - "inputValidation.warningBackground": "#d08770", - "inputValidation.warningBorder": "#d08770", - "keybindingLabel.background": "#4c566a", - "keybindingLabel.border": "#4c566a", - "keybindingLabel.bottomBorder": "#4c566a", - "keybindingLabel.foreground": "#d8dee9", - "list.activeSelectionBackground": "#88c0d0", - "list.activeSelectionForeground": "#2e3440", - "list.inactiveSelectionBackground": "#434c5e", - "list.inactiveSelectionForeground": "#d8dee9", - "list.inactiveFocusBackground": "#434c5ecc", - "list.hoverForeground": "#eceff4", - "list.focusForeground": "#d8dee9", - "list.focusBackground": "#88c0d099", - "list.focusHighlightForeground": "#eceff4", - "list.hoverBackground": "#3b4252", - "list.dropBackground": "#88c0d099", - "list.highlightForeground": "#88c0d0", - "list.errorForeground": "#bf616a", - "list.warningForeground": "#ebcb8b", - "merge.currentHeaderBackground": "#81a1c166", - "merge.currentContentBackground": "#81a1c14d", - "merge.incomingHeaderBackground": "#8fbcbb66", - "merge.incomingContentBackground": "#8fbcbb4d", - "merge.border": "#3b425200", - "minimap.background": "#2e3440", - "minimap.errorHighlight": "#bf616acc", - "minimap.findMatchHighlight": "#88c0d0", - "minimap.selectionHighlight": "#88c0d0cc", - "minimap.warningHighlight": "#ebcb8bcc", - "minimapGutter.addedBackground": "#a3be8c", - "minimapGutter.deletedBackground": "#bf616a", - "minimapGutter.modifiedBackground": "#ebcb8b", - "minimapSlider.activeBackground": "#434c5eaa", - "minimapSlider.background": "#434c5e99", - "minimapSlider.hoverBackground": "#434c5eaa", + "name": "Nord", + "type": "dark", + "semanticHighlighting": true, + "colors": { + "focusBorder": "#3b4252", + "foreground": "#d8dee9", + "activityBar.background": "#2e3440", + "activityBar.dropBackground": "#3b4252", + "activityBar.foreground": "#d8dee9", + "activityBar.activeBorder": "#88c0d0", + "activityBar.activeBackground": "#3b4252", + "activityBarBadge.background": "#88c0d0", + "activityBarBadge.foreground": "#2e3440", + "badge.foreground": "#2e3440", + "badge.background": "#88c0d0", + "button.background": "#88c0d0ee", + "button.foreground": "#2e3440", + "button.hoverBackground": "#88c0d0", + "button.secondaryBackground": "#434c5e", + "button.secondaryForeground": "#d8dee9", + "button.secondaryHoverBackground": "#4c566a", + "charts.red": "#bf616a", + "charts.blue": "#81a1c1", + "charts.yellow": "#ebcb8b", + "charts.orange": "#d08770", + "charts.green": "#a3be8c", + "charts.purple": "#b48ead", + "charts.foreground": "#d8dee9", + "charts.lines": "#88c0d0", + "debugConsole.infoForeground": "#88c0d0", + "debugConsole.warningForeground": "#ebcb8b", + "debugConsole.errorForeground": "#bf616a", + "debugConsole.sourceForeground": "#616e88", + "debugConsoleInputIcon.foreground": "#81a1c1", + "debugExceptionWidget.background": "#4c566a", + "debugExceptionWidget.border": "#2e3440", + "debugToolBar.background": "#3b4252", + "descriptionForeground": "#d8dee9e6", + "diffEditor.insertedTextBackground": "#81a1c133", + "diffEditor.removedTextBackground": "#bf616a4d", + "dropdown.background": "#3b4252", + "dropdown.border": "#3b4252", + "dropdown.foreground": "#d8dee9", + "editorActiveLineNumber.foreground": "#d8dee9cc", + "editorCursor.foreground": "#d8dee9", + "editorHint.border": "#ebcb8b00", + "editorHint.foreground": "#ebcb8b", + "editorIndentGuide.background": "#434c5eb3", + "editorIndentGuide.activeBackground": "#4c566a", + "editorInlayHint.background": "#434c5e", + "editorInlayHint.foreground": "#d8dee9", + "editorLineNumber.foreground": "#4c566a", + "editorLineNumber.activeForeground": "#d8dee9", + "editorWhitespace.foreground": "#4c566ab3", + "editorWidget.background": "#2e3440", + "editorWidget.border": "#3b4252", + "editor.background": "#2e3440", + "editor.foreground": "#d8dee9", + "editor.hoverHighlightBackground": "#3b4252", + "editor.findMatchBackground": "#88c0d066", + "editor.findMatchHighlightBackground": "#88c0d033", + "editor.findRangeHighlightBackground": "#88c0d033", + "editor.lineHighlightBackground": "#3b4252", + "editor.lineHighlightBorder": "#3b4252", + "editor.inactiveSelectionBackground": "#434c5ecc", + "editor.inlineValuesBackground": "#4c566a", + "editor.inlineValuesForeground": "#eceff4", + "editor.selectionBackground": "#434c5ecc", + "editor.selectionHighlightBackground": "#434c5ecc", + "editor.rangeHighlightBackground": "#434c5e52", + "editor.wordHighlightBackground": "#81a1c166", + "editor.wordHighlightStrongBackground": "#81a1c199", + "editor.stackFrameHighlightBackground": "#5e81ac", + "editor.focusedStackFrameHighlightBackground": "#5e81ac", + "editorError.foreground": "#bf616a", + "editorError.border": "#bf616a00", + "editorWarning.foreground": "#ebcb8b", + "editorWarning.border": "#ebcb8b00", + "editorBracketMatch.background": "#2e344000", + "editorBracketMatch.border": "#88c0d0", + "editorBracketHighlight.foreground1": "#8fbcbb", + "editorBracketHighlight.foreground2": "#88c0d0", + "editorBracketHighlight.foreground3": "#81a1c1", + "editorBracketHighlight.foreground4": "#5e81ac", + "editorBracketHighlight.foreground5": "#8fbcbb", + "editorBracketHighlight.foreground6": "#88c0d0", + "editorBracketHighlight.unexpectedBracket.foreground": "#bf616a", + "editorCodeLens.foreground": "#4c566a", + "editorGroup.background": "#2e3440", + "editorGroup.border": "#3b425201", + "editorGroup.dropBackground": "#3b425299", + "editorGroupHeader.border": "#3b425200", + "editorGroupHeader.noTabsBackground": "#2e3440", + "editorGroupHeader.tabsBackground": "#2e3440", + "editorGroupHeader.tabsBorder": "#3b425200", + "editorGutter.background": "#2e3440", + "editorGutter.modifiedBackground": "#ebcb8b", + "editorGutter.addedBackground": "#a3be8c", + "editorGutter.deletedBackground": "#bf616a", + "editorHoverWidget.background": "#3b4252", + "editorHoverWidget.border": "#3b4252", + "editorLink.activeForeground": "#88c0d0", + "editorMarkerNavigation.background": "#5e81acc0", + "editorMarkerNavigationError.background": "#bf616ac0", + "editorMarkerNavigationWarning.background": "#ebcb8bc0", + "editorOverviewRuler.border": "#3b4252", + "editorOverviewRuler.currentContentForeground": "#3b4252", + "editorOverviewRuler.incomingContentForeground": "#3b4252", + "editorOverviewRuler.findMatchForeground": "#88c0d066", + "editorOverviewRuler.rangeHighlightForeground": "#88c0d066", + "editorOverviewRuler.selectionHighlightForeground": "#88c0d066", + "editorOverviewRuler.wordHighlightForeground": "#88c0d066", + "editorOverviewRuler.wordHighlightStrongForeground": "#88c0d066", + "editorOverviewRuler.modifiedForeground": "#ebcb8b", + "editorOverviewRuler.addedForeground": "#a3be8c", + "editorOverviewRuler.deletedForeground": "#bf616a", + "editorOverviewRuler.errorForeground": "#bf616a", + "editorOverviewRuler.warningForeground": "#ebcb8b", + "editorOverviewRuler.infoForeground": "#81a1c1", + "editorRuler.foreground": "#434c5e", + "editorSuggestWidget.background": "#2e3440", + "editorSuggestWidget.border": "#3b4252", + "editorSuggestWidget.foreground": "#d8dee9", + "editorSuggestWidget.focusHighlightForeground": "#88c0d0", + "editorSuggestWidget.highlightForeground": "#88c0d0", + "editorSuggestWidget.selectedBackground": "#434c5e", + "editorSuggestWidget.selectedForeground": "#d8dee9", + "extensionButton.prominentForeground": "#d8dee9", + "extensionButton.prominentBackground": "#434c5e", + "extensionButton.prominentHoverBackground": "#4c566a", + "errorForeground": "#bf616a", + "gitDecoration.modifiedResourceForeground": "#ebcb8b", + "gitDecoration.deletedResourceForeground": "#bf616a", + "gitDecoration.untrackedResourceForeground": "#a3be8c", + "gitDecoration.ignoredResourceForeground": "#d8dee966", + "gitDecoration.conflictingResourceForeground": "#5e81ac", + "gitDecoration.submoduleResourceForeground": "#8fbcbb", + "gitDecoration.stageDeletedResourceForeground": "#bf616a", + "gitDecoration.stageModifiedResourceForeground": "#ebcb8b", + "input.background": "#3b4252", + "input.foreground": "#d8dee9", + "input.placeholderForeground": "#d8dee999", + "input.border": "#3b4252", + "inputOption.activeBackground": "#5e81ac", + "inputOption.activeBorder": "#5e81ac", + "inputOption.activeForeground": "#eceff4", + "inputValidation.errorBackground": "#bf616a", + "inputValidation.errorBorder": "#bf616a", + "inputValidation.infoBackground": "#81a1c1", + "inputValidation.infoBorder": "#81a1c1", + "inputValidation.warningBackground": "#d08770", + "inputValidation.warningBorder": "#d08770", + "keybindingLabel.background": "#4c566a", + "keybindingLabel.border": "#4c566a", + "keybindingLabel.bottomBorder": "#4c566a", + "keybindingLabel.foreground": "#d8dee9", + "list.activeSelectionBackground": "#88c0d0", + "list.activeSelectionForeground": "#2e3440", + "list.inactiveSelectionBackground": "#434c5e", + "list.inactiveSelectionForeground": "#d8dee9", + "list.inactiveFocusBackground": "#434c5ecc", + "list.hoverForeground": "#eceff4", + "list.focusForeground": "#d8dee9", + "list.focusBackground": "#88c0d099", + "list.focusHighlightForeground": "#eceff4", + "list.hoverBackground": "#3b4252", + "list.dropBackground": "#88c0d099", + "list.highlightForeground": "#88c0d0", + "list.errorForeground": "#bf616a", + "list.warningForeground": "#ebcb8b", + "merge.currentHeaderBackground": "#81a1c166", + "merge.currentContentBackground": "#81a1c14d", + "merge.incomingHeaderBackground": "#8fbcbb66", + "merge.incomingContentBackground": "#8fbcbb4d", + "merge.border": "#3b425200", + "minimap.background": "#2e3440", + "minimap.errorHighlight": "#bf616acc", + "minimap.findMatchHighlight": "#88c0d0", + "minimap.selectionHighlight": "#88c0d0cc", + "minimap.warningHighlight": "#ebcb8bcc", + "minimapGutter.addedBackground": "#a3be8c", + "minimapGutter.deletedBackground": "#bf616a", + "minimapGutter.modifiedBackground": "#ebcb8b", + "minimapSlider.activeBackground": "#434c5eaa", + "minimapSlider.background": "#434c5e99", + "minimapSlider.hoverBackground": "#434c5eaa", - /* `notification.*` keys are legacy support for VS Code versions >1.21.0 */ - "notification.background": "#3b4252", - "notification.buttonBackground": "#434c5e", - "notification.buttonForeground": "#d8dee9", - "notification.buttonHoverBackground": "#4c566a", - "notification.errorBackground": "#bf616a", - "notification.errorForeground": "#2e3440", - "notification.foreground": "#d8dee9", - "notification.infoBackground": "#88c0d0", - "notification.infoForeground": "#2e3440", - "notification.warningBackground": "#ebcb8b", - "notification.warningForeground": "#2e3440", + "notification.background": "#3b4252", + "notification.buttonBackground": "#434c5e", + "notification.buttonForeground": "#d8dee9", + "notification.buttonHoverBackground": "#4c566a", + "notification.errorBackground": "#bf616a", + "notification.errorForeground": "#2e3440", + "notification.foreground": "#d8dee9", + "notification.infoBackground": "#88c0d0", + "notification.infoForeground": "#2e3440", + "notification.warningBackground": "#ebcb8b", + "notification.warningForeground": "#2e3440", - "notificationCenter.border": "#3b425200", - "notificationCenterHeader.background": "#2e3440", - "notificationCenterHeader.foreground": "#88c0d0", - "notificationLink.foreground": "#88c0d0", - "notifications.background": "#3b4252", - "notifications.border": "#2e3440", - "notifications.foreground": "#d8dee9", - "notificationToast.border": "#3b425200", + "notificationCenter.border": "#3b425200", + "notificationCenterHeader.background": "#2e3440", + "notificationCenterHeader.foreground": "#88c0d0", + "notificationLink.foreground": "#88c0d0", + "notifications.background": "#3b4252", + "notifications.border": "#2e3440", + "notifications.foreground": "#d8dee9", + "notificationToast.border": "#3b425200", - "panel.background": "#2e3440", - "panel.border": "#3b4252", - "panelTitle.activeBorder": "#88c0d000", - "panelTitle.activeForeground": "#88c0d0", - "panelTitle.inactiveForeground": "#d8dee9", - "peekView.border": "#4c566a", - "peekViewEditor.background": "#2e3440", - "peekViewEditorGutter.background": "#2e3440", - "peekViewEditor.matchHighlightBackground": "#88c0d04d", - "peekViewResult.background": "#2e3440", - "peekViewResult.fileForeground": "#88c0d0", - "peekViewResult.lineForeground": "#d8dee966", - "peekViewResult.matchHighlightBackground": "#88c0d0cc", - "peekViewResult.selectionBackground": "#434c5e", - "peekViewResult.selectionForeground": "#d8dee9", - "peekViewTitle.background": "#3b4252", - "peekViewTitleDescription.foreground": "#d8dee9", - "peekViewTitleLabel.foreground": "#88c0d0", - "pickerGroup.border": "#3b4252", - "pickerGroup.foreground": "#88c0d0", - "progressBar.background": "#88c0d0", - "quickInputList.focusBackground": "#88c0d0", - "quickInputList.focusForeground": "#2e3440", - "sash.hoverBorder": "#88c0d0", - "scrollbar.shadow": "#00000066", - "scrollbarSlider.activeBackground": "#434c5eaa", - "scrollbarSlider.background": "#434c5e99", - "scrollbarSlider.hoverBackground": "#434c5eaa", - "selection.background": "#88c0d099", - "sideBar.background": "#2e3440", - "sideBar.foreground": "#d8dee9", - "sideBar.border": "#3b4252", - "sideBarSectionHeader.background": "#3b4252", - "sideBarSectionHeader.foreground": "#d8dee9", - "sideBarTitle.foreground": "#d8dee9", - "statusBar.background": "#3b4252", - "statusBar.debuggingBackground": "#5e81ac", - "statusBar.debuggingForeground": "#d8dee9", - "statusBar.noFolderForeground": "#d8dee9", - "statusBar.noFolderBackground": "#3b4252", - "statusBar.foreground": "#d8dee9", - "statusBarItem.activeBackground": "#4c566a", - "statusBarItem.hoverBackground": "#434c5e", - "statusBarItem.prominentBackground": "#3b4252", - "statusBarItem.prominentHoverBackground": "#434c5e", - "statusBarItem.errorBackground": "#3b4252", - "statusBarItem.errorForeground": "#bf616a", - "statusBarItem.warningBackground": "#ebcb8b", - "statusBarItem.warningForeground": "#2e3440", - "statusBar.border": "#3b425200", - "tab.activeBackground": "#3b4252", - "tab.activeForeground": "#d8dee9", - "tab.border": "#3b425200", - "tab.activeBorder": "#88c0d000", - "tab.unfocusedActiveBorder": "#88c0d000", - "tab.inactiveBackground": "#2e3440", - "tab.inactiveForeground": "#d8dee966", - "tab.unfocusedActiveForeground": "#d8dee999", - "tab.unfocusedInactiveForeground": "#d8dee966", - "tab.hoverBackground": "#3b4252cc", - "tab.unfocusedHoverBackground": "#3b4252b3", - "tab.hoverBorder": "#88c0d000", - "tab.unfocusedHoverBorder": "#88c0d000", - "tab.activeBorderTop": "#88c0d000", - "tab.unfocusedActiveBorderTop": "#88c0d000", - "tab.lastPinnedBorder": "#4c566a", - "terminal.background": "#2e3440", - "terminal.foreground": "#d8dee9", - "terminal.ansiBlack": "#3b4252", - "terminal.ansiRed": "#bf616a", - "terminal.ansiGreen": "#a3be8c", - "terminal.ansiYellow": "#ebcb8b", - "terminal.ansiBlue": "#81a1c1", - "terminal.ansiMagenta": "#b48ead", - "terminal.ansiCyan": "#88c0d0", - "terminal.ansiWhite": "#e5e9f0", - "terminal.ansiBrightBlack": "#4c566a", - "terminal.ansiBrightRed": "#bf616a", - "terminal.ansiBrightGreen": "#a3be8c", - "terminal.ansiBrightYellow": "#ebcb8b", - "terminal.ansiBrightBlue": "#81a1c1", - "terminal.ansiBrightMagenta": "#b48ead", - "terminal.ansiBrightCyan": "#8fbcbb", - "terminal.ansiBrightWhite": "#eceff4", - "terminal.tab.activeBorder": "#88c0d0", - "textBlockQuote.background": "#3b4252", - "textBlockQuote.border": "#81a1c1", - "textCodeBlock.background": "#4c566a", - "textLink.activeForeground": "#88c0d0", - "textLink.foreground": "#88c0d0", - "textPreformat.foreground": "#8fbcbb", - "textSeparator.foreground": "#eceff4", - "titleBar.activeBackground": "#2e3440", - "titleBar.activeForeground": "#d8dee9", - "titleBar.border": "#2e344000", - "titleBar.inactiveBackground": "#2e3440", - "titleBar.inactiveForeground": "#d8dee966", - "tree.indentGuidesStroke": "#616e88", - "walkThrough.embeddedEditorBackground": "#2e3440", - "welcomePage.buttonBackground": "#434c5e", - "welcomePage.buttonHoverBackground": "#4c566a", - "widget.shadow": "#00000066" - }, - "tokenColors": [ - { - "settings": { - "foreground": "#d8dee9ff", - "background": "#2e3440ff" - } - }, - { - "scope": "emphasis", - "settings": { - "fontStyle": "italic" - } - }, - { - "scope": "strong", - "settings": { - "fontStyle": "bold" - } - }, - { - "name": "Comment", - "scope": "comment", - "settings": { - "foreground": "#616E88" - } - }, - { - "name": "Constant Character", - "scope": "constant.character", - "settings": { - "foreground": "#EBCB8B" - } - }, - { - "name": "Constant Character Escape", - "scope": "constant.character.escape", - "settings": { - "foreground": "#EBCB8B" - } - }, - { - "name": "Constant Language", - "scope": "constant.language", - "settings": { - "foreground": "#81A1C1" - } - }, - { - "name": "Constant Numeric", - "scope": "constant.numeric", - "settings": { - "foreground": "#B48EAD" - } - }, - { - "name": "Constant Regexp", - "scope": "constant.regexp", - "settings": { - "foreground": "#EBCB8B" - } - }, - { - "name": "Entity Name Class/Type", - "scope": ["entity.name.class", "entity.name.type.class"], - "settings": { - "foreground": "#8FBCBB" - } - }, - { - "name": "Entity Name Function", - "scope": "entity.name.function", - "settings": { - "foreground": "#88C0D0" - } - }, - { - "name": "Entity Name Tag", - "scope": "entity.name.tag", - "settings": { - "foreground": "#81A1C1" - } - }, - { - "name": "Entity Other Attribute Name", - "scope": "entity.other.attribute-name", - "settings": { - "foreground": "#8FBCBB" - } - }, - { - "name": "Entity Other Inherited Class", - "scope": "entity.other.inherited-class", - "settings": { - "fontStyle": "bold", - "foreground": "#8FBCBB" - } - }, - { - "name": "Invalid Deprecated", - "scope": "invalid.deprecated", - "settings": { - "foreground": "#D8DEE9", - "background": "#EBCB8B" - } - }, - { - "name": "Invalid Illegal", - "scope": "invalid.illegal", - "settings": { - "foreground": "#D8DEE9", - "background": "#BF616A" - } - }, - { - "name": "Keyword", - "scope": "keyword", - "settings": { - "foreground": "#81A1C1" - } - }, - { - "name": "Keyword Operator", - "scope": "keyword.operator", - "settings": { - "foreground": "#81A1C1" - } - }, - { - "name": "Keyword Other New", - "scope": "keyword.other.new", - "settings": { - "foreground": "#81A1C1" - } - }, - { - "name": "Markup Bold", - "scope": "markup.bold", - "settings": { - "fontStyle": "bold" - } - }, - { - "name": "Markup Changed", - "scope": "markup.changed", - "settings": { - "foreground": "#EBCB8B" - } - }, - { - "name": "Markup Deleted", - "scope": "markup.deleted", - "settings": { - "foreground": "#BF616A" - } - }, - { - "name": "Markup Inserted", - "scope": "markup.inserted", - "settings": { - "foreground": "#A3BE8C" - } - }, - { - "name": "Meta Preprocessor", - "scope": "meta.preprocessor", - "settings": { - "foreground": "#5E81AC" - } - }, - { - "name": "Punctuation", - "scope": "punctuation", - "settings": { - "foreground": "#ECEFF4" - } - }, - { - "name": "Punctuation Definition Parameters", - "scope": [ - "punctuation.definition.method-parameters", - "punctuation.definition.function-parameters", - "punctuation.definition.parameters" - ], - "settings": { - "foreground": "#ECEFF4" - } - }, - { - "name": "Punctuation Definition Tag", - "scope": "punctuation.definition.tag", - "settings": { - "foreground": "#81A1C1" - } - }, - { - "name": "Punctuation Definition Comment", - "scope": [ - "punctuation.definition.comment", - "punctuation.end.definition.comment", - "punctuation.start.definition.comment" - ], - "settings": { - "foreground": "#616E88" - } - }, - { - "name": "Punctuation Section", - "scope": "punctuation.section", - "settings": { - "foreground": "#ECEFF4" - } - }, - { - "name": "Punctuation Section Embedded", - "scope": ["punctuation.section.embedded.begin", "punctuation.section.embedded.end"], - "settings": { - "foreground": "#81A1C1" - } - }, - { - "name": "Punctuation Terminator", - "scope": "punctuation.terminator", - "settings": { - "foreground": "#81A1C1" - } - }, - { - "name": "Punctuation Variable", - "scope": "punctuation.definition.variable", - "settings": { - "foreground": "#81A1C1" - } - }, - { - "name": "Storage", - "scope": "storage", - "settings": { - "foreground": "#81A1C1" - } - }, - { - "name": "String", - "scope": "string", - "settings": { - "foreground": "#A3BE8C" - } - }, - { - "name": "String Regexp", - "scope": "string.regexp", - "settings": { - "foreground": "#EBCB8B" - } - }, - { - "name": "Support Class", - "scope": "support.class", - "settings": { - "foreground": "#8FBCBB" - } - }, - { - "name": "Support Constant", - "scope": "support.constant", - "settings": { - "foreground": "#81A1C1" - } - }, - { - "name": "Support Function", - "scope": "support.function", - "settings": { - "foreground": "#88C0D0" - } - }, - { - "name": "Support Function Construct", - "scope": "support.function.construct", - "settings": { - "foreground": "#81A1C1" - } - }, - { - "name": "Support Type", - "scope": "support.type", - "settings": { - "foreground": "#8FBCBB" - } - }, - { - "name": "Support Type Exception", - "scope": "support.type.exception", - "settings": { - "foreground": "#8FBCBB" - } - }, - { - "name": "Token Debug", - "scope": "token.debug-token", - "settings": { - "foreground": "#b48ead" - } - }, - { - "name": "Token Error", - "scope": "token.error-token", - "settings": { - "foreground": "#bf616a" - } - }, - { - "name": "Token Info", - "scope": "token.info-token", - "settings": { - "foreground": "#88c0d0" - } - }, - { - "name": "Token Warning", - "scope": "token.warn-token", - "settings": { - "foreground": "#ebcb8b" - } - }, - { - "name": "Variable", - "scope": "variable.other", - "settings": { - "foreground": "#D8DEE9" - } - }, - { - "name": "Variable Language", - "scope": "variable.language", - "settings": { - "foreground": "#81A1C1" - } - }, - { - "name": "Variable Parameter", - "scope": "variable.parameter", - "settings": { - "foreground": "#D8DEE9" - } - }, - { - "name": "[C/CPP] Punctuation Separator Pointer-Access", - "scope": "punctuation.separator.pointer-access.c", - "settings": { - "foreground": "#81A1C1" - } - }, - { - "name": "[C/CPP] Meta Preprocessor Include", - "scope": ["source.c meta.preprocessor.include", "source.c string.quoted.other.lt-gt.include"], - "settings": { - "foreground": "#8FBCBB" - } - }, - { - "name": "[C/CPP] Conditional Directive", - "scope": [ - "source.cpp keyword.control.directive.conditional", - "source.cpp punctuation.definition.directive", - "source.c keyword.control.directive.conditional", - "source.c punctuation.definition.directive" - ], - "settings": { - "foreground": "#5E81AC", - "fontStyle": "bold" - } - }, - { - "name": "[CSS] Constant Other Color RGB Value", - "scope": "source.css constant.other.color.rgb-value", - "settings": { - "foreground": "#B48EAD" - } - }, - { - "name": "[CSS](Function) Meta Property-Value", - "scope": "source.css meta.property-value", - "settings": { - "foreground": "#88C0D0" - } - }, - { - "name": "[CSS] Media Queries", - "scope": [ - "source.css keyword.control.at-rule.media", - "source.css keyword.control.at-rule.media punctuation.definition.keyword" - ], - "settings": { - "foreground": "#D08770" - } - }, - { - "name": "[CSS] Punctuation Definition Keyword", - "scope": "source.css punctuation.definition.keyword", - "settings": { - "foreground": "#81A1C1" - } - }, - { - "name": "[CSS] Support Type Property Name", - "scope": "source.css support.type.property-name", - "settings": { - "foreground": "#D8DEE9" - } - }, - { - "name": "[diff] Meta Range Context", - "scope": "source.diff meta.diff.range.context", - "settings": { - "foreground": "#8FBCBB" - } - }, - { - "name": "[diff] Meta Header From-File", - "scope": "source.diff meta.diff.header.from-file", - "settings": { - "foreground": "#8FBCBB" - } - }, - { - "name": "[diff] Punctuation Definition From-File", - "scope": "source.diff punctuation.definition.from-file", - "settings": { - "foreground": "#8FBCBB" - } - }, - { - "name": "[diff] Punctuation Definition Range", - "scope": "source.diff punctuation.definition.range", - "settings": { - "foreground": "#8FBCBB" - } - }, - { - "name": "[diff] Punctuation Definition Separator", - "scope": "source.diff punctuation.definition.separator", - "settings": { - "foreground": "#81A1C1" - } - }, - { - "name": "[Elixir](JakeBecker.elixir-ls) module names", - "scope": "entity.name.type.module.elixir", - "settings": { - "foreground": "#8FBCBB" - } - }, - { - "name": "[Elixir](JakeBecker.elixir-ls) module attributes", - "scope": "variable.other.readwrite.module.elixir", - "settings": { - "foreground": "#D8DEE9", - "fontStyle": "bold" - } - }, - { - "name": "[Elixir](JakeBecker.elixir-ls) atoms", - "scope": "constant.other.symbol.elixir", - "settings": { - "foreground": "#D8DEE9", - "fontStyle": "bold" - } - }, - { - "name": "[Elixir](JakeBecker.elixir-ls) modules", - "scope": "variable.other.constant.elixir", - "settings": { - "foreground": "#8FBCBB" - } - }, - { - "name": "[Go] String Format Placeholder", - "scope": "source.go constant.other.placeholder.go", - "settings": { - "foreground": "#EBCB8B" - } - }, - { - "name": "[Java](JavaDoc) Comment Block Documentation HTML Entities", - "scope": "source.java comment.block.documentation.javadoc punctuation.definition.entity.html", - "settings": { - "foreground": "#81A1C1" - } - }, - { - "name": "[Java](JavaDoc) Constant Other", - "scope": "source.java constant.other", - "settings": { - "foreground": "#D8DEE9" - } - }, - { - "name": "[Java](JavaDoc) Keyword Other Documentation", - "scope": "source.java keyword.other.documentation", - "settings": { - "foreground": "#8FBCBB" - } - }, - { - "name": "[Java](JavaDoc) Keyword Other Documentation Author", - "scope": "source.java keyword.other.documentation.author.javadoc", - "settings": { - "foreground": "#8FBCBB" - } - }, - { - "name": "[Java](JavaDoc) Keyword Other Documentation Directive/Custom", - "scope": ["source.java keyword.other.documentation.directive", "source.java keyword.other.documentation.custom"], - "settings": { - "foreground": "#8FBCBB" - } - }, - { - "name": "[Java](JavaDoc) Keyword Other Documentation See", - "scope": "source.java keyword.other.documentation.see.javadoc", - "settings": { - "foreground": "#8FBCBB" - } - }, - { - "name": "[Java] Meta Method-Call", - "scope": "source.java meta.method-call meta.method", - "settings": { - "foreground": "#88C0D0" - } - }, - { - "name": "[Java](JavaDoc) Meta Tag Template Link", - "scope": ["source.java meta.tag.template.link.javadoc", "source.java string.other.link.title.javadoc"], - "settings": { - "foreground": "#8FBCBB" - } - }, - { - "name": "[Java](JavaDoc) Meta Tag Template Value", - "scope": "source.java meta.tag.template.value.javadoc", - "settings": { - "foreground": "#88C0D0" - } - }, - { - "name": "[Java](JavaDoc) Punctuation Definition Keyword", - "scope": "source.java punctuation.definition.keyword.javadoc", - "settings": { - "foreground": "#8FBCBB" - } - }, - { - "name": "[Java](JavaDoc) Punctuation Definition Tag", - "scope": [ - "source.java punctuation.definition.tag.begin.javadoc", - "source.java punctuation.definition.tag.end.javadoc" - ], - "settings": { - "foreground": "#616E88" - } - }, - { - "name": "[Java] Storage Modifier Import", - "scope": "source.java storage.modifier.import", - "settings": { - "foreground": "#8FBCBB" - } - }, - { - "name": "[Java] Storage Modifier Package", - "scope": "source.java storage.modifier.package", - "settings": { - "foreground": "#8FBCBB" - } - }, - { - "name": "[Java] Storage Type", - "scope": "source.java storage.type", - "settings": { - "foreground": "#8FBCBB" - } - }, - { - "name": "[Java] Storage Type Annotation", - "scope": "source.java storage.type.annotation", - "settings": { - "foreground": "#D08770" - } - }, - { - "name": "[Java] Storage Type Generic", - "scope": "source.java storage.type.generic", - "settings": { - "foreground": "#8FBCBB" - } - }, - { - "name": "[Java] Storage Type Primitive", - "scope": "source.java storage.type.primitive", - "settings": { - "foreground": "#81A1C1" - } - }, - { - "name": "[JavaScript] Decorator", - "scope": [ - "source.js punctuation.decorator", - "source.js meta.decorator variable.other.readwrite", - "source.js meta.decorator entity.name.function" - ], - "settings": { - "foreground": "#D08770" - } - }, - { - "name": "[JavaScript] Meta Object-Literal Key", - "scope": "source.js meta.object-literal.key", - "settings": { - "foreground": "#88C0D0" - } - }, - { - "name": "[JavaScript](JSDoc) Storage Type Class", - "scope": "source.js storage.type.class.jsdoc", - "settings": { - "foreground": "#8FBCBB" - } - }, - { - "name": "[JavaScript] String Template Literals Punctuation", - "scope": [ - "source.js string.quoted.template punctuation.quasi.element.begin", - "source.js string.quoted.template punctuation.quasi.element.end", - "source.js string.template punctuation.definition.template-expression" - ], - "settings": { - "foreground": "#81A1C1" - } - }, - { - "name": "[JavaScript] Interpolated String Template Punctuation Functions", - "scope": "source.js string.quoted.template meta.method-call.with-arguments", - "settings": { - "foreground": "#ECEFF4" - } - }, - { - "name": "[JavaScript] String Template Literal Variable", - "scope": [ - "source.js string.template meta.template.expression support.variable.property", - "source.js string.template meta.template.expression variable.other.object" - ], - "settings": { - "foreground": "#D8DEE9" - } - }, - { - "name": "[JavaScript] Support Type Primitive", - "scope": "source.js support.type.primitive", - "settings": { - "foreground": "#81A1C1" - } - }, - { - "name": "[JavaScript] Variable Other Object", - "scope": "source.js variable.other.object", - "settings": { - "foreground": "#D8DEE9" - } - }, - { - "name": "[JavaScript] Variable Other Read-Write Alias", - "scope": "source.js variable.other.readwrite.alias", - "settings": { - "foreground": "#8FBCBB" - } - }, - { - "name": "[JavaScript] Parentheses in Template Strings", - "scope": [ - "source.js meta.embedded.line meta.brace.square", - "source.js meta.embedded.line meta.brace.round", - /* Required for extension `mgmcdermott.vscode-language-babel`. */ - "source.js string.quoted.template meta.brace.square", - "source.js string.quoted.template meta.brace.round" - ], - "settings": { - "foreground": "#ECEFF4" - } - }, - { - "name": "[HTML] Constant Character Entity", - "scope": "text.html.basic constant.character.entity.html", - "settings": { - "foreground": "#EBCB8B" - } - }, - { - "name": "[HTML] Constant Other Inline-Data", - "scope": "text.html.basic constant.other.inline-data", - "settings": { - "foreground": "#D08770", - "fontStyle": "italic" - } - }, - { - "name": "[HTML] Meta Tag SGML Doctype", - "scope": "text.html.basic meta.tag.sgml.doctype", - "settings": { - "foreground": "#5E81AC" - } - }, - { - "name": "[HTML] Punctuation Definition Entity", - "scope": "text.html.basic punctuation.definition.entity", - "settings": { - "foreground": "#81A1C1" - } - }, - { - "name": "[INI] Entity Name Section Group-Title", - "scope": "source.properties entity.name.section.group-title.ini", - "settings": { - "foreground": "#88C0D0" - } - }, - { - "name": "[INI] Punctuation Separator Key-Value", - "scope": "source.properties punctuation.separator.key-value.ini", - "settings": { - "foreground": "#81A1C1" - } - }, - { - "name": "[Markdown] Markup Fenced Code Block", - "scope": [ - "text.html.markdown markup.fenced_code.block", - "text.html.markdown markup.fenced_code.block punctuation.definition" - ], - "settings": { - "foreground": "#8FBCBB" - } - }, - { - "name": "[Markdown] Markup Heading", - "scope": "markup.heading", - "settings": { - "foreground": "#88C0D0" - } - }, - { - "name": "[Markdown] Markup Inline", - "scope": [ - "text.html.markdown markup.inline.raw", - "text.html.markdown markup.inline.raw punctuation.definition.raw" - ], - "settings": { - "foreground": "#8FBCBB" - } - }, - { - "name": "[Markdown] Markup Italic", - "scope": "text.html.markdown markup.italic", - "settings": { - "fontStyle": "italic" - } - }, - { - "name": "[Markdown] Markup Link", - "scope": "text.html.markdown markup.underline.link", - "settings": { - "fontStyle": "underline" - } - }, - { - "name": "[Markdown] Markup List Numbered/Unnumbered", - "scope": "text.html.markdown beginning.punctuation.definition.list", - "settings": { - "foreground": "#81A1C1" - } - }, - { - "name": "[Markdown] Markup Quote Punctuation Definition", - "scope": "text.html.markdown beginning.punctuation.definition.quote", - "settings": { - "foreground": "#8FBCBB" - } - }, - { - "name": "[Markdown] Markup Quote Punctuation Definition", - "scope": "text.html.markdown markup.quote", - "settings": { - "foreground": "#616E88" - } - }, - { - "name": "[Markdown] Markup Math Constant", - "scope": "text.html.markdown constant.character.math.tex", - "settings": { - "foreground": "#81A1C1" - } - }, - { - "name": "[Markdown] Markup Math Definition Marker", - "scope": [ - "text.html.markdown punctuation.definition.math.begin", - "text.html.markdown punctuation.definition.math.end" - ], - "settings": { - "foreground": "#5E81AC" - } - }, - { - "name": "[Markdown] Markup Math Function Definition Marker", - "scope": "text.html.markdown punctuation.definition.function.math.tex", - "settings": { - "foreground": "#88C0D0" - } - }, - { - "name": "[Markdown] Markup Math Operator", - "scope": "text.html.markdown punctuation.math.operator.latex", - "settings": { - "foreground": "#81A1C1" - } - }, - { - "name": "[Markdown] Punctuation Definition Heading", - "scope": "text.html.markdown punctuation.definition.heading", - "settings": { - "foreground": "#81A1C1" - } - }, - { - "name": "[Markdown] Punctuation Definition Constant/String", - "scope": [ - "text.html.markdown punctuation.definition.constant", - "text.html.markdown punctuation.definition.string" - ], - "settings": { - "foreground": "#81A1C1" - } - }, - { - "name": "[Markdown] String Other Link Description/Title", - "scope": [ - "text.html.markdown constant.other.reference.link", - "text.html.markdown string.other.link.description", - "text.html.markdown string.other.link.title" - ], - "settings": { - "foreground": "#88C0D0" - } - }, - { - "name": "[Perl] Perl Sigils", - "scope": "source.perl punctuation.definition.variable", - "settings": { - "foreground": "#D8DEE9" - } - }, - { - "name": "[PHP] Meta Function-Call Object", - "scope": ["source.php meta.function-call", "source.php meta.function-call.object"], - "settings": { - "foreground": "#88C0D0" - } - }, - { - "name": "[Python] Decorator", - "scope": ["source.python entity.name.function.decorator", "source.python meta.function.decorator support.type"], - "settings": { - "foreground": "#D08770" - } - }, - { - "name": "[Python] Function Call", - "scope": "source.python meta.function-call.generic", - "settings": { - "foreground": "#88C0D0" - } - }, - { - "name": "[Python] Support Type", - "scope": "source.python support.type", - "settings": { - "foreground": "#88C0D0" - } - }, - { - "name": "[Python] Function Parameter", - "scope": ["source.python variable.parameter.function.language"], - "settings": { - "foreground": "#D8DEE9" - } - }, - { - "name": "[Python] Function Parameter Special", - "scope": ["source.python meta.function.parameters variable.parameter.function.language.special.self"], - "settings": { - "foreground": "#81A1C1" - } - }, - { - "name": "[SCSS] Punctuation Definition Interpolation Bracket Curly", - "scope": [ - "source.css.scss punctuation.definition.interpolation.begin.bracket.curly", - "source.css.scss punctuation.definition.interpolation.end.bracket.curly" - ], - "settings": { - "foreground": "#81A1C1" - } - }, - { - "name": "[SCSS] Variable Interpolation", - "scope": "source.css.scss variable.interpolation", - "settings": { - "foreground": "#D8DEE9", - "fontStyle": "italic" - } - }, - { - "name": "[TypeScript] Decorators", - "scope": [ - "source.ts punctuation.decorator", - "source.ts meta.decorator variable.other.readwrite", - "source.ts meta.decorator entity.name.function", - "source.tsx punctuation.decorator", - "source.tsx meta.decorator variable.other.readwrite", - "source.tsx meta.decorator entity.name.function" - ], - "settings": { - "foreground": "#D08770" - } - }, - { - "name": "[TypeScript] Object-literal keys", - "scope": ["source.ts meta.object-literal.key", "source.tsx meta.object-literal.key"], - "settings": { - "foreground": "#D8DEE9" - } - }, - { - "name": "[TypeScript] Object-literal functions", - "scope": [ - "source.ts meta.object-literal.key entity.name.function", - "source.tsx meta.object-literal.key entity.name.function" - ], - "settings": { - "foreground": "#88C0D0" - } - }, - { - "name": "[TypeScript] Type/Class", - "scope": [ - "source.ts support.class", - "source.ts support.type", - "source.ts entity.name.type", - "source.ts entity.name.class", - "source.tsx support.class", - "source.tsx support.type", - "source.tsx entity.name.type", - "source.tsx entity.name.class" - ], - "settings": { - "foreground": "#8FBCBB" - } - }, - { - "name": "[TypeScript] Static Class Support", - "scope": [ - "source.ts support.constant.math", - "source.ts support.constant.dom", - "source.ts support.constant.json", - "source.tsx support.constant.math", - "source.tsx support.constant.dom", - "source.tsx support.constant.json" - ], - "settings": { - "foreground": "#8FBCBB" - } - }, - { - "name": "[TypeScript] Variables", - "scope": ["source.ts support.variable", "source.tsx support.variable"], - "settings": { - "foreground": "#D8DEE9" - } - }, - { - "name": "[TypeScript] Parentheses in Template Strings", - "scope": [ - "source.ts meta.embedded.line meta.brace.square", - "source.ts meta.embedded.line meta.brace.round", - "source.tsx meta.embedded.line meta.brace.square", - "source.tsx meta.embedded.line meta.brace.round" - ], - "settings": { - "foreground": "#ECEFF4" - } - }, - { - "name": "[XML] Entity Name Tag Namespace", - "scope": "text.xml entity.name.tag.namespace", - "settings": { - "foreground": "#8FBCBB" - } - }, - { - "name": "[XML] Keyword Other Doctype", - "scope": "text.xml keyword.other.doctype", - "settings": { - "foreground": "#5E81AC" - } - }, - { - "name": "[XML] Meta Tag Preprocessor", - "scope": "text.xml meta.tag.preprocessor entity.name.tag", - "settings": { - "foreground": "#5E81AC" - } - }, - { - "name": "[XML] Entity Name Tag Namespace", - "scope": ["text.xml string.unquoted.cdata", "text.xml string.unquoted.cdata punctuation.definition.string"], - "settings": { - "foreground": "#D08770", - "fontStyle": "italic" - } - }, - { - "name": "[YAML] Entity Name Tag", - "scope": "source.yaml entity.name.tag", - "settings": { - "foreground": "#8FBCBB" - } - } - ] + "panel.background": "#2e3440", + "panel.border": "#3b4252", + "panelTitle.activeBorder": "#88c0d000", + "panelTitle.activeForeground": "#88c0d0", + "panelTitle.inactiveForeground": "#d8dee9", + "peekView.border": "#4c566a", + "peekViewEditor.background": "#2e3440", + "peekViewEditorGutter.background": "#2e3440", + "peekViewEditor.matchHighlightBackground": "#88c0d04d", + "peekViewResult.background": "#2e3440", + "peekViewResult.fileForeground": "#88c0d0", + "peekViewResult.lineForeground": "#d8dee966", + "peekViewResult.matchHighlightBackground": "#88c0d0cc", + "peekViewResult.selectionBackground": "#434c5e", + "peekViewResult.selectionForeground": "#d8dee9", + "peekViewTitle.background": "#3b4252", + "peekViewTitleDescription.foreground": "#d8dee9", + "peekViewTitleLabel.foreground": "#88c0d0", + "pickerGroup.border": "#3b4252", + "pickerGroup.foreground": "#88c0d0", + "progressBar.background": "#88c0d0", + "quickInputList.focusBackground": "#88c0d0", + "quickInputList.focusForeground": "#2e3440", + "sash.hoverBorder": "#88c0d0", + "scrollbar.shadow": "#00000066", + "scrollbarSlider.activeBackground": "#434c5eaa", + "scrollbarSlider.background": "#434c5e99", + "scrollbarSlider.hoverBackground": "#434c5eaa", + "selection.background": "#88c0d099", + "sideBar.background": "#2e3440", + "sideBar.foreground": "#d8dee9", + "sideBar.border": "#3b4252", + "sideBarSectionHeader.background": "#3b4252", + "sideBarSectionHeader.foreground": "#d8dee9", + "sideBarTitle.foreground": "#d8dee9", + "statusBar.background": "#3b4252", + "statusBar.debuggingBackground": "#5e81ac", + "statusBar.debuggingForeground": "#d8dee9", + "statusBar.noFolderForeground": "#d8dee9", + "statusBar.noFolderBackground": "#3b4252", + "statusBar.foreground": "#d8dee9", + "statusBarItem.activeBackground": "#4c566a", + "statusBarItem.hoverBackground": "#434c5e", + "statusBarItem.prominentBackground": "#3b4252", + "statusBarItem.prominentHoverBackground": "#434c5e", + "statusBarItem.errorBackground": "#3b4252", + "statusBarItem.errorForeground": "#bf616a", + "statusBarItem.warningBackground": "#ebcb8b", + "statusBarItem.warningForeground": "#2e3440", + "statusBar.border": "#3b425200", + "tab.activeBackground": "#3b4252", + "tab.activeForeground": "#d8dee9", + "tab.border": "#3b425200", + "tab.activeBorder": "#88c0d000", + "tab.unfocusedActiveBorder": "#88c0d000", + "tab.inactiveBackground": "#2e3440", + "tab.inactiveForeground": "#d8dee966", + "tab.unfocusedActiveForeground": "#d8dee999", + "tab.unfocusedInactiveForeground": "#d8dee966", + "tab.hoverBackground": "#3b4252cc", + "tab.unfocusedHoverBackground": "#3b4252b3", + "tab.hoverBorder": "#88c0d000", + "tab.unfocusedHoverBorder": "#88c0d000", + "tab.activeBorderTop": "#88c0d000", + "tab.unfocusedActiveBorderTop": "#88c0d000", + "tab.lastPinnedBorder": "#4c566a", + "terminal.background": "#2e3440", + "terminal.foreground": "#d8dee9", + "terminal.ansiBlack": "#3b4252", + "terminal.ansiRed": "#bf616a", + "terminal.ansiGreen": "#a3be8c", + "terminal.ansiYellow": "#ebcb8b", + "terminal.ansiBlue": "#81a1c1", + "terminal.ansiMagenta": "#b48ead", + "terminal.ansiCyan": "#88c0d0", + "terminal.ansiWhite": "#e5e9f0", + "terminal.ansiBrightBlack": "#4c566a", + "terminal.ansiBrightRed": "#bf616a", + "terminal.ansiBrightGreen": "#a3be8c", + "terminal.ansiBrightYellow": "#ebcb8b", + "terminal.ansiBrightBlue": "#81a1c1", + "terminal.ansiBrightMagenta": "#b48ead", + "terminal.ansiBrightCyan": "#8fbcbb", + "terminal.ansiBrightWhite": "#eceff4", + "terminal.tab.activeBorder": "#88c0d0", + "textBlockQuote.background": "#3b4252", + "textBlockQuote.border": "#81a1c1", + "textCodeBlock.background": "#4c566a", + "textLink.activeForeground": "#88c0d0", + "textLink.foreground": "#88c0d0", + "textPreformat.foreground": "#8fbcbb", + "textSeparator.foreground": "#eceff4", + "titleBar.activeBackground": "#2e3440", + "titleBar.activeForeground": "#d8dee9", + "titleBar.border": "#2e344000", + "titleBar.inactiveBackground": "#2e3440", + "titleBar.inactiveForeground": "#d8dee966", + "tree.indentGuidesStroke": "#616e88", + "walkThrough.embeddedEditorBackground": "#2e3440", + "welcomePage.buttonBackground": "#434c5e", + "welcomePage.buttonHoverBackground": "#4c566a", + "widget.shadow": "#00000066" + }, + "tokenColors": [ + { + "settings": { + "foreground": "#d8dee9ff", + "background": "#2e3440ff" + } + }, + { + "scope": "emphasis", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "strong", + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "Comment", + "scope": "comment", + "settings": { + "foreground": "#616E88" + } + }, + { + "name": "Constant Character", + "scope": "constant.character", + "settings": { + "foreground": "#EBCB8B" + } + }, + { + "name": "Constant Character Escape", + "scope": "constant.character.escape", + "settings": { + "foreground": "#EBCB8B" + } + }, + { + "name": "Constant Language", + "scope": "constant.language", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Constant Numeric", + "scope": "constant.numeric", + "settings": { + "foreground": "#B48EAD" + } + }, + { + "name": "Constant Regexp", + "scope": "constant.regexp", + "settings": { + "foreground": "#EBCB8B" + } + }, + { + "name": "Entity Name Class/Type", + "scope": ["entity.name.class", "entity.name.type.class"], + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "Entity Name Function", + "scope": "entity.name.function", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "Entity Name Tag", + "scope": "entity.name.tag", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Entity Other Attribute Name", + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "Entity Other Inherited Class", + "scope": "entity.other.inherited-class", + "settings": { + "fontStyle": "bold", + "foreground": "#8FBCBB" + } + }, + { + "name": "Invalid Deprecated", + "scope": "invalid.deprecated", + "settings": { + "foreground": "#D8DEE9", + "background": "#EBCB8B" + } + }, + { + "name": "Invalid Illegal", + "scope": "invalid.illegal", + "settings": { + "foreground": "#D8DEE9", + "background": "#BF616A" + } + }, + { + "name": "Keyword", + "scope": "keyword", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Keyword Operator", + "scope": "keyword.operator", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Keyword Other New", + "scope": "keyword.other.new", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Markup Bold", + "scope": "markup.bold", + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "Markup Changed", + "scope": "markup.changed", + "settings": { + "foreground": "#EBCB8B" + } + }, + { + "name": "Markup Deleted", + "scope": "markup.deleted", + "settings": { + "foreground": "#BF616A" + } + }, + { + "name": "Markup Inserted", + "scope": "markup.inserted", + "settings": { + "foreground": "#A3BE8C" + } + }, + { + "name": "Meta Preprocessor", + "scope": "meta.preprocessor", + "settings": { + "foreground": "#5E81AC" + } + }, + { + "name": "Punctuation", + "scope": "punctuation", + "settings": { + "foreground": "#ECEFF4" + } + }, + { + "name": "Punctuation Definition Parameters", + "scope": [ + "punctuation.definition.method-parameters", + "punctuation.definition.function-parameters", + "punctuation.definition.parameters" + ], + "settings": { + "foreground": "#ECEFF4" + } + }, + { + "name": "Punctuation Definition Tag", + "scope": "punctuation.definition.tag", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Punctuation Definition Comment", + "scope": [ + "punctuation.definition.comment", + "punctuation.end.definition.comment", + "punctuation.start.definition.comment" + ], + "settings": { + "foreground": "#616E88" + } + }, + { + "name": "Punctuation Section", + "scope": "punctuation.section", + "settings": { + "foreground": "#ECEFF4" + } + }, + { + "name": "Punctuation Section Embedded", + "scope": ["punctuation.section.embedded.begin", "punctuation.section.embedded.end"], + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Punctuation Terminator", + "scope": "punctuation.terminator", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Punctuation Variable", + "scope": "punctuation.definition.variable", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Storage", + "scope": "storage", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "String", + "scope": "string", + "settings": { + "foreground": "#A3BE8C" + } + }, + { + "name": "String Regexp", + "scope": "string.regexp", + "settings": { + "foreground": "#EBCB8B" + } + }, + { + "name": "Support Class", + "scope": "support.class", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "Support Constant", + "scope": "support.constant", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Support Function", + "scope": "support.function", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "Support Function Construct", + "scope": "support.function.construct", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Support Type", + "scope": "support.type", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "Support Type Exception", + "scope": "support.type.exception", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "Token Debug", + "scope": "token.debug-token", + "settings": { + "foreground": "#b48ead" + } + }, + { + "name": "Token Error", + "scope": "token.error-token", + "settings": { + "foreground": "#bf616a" + } + }, + { + "name": "Token Info", + "scope": "token.info-token", + "settings": { + "foreground": "#88c0d0" + } + }, + { + "name": "Token Warning", + "scope": "token.warn-token", + "settings": { + "foreground": "#ebcb8b" + } + }, + { + "name": "Variable", + "scope": "variable.other", + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "Variable Language", + "scope": "variable.language", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Variable Parameter", + "scope": "variable.parameter", + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "[C/CPP] Punctuation Separator Pointer-Access", + "scope": "punctuation.separator.pointer-access.c", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[C/CPP] Meta Preprocessor Include", + "scope": [ + "source.c meta.preprocessor.include", + "source.c string.quoted.other.lt-gt.include" + ], + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[C/CPP] Conditional Directive", + "scope": [ + "source.cpp keyword.control.directive.conditional", + "source.cpp punctuation.definition.directive", + "source.c keyword.control.directive.conditional", + "source.c punctuation.definition.directive" + ], + "settings": { + "foreground": "#5E81AC", + "fontStyle": "bold" + } + }, + { + "name": "[CSS] Constant Other Color RGB Value", + "scope": "source.css constant.other.color.rgb-value", + "settings": { + "foreground": "#B48EAD" + } + }, + { + "name": "[CSS](Function) Meta Property-Value", + "scope": "source.css meta.property-value", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[CSS] Media Queries", + "scope": [ + "source.css keyword.control.at-rule.media", + "source.css keyword.control.at-rule.media punctuation.definition.keyword" + ], + "settings": { + "foreground": "#D08770" + } + }, + { + "name": "[CSS] Punctuation Definition Keyword", + "scope": "source.css punctuation.definition.keyword", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[CSS] Support Type Property Name", + "scope": "source.css support.type.property-name", + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "[diff] Meta Range Context", + "scope": "source.diff meta.diff.range.context", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[diff] Meta Header From-File", + "scope": "source.diff meta.diff.header.from-file", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[diff] Punctuation Definition From-File", + "scope": "source.diff punctuation.definition.from-file", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[diff] Punctuation Definition Range", + "scope": "source.diff punctuation.definition.range", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[diff] Punctuation Definition Separator", + "scope": "source.diff punctuation.definition.separator", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[Elixir](JakeBecker.elixir-ls) module names", + "scope": "entity.name.type.module.elixir", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Elixir](JakeBecker.elixir-ls) module attributes", + "scope": "variable.other.readwrite.module.elixir", + "settings": { + "foreground": "#D8DEE9", + "fontStyle": "bold" + } + }, + { + "name": "[Elixir](JakeBecker.elixir-ls) atoms", + "scope": "constant.other.symbol.elixir", + "settings": { + "foreground": "#D8DEE9", + "fontStyle": "bold" + } + }, + { + "name": "[Elixir](JakeBecker.elixir-ls) modules", + "scope": "variable.other.constant.elixir", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Go] String Format Placeholder", + "scope": "source.go constant.other.placeholder.go", + "settings": { + "foreground": "#EBCB8B" + } + }, + { + "name": "[Java](JavaDoc) Comment Block Documentation HTML Entities", + "scope": "source.java comment.block.documentation.javadoc punctuation.definition.entity.html", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[Java](JavaDoc) Constant Other", + "scope": "source.java constant.other", + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "[Java](JavaDoc) Keyword Other Documentation", + "scope": "source.java keyword.other.documentation", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java](JavaDoc) Keyword Other Documentation Author", + "scope": "source.java keyword.other.documentation.author.javadoc", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java](JavaDoc) Keyword Other Documentation Directive/Custom", + "scope": [ + "source.java keyword.other.documentation.directive", + "source.java keyword.other.documentation.custom" + ], + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java](JavaDoc) Keyword Other Documentation See", + "scope": "source.java keyword.other.documentation.see.javadoc", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java] Meta Method-Call", + "scope": "source.java meta.method-call meta.method", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[Java](JavaDoc) Meta Tag Template Link", + "scope": [ + "source.java meta.tag.template.link.javadoc", + "source.java string.other.link.title.javadoc" + ], + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java](JavaDoc) Meta Tag Template Value", + "scope": "source.java meta.tag.template.value.javadoc", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[Java](JavaDoc) Punctuation Definition Keyword", + "scope": "source.java punctuation.definition.keyword.javadoc", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java](JavaDoc) Punctuation Definition Tag", + "scope": [ + "source.java punctuation.definition.tag.begin.javadoc", + "source.java punctuation.definition.tag.end.javadoc" + ], + "settings": { + "foreground": "#616E88" + } + }, + { + "name": "[Java] Storage Modifier Import", + "scope": "source.java storage.modifier.import", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java] Storage Modifier Package", + "scope": "source.java storage.modifier.package", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java] Storage Type", + "scope": "source.java storage.type", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java] Storage Type Annotation", + "scope": "source.java storage.type.annotation", + "settings": { + "foreground": "#D08770" + } + }, + { + "name": "[Java] Storage Type Generic", + "scope": "source.java storage.type.generic", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java] Storage Type Primitive", + "scope": "source.java storage.type.primitive", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[JavaScript] Decorator", + "scope": [ + "source.js punctuation.decorator", + "source.js meta.decorator variable.other.readwrite", + "source.js meta.decorator entity.name.function" + ], + "settings": { + "foreground": "#D08770" + } + }, + { + "name": "[JavaScript] Meta Object-Literal Key", + "scope": "source.js meta.object-literal.key", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[JavaScript](JSDoc) Storage Type Class", + "scope": "source.js storage.type.class.jsdoc", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[JavaScript] String Template Literals Punctuation", + "scope": [ + "source.js string.quoted.template punctuation.quasi.element.begin", + "source.js string.quoted.template punctuation.quasi.element.end", + "source.js string.template punctuation.definition.template-expression" + ], + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[JavaScript] Interpolated String Template Punctuation Functions", + "scope": "source.js string.quoted.template meta.method-call.with-arguments", + "settings": { + "foreground": "#ECEFF4" + } + }, + { + "name": "[JavaScript] String Template Literal Variable", + "scope": [ + "source.js string.template meta.template.expression support.variable.property", + "source.js string.template meta.template.expression variable.other.object" + ], + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "[JavaScript] Support Type Primitive", + "scope": "source.js support.type.primitive", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[JavaScript] Variable Other Object", + "scope": "source.js variable.other.object", + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "[JavaScript] Variable Other Read-Write Alias", + "scope": "source.js variable.other.readwrite.alias", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[JavaScript] Parentheses in Template Strings", + "scope": [ + "source.js meta.embedded.line meta.brace.square", + "source.js meta.embedded.line meta.brace.round", + "source.js string.quoted.template meta.brace.square", + "source.js string.quoted.template meta.brace.round" + ], + "settings": { + "foreground": "#ECEFF4" + } + }, + { + "name": "[HTML] Constant Character Entity", + "scope": "text.html.basic constant.character.entity.html", + "settings": { + "foreground": "#EBCB8B" + } + }, + { + "name": "[HTML] Constant Other Inline-Data", + "scope": "text.html.basic constant.other.inline-data", + "settings": { + "foreground": "#D08770", + "fontStyle": "italic" + } + }, + { + "name": "[HTML] Meta Tag SGML Doctype", + "scope": "text.html.basic meta.tag.sgml.doctype", + "settings": { + "foreground": "#5E81AC" + } + }, + { + "name": "[HTML] Punctuation Definition Entity", + "scope": "text.html.basic punctuation.definition.entity", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[INI] Entity Name Section Group-Title", + "scope": "source.properties entity.name.section.group-title.ini", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[INI] Punctuation Separator Key-Value", + "scope": "source.properties punctuation.separator.key-value.ini", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[Markdown] Markup Fenced Code Block", + "scope": [ + "text.html.markdown markup.fenced_code.block", + "text.html.markdown markup.fenced_code.block punctuation.definition" + ], + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Markdown] Markup Heading", + "scope": "markup.heading", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[Markdown] Markup Inline", + "scope": [ + "text.html.markdown markup.inline.raw", + "text.html.markdown markup.inline.raw punctuation.definition.raw" + ], + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Markdown] Markup Italic", + "scope": "text.html.markdown markup.italic", + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "[Markdown] Markup Link", + "scope": "text.html.markdown markup.underline.link", + "settings": { + "fontStyle": "underline" + } + }, + { + "name": "[Markdown] Markup List Numbered/Unnumbered", + "scope": "text.html.markdown beginning.punctuation.definition.list", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[Markdown] Markup Quote Punctuation Definition", + "scope": "text.html.markdown beginning.punctuation.definition.quote", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Markdown] Markup Quote Punctuation Definition", + "scope": "text.html.markdown markup.quote", + "settings": { + "foreground": "#616E88" + } + }, + { + "name": "[Markdown] Markup Math Constant", + "scope": "text.html.markdown constant.character.math.tex", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[Markdown] Markup Math Definition Marker", + "scope": [ + "text.html.markdown punctuation.definition.math.begin", + "text.html.markdown punctuation.definition.math.end" + ], + "settings": { + "foreground": "#5E81AC" + } + }, + { + "name": "[Markdown] Markup Math Function Definition Marker", + "scope": "text.html.markdown punctuation.definition.function.math.tex", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[Markdown] Markup Math Operator", + "scope": "text.html.markdown punctuation.math.operator.latex", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[Markdown] Punctuation Definition Heading", + "scope": "text.html.markdown punctuation.definition.heading", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[Markdown] Punctuation Definition Constant/String", + "scope": [ + "text.html.markdown punctuation.definition.constant", + "text.html.markdown punctuation.definition.string" + ], + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[Markdown] String Other Link Description/Title", + "scope": [ + "text.html.markdown constant.other.reference.link", + "text.html.markdown string.other.link.description", + "text.html.markdown string.other.link.title" + ], + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[Perl] Perl Sigils", + "scope": "source.perl punctuation.definition.variable", + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "[PHP] Meta Function-Call Object", + "scope": ["source.php meta.function-call", "source.php meta.function-call.object"], + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[Python] Decorator", + "scope": [ + "source.python entity.name.function.decorator", + "source.python meta.function.decorator support.type" + ], + "settings": { + "foreground": "#D08770" + } + }, + { + "name": "[Python] Function Call", + "scope": "source.python meta.function-call.generic", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[Python] Support Type", + "scope": "source.python support.type", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[Python] Function Parameter", + "scope": ["source.python variable.parameter.function.language"], + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "[Python] Function Parameter Special", + "scope": [ + "source.python meta.function.parameters variable.parameter.function.language.special.self" + ], + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[SCSS] Punctuation Definition Interpolation Bracket Curly", + "scope": [ + "source.css.scss punctuation.definition.interpolation.begin.bracket.curly", + "source.css.scss punctuation.definition.interpolation.end.bracket.curly" + ], + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[SCSS] Variable Interpolation", + "scope": "source.css.scss variable.interpolation", + "settings": { + "foreground": "#D8DEE9", + "fontStyle": "italic" + } + }, + { + "name": "[TypeScript] Decorators", + "scope": [ + "source.ts punctuation.decorator", + "source.ts meta.decorator variable.other.readwrite", + "source.ts meta.decorator entity.name.function", + "source.tsx punctuation.decorator", + "source.tsx meta.decorator variable.other.readwrite", + "source.tsx meta.decorator entity.name.function" + ], + "settings": { + "foreground": "#D08770" + } + }, + { + "name": "[TypeScript] Object-literal keys", + "scope": ["source.ts meta.object-literal.key", "source.tsx meta.object-literal.key"], + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "[TypeScript] Object-literal functions", + "scope": [ + "source.ts meta.object-literal.key entity.name.function", + "source.tsx meta.object-literal.key entity.name.function" + ], + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[TypeScript] Type/Class", + "scope": [ + "source.ts support.class", + "source.ts support.type", + "source.ts entity.name.type", + "source.ts entity.name.class", + "source.tsx support.class", + "source.tsx support.type", + "source.tsx entity.name.type", + "source.tsx entity.name.class" + ], + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[TypeScript] Static Class Support", + "scope": [ + "source.ts support.constant.math", + "source.ts support.constant.dom", + "source.ts support.constant.json", + "source.tsx support.constant.math", + "source.tsx support.constant.dom", + "source.tsx support.constant.json" + ], + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[TypeScript] Variables", + "scope": ["source.ts support.variable", "source.tsx support.variable"], + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "[TypeScript] Parentheses in Template Strings", + "scope": [ + "source.ts meta.embedded.line meta.brace.square", + "source.ts meta.embedded.line meta.brace.round", + "source.tsx meta.embedded.line meta.brace.square", + "source.tsx meta.embedded.line meta.brace.round" + ], + "settings": { + "foreground": "#ECEFF4" + } + }, + { + "name": "[XML] Entity Name Tag Namespace", + "scope": "text.xml entity.name.tag.namespace", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[XML] Keyword Other Doctype", + "scope": "text.xml keyword.other.doctype", + "settings": { + "foreground": "#5E81AC" + } + }, + { + "name": "[XML] Meta Tag Preprocessor", + "scope": "text.xml meta.tag.preprocessor entity.name.tag", + "settings": { + "foreground": "#5E81AC" + } + }, + { + "name": "[XML] Entity Name Tag Namespace", + "scope": [ + "text.xml string.unquoted.cdata", + "text.xml string.unquoted.cdata punctuation.definition.string" + ], + "settings": { + "foreground": "#D08770", + "fontStyle": "italic" + } + }, + { + "name": "[YAML] Entity Name Tag", + "scope": "source.yaml entity.name.tag", + "settings": { + "foreground": "#8FBCBB" + } + } + ] } diff --git a/crates/theme2/src/registry.rs b/crates/theme2/src/registry.rs index c1bba121e1..bc6f8dbe94 100644 --- a/crates/theme2/src/registry.rs +++ b/crates/theme2/src/registry.rs @@ -1,4 +1,4 @@ -use crate::{zed_pro_family, ThemeFamily, ThemeVariant}; +use crate::{all_imported_themes, zed_pro_family, ThemeFamily, ThemeVariant}; use anyhow::{anyhow, Result}; use gpui::SharedString; use std::{collections::HashMap, sync::Arc}; @@ -42,7 +42,10 @@ impl Default for ThemeRegistry { themes: HashMap::default(), }; - this.insert_theme_families([zed_pro_family()]); + let mut all_themes = vec![zed_pro_family()]; + all_themes.extend(all_imported_themes()); + + this.insert_theme_families(all_themes); this } diff --git a/crates/theme2/src/themes/.gitkeep b/crates/theme2/src/themes/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/crates/theme2/src/themes/andromeda.rs b/crates/theme2/src/themes/andromeda.rs index 780c002a76..8b32d20480 100644 --- a/crates/theme2/src/themes/andromeda.rs +++ b/crates/theme2/src/themes/andromeda.rs @@ -8,10 +8,10 @@ pub fn andromeda() -> ThemeFamily { ThemeFamily { - id: "59c3749c-1bd0-4ee7-903b-5ffc7d097bf1".into(), + id: "0d2fdd0e-de6d-44b2-8f16-f4da10a78f2e".into(), name: "Andromeda".into(), author: "Eliver Lara (EliverLara)".into(), - themes: vec![ThemeVariant { id: "bdd515ce-a2e2-4414-a877-521bde0b47a1".into(), name: "Andromeda".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x1b1d23ff).into(), border_variant: rgba(0x1b1d23ff).into(), border_focused: rgba(0x1b1d23ff).into(), border_transparent: rgba(0x1b1d23ff).into(), elevated_surface_background: rgba(0x23262eff).into(), surface_background: rgba(0x23262eff).into(), background: rgba(0x23262eff).into(), element_background: rgba(0x00e8c5cc).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xd4cdd8ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x23262eff).into(), tab_active_background: rgba(0x23262eff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x111113ff).into(), terminal_ansi_bright_black: rgba(0x000000e6).into(), terminal_ansi_bright_red: rgba(0xee5d42ff).into(), terminal_ansi_bright_green: rgba(0x95e072ff).into(), terminal_ansi_bright_yellow: rgba(0xffe66dff).into(), terminal_ansi_bright_blue: rgba(0x7bb7ffff).into(), terminal_ansi_bright_magenta: rgba(0xff00a9ff).into(), terminal_ansi_bright_cyan: rgba(0x00e8c6ff).into(), terminal_ansi_bright_white: rgba(0xb0b4baff).into(), terminal_ansi_black: rgba(0x000000f2).into(), terminal_ansi_red: rgba(0xee5d42ff).into(), terminal_ansi_green: rgba(0x95e072ff).into(), terminal_ansi_yellow: rgba(0xffe66dff).into(), terminal_ansi_blue: rgba(0x7bb7ffff).into(), terminal_ansi_magenta: rgba(0xff00a9ff).into(), terminal_ansi_cyan: rgba(0x00e8c6ff).into(), terminal_ansi_white: rgba(0xedeef0ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "c296bb0e-d931-4b11-a480-b1b79cc931b3".into(), name: "Andromeda Bordered".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x1b1d23ff).into(), border_variant: rgba(0x1b1d23ff).into(), border_focused: rgba(0x1b1d23ff).into(), border_transparent: rgba(0x1b1d23ff).into(), elevated_surface_background: rgba(0x23262eff).into(), surface_background: rgba(0x23262eff).into(), background: rgba(0x262933ff).into(), element_background: rgba(0x00e8c5cc).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xd4cdd8ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x23262eff).into(), tab_active_background: rgba(0x262933ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x111113ff).into(), terminal_ansi_bright_black: rgba(0x000000e6).into(), terminal_ansi_bright_red: rgba(0xee5d42ff).into(), terminal_ansi_bright_green: rgba(0x95e072ff).into(), terminal_ansi_bright_yellow: rgba(0xffe66dff).into(), terminal_ansi_bright_blue: rgba(0x7bb7ffff).into(), terminal_ansi_bright_magenta: rgba(0xff00a9ff).into(), terminal_ansi_bright_cyan: rgba(0x00e8c6ff).into(), terminal_ansi_bright_white: rgba(0xb0b4baff).into(), terminal_ansi_black: rgba(0x000000f2).into(), terminal_ansi_red: rgba(0xee5d42ff).into(), terminal_ansi_green: rgba(0x95e072ff).into(), terminal_ansi_yellow: rgba(0xffe66dff).into(), terminal_ansi_blue: rgba(0x7bb7ffff).into(), terminal_ansi_magenta: rgba(0xff00a9ff).into(), terminal_ansi_cyan: rgba(0x00e8c6ff).into(), terminal_ansi_white: rgba(0xedeef0ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }], + themes: vec![ThemeVariant { id: "8a4e3be2-0ea0-4a0c-9fee-bc63123205ba".into(), name: "Andromeda".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x1b1d23ff).into(), border_variant: rgba(0x1b1d23ff).into(), border_focused: rgba(0x1b1d23ff).into(), border_disabled: rgba(0x1b1d23ff).into(), border_selected: rgba(0x1b1d23ff).into(), border_transparent: rgba(0x1b1d23ff).into(), elevated_surface_background: rgba(0x23262eff).into(), surface_background: rgba(0x23262eff).into(), background: rgba(0x23262eff).into(), element_background: rgba(0x00e8c5cc).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xd4cdd8ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x23262eff).into(), tab_active_background: rgba(0x23262eff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x111113ff).into(), terminal_ansi_bright_black: rgba(0x000000e6).into(), terminal_ansi_bright_red: rgba(0xee5d42ff).into(), terminal_ansi_bright_green: rgba(0x95e072ff).into(), terminal_ansi_bright_yellow: rgba(0xffe66dff).into(), terminal_ansi_bright_blue: rgba(0x7bb7ffff).into(), terminal_ansi_bright_magenta: rgba(0xff00a9ff).into(), terminal_ansi_bright_cyan: rgba(0x00e8c6ff).into(), terminal_ansi_bright_white: rgba(0xb0b4baff).into(), terminal_ansi_black: rgba(0x000000f2).into(), terminal_ansi_red: rgba(0xee5d42ff).into(), terminal_ansi_green: rgba(0x95e072ff).into(), terminal_ansi_yellow: rgba(0xffe66dff).into(), terminal_ansi_blue: rgba(0x7bb7ffff).into(), terminal_ansi_magenta: rgba(0xff00a9ff).into(), terminal_ansi_cyan: rgba(0x00e8c6ff).into(), terminal_ansi_white: rgba(0xedeef0ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "812f0805-5f84-4f3f-97d3-b38b44307132".into(), name: "Andromeda Bordered".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x1b1d23ff).into(), border_variant: rgba(0x1b1d23ff).into(), border_focused: rgba(0x1b1d23ff).into(), border_disabled: rgba(0x1b1d23ff).into(), border_selected: rgba(0x1b1d23ff).into(), border_transparent: rgba(0x1b1d23ff).into(), elevated_surface_background: rgba(0x23262eff).into(), surface_background: rgba(0x23262eff).into(), background: rgba(0x262933ff).into(), element_background: rgba(0x00e8c5cc).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xd4cdd8ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x23262eff).into(), tab_active_background: rgba(0x262933ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x111113ff).into(), terminal_ansi_bright_black: rgba(0x000000e6).into(), terminal_ansi_bright_red: rgba(0xee5d42ff).into(), terminal_ansi_bright_green: rgba(0x95e072ff).into(), terminal_ansi_bright_yellow: rgba(0xffe66dff).into(), terminal_ansi_bright_blue: rgba(0x7bb7ffff).into(), terminal_ansi_bright_magenta: rgba(0xff00a9ff).into(), terminal_ansi_bright_cyan: rgba(0x00e8c6ff).into(), terminal_ansi_bright_white: rgba(0xb0b4baff).into(), terminal_ansi_black: rgba(0x000000f2).into(), terminal_ansi_red: rgba(0xee5d42ff).into(), terminal_ansi_green: rgba(0x95e072ff).into(), terminal_ansi_yellow: rgba(0xffe66dff).into(), terminal_ansi_blue: rgba(0x7bb7ffff).into(), terminal_ansi_magenta: rgba(0xff00a9ff).into(), terminal_ansi_cyan: rgba(0x00e8c6ff).into(), terminal_ansi_white: rgba(0xedeef0ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }], scales: default_color_scales(), } } diff --git a/crates/theme2/src/themes/ayu.rs b/crates/theme2/src/themes/ayu.rs index 664c6e4938..4e12340d3f 100644 --- a/crates/theme2/src/themes/ayu.rs +++ b/crates/theme2/src/themes/ayu.rs @@ -8,10 +8,10 @@ pub fn ayu() -> ThemeFamily { ThemeFamily { - id: "d002a0c0-915d-4778-9b6e-33e212ce36ad".into(), + id: "769923cd-f2b6-4675-96b8-8a2953fc635b".into(), name: "Ayu".into(), author: "dempfi (Ike Ku)".into(), - themes: vec![ThemeVariant { id: "5c9909bb-b36d-438d-bad3-0a4d4d1d98cd".into(), name: "Ayu Light".into(), appearance: Appearance::Light, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x6b7d8f1f).into(), border_variant: rgba(0x6b7d8f1f).into(), border_focused: rgba(0x6b7d8f1f).into(), border_transparent: rgba(0x6b7d8f1f).into(), elevated_surface_background: rgba(0xf8f9faff).into(), surface_background: rgba(0xf8f9faff).into(), background: rgba(0xf8f9faff).into(), element_background: rgba(0xffaa32ff).into(), element_hover: rgba(0xe8e8ecff).into(), element_active: rgba(0xe0e1e6ff).into(), element_selected: rgba(0xe0e1e6ff).into(), element_disabled: rgba(0x0000320f).into(), element_placeholder: rgba(0x60646cff).into(), element_drop_target: rgba(0x008bff0b).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0xe8e8ecff).into(), ghost_element_active: rgba(0xe0e1e6ff).into(), ghost_element_selected: rgba(0xe0e1e6ff).into(), ghost_element_disabled: rgba(0x0000320f).into(), text: rgba(0x8a9199ff).into(), text_muted: rgba(0x60646cff).into(), text_placeholder: rgba(0x80838dff).into(), text_disabled: rgba(0x8b8d98ff).into(), text_accent: rgba(0x0c73ceff).into(), icon: rgba(0x60646cff).into(), icon_muted: rgba(0x80838dff).into(), icon_disabled: rgba(0x8b8d98ff).into(), icon_placeholder: rgba(0x80838dff).into(), icon_accent: rgba(0x0c73ceff).into(), status_bar_background: rgba(0xf9f9fbff).into(), title_bar_background: rgba(0xf9f9fbff).into(), toolbar_background: rgba(0xfcfcfdff).into(), tab_bar_background: rgba(0xf9f9fbff).into(), tab_inactive_background: rgba(0xf8f9faff).into(), tab_active_background: rgba(0xf8f9faff).into(), editor_background: rgba(0xfcfcfdff).into(), editor_subheader_background: rgba(0xf9f9fbff).into(), editor_active_line: rgba(0x0000320f).into(), terminal_background: rgba(0xf8f9faff).into(), terminal_ansi_bright_black: rgba(0x686868ff).into(), terminal_ansi_bright_red: rgba(0xef7070ff).into(), terminal_ansi_bright_green: rgba(0x86b300ff).into(), terminal_ansi_bright_yellow: rgba(0xf2ad48ff).into(), terminal_ansi_bright_blue: rgba(0x389ee6ff).into(), terminal_ansi_bright_magenta: rgba(0xa37accff).into(), terminal_ansi_bright_cyan: rgba(0x4bbf98ff).into(), terminal_ansi_bright_white: rgba(0xd1d1d1ff).into(), terminal_ansi_black: rgba(0x000000ff).into(), terminal_ansi_red: rgba(0xea6c6dff).into(), terminal_ansi_green: rgba(0x6cbf43ff).into(), terminal_ansi_yellow: rgba(0xeca944ff).into(), terminal_ansi_blue: rgba(0x3198e1ff).into(), terminal_ansi_magenta: rgba(0x9e75c7ff).into(), terminal_ansi_cyan: rgba(0x46ba94ff).into(), terminal_ansi_white: rgba(0xc7c7c7ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "fc965133-79ea-408a-8418-6e58124d6116".into(), name: "Ayu Mirage".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x171a24ff).into(), border_variant: rgba(0x171a24ff).into(), border_focused: rgba(0x171a24ff).into(), border_transparent: rgba(0x171a24ff).into(), elevated_surface_background: rgba(0x1f2430ff).into(), surface_background: rgba(0x1f2430ff).into(), background: rgba(0x1f2430ff).into(), element_background: rgba(0xffcb65ff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0x707a8cff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x1f2430ff).into(), tab_active_background: rgba(0x1f2430ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x1f2430ff).into(), terminal_ansi_bright_black: rgba(0x686868ff).into(), terminal_ansi_bright_red: rgba(0xf18678ff).into(), terminal_ansi_bright_green: rgba(0xd4fe7fff).into(), terminal_ansi_bright_yellow: rgba(0xffd173ff).into(), terminal_ansi_bright_blue: rgba(0x73cfffff).into(), terminal_ansi_bright_magenta: rgba(0xdfbfffff).into(), terminal_ansi_bright_cyan: rgba(0x95e6cbff).into(), terminal_ansi_bright_white: rgba(0xffffffff).into(), terminal_ansi_black: rgba(0x171a24ff).into(), terminal_ansi_red: rgba(0xed8173ff).into(), terminal_ansi_green: rgba(0x86d96bff).into(), terminal_ansi_yellow: rgba(0xfacc6eff).into(), terminal_ansi_blue: rgba(0x6ccafaff).into(), terminal_ansi_magenta: rgba(0xdabafaff).into(), terminal_ansi_cyan: rgba(0x90e1c6ff).into(), terminal_ansi_white: rgba(0xc7c7c7ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "3b9fd3a3-3582-4de9-ae4b-dfffccc0f0e0".into(), name: "Ayu Dark".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x1e232bff).into(), border_variant: rgba(0x1e232bff).into(), border_focused: rgba(0x1e232bff).into(), border_transparent: rgba(0x1e232bff).into(), elevated_surface_background: rgba(0x0b0e14ff).into(), surface_background: rgba(0x0b0e14ff).into(), background: rgba(0x0b0e14ff).into(), element_background: rgba(0xe6b450ff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0x565b66ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x0b0e14ff).into(), tab_active_background: rgba(0x0b0e14ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x0b0e14ff).into(), terminal_ansi_bright_black: rgba(0x686868ff).into(), terminal_ansi_bright_red: rgba(0xef7077ff).into(), terminal_ansi_bright_green: rgba(0xa9d94bff).into(), terminal_ansi_bright_yellow: rgba(0xffb353ff).into(), terminal_ansi_bright_blue: rgba(0x59c2ffff).into(), terminal_ansi_bright_magenta: rgba(0xd2a6ffff).into(), terminal_ansi_bright_cyan: rgba(0x95e6cbff).into(), terminal_ansi_bright_white: rgba(0xffffffff).into(), terminal_ansi_black: rgba(0x1e232bff).into(), terminal_ansi_red: rgba(0xea6c72ff).into(), terminal_ansi_green: rgba(0x7ed962ff).into(), terminal_ansi_yellow: rgba(0xf9af4fff).into(), terminal_ansi_blue: rgba(0x52bdfaff).into(), terminal_ansi_magenta: rgba(0xcca1faff).into(), terminal_ansi_cyan: rgba(0x90e1c6ff).into(), terminal_ansi_white: rgba(0xc7c7c7ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }], + themes: vec![ThemeVariant { id: "f6ae55e2-a844-47ba-a720-ca88dd7b2a12".into(), name: "Ayu Light".into(), appearance: Appearance::Light, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x6b7d8f1f).into(), border_variant: rgba(0x6b7d8f1f).into(), border_focused: rgba(0x6b7d8f1f).into(), border_disabled: rgba(0x6b7d8f1f).into(), border_selected: rgba(0x6b7d8f1f).into(), border_transparent: rgba(0x6b7d8f1f).into(), elevated_surface_background: rgba(0xf8f9faff).into(), surface_background: rgba(0xf8f9faff).into(), background: rgba(0xf8f9faff).into(), element_background: rgba(0xffaa32ff).into(), element_hover: rgba(0xe8e8ecff).into(), element_active: rgba(0xe0e1e6ff).into(), element_selected: rgba(0xe0e1e6ff).into(), element_disabled: rgba(0x0000320f).into(), element_placeholder: rgba(0x60646cff).into(), element_drop_target: rgba(0x008bff0b).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0xe8e8ecff).into(), ghost_element_active: rgba(0xe0e1e6ff).into(), ghost_element_selected: rgba(0xe0e1e6ff).into(), ghost_element_disabled: rgba(0x0000320f).into(), text: rgba(0x8a9199ff).into(), text_muted: rgba(0x60646cff).into(), text_placeholder: rgba(0x80838dff).into(), text_disabled: rgba(0x8b8d98ff).into(), text_accent: rgba(0x0c73ceff).into(), icon: rgba(0x60646cff).into(), icon_muted: rgba(0x80838dff).into(), icon_disabled: rgba(0x8b8d98ff).into(), icon_placeholder: rgba(0x80838dff).into(), icon_accent: rgba(0x0c73ceff).into(), status_bar_background: rgba(0xf9f9fbff).into(), title_bar_background: rgba(0xf9f9fbff).into(), toolbar_background: rgba(0xfcfcfdff).into(), tab_bar_background: rgba(0xf9f9fbff).into(), tab_inactive_background: rgba(0xf8f9faff).into(), tab_active_background: rgba(0xf8f9faff).into(), editor_background: rgba(0xfcfcfdff).into(), editor_subheader_background: rgba(0xf9f9fbff).into(), editor_active_line: rgba(0x0000320f).into(), terminal_background: rgba(0xf8f9faff).into(), terminal_ansi_bright_black: rgba(0x686868ff).into(), terminal_ansi_bright_red: rgba(0xef7070ff).into(), terminal_ansi_bright_green: rgba(0x86b300ff).into(), terminal_ansi_bright_yellow: rgba(0xf2ad48ff).into(), terminal_ansi_bright_blue: rgba(0x389ee6ff).into(), terminal_ansi_bright_magenta: rgba(0xa37accff).into(), terminal_ansi_bright_cyan: rgba(0x4bbf98ff).into(), terminal_ansi_bright_white: rgba(0xd1d1d1ff).into(), terminal_ansi_black: rgba(0x000000ff).into(), terminal_ansi_red: rgba(0xea6c6dff).into(), terminal_ansi_green: rgba(0x6cbf43ff).into(), terminal_ansi_yellow: rgba(0xeca944ff).into(), terminal_ansi_blue: rgba(0x3198e1ff).into(), terminal_ansi_magenta: rgba(0x9e75c7ff).into(), terminal_ansi_cyan: rgba(0x46ba94ff).into(), terminal_ansi_white: rgba(0xc7c7c7ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "440f604c-3a70-4bac-901a-2dc92c7a241a".into(), name: "Ayu Mirage".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x171a24ff).into(), border_variant: rgba(0x171a24ff).into(), border_focused: rgba(0x171a24ff).into(), border_disabled: rgba(0x171a24ff).into(), border_selected: rgba(0x171a24ff).into(), border_transparent: rgba(0x171a24ff).into(), elevated_surface_background: rgba(0x1f2430ff).into(), surface_background: rgba(0x1f2430ff).into(), background: rgba(0x1f2430ff).into(), element_background: rgba(0xffcb65ff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0x707a8cff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x1f2430ff).into(), tab_active_background: rgba(0x1f2430ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x1f2430ff).into(), terminal_ansi_bright_black: rgba(0x686868ff).into(), terminal_ansi_bright_red: rgba(0xf18678ff).into(), terminal_ansi_bright_green: rgba(0xd4fe7fff).into(), terminal_ansi_bright_yellow: rgba(0xffd173ff).into(), terminal_ansi_bright_blue: rgba(0x73cfffff).into(), terminal_ansi_bright_magenta: rgba(0xdfbfffff).into(), terminal_ansi_bright_cyan: rgba(0x95e6cbff).into(), terminal_ansi_bright_white: rgba(0xffffffff).into(), terminal_ansi_black: rgba(0x171a24ff).into(), terminal_ansi_red: rgba(0xed8173ff).into(), terminal_ansi_green: rgba(0x86d96bff).into(), terminal_ansi_yellow: rgba(0xfacc6eff).into(), terminal_ansi_blue: rgba(0x6ccafaff).into(), terminal_ansi_magenta: rgba(0xdabafaff).into(), terminal_ansi_cyan: rgba(0x90e1c6ff).into(), terminal_ansi_white: rgba(0xc7c7c7ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "0135d1f0-1331-4e5a-9634-73e8f72356d0".into(), name: "Ayu Dark".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x1e232bff).into(), border_variant: rgba(0x1e232bff).into(), border_focused: rgba(0x1e232bff).into(), border_disabled: rgba(0x1e232bff).into(), border_selected: rgba(0x1e232bff).into(), border_transparent: rgba(0x1e232bff).into(), elevated_surface_background: rgba(0x0b0e14ff).into(), surface_background: rgba(0x0b0e14ff).into(), background: rgba(0x0b0e14ff).into(), element_background: rgba(0xe6b450ff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0x565b66ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x0b0e14ff).into(), tab_active_background: rgba(0x0b0e14ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x0b0e14ff).into(), terminal_ansi_bright_black: rgba(0x686868ff).into(), terminal_ansi_bright_red: rgba(0xef7077ff).into(), terminal_ansi_bright_green: rgba(0xa9d94bff).into(), terminal_ansi_bright_yellow: rgba(0xffb353ff).into(), terminal_ansi_bright_blue: rgba(0x59c2ffff).into(), terminal_ansi_bright_magenta: rgba(0xd2a6ffff).into(), terminal_ansi_bright_cyan: rgba(0x95e6cbff).into(), terminal_ansi_bright_white: rgba(0xffffffff).into(), terminal_ansi_black: rgba(0x1e232bff).into(), terminal_ansi_red: rgba(0xea6c72ff).into(), terminal_ansi_green: rgba(0x7ed962ff).into(), terminal_ansi_yellow: rgba(0xf9af4fff).into(), terminal_ansi_blue: rgba(0x52bdfaff).into(), terminal_ansi_magenta: rgba(0xcca1faff).into(), terminal_ansi_cyan: rgba(0x90e1c6ff).into(), terminal_ansi_white: rgba(0xc7c7c7ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }], scales: default_color_scales(), } } diff --git a/crates/theme2/src/themes/dracula.rs b/crates/theme2/src/themes/dracula.rs index 3bb9d0c0bc..aff13ecae5 100644 --- a/crates/theme2/src/themes/dracula.rs +++ b/crates/theme2/src/themes/dracula.rs @@ -8,10 +8,10 @@ pub fn dracula() -> ThemeFamily { ThemeFamily { - id: "a8d7fe1f-5446-4d10-a462-5c4693d889d3".into(), + id: "690e6a78-4aa6-471e-a342-4d0e0ee14952".into(), name: "Dracula".into(), author: "Zeno Rocha".into(), - themes: vec![ThemeVariant { id: "ff2a239f-097b-4c86-a517-14011cd7fb52".into(), name: "Dracula".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0xbd93f9ff).into(), border_variant: rgba(0xbd93f9ff).into(), border_focused: rgba(0xbd93f9ff).into(), border_transparent: rgba(0xbd93f9ff).into(), elevated_surface_background: rgba(0x282a35ff).into(), surface_background: rgba(0x282a35ff).into(), background: rgba(0x282a35ff).into(), element_background: rgba(0x44475aff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xf8f8f2ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x21222cff).into(), tab_active_background: rgba(0x282a35ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x282a35ff).into(), terminal_ansi_bright_black: rgba(0x6272a4ff).into(), terminal_ansi_bright_red: rgba(0xff6d6dff).into(), terminal_ansi_bright_green: rgba(0x69ff94ff).into(), terminal_ansi_bright_yellow: rgba(0xffffa5ff).into(), terminal_ansi_bright_blue: rgba(0xd6abfeff).into(), terminal_ansi_bright_magenta: rgba(0xff92dfff).into(), terminal_ansi_bright_cyan: rgba(0xa3fefeff).into(), terminal_ansi_bright_white: rgba(0xffffffff).into(), terminal_ansi_black: rgba(0x21222cff).into(), terminal_ansi_red: rgba(0xff5555ff).into(), terminal_ansi_green: rgba(0x50fa7bff).into(), terminal_ansi_yellow: rgba(0xf1fa8cff).into(), terminal_ansi_blue: rgba(0xbd93f9ff).into(), terminal_ansi_magenta: rgba(0xff79c6ff).into(), terminal_ansi_cyan: rgba(0x8be9fdff).into(), terminal_ansi_white: rgba(0xf8f8f2ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }], + themes: vec![ThemeVariant { id: "b4d04bac-514f-4a38-bf03-df54bb135d82".into(), name: "Dracula".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0xbd93f9ff).into(), border_variant: rgba(0xbd93f9ff).into(), border_focused: rgba(0xbd93f9ff).into(), border_disabled: rgba(0xbd93f9ff).into(), border_selected: rgba(0xbd93f9ff).into(), border_transparent: rgba(0xbd93f9ff).into(), elevated_surface_background: rgba(0x282a35ff).into(), surface_background: rgba(0x282a35ff).into(), background: rgba(0x282a35ff).into(), element_background: rgba(0x44475aff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xf8f8f2ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x21222cff).into(), tab_active_background: rgba(0x282a35ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x282a35ff).into(), terminal_ansi_bright_black: rgba(0x6272a4ff).into(), terminal_ansi_bright_red: rgba(0xff6d6dff).into(), terminal_ansi_bright_green: rgba(0x69ff94ff).into(), terminal_ansi_bright_yellow: rgba(0xffffa5ff).into(), terminal_ansi_bright_blue: rgba(0xd6abfeff).into(), terminal_ansi_bright_magenta: rgba(0xff92dfff).into(), terminal_ansi_bright_cyan: rgba(0xa3fefeff).into(), terminal_ansi_bright_white: rgba(0xffffffff).into(), terminal_ansi_black: rgba(0x21222cff).into(), terminal_ansi_red: rgba(0xff5555ff).into(), terminal_ansi_green: rgba(0x50fa7bff).into(), terminal_ansi_yellow: rgba(0xf1fa8cff).into(), terminal_ansi_blue: rgba(0xbd93f9ff).into(), terminal_ansi_magenta: rgba(0xff79c6ff).into(), terminal_ansi_cyan: rgba(0x8be9fdff).into(), terminal_ansi_white: rgba(0xf8f8f2ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }], scales: default_color_scales(), } } diff --git a/crates/theme2/src/themes/gruvbox.rs b/crates/theme2/src/themes/gruvbox.rs index 8ed6787c03..e5d8507ee6 100644 --- a/crates/theme2/src/themes/gruvbox.rs +++ b/crates/theme2/src/themes/gruvbox.rs @@ -8,10 +8,10 @@ pub fn gruvbox() -> ThemeFamily { ThemeFamily { - id: "aed09b4b-6e2c-4de2-ac0e-a17f5575b8ce".into(), + id: "c3d8b05f-5538-4b73-9ce9-30a31f73f5f2".into(), name: "Gruvbox".into(), author: "morhetz".into(), - themes: vec![ThemeVariant { id: "53e773b8-60fe-40dc-b624-ab33a834627b".into(), name: "Gruvbox Dark Hard".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x3c3836ff).into(), border_variant: rgba(0x3c3836ff).into(), border_focused: rgba(0x3c3836ff).into(), border_transparent: rgba(0x3c3836ff).into(), elevated_surface_background: rgba(0x18191bff).into(), surface_background: rgba(0x18191bff).into(), background: rgba(0x1d2021ff).into(), element_background: rgba(0x44858780).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xebdbb2ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x1d2021ff).into(), tab_active_background: rgba(0x32302fff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x1d2021ff).into(), terminal_ansi_bright_black: rgba(0x928374ff).into(), terminal_ansi_bright_red: rgba(0xfb4833ff).into(), terminal_ansi_bright_green: rgba(0xb8bb25ff).into(), terminal_ansi_bright_yellow: rgba(0xfabd2eff).into(), terminal_ansi_bright_blue: rgba(0x83a598ff).into(), terminal_ansi_bright_magenta: rgba(0xd3869bff).into(), terminal_ansi_bright_cyan: rgba(0x8ec07cff).into(), terminal_ansi_bright_white: rgba(0xebdbb2ff).into(), terminal_ansi_black: rgba(0x3c3836ff).into(), terminal_ansi_red: rgba(0xcc241cff).into(), terminal_ansi_green: rgba(0x989719ff).into(), terminal_ansi_yellow: rgba(0xd79920ff).into(), terminal_ansi_blue: rgba(0x448587ff).into(), terminal_ansi_magenta: rgba(0xb16185ff).into(), terminal_ansi_cyan: rgba(0x679d6aff).into(), terminal_ansi_white: rgba(0xa89984ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "515bf7d7-1299-437e-a130-35e8bc76fe4e".into(), name: "Gruvbox Dark Medium".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x3c3836ff).into(), border_variant: rgba(0x3c3836ff).into(), border_focused: rgba(0x3c3836ff).into(), border_transparent: rgba(0x3c3836ff).into(), elevated_surface_background: rgba(0x18191bff).into(), surface_background: rgba(0x18191bff).into(), background: rgba(0x282828ff).into(), element_background: rgba(0x44858780).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xebdbb2ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x282828ff).into(), tab_active_background: rgba(0x3c3836ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x282828ff).into(), terminal_ansi_bright_black: rgba(0x928374ff).into(), terminal_ansi_bright_red: rgba(0xfb4833ff).into(), terminal_ansi_bright_green: rgba(0xb8bb25ff).into(), terminal_ansi_bright_yellow: rgba(0xfabd2eff).into(), terminal_ansi_bright_blue: rgba(0x83a598ff).into(), terminal_ansi_bright_magenta: rgba(0xd3869bff).into(), terminal_ansi_bright_cyan: rgba(0x8ec07cff).into(), terminal_ansi_bright_white: rgba(0xebdbb2ff).into(), terminal_ansi_black: rgba(0x3c3836ff).into(), terminal_ansi_red: rgba(0xcc241cff).into(), terminal_ansi_green: rgba(0x989719ff).into(), terminal_ansi_yellow: rgba(0xd79920ff).into(), terminal_ansi_blue: rgba(0x448587ff).into(), terminal_ansi_magenta: rgba(0xb16185ff).into(), terminal_ansi_cyan: rgba(0x679d6aff).into(), terminal_ansi_white: rgba(0xa89984ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "afb31789-7208-491a-b1ac-f92780a9bff5".into(), name: "Gruvbox Dark Soft".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x3c3836ff).into(), border_variant: rgba(0x3c3836ff).into(), border_focused: rgba(0x3c3836ff).into(), border_transparent: rgba(0x3c3836ff).into(), elevated_surface_background: rgba(0x18191bff).into(), surface_background: rgba(0x18191bff).into(), background: rgba(0x32302fff).into(), element_background: rgba(0x44858780).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xebdbb2ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x32302fff).into(), tab_active_background: rgba(0x504945ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x32302fff).into(), terminal_ansi_bright_black: rgba(0x928374ff).into(), terminal_ansi_bright_red: rgba(0xfb4833ff).into(), terminal_ansi_bright_green: rgba(0xb8bb25ff).into(), terminal_ansi_bright_yellow: rgba(0xfabd2eff).into(), terminal_ansi_bright_blue: rgba(0x83a598ff).into(), terminal_ansi_bright_magenta: rgba(0xd3869bff).into(), terminal_ansi_bright_cyan: rgba(0x8ec07cff).into(), terminal_ansi_bright_white: rgba(0xebdbb2ff).into(), terminal_ansi_black: rgba(0x3c3836ff).into(), terminal_ansi_red: rgba(0xcc241cff).into(), terminal_ansi_green: rgba(0x989719ff).into(), terminal_ansi_yellow: rgba(0xd79920ff).into(), terminal_ansi_blue: rgba(0x448587ff).into(), terminal_ansi_magenta: rgba(0xb16185ff).into(), terminal_ansi_cyan: rgba(0x679d6aff).into(), terminal_ansi_white: rgba(0xa89984ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "a8802a22-d4ae-49b9-9785-b912844fc9e0".into(), name: "Gruvbox Light Hard".into(), appearance: Appearance::Light, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0xebdbb2ff).into(), border_variant: rgba(0xebdbb2ff).into(), border_focused: rgba(0xebdbb2ff).into(), border_transparent: rgba(0xebdbb2ff).into(), elevated_surface_background: rgba(0xf9f9fbff).into(), surface_background: rgba(0xf9f9fbff).into(), background: rgba(0xf9f5d7ff).into(), element_background: rgba(0x44858780).into(), element_hover: rgba(0xe8e8ecff).into(), element_active: rgba(0xe0e1e6ff).into(), element_selected: rgba(0xe0e1e6ff).into(), element_disabled: rgba(0x0000320f).into(), element_placeholder: rgba(0x60646cff).into(), element_drop_target: rgba(0x008bff0b).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0xe8e8ecff).into(), ghost_element_active: rgba(0xe0e1e6ff).into(), ghost_element_selected: rgba(0xe0e1e6ff).into(), ghost_element_disabled: rgba(0x0000320f).into(), text: rgba(0x3c3836ff).into(), text_muted: rgba(0x60646cff).into(), text_placeholder: rgba(0x80838dff).into(), text_disabled: rgba(0x8b8d98ff).into(), text_accent: rgba(0x0c73ceff).into(), icon: rgba(0x60646cff).into(), icon_muted: rgba(0x80838dff).into(), icon_disabled: rgba(0x8b8d98ff).into(), icon_placeholder: rgba(0x80838dff).into(), icon_accent: rgba(0x0c73ceff).into(), status_bar_background: rgba(0xf9f9fbff).into(), title_bar_background: rgba(0xf9f9fbff).into(), toolbar_background: rgba(0xfcfcfdff).into(), tab_bar_background: rgba(0xf9f9fbff).into(), tab_inactive_background: rgba(0xf9f5d7ff).into(), tab_active_background: rgba(0xf2e5bcff).into(), editor_background: rgba(0xfcfcfdff).into(), editor_subheader_background: rgba(0xf9f9fbff).into(), editor_active_line: rgba(0x0000320f).into(), terminal_background: rgba(0xf9f5d7ff).into(), terminal_ansi_bright_black: rgba(0x928374ff).into(), terminal_ansi_bright_red: rgba(0x9d0006ff).into(), terminal_ansi_bright_green: rgba(0x79740eff).into(), terminal_ansi_bright_yellow: rgba(0xb57613ff).into(), terminal_ansi_bright_blue: rgba(0x066578ff).into(), terminal_ansi_bright_magenta: rgba(0x8f3e71ff).into(), terminal_ansi_bright_cyan: rgba(0x427b58ff).into(), terminal_ansi_bright_white: rgba(0x3c3836ff).into(), terminal_ansi_black: rgba(0xebdbb2ff).into(), terminal_ansi_red: rgba(0xcc241cff).into(), terminal_ansi_green: rgba(0x989719ff).into(), terminal_ansi_yellow: rgba(0xd79920ff).into(), terminal_ansi_blue: rgba(0x448587ff).into(), terminal_ansi_magenta: rgba(0xb16185ff).into(), terminal_ansi_cyan: rgba(0x679d6aff).into(), terminal_ansi_white: rgba(0x7c6f64ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "de7f0ba5-5ea8-483b-a71a-bd1313c84dfb".into(), name: "Gruvbox Light Medium".into(), appearance: Appearance::Light, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0xebdbb2ff).into(), border_variant: rgba(0xebdbb2ff).into(), border_focused: rgba(0xebdbb2ff).into(), border_transparent: rgba(0xebdbb2ff).into(), elevated_surface_background: rgba(0xf9f9fbff).into(), surface_background: rgba(0xf9f9fbff).into(), background: rgba(0xfbf1c7ff).into(), element_background: rgba(0x44858780).into(), element_hover: rgba(0xe8e8ecff).into(), element_active: rgba(0xe0e1e6ff).into(), element_selected: rgba(0xe0e1e6ff).into(), element_disabled: rgba(0x0000320f).into(), element_placeholder: rgba(0x60646cff).into(), element_drop_target: rgba(0x008bff0b).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0xe8e8ecff).into(), ghost_element_active: rgba(0xe0e1e6ff).into(), ghost_element_selected: rgba(0xe0e1e6ff).into(), ghost_element_disabled: rgba(0x0000320f).into(), text: rgba(0x3c3836ff).into(), text_muted: rgba(0x60646cff).into(), text_placeholder: rgba(0x80838dff).into(), text_disabled: rgba(0x8b8d98ff).into(), text_accent: rgba(0x0c73ceff).into(), icon: rgba(0x60646cff).into(), icon_muted: rgba(0x80838dff).into(), icon_disabled: rgba(0x8b8d98ff).into(), icon_placeholder: rgba(0x80838dff).into(), icon_accent: rgba(0x0c73ceff).into(), status_bar_background: rgba(0xf9f9fbff).into(), title_bar_background: rgba(0xf9f9fbff).into(), toolbar_background: rgba(0xfcfcfdff).into(), tab_bar_background: rgba(0xf9f9fbff).into(), tab_inactive_background: rgba(0xfbf1c7ff).into(), tab_active_background: rgba(0xebdbb2ff).into(), editor_background: rgba(0xfcfcfdff).into(), editor_subheader_background: rgba(0xf9f9fbff).into(), editor_active_line: rgba(0x0000320f).into(), terminal_background: rgba(0xfbf1c7ff).into(), terminal_ansi_bright_black: rgba(0x928374ff).into(), terminal_ansi_bright_red: rgba(0x9d0006ff).into(), terminal_ansi_bright_green: rgba(0x79740eff).into(), terminal_ansi_bright_yellow: rgba(0xb57613ff).into(), terminal_ansi_bright_blue: rgba(0x066578ff).into(), terminal_ansi_bright_magenta: rgba(0x8f3e71ff).into(), terminal_ansi_bright_cyan: rgba(0x427b58ff).into(), terminal_ansi_bright_white: rgba(0x3c3836ff).into(), terminal_ansi_black: rgba(0xebdbb2ff).into(), terminal_ansi_red: rgba(0xcc241cff).into(), terminal_ansi_green: rgba(0x989719ff).into(), terminal_ansi_yellow: rgba(0xd79920ff).into(), terminal_ansi_blue: rgba(0x448587ff).into(), terminal_ansi_magenta: rgba(0xb16185ff).into(), terminal_ansi_cyan: rgba(0x679d6aff).into(), terminal_ansi_white: rgba(0x7c6f64ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "45966b1b-6f0c-411b-be6b-3db6626f48c7".into(), name: "Gruvbox Light Soft".into(), appearance: Appearance::Light, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0xebdbb2ff).into(), border_variant: rgba(0xebdbb2ff).into(), border_focused: rgba(0xebdbb2ff).into(), border_transparent: rgba(0xebdbb2ff).into(), elevated_surface_background: rgba(0xf9f9fbff).into(), surface_background: rgba(0xf9f9fbff).into(), background: rgba(0xf2e5bcff).into(), element_background: rgba(0x44858780).into(), element_hover: rgba(0xe8e8ecff).into(), element_active: rgba(0xe0e1e6ff).into(), element_selected: rgba(0xe0e1e6ff).into(), element_disabled: rgba(0x0000320f).into(), element_placeholder: rgba(0x60646cff).into(), element_drop_target: rgba(0x008bff0b).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0xe8e8ecff).into(), ghost_element_active: rgba(0xe0e1e6ff).into(), ghost_element_selected: rgba(0xe0e1e6ff).into(), ghost_element_disabled: rgba(0x0000320f).into(), text: rgba(0x3c3836ff).into(), text_muted: rgba(0x60646cff).into(), text_placeholder: rgba(0x80838dff).into(), text_disabled: rgba(0x8b8d98ff).into(), text_accent: rgba(0x0c73ceff).into(), icon: rgba(0x60646cff).into(), icon_muted: rgba(0x80838dff).into(), icon_disabled: rgba(0x8b8d98ff).into(), icon_placeholder: rgba(0x80838dff).into(), icon_accent: rgba(0x0c73ceff).into(), status_bar_background: rgba(0xf9f9fbff).into(), title_bar_background: rgba(0xf9f9fbff).into(), toolbar_background: rgba(0xfcfcfdff).into(), tab_bar_background: rgba(0xf9f9fbff).into(), tab_inactive_background: rgba(0xf2e5bcff).into(), tab_active_background: rgba(0xd5c4a1ff).into(), editor_background: rgba(0xfcfcfdff).into(), editor_subheader_background: rgba(0xf9f9fbff).into(), editor_active_line: rgba(0x0000320f).into(), terminal_background: rgba(0xf2e5bcff).into(), terminal_ansi_bright_black: rgba(0x928374ff).into(), terminal_ansi_bright_red: rgba(0x9d0006ff).into(), terminal_ansi_bright_green: rgba(0x79740eff).into(), terminal_ansi_bright_yellow: rgba(0xb57613ff).into(), terminal_ansi_bright_blue: rgba(0x066578ff).into(), terminal_ansi_bright_magenta: rgba(0x8f3e71ff).into(), terminal_ansi_bright_cyan: rgba(0x427b58ff).into(), terminal_ansi_bright_white: rgba(0x3c3836ff).into(), terminal_ansi_black: rgba(0xebdbb2ff).into(), terminal_ansi_red: rgba(0xcc241cff).into(), terminal_ansi_green: rgba(0x989719ff).into(), terminal_ansi_yellow: rgba(0xd79920ff).into(), terminal_ansi_blue: rgba(0x448587ff).into(), terminal_ansi_magenta: rgba(0xb16185ff).into(), terminal_ansi_cyan: rgba(0x679d6aff).into(), terminal_ansi_white: rgba(0x7c6f64ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }], + themes: vec![ThemeVariant { id: "014ce751-7184-44a0-b977-001d88e94d75".into(), name: "Gruvbox Dark Hard".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x3c3836ff).into(), border_variant: rgba(0x3c3836ff).into(), border_focused: rgba(0x3c3836ff).into(), border_disabled: rgba(0x3c3836ff).into(), border_selected: rgba(0x3c3836ff).into(), border_transparent: rgba(0x3c3836ff).into(), elevated_surface_background: rgba(0x18191bff).into(), surface_background: rgba(0x18191bff).into(), background: rgba(0x1d2021ff).into(), element_background: rgba(0x44858780).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xebdbb2ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x1d2021ff).into(), tab_active_background: rgba(0x32302fff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x1d2021ff).into(), terminal_ansi_bright_black: rgba(0x928374ff).into(), terminal_ansi_bright_red: rgba(0xfb4833ff).into(), terminal_ansi_bright_green: rgba(0xb8bb25ff).into(), terminal_ansi_bright_yellow: rgba(0xfabd2eff).into(), terminal_ansi_bright_blue: rgba(0x83a598ff).into(), terminal_ansi_bright_magenta: rgba(0xd3869bff).into(), terminal_ansi_bright_cyan: rgba(0x8ec07cff).into(), terminal_ansi_bright_white: rgba(0xebdbb2ff).into(), terminal_ansi_black: rgba(0x3c3836ff).into(), terminal_ansi_red: rgba(0xcc241cff).into(), terminal_ansi_green: rgba(0x989719ff).into(), terminal_ansi_yellow: rgba(0xd79920ff).into(), terminal_ansi_blue: rgba(0x448587ff).into(), terminal_ansi_magenta: rgba(0xb16185ff).into(), terminal_ansi_cyan: rgba(0x679d6aff).into(), terminal_ansi_white: rgba(0xa89984ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "abf0dd62-cc6a-464b-bd63-75c28eabb1c0".into(), name: "Gruvbox Dark Medium".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x3c3836ff).into(), border_variant: rgba(0x3c3836ff).into(), border_focused: rgba(0x3c3836ff).into(), border_disabled: rgba(0x3c3836ff).into(), border_selected: rgba(0x3c3836ff).into(), border_transparent: rgba(0x3c3836ff).into(), elevated_surface_background: rgba(0x18191bff).into(), surface_background: rgba(0x18191bff).into(), background: rgba(0x282828ff).into(), element_background: rgba(0x44858780).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xebdbb2ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x282828ff).into(), tab_active_background: rgba(0x3c3836ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x282828ff).into(), terminal_ansi_bright_black: rgba(0x928374ff).into(), terminal_ansi_bright_red: rgba(0xfb4833ff).into(), terminal_ansi_bright_green: rgba(0xb8bb25ff).into(), terminal_ansi_bright_yellow: rgba(0xfabd2eff).into(), terminal_ansi_bright_blue: rgba(0x83a598ff).into(), terminal_ansi_bright_magenta: rgba(0xd3869bff).into(), terminal_ansi_bright_cyan: rgba(0x8ec07cff).into(), terminal_ansi_bright_white: rgba(0xebdbb2ff).into(), terminal_ansi_black: rgba(0x3c3836ff).into(), terminal_ansi_red: rgba(0xcc241cff).into(), terminal_ansi_green: rgba(0x989719ff).into(), terminal_ansi_yellow: rgba(0xd79920ff).into(), terminal_ansi_blue: rgba(0x448587ff).into(), terminal_ansi_magenta: rgba(0xb16185ff).into(), terminal_ansi_cyan: rgba(0x679d6aff).into(), terminal_ansi_white: rgba(0xa89984ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "03a2ee16-8076-449b-9bb2-16fd02fbf21d".into(), name: "Gruvbox Dark Soft".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x3c3836ff).into(), border_variant: rgba(0x3c3836ff).into(), border_focused: rgba(0x3c3836ff).into(), border_disabled: rgba(0x3c3836ff).into(), border_selected: rgba(0x3c3836ff).into(), border_transparent: rgba(0x3c3836ff).into(), elevated_surface_background: rgba(0x18191bff).into(), surface_background: rgba(0x18191bff).into(), background: rgba(0x32302fff).into(), element_background: rgba(0x44858780).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xebdbb2ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x32302fff).into(), tab_active_background: rgba(0x504945ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x32302fff).into(), terminal_ansi_bright_black: rgba(0x928374ff).into(), terminal_ansi_bright_red: rgba(0xfb4833ff).into(), terminal_ansi_bright_green: rgba(0xb8bb25ff).into(), terminal_ansi_bright_yellow: rgba(0xfabd2eff).into(), terminal_ansi_bright_blue: rgba(0x83a598ff).into(), terminal_ansi_bright_magenta: rgba(0xd3869bff).into(), terminal_ansi_bright_cyan: rgba(0x8ec07cff).into(), terminal_ansi_bright_white: rgba(0xebdbb2ff).into(), terminal_ansi_black: rgba(0x3c3836ff).into(), terminal_ansi_red: rgba(0xcc241cff).into(), terminal_ansi_green: rgba(0x989719ff).into(), terminal_ansi_yellow: rgba(0xd79920ff).into(), terminal_ansi_blue: rgba(0x448587ff).into(), terminal_ansi_magenta: rgba(0xb16185ff).into(), terminal_ansi_cyan: rgba(0x679d6aff).into(), terminal_ansi_white: rgba(0xa89984ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "7bbc0a0b-5b57-4731-bfae-02b4ff7ee821".into(), name: "Gruvbox Light Hard".into(), appearance: Appearance::Light, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0xebdbb2ff).into(), border_variant: rgba(0xebdbb2ff).into(), border_focused: rgba(0xebdbb2ff).into(), border_disabled: rgba(0xebdbb2ff).into(), border_selected: rgba(0xebdbb2ff).into(), border_transparent: rgba(0xebdbb2ff).into(), elevated_surface_background: rgba(0xf9f9fbff).into(), surface_background: rgba(0xf9f9fbff).into(), background: rgba(0xf9f5d7ff).into(), element_background: rgba(0x44858780).into(), element_hover: rgba(0xe8e8ecff).into(), element_active: rgba(0xe0e1e6ff).into(), element_selected: rgba(0xe0e1e6ff).into(), element_disabled: rgba(0x0000320f).into(), element_placeholder: rgba(0x60646cff).into(), element_drop_target: rgba(0x008bff0b).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0xe8e8ecff).into(), ghost_element_active: rgba(0xe0e1e6ff).into(), ghost_element_selected: rgba(0xe0e1e6ff).into(), ghost_element_disabled: rgba(0x0000320f).into(), text: rgba(0x3c3836ff).into(), text_muted: rgba(0x60646cff).into(), text_placeholder: rgba(0x80838dff).into(), text_disabled: rgba(0x8b8d98ff).into(), text_accent: rgba(0x0c73ceff).into(), icon: rgba(0x60646cff).into(), icon_muted: rgba(0x80838dff).into(), icon_disabled: rgba(0x8b8d98ff).into(), icon_placeholder: rgba(0x80838dff).into(), icon_accent: rgba(0x0c73ceff).into(), status_bar_background: rgba(0xf9f9fbff).into(), title_bar_background: rgba(0xf9f9fbff).into(), toolbar_background: rgba(0xfcfcfdff).into(), tab_bar_background: rgba(0xf9f9fbff).into(), tab_inactive_background: rgba(0xf9f5d7ff).into(), tab_active_background: rgba(0xf2e5bcff).into(), editor_background: rgba(0xfcfcfdff).into(), editor_subheader_background: rgba(0xf9f9fbff).into(), editor_active_line: rgba(0x0000320f).into(), terminal_background: rgba(0xf9f5d7ff).into(), terminal_ansi_bright_black: rgba(0x928374ff).into(), terminal_ansi_bright_red: rgba(0x9d0006ff).into(), terminal_ansi_bright_green: rgba(0x79740eff).into(), terminal_ansi_bright_yellow: rgba(0xb57613ff).into(), terminal_ansi_bright_blue: rgba(0x066578ff).into(), terminal_ansi_bright_magenta: rgba(0x8f3e71ff).into(), terminal_ansi_bright_cyan: rgba(0x427b58ff).into(), terminal_ansi_bright_white: rgba(0x3c3836ff).into(), terminal_ansi_black: rgba(0xebdbb2ff).into(), terminal_ansi_red: rgba(0xcc241cff).into(), terminal_ansi_green: rgba(0x989719ff).into(), terminal_ansi_yellow: rgba(0xd79920ff).into(), terminal_ansi_blue: rgba(0x448587ff).into(), terminal_ansi_magenta: rgba(0xb16185ff).into(), terminal_ansi_cyan: rgba(0x679d6aff).into(), terminal_ansi_white: rgba(0x7c6f64ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "3319ee0f-2d7f-4efc-84ae-132b30126bb1".into(), name: "Gruvbox Light Medium".into(), appearance: Appearance::Light, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0xebdbb2ff).into(), border_variant: rgba(0xebdbb2ff).into(), border_focused: rgba(0xebdbb2ff).into(), border_disabled: rgba(0xebdbb2ff).into(), border_selected: rgba(0xebdbb2ff).into(), border_transparent: rgba(0xebdbb2ff).into(), elevated_surface_background: rgba(0xf9f9fbff).into(), surface_background: rgba(0xf9f9fbff).into(), background: rgba(0xfbf1c7ff).into(), element_background: rgba(0x44858780).into(), element_hover: rgba(0xe8e8ecff).into(), element_active: rgba(0xe0e1e6ff).into(), element_selected: rgba(0xe0e1e6ff).into(), element_disabled: rgba(0x0000320f).into(), element_placeholder: rgba(0x60646cff).into(), element_drop_target: rgba(0x008bff0b).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0xe8e8ecff).into(), ghost_element_active: rgba(0xe0e1e6ff).into(), ghost_element_selected: rgba(0xe0e1e6ff).into(), ghost_element_disabled: rgba(0x0000320f).into(), text: rgba(0x3c3836ff).into(), text_muted: rgba(0x60646cff).into(), text_placeholder: rgba(0x80838dff).into(), text_disabled: rgba(0x8b8d98ff).into(), text_accent: rgba(0x0c73ceff).into(), icon: rgba(0x60646cff).into(), icon_muted: rgba(0x80838dff).into(), icon_disabled: rgba(0x8b8d98ff).into(), icon_placeholder: rgba(0x80838dff).into(), icon_accent: rgba(0x0c73ceff).into(), status_bar_background: rgba(0xf9f9fbff).into(), title_bar_background: rgba(0xf9f9fbff).into(), toolbar_background: rgba(0xfcfcfdff).into(), tab_bar_background: rgba(0xf9f9fbff).into(), tab_inactive_background: rgba(0xfbf1c7ff).into(), tab_active_background: rgba(0xebdbb2ff).into(), editor_background: rgba(0xfcfcfdff).into(), editor_subheader_background: rgba(0xf9f9fbff).into(), editor_active_line: rgba(0x0000320f).into(), terminal_background: rgba(0xfbf1c7ff).into(), terminal_ansi_bright_black: rgba(0x928374ff).into(), terminal_ansi_bright_red: rgba(0x9d0006ff).into(), terminal_ansi_bright_green: rgba(0x79740eff).into(), terminal_ansi_bright_yellow: rgba(0xb57613ff).into(), terminal_ansi_bright_blue: rgba(0x066578ff).into(), terminal_ansi_bright_magenta: rgba(0x8f3e71ff).into(), terminal_ansi_bright_cyan: rgba(0x427b58ff).into(), terminal_ansi_bright_white: rgba(0x3c3836ff).into(), terminal_ansi_black: rgba(0xebdbb2ff).into(), terminal_ansi_red: rgba(0xcc241cff).into(), terminal_ansi_green: rgba(0x989719ff).into(), terminal_ansi_yellow: rgba(0xd79920ff).into(), terminal_ansi_blue: rgba(0x448587ff).into(), terminal_ansi_magenta: rgba(0xb16185ff).into(), terminal_ansi_cyan: rgba(0x679d6aff).into(), terminal_ansi_white: rgba(0x7c6f64ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "d455f416-a0a5-4ef6-a808-64aafeb7aaae".into(), name: "Gruvbox Light Soft".into(), appearance: Appearance::Light, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0xebdbb2ff).into(), border_variant: rgba(0xebdbb2ff).into(), border_focused: rgba(0xebdbb2ff).into(), border_disabled: rgba(0xebdbb2ff).into(), border_selected: rgba(0xebdbb2ff).into(), border_transparent: rgba(0xebdbb2ff).into(), elevated_surface_background: rgba(0xf9f9fbff).into(), surface_background: rgba(0xf9f9fbff).into(), background: rgba(0xf2e5bcff).into(), element_background: rgba(0x44858780).into(), element_hover: rgba(0xe8e8ecff).into(), element_active: rgba(0xe0e1e6ff).into(), element_selected: rgba(0xe0e1e6ff).into(), element_disabled: rgba(0x0000320f).into(), element_placeholder: rgba(0x60646cff).into(), element_drop_target: rgba(0x008bff0b).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0xe8e8ecff).into(), ghost_element_active: rgba(0xe0e1e6ff).into(), ghost_element_selected: rgba(0xe0e1e6ff).into(), ghost_element_disabled: rgba(0x0000320f).into(), text: rgba(0x3c3836ff).into(), text_muted: rgba(0x60646cff).into(), text_placeholder: rgba(0x80838dff).into(), text_disabled: rgba(0x8b8d98ff).into(), text_accent: rgba(0x0c73ceff).into(), icon: rgba(0x60646cff).into(), icon_muted: rgba(0x80838dff).into(), icon_disabled: rgba(0x8b8d98ff).into(), icon_placeholder: rgba(0x80838dff).into(), icon_accent: rgba(0x0c73ceff).into(), status_bar_background: rgba(0xf9f9fbff).into(), title_bar_background: rgba(0xf9f9fbff).into(), toolbar_background: rgba(0xfcfcfdff).into(), tab_bar_background: rgba(0xf9f9fbff).into(), tab_inactive_background: rgba(0xf2e5bcff).into(), tab_active_background: rgba(0xd5c4a1ff).into(), editor_background: rgba(0xfcfcfdff).into(), editor_subheader_background: rgba(0xf9f9fbff).into(), editor_active_line: rgba(0x0000320f).into(), terminal_background: rgba(0xf2e5bcff).into(), terminal_ansi_bright_black: rgba(0x928374ff).into(), terminal_ansi_bright_red: rgba(0x9d0006ff).into(), terminal_ansi_bright_green: rgba(0x79740eff).into(), terminal_ansi_bright_yellow: rgba(0xb57613ff).into(), terminal_ansi_bright_blue: rgba(0x066578ff).into(), terminal_ansi_bright_magenta: rgba(0x8f3e71ff).into(), terminal_ansi_bright_cyan: rgba(0x427b58ff).into(), terminal_ansi_bright_white: rgba(0x3c3836ff).into(), terminal_ansi_black: rgba(0xebdbb2ff).into(), terminal_ansi_red: rgba(0xcc241cff).into(), terminal_ansi_green: rgba(0x989719ff).into(), terminal_ansi_yellow: rgba(0xd79920ff).into(), terminal_ansi_blue: rgba(0x448587ff).into(), terminal_ansi_magenta: rgba(0xb16185ff).into(), terminal_ansi_cyan: rgba(0x679d6aff).into(), terminal_ansi_white: rgba(0x7c6f64ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }], scales: default_color_scales(), } } diff --git a/crates/theme2/src/themes/mod.rs b/crates/theme2/src/themes/mod.rs index af2b0d51ee..41071e8655 100644 --- a/crates/theme2/src/themes/mod.rs +++ b/crates/theme2/src/themes/mod.rs @@ -1,12 +1,23 @@ -mod andromeda; -mod ayu; + mod andromeda; mod dracula; -mod gruvbox; +mod nord; mod notctis; +mod ayu; +mod gruvbox; -pub use andromeda::*; -pub use ayu::*; + pub use andromeda::*; pub use dracula::*; -pub use gruvbox::*; +pub use nord::*; pub use notctis::*; +pub use ayu::*; +pub use gruvbox::*; + + + use crate::ThemeFamily; + + pub(crate) fn all_imported_themes() -> Vec { + vec![andromeda(), dracula(), nord(), notctis(), ayu(), gruvbox()] + } + + \ No newline at end of file diff --git a/crates/theme2/src/themes/nord.rs b/crates/theme2/src/themes/nord.rs new file mode 100644 index 0000000000..25d2e6e6cf --- /dev/null +++ b/crates/theme2/src/themes/nord.rs @@ -0,0 +1,18 @@ + + use gpui::rgba; + + use crate::{ + default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, + SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, + }; + + pub fn nord() -> ThemeFamily { + ThemeFamily { + id: "63407887-c052-4dd4-b781-e6194ddcbead".into(), + name: "Nord".into(), + author: "Sven Greb (svengreb)".into(), + themes: vec![ThemeVariant { id: "27d48816-e82b-4285-a615-7a970d51b4a0".into(), name: "Nord".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x3b4252ff).into(), border_variant: rgba(0x3b4252ff).into(), border_focused: rgba(0x3b4252ff).into(), border_disabled: rgba(0x3b4252ff).into(), border_selected: rgba(0x3b4252ff).into(), border_transparent: rgba(0x3b4252ff).into(), elevated_surface_background: rgba(0x2e3440ff).into(), surface_background: rgba(0x2e3440ff).into(), background: rgba(0x2e3440ff).into(), element_background: rgba(0x88bfd0ee).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xd8dee9ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x2e3440ff).into(), tab_active_background: rgba(0x3b4252ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x2e3440ff).into(), terminal_ansi_bright_black: rgba(0x4c566aff).into(), terminal_ansi_bright_red: rgba(0xbf616aff).into(), terminal_ansi_bright_green: rgba(0xa3be8cff).into(), terminal_ansi_bright_yellow: rgba(0xebcb8bff).into(), terminal_ansi_bright_blue: rgba(0x81a1c1ff).into(), terminal_ansi_bright_magenta: rgba(0xb48eacff).into(), terminal_ansi_bright_cyan: rgba(0x8fbcbbff).into(), terminal_ansi_bright_white: rgba(0xeceff4ff).into(), terminal_ansi_black: rgba(0x3b4252ff).into(), terminal_ansi_red: rgba(0xbf616aff).into(), terminal_ansi_green: rgba(0xa3be8cff).into(), terminal_ansi_yellow: rgba(0xebcb8bff).into(), terminal_ansi_blue: rgba(0x81a1c1ff).into(), terminal_ansi_magenta: rgba(0xb48eacff).into(), terminal_ansi_cyan: rgba(0x88bfd0ff).into(), terminal_ansi_white: rgba(0xe5e9f0ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }], + scales: default_color_scales(), +} + } + \ No newline at end of file diff --git a/crates/theme2/src/themes/notctis.rs b/crates/theme2/src/themes/notctis.rs index 4a21844e48..2f228a9b6f 100644 --- a/crates/theme2/src/themes/notctis.rs +++ b/crates/theme2/src/themes/notctis.rs @@ -8,10 +8,10 @@ pub fn notctis() -> ThemeFamily { ThemeFamily { - id: "ad886135-2fff-4311-b2bb-2ce1ebd1c50d".into(), + id: "7cd79bb0-ffd7-48b5-b104-a6c171161a1b".into(), name: "Notctis".into(), author: "Liviu Schera (liviuschera)".into(), - themes: vec![ThemeVariant { id: "b79ece4f-89f3-4388-94ad-edeabfddba87".into(), name: "Noctis Azureus".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x1579b6ff).into(), border_variant: rgba(0x1579b6ff).into(), border_focused: rgba(0x1579b6ff).into(), border_transparent: rgba(0x1579b6ff).into(), elevated_surface_background: rgba(0x051b28ff).into(), surface_background: rgba(0x051b28ff).into(), background: rgba(0x07263aff).into(), element_background: rgba(0x007e99ff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xbecfdaff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x08324eff).into(), tab_active_background: rgba(0x07263aff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x051b28ff).into(), terminal_ansi_bright_black: rgba(0x475e6cff).into(), terminal_ansi_bright_red: rgba(0xe97749ff).into(), terminal_ansi_bright_green: rgba(0x5febb1ff).into(), terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), terminal_ansi_bright_white: rgba(0xbecfdaff).into(), terminal_ansi_black: rgba(0x28343dff).into(), terminal_ansi_red: rgba(0xe66432ff).into(), terminal_ansi_green: rgba(0x49e9a6ff).into(), terminal_ansi_yellow: rgba(0xe4b781ff).into(), terminal_ansi_blue: rgba(0x49ace9ff).into(), terminal_ansi_magenta: rgba(0xdf759aff).into(), terminal_ansi_cyan: rgba(0x49d5e9ff).into(), terminal_ansi_white: rgba(0xaec3d0ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "664a1471-1c92-44d1-84c5-3b8de9f40c5b".into(), name: "Noctis Bordo".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x997582ff).into(), border_variant: rgba(0x997582ff).into(), border_focused: rgba(0x997582ff).into(), border_transparent: rgba(0x997582ff).into(), elevated_surface_background: rgba(0x272022ff).into(), surface_background: rgba(0x272022ff).into(), background: rgba(0x322a2dff).into(), element_background: rgba(0x007e99ff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xcbbec2ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x413036ff).into(), tab_active_background: rgba(0x322a2dff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x272022ff).into(), terminal_ansi_bright_black: rgba(0x69545bff).into(), terminal_ansi_bright_red: rgba(0xe97749ff).into(), terminal_ansi_bright_green: rgba(0x5febb1ff).into(), terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), terminal_ansi_bright_white: rgba(0xcbbec2ff).into(), terminal_ansi_black: rgba(0x47393eff).into(), terminal_ansi_red: rgba(0xe66432ff).into(), terminal_ansi_green: rgba(0x49e9a6ff).into(), terminal_ansi_yellow: rgba(0xe4b781ff).into(), terminal_ansi_blue: rgba(0x49ace9ff).into(), terminal_ansi_magenta: rgba(0xdf759aff).into(), terminal_ansi_cyan: rgba(0x49d5e9ff).into(), terminal_ansi_white: rgba(0xb9acb0ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "a42edabe-8b86-482e-ae16-d036183ed66b".into(), name: "Noctus Hibernus".into(), appearance: Appearance::Light, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x00c6e0ff).into(), border_variant: rgba(0x00c6e0ff).into(), border_focused: rgba(0x00c6e0ff).into(), border_transparent: rgba(0x00c6e0ff).into(), elevated_surface_background: rgba(0xe1eeefff).into(), surface_background: rgba(0xe1eeefff).into(), background: rgba(0xf4f6f6ff).into(), element_background: rgba(0x089099ff).into(), element_hover: rgba(0xe8e8ecff).into(), element_active: rgba(0xe0e1e6ff).into(), element_selected: rgba(0xe0e1e6ff).into(), element_disabled: rgba(0x0000320f).into(), element_placeholder: rgba(0x60646cff).into(), element_drop_target: rgba(0x008bff0b).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0xe8e8ecff).into(), ghost_element_active: rgba(0xe0e1e6ff).into(), ghost_element_selected: rgba(0xe0e1e6ff).into(), ghost_element_disabled: rgba(0x0000320f).into(), text: rgba(0x005661ff).into(), text_muted: rgba(0x60646cff).into(), text_placeholder: rgba(0x80838dff).into(), text_disabled: rgba(0x8b8d98ff).into(), text_accent: rgba(0x0c73ceff).into(), icon: rgba(0x60646cff).into(), icon_muted: rgba(0x80838dff).into(), icon_disabled: rgba(0x8b8d98ff).into(), icon_placeholder: rgba(0x80838dff).into(), icon_accent: rgba(0x0c73ceff).into(), status_bar_background: rgba(0xf9f9fbff).into(), title_bar_background: rgba(0xf9f9fbff).into(), toolbar_background: rgba(0xfcfcfdff).into(), tab_bar_background: rgba(0xf9f9fbff).into(), tab_inactive_background: rgba(0xcaedf2ff).into(), tab_active_background: rgba(0xf4f6f6ff).into(), editor_background: rgba(0xfcfcfdff).into(), editor_subheader_background: rgba(0xf9f9fbff).into(), editor_active_line: rgba(0x0000320f).into(), terminal_background: rgba(0xe1eeefff).into(), terminal_ansi_bright_black: rgba(0x004d57ff).into(), terminal_ansi_bright_red: rgba(0xff3f00ff).into(), terminal_ansi_bright_green: rgba(0x00d17aff).into(), terminal_ansi_bright_yellow: rgba(0xff8c00ff).into(), terminal_ansi_bright_blue: rgba(0x0ea3ffff).into(), terminal_ansi_bright_magenta: rgba(0xff6b9eff).into(), terminal_ansi_bright_cyan: rgba(0x00cae6ff).into(), terminal_ansi_bright_white: rgba(0xbbc3c4ff).into(), terminal_ansi_black: rgba(0x003b41ff).into(), terminal_ansi_red: rgba(0xe34d1bff).into(), terminal_ansi_green: rgba(0x00b368ff).into(), terminal_ansi_yellow: rgba(0xf49724ff).into(), terminal_ansi_blue: rgba(0x0094f0ff).into(), terminal_ansi_magenta: rgba(0xff5792ff).into(), terminal_ansi_cyan: rgba(0x00bdd6ff).into(), terminal_ansi_white: rgba(0x8ca6a6ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "5999de6b-6933-47d7-bcce-cba3d34d8f38".into(), name: "Noctis Lilac".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0xaea4f4ff).into(), border_variant: rgba(0xaea4f4ff).into(), border_focused: rgba(0xaea4f4ff).into(), border_transparent: rgba(0xaea4f4ff).into(), elevated_surface_background: rgba(0xe9e7f3ff).into(), surface_background: rgba(0xe9e7f3ff).into(), background: rgba(0xf2f1f8ff).into(), element_background: rgba(0x8d7ffeff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0x0c006bff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0xe2dff6ff).into(), tab_active_background: rgba(0xf2f1f8ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0xe9e7f3ff).into(), terminal_ansi_bright_black: rgba(0x0f0080ff).into(), terminal_ansi_bright_red: rgba(0xff3f00ff).into(), terminal_ansi_bright_green: rgba(0x00d17aff).into(), terminal_ansi_bright_yellow: rgba(0xff8c00ff).into(), terminal_ansi_bright_blue: rgba(0x0ea3ffff).into(), terminal_ansi_bright_magenta: rgba(0xff6b9eff).into(), terminal_ansi_bright_cyan: rgba(0x00cae6ff).into(), terminal_ansi_bright_white: rgba(0xbbc3c4ff).into(), terminal_ansi_black: rgba(0x0c006bff).into(), terminal_ansi_red: rgba(0xe34d1bff).into(), terminal_ansi_green: rgba(0x00b368ff).into(), terminal_ansi_yellow: rgba(0xf49724ff).into(), terminal_ansi_blue: rgba(0x0094f0ff).into(), terminal_ansi_magenta: rgba(0xff5792ff).into(), terminal_ansi_cyan: rgba(0x00bdd6ff).into(), terminal_ansi_white: rgba(0x8ca6a6ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "45aee81e-7464-4ce3-a5a2-0d48e943eb5c".into(), name: "Noctis Lux".into(), appearance: Appearance::Light, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x00c6e0ff).into(), border_variant: rgba(0x00c6e0ff).into(), border_focused: rgba(0x00c6e0ff).into(), border_transparent: rgba(0x00c6e0ff).into(), elevated_surface_background: rgba(0xf6eddaff).into(), surface_background: rgba(0xf6eddaff).into(), background: rgba(0xfef8ecff).into(), element_background: rgba(0x089099ff).into(), element_hover: rgba(0xe8e8ecff).into(), element_active: rgba(0xe0e1e6ff).into(), element_selected: rgba(0xe0e1e6ff).into(), element_disabled: rgba(0x0000320f).into(), element_placeholder: rgba(0x60646cff).into(), element_drop_target: rgba(0x008bff0b).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0xe8e8ecff).into(), ghost_element_active: rgba(0xe0e1e6ff).into(), ghost_element_selected: rgba(0xe0e1e6ff).into(), ghost_element_disabled: rgba(0x0000320f).into(), text: rgba(0x005661ff).into(), text_muted: rgba(0x60646cff).into(), text_placeholder: rgba(0x80838dff).into(), text_disabled: rgba(0x8b8d98ff).into(), text_accent: rgba(0x0c73ceff).into(), icon: rgba(0x60646cff).into(), icon_muted: rgba(0x80838dff).into(), icon_disabled: rgba(0x8b8d98ff).into(), icon_placeholder: rgba(0x80838dff).into(), icon_accent: rgba(0x0c73ceff).into(), status_bar_background: rgba(0xf9f9fbff).into(), title_bar_background: rgba(0xf9f9fbff).into(), toolbar_background: rgba(0xfcfcfdff).into(), tab_bar_background: rgba(0xf9f9fbff).into(), tab_inactive_background: rgba(0xf0e9d6ff).into(), tab_active_background: rgba(0xfef8ecff).into(), editor_background: rgba(0xfcfcfdff).into(), editor_subheader_background: rgba(0xf9f9fbff).into(), editor_active_line: rgba(0x0000320f).into(), terminal_background: rgba(0xf6eddaff).into(), terminal_ansi_bright_black: rgba(0x004d57ff).into(), terminal_ansi_bright_red: rgba(0xff3f00ff).into(), terminal_ansi_bright_green: rgba(0x00d17aff).into(), terminal_ansi_bright_yellow: rgba(0xff8c00ff).into(), terminal_ansi_bright_blue: rgba(0x0ea3ffff).into(), terminal_ansi_bright_magenta: rgba(0xff6b9eff).into(), terminal_ansi_bright_cyan: rgba(0x00cae6ff).into(), terminal_ansi_bright_white: rgba(0xbbc3c4ff).into(), terminal_ansi_black: rgba(0x003b41ff).into(), terminal_ansi_red: rgba(0xe34d1bff).into(), terminal_ansi_green: rgba(0x00b368ff).into(), terminal_ansi_yellow: rgba(0xf49724ff).into(), terminal_ansi_blue: rgba(0x0094f0ff).into(), terminal_ansi_magenta: rgba(0xff5792ff).into(), terminal_ansi_cyan: rgba(0x00bdd6ff).into(), terminal_ansi_white: rgba(0x8ca6a6ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "aea2719c-b339-41ff-a008-9ed15172c56a".into(), name: "Noctis Minimus".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x496c83ff).into(), border_variant: rgba(0x496c83ff).into(), border_focused: rgba(0x496c83ff).into(), border_transparent: rgba(0x496c83ff).into(), elevated_surface_background: rgba(0x0e1920ff).into(), surface_background: rgba(0x0e1920ff).into(), background: rgba(0x1b2932ff).into(), element_background: rgba(0x2e616bff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xc5cdd3ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x202d37ff).into(), tab_active_background: rgba(0x1b2932ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x0e1920ff).into(), terminal_ansi_bright_black: rgba(0x425866ff).into(), terminal_ansi_bright_red: rgba(0xca8468ff).into(), terminal_ansi_bright_green: rgba(0x84c8abff).into(), terminal_ansi_bright_yellow: rgba(0xd1aa7bff).into(), terminal_ansi_bright_blue: rgba(0x68a4caff).into(), terminal_ansi_bright_magenta: rgba(0xc88da2ff).into(), terminal_ansi_bright_cyan: rgba(0x84bfc8ff).into(), terminal_ansi_bright_white: rgba(0xc5d1d3ff).into(), terminal_ansi_black: rgba(0x182935ff).into(), terminal_ansi_red: rgba(0xc08872ff).into(), terminal_ansi_green: rgba(0x72c09fff).into(), terminal_ansi_yellow: rgba(0xc8a984ff).into(), terminal_ansi_blue: rgba(0x6095b7ff).into(), terminal_ansi_magenta: rgba(0xc28097ff).into(), terminal_ansi_cyan: rgba(0x72b7c0ff).into(), terminal_ansi_white: rgba(0xc5cdd3ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "aa3f19d1-b767-4a33-b424-96ee06f91d50".into(), name: "Noctis".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x0d6571ff).into(), border_variant: rgba(0x0d6571ff).into(), border_focused: rgba(0x0d6571ff).into(), border_transparent: rgba(0x0d6571ff).into(), elevated_surface_background: rgba(0x03181aff).into(), surface_background: rgba(0x03181aff).into(), background: rgba(0x052428ff).into(), element_background: rgba(0x089099ff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xb1c9ccff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x052e32ff).into(), tab_active_background: rgba(0x052428ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x03181aff).into(), terminal_ansi_bright_black: rgba(0x47686cff).into(), terminal_ansi_bright_red: rgba(0xe97749ff).into(), terminal_ansi_bright_green: rgba(0x5febb1ff).into(), terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), terminal_ansi_bright_white: rgba(0xc1d4d7ff).into(), terminal_ansi_black: rgba(0x324a4dff).into(), terminal_ansi_red: rgba(0xe66432ff).into(), terminal_ansi_green: rgba(0x49e9a6ff).into(), terminal_ansi_yellow: rgba(0xe4b781ff).into(), terminal_ansi_blue: rgba(0x49ace9ff).into(), terminal_ansi_magenta: rgba(0xdf759aff).into(), terminal_ansi_cyan: rgba(0x49d5e9ff).into(), terminal_ansi_white: rgba(0xb1c9ccff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "19cd0824-8b0f-446a-8f2f-46d88f103cb7".into(), name: "Noctis Obscuro".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x0d6571ff).into(), border_variant: rgba(0x0d6571ff).into(), border_focused: rgba(0x0d6571ff).into(), border_transparent: rgba(0x0d6571ff).into(), elevated_surface_background: rgba(0x020c0eff).into(), surface_background: rgba(0x020c0eff).into(), background: rgba(0x031316ff).into(), element_background: rgba(0x089099ff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xb1c9ccff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x052e32ff).into(), tab_active_background: rgba(0x031316ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x020c0eff).into(), terminal_ansi_bright_black: rgba(0x47686cff).into(), terminal_ansi_bright_red: rgba(0xe97749ff).into(), terminal_ansi_bright_green: rgba(0x5febb1ff).into(), terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), terminal_ansi_bright_white: rgba(0xc1d4d7ff).into(), terminal_ansi_black: rgba(0x324a4dff).into(), terminal_ansi_red: rgba(0xe66432ff).into(), terminal_ansi_green: rgba(0x49e9a6ff).into(), terminal_ansi_yellow: rgba(0xe4b781ff).into(), terminal_ansi_blue: rgba(0x49ace9ff).into(), terminal_ansi_magenta: rgba(0xdf759aff).into(), terminal_ansi_cyan: rgba(0x49d5e9ff).into(), terminal_ansi_white: rgba(0xb1c9ccff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "01ae3458-f6a4-4d37-b348-88f99295cb13".into(), name: "Noctis Sereno".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x0d6571ff).into(), border_variant: rgba(0x0d6571ff).into(), border_focused: rgba(0x0d6571ff).into(), border_transparent: rgba(0x0d6571ff).into(), elevated_surface_background: rgba(0x020c0eff).into(), surface_background: rgba(0x020c0eff).into(), background: rgba(0x031316ff).into(), element_background: rgba(0x089099ff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xb1c9ccff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x052e32ff).into(), tab_active_background: rgba(0x031316ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x020c0eff).into(), terminal_ansi_bright_black: rgba(0x47686cff).into(), terminal_ansi_bright_red: rgba(0xe97749ff).into(), terminal_ansi_bright_green: rgba(0x5febb1ff).into(), terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), terminal_ansi_bright_white: rgba(0xc1d4d7ff).into(), terminal_ansi_black: rgba(0x324a4dff).into(), terminal_ansi_red: rgba(0xe66432ff).into(), terminal_ansi_green: rgba(0x49e9a6ff).into(), terminal_ansi_yellow: rgba(0xe4b781ff).into(), terminal_ansi_blue: rgba(0x49ace9ff).into(), terminal_ansi_magenta: rgba(0xdf759aff).into(), terminal_ansi_cyan: rgba(0x49d5e9ff).into(), terminal_ansi_white: rgba(0xb1c9ccff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "5c3f4b73-63c6-4732-b57c-8cae9868d08b".into(), name: "Noctis Uva".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x6d66a7ff).into(), border_variant: rgba(0x6d66a7ff).into(), border_focused: rgba(0x6d66a7ff).into(), border_transparent: rgba(0x6d66a7ff).into(), elevated_surface_background: rgba(0x1f1d30ff).into(), surface_background: rgba(0x1f1d30ff).into(), background: rgba(0x292640ff).into(), element_background: rgba(0x007e99ff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xc5c2d6ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x2f2c49ff).into(), tab_active_background: rgba(0x292640ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x1f1d30ff).into(), terminal_ansi_bright_black: rgba(0x504e65ff).into(), terminal_ansi_bright_red: rgba(0xe97749ff).into(), terminal_ansi_bright_green: rgba(0x5febb1ff).into(), terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), terminal_ansi_bright_white: rgba(0xc5c2d6ff).into(), terminal_ansi_black: rgba(0x302f3dff).into(), terminal_ansi_red: rgba(0xe66432ff).into(), terminal_ansi_green: rgba(0x49e9a6ff).into(), terminal_ansi_yellow: rgba(0xe4b781ff).into(), terminal_ansi_blue: rgba(0x49ace9ff).into(), terminal_ansi_magenta: rgba(0xdf759aff).into(), terminal_ansi_cyan: rgba(0x49d5e9ff).into(), terminal_ansi_white: rgba(0xb6b3ccff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "544dcfe0-a878-4e58-b3d2-f6f28f765266".into(), name: "Noctis Viola".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x8666a7ff).into(), border_variant: rgba(0x8666a7ff).into(), border_focused: rgba(0x8666a7ff).into(), border_transparent: rgba(0x8666a7ff).into(), elevated_surface_background: rgba(0x291d35ff).into(), surface_background: rgba(0x291d35ff).into(), background: rgba(0x30243dff).into(), element_background: rgba(0x007e99ff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xccbfd9ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x3d2e4dff).into(), tab_active_background: rgba(0x30243dff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x291d35ff).into(), terminal_ansi_bright_black: rgba(0x594e65ff).into(), terminal_ansi_bright_red: rgba(0xe97749ff).into(), terminal_ansi_bright_green: rgba(0x5febb1ff).into(), terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), terminal_ansi_bright_white: rgba(0xccbfd9ff).into(), terminal_ansi_black: rgba(0x362f3dff).into(), terminal_ansi_red: rgba(0xe66432ff).into(), terminal_ansi_green: rgba(0x49e9a6ff).into(), terminal_ansi_yellow: rgba(0xe4b781ff).into(), terminal_ansi_blue: rgba(0x49ace9ff).into(), terminal_ansi_magenta: rgba(0xdf759aff).into(), terminal_ansi_cyan: rgba(0x49d5e9ff).into(), terminal_ansi_white: rgba(0xbfafcfff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }], + themes: vec![ThemeVariant { id: "66251405-0342-4f10-849c-b81fe33009aa".into(), name: "Noctis Azureus".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x1579b6ff).into(), border_variant: rgba(0x1579b6ff).into(), border_focused: rgba(0x1579b6ff).into(), border_disabled: rgba(0x1579b6ff).into(), border_selected: rgba(0x1579b6ff).into(), border_transparent: rgba(0x1579b6ff).into(), elevated_surface_background: rgba(0x051b28ff).into(), surface_background: rgba(0x051b28ff).into(), background: rgba(0x07263aff).into(), element_background: rgba(0x007e99ff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xbecfdaff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x08324eff).into(), tab_active_background: rgba(0x07263aff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x051b28ff).into(), terminal_ansi_bright_black: rgba(0x475e6cff).into(), terminal_ansi_bright_red: rgba(0xe97749ff).into(), terminal_ansi_bright_green: rgba(0x5febb1ff).into(), terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), terminal_ansi_bright_white: rgba(0xbecfdaff).into(), terminal_ansi_black: rgba(0x28343dff).into(), terminal_ansi_red: rgba(0xe66432ff).into(), terminal_ansi_green: rgba(0x49e9a6ff).into(), terminal_ansi_yellow: rgba(0xe4b781ff).into(), terminal_ansi_blue: rgba(0x49ace9ff).into(), terminal_ansi_magenta: rgba(0xdf759aff).into(), terminal_ansi_cyan: rgba(0x49d5e9ff).into(), terminal_ansi_white: rgba(0xaec3d0ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "3717c8d5-deb9-4551-ac9b-12cf37c5af11".into(), name: "Noctis Bordo".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x997582ff).into(), border_variant: rgba(0x997582ff).into(), border_focused: rgba(0x997582ff).into(), border_disabled: rgba(0x997582ff).into(), border_selected: rgba(0x997582ff).into(), border_transparent: rgba(0x997582ff).into(), elevated_surface_background: rgba(0x272022ff).into(), surface_background: rgba(0x272022ff).into(), background: rgba(0x322a2dff).into(), element_background: rgba(0x007e99ff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xcbbec2ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x413036ff).into(), tab_active_background: rgba(0x322a2dff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x272022ff).into(), terminal_ansi_bright_black: rgba(0x69545bff).into(), terminal_ansi_bright_red: rgba(0xe97749ff).into(), terminal_ansi_bright_green: rgba(0x5febb1ff).into(), terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), terminal_ansi_bright_white: rgba(0xcbbec2ff).into(), terminal_ansi_black: rgba(0x47393eff).into(), terminal_ansi_red: rgba(0xe66432ff).into(), terminal_ansi_green: rgba(0x49e9a6ff).into(), terminal_ansi_yellow: rgba(0xe4b781ff).into(), terminal_ansi_blue: rgba(0x49ace9ff).into(), terminal_ansi_magenta: rgba(0xdf759aff).into(), terminal_ansi_cyan: rgba(0x49d5e9ff).into(), terminal_ansi_white: rgba(0xb9acb0ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "9143cedc-71a4-4005-9b4d-ed23c4ac83fc".into(), name: "Noctus Hibernus".into(), appearance: Appearance::Light, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x00c6e0ff).into(), border_variant: rgba(0x00c6e0ff).into(), border_focused: rgba(0x00c6e0ff).into(), border_disabled: rgba(0x00c6e0ff).into(), border_selected: rgba(0x00c6e0ff).into(), border_transparent: rgba(0x00c6e0ff).into(), elevated_surface_background: rgba(0xe1eeefff).into(), surface_background: rgba(0xe1eeefff).into(), background: rgba(0xf4f6f6ff).into(), element_background: rgba(0x089099ff).into(), element_hover: rgba(0xe8e8ecff).into(), element_active: rgba(0xe0e1e6ff).into(), element_selected: rgba(0xe0e1e6ff).into(), element_disabled: rgba(0x0000320f).into(), element_placeholder: rgba(0x60646cff).into(), element_drop_target: rgba(0x008bff0b).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0xe8e8ecff).into(), ghost_element_active: rgba(0xe0e1e6ff).into(), ghost_element_selected: rgba(0xe0e1e6ff).into(), ghost_element_disabled: rgba(0x0000320f).into(), text: rgba(0x005661ff).into(), text_muted: rgba(0x60646cff).into(), text_placeholder: rgba(0x80838dff).into(), text_disabled: rgba(0x8b8d98ff).into(), text_accent: rgba(0x0c73ceff).into(), icon: rgba(0x60646cff).into(), icon_muted: rgba(0x80838dff).into(), icon_disabled: rgba(0x8b8d98ff).into(), icon_placeholder: rgba(0x80838dff).into(), icon_accent: rgba(0x0c73ceff).into(), status_bar_background: rgba(0xf9f9fbff).into(), title_bar_background: rgba(0xf9f9fbff).into(), toolbar_background: rgba(0xfcfcfdff).into(), tab_bar_background: rgba(0xf9f9fbff).into(), tab_inactive_background: rgba(0xcaedf2ff).into(), tab_active_background: rgba(0xf4f6f6ff).into(), editor_background: rgba(0xfcfcfdff).into(), editor_subheader_background: rgba(0xf9f9fbff).into(), editor_active_line: rgba(0x0000320f).into(), terminal_background: rgba(0xe1eeefff).into(), terminal_ansi_bright_black: rgba(0x004d57ff).into(), terminal_ansi_bright_red: rgba(0xff3f00ff).into(), terminal_ansi_bright_green: rgba(0x00d17aff).into(), terminal_ansi_bright_yellow: rgba(0xff8c00ff).into(), terminal_ansi_bright_blue: rgba(0x0ea3ffff).into(), terminal_ansi_bright_magenta: rgba(0xff6b9eff).into(), terminal_ansi_bright_cyan: rgba(0x00cae6ff).into(), terminal_ansi_bright_white: rgba(0xbbc3c4ff).into(), terminal_ansi_black: rgba(0x003b41ff).into(), terminal_ansi_red: rgba(0xe34d1bff).into(), terminal_ansi_green: rgba(0x00b368ff).into(), terminal_ansi_yellow: rgba(0xf49724ff).into(), terminal_ansi_blue: rgba(0x0094f0ff).into(), terminal_ansi_magenta: rgba(0xff5792ff).into(), terminal_ansi_cyan: rgba(0x00bdd6ff).into(), terminal_ansi_white: rgba(0x8ca6a6ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "82f6e468-a5de-4e3a-ba13-4ced22ac819b".into(), name: "Noctis Lilac".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0xaea4f4ff).into(), border_variant: rgba(0xaea4f4ff).into(), border_focused: rgba(0xaea4f4ff).into(), border_disabled: rgba(0xaea4f4ff).into(), border_selected: rgba(0xaea4f4ff).into(), border_transparent: rgba(0xaea4f4ff).into(), elevated_surface_background: rgba(0xe9e7f3ff).into(), surface_background: rgba(0xe9e7f3ff).into(), background: rgba(0xf2f1f8ff).into(), element_background: rgba(0x8d7ffeff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0x0c006bff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0xe2dff6ff).into(), tab_active_background: rgba(0xf2f1f8ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0xe9e7f3ff).into(), terminal_ansi_bright_black: rgba(0x0f0080ff).into(), terminal_ansi_bright_red: rgba(0xff3f00ff).into(), terminal_ansi_bright_green: rgba(0x00d17aff).into(), terminal_ansi_bright_yellow: rgba(0xff8c00ff).into(), terminal_ansi_bright_blue: rgba(0x0ea3ffff).into(), terminal_ansi_bright_magenta: rgba(0xff6b9eff).into(), terminal_ansi_bright_cyan: rgba(0x00cae6ff).into(), terminal_ansi_bright_white: rgba(0xbbc3c4ff).into(), terminal_ansi_black: rgba(0x0c006bff).into(), terminal_ansi_red: rgba(0xe34d1bff).into(), terminal_ansi_green: rgba(0x00b368ff).into(), terminal_ansi_yellow: rgba(0xf49724ff).into(), terminal_ansi_blue: rgba(0x0094f0ff).into(), terminal_ansi_magenta: rgba(0xff5792ff).into(), terminal_ansi_cyan: rgba(0x00bdd6ff).into(), terminal_ansi_white: rgba(0x8ca6a6ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "655fe060-e62c-4582-a9d2-87ab9f8f21b7".into(), name: "Noctis Lux".into(), appearance: Appearance::Light, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x00c6e0ff).into(), border_variant: rgba(0x00c6e0ff).into(), border_focused: rgba(0x00c6e0ff).into(), border_disabled: rgba(0x00c6e0ff).into(), border_selected: rgba(0x00c6e0ff).into(), border_transparent: rgba(0x00c6e0ff).into(), elevated_surface_background: rgba(0xf6eddaff).into(), surface_background: rgba(0xf6eddaff).into(), background: rgba(0xfef8ecff).into(), element_background: rgba(0x089099ff).into(), element_hover: rgba(0xe8e8ecff).into(), element_active: rgba(0xe0e1e6ff).into(), element_selected: rgba(0xe0e1e6ff).into(), element_disabled: rgba(0x0000320f).into(), element_placeholder: rgba(0x60646cff).into(), element_drop_target: rgba(0x008bff0b).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0xe8e8ecff).into(), ghost_element_active: rgba(0xe0e1e6ff).into(), ghost_element_selected: rgba(0xe0e1e6ff).into(), ghost_element_disabled: rgba(0x0000320f).into(), text: rgba(0x005661ff).into(), text_muted: rgba(0x60646cff).into(), text_placeholder: rgba(0x80838dff).into(), text_disabled: rgba(0x8b8d98ff).into(), text_accent: rgba(0x0c73ceff).into(), icon: rgba(0x60646cff).into(), icon_muted: rgba(0x80838dff).into(), icon_disabled: rgba(0x8b8d98ff).into(), icon_placeholder: rgba(0x80838dff).into(), icon_accent: rgba(0x0c73ceff).into(), status_bar_background: rgba(0xf9f9fbff).into(), title_bar_background: rgba(0xf9f9fbff).into(), toolbar_background: rgba(0xfcfcfdff).into(), tab_bar_background: rgba(0xf9f9fbff).into(), tab_inactive_background: rgba(0xf0e9d6ff).into(), tab_active_background: rgba(0xfef8ecff).into(), editor_background: rgba(0xfcfcfdff).into(), editor_subheader_background: rgba(0xf9f9fbff).into(), editor_active_line: rgba(0x0000320f).into(), terminal_background: rgba(0xf6eddaff).into(), terminal_ansi_bright_black: rgba(0x004d57ff).into(), terminal_ansi_bright_red: rgba(0xff3f00ff).into(), terminal_ansi_bright_green: rgba(0x00d17aff).into(), terminal_ansi_bright_yellow: rgba(0xff8c00ff).into(), terminal_ansi_bright_blue: rgba(0x0ea3ffff).into(), terminal_ansi_bright_magenta: rgba(0xff6b9eff).into(), terminal_ansi_bright_cyan: rgba(0x00cae6ff).into(), terminal_ansi_bright_white: rgba(0xbbc3c4ff).into(), terminal_ansi_black: rgba(0x003b41ff).into(), terminal_ansi_red: rgba(0xe34d1bff).into(), terminal_ansi_green: rgba(0x00b368ff).into(), terminal_ansi_yellow: rgba(0xf49724ff).into(), terminal_ansi_blue: rgba(0x0094f0ff).into(), terminal_ansi_magenta: rgba(0xff5792ff).into(), terminal_ansi_cyan: rgba(0x00bdd6ff).into(), terminal_ansi_white: rgba(0x8ca6a6ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "b8540210-1aff-4d72-bb65-040b2c575e35".into(), name: "Noctis Minimus".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x496c83ff).into(), border_variant: rgba(0x496c83ff).into(), border_focused: rgba(0x496c83ff).into(), border_disabled: rgba(0x496c83ff).into(), border_selected: rgba(0x496c83ff).into(), border_transparent: rgba(0x496c83ff).into(), elevated_surface_background: rgba(0x0e1920ff).into(), surface_background: rgba(0x0e1920ff).into(), background: rgba(0x1b2932ff).into(), element_background: rgba(0x2e616bff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xc5cdd3ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x202d37ff).into(), tab_active_background: rgba(0x1b2932ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x0e1920ff).into(), terminal_ansi_bright_black: rgba(0x425866ff).into(), terminal_ansi_bright_red: rgba(0xca8468ff).into(), terminal_ansi_bright_green: rgba(0x84c8abff).into(), terminal_ansi_bright_yellow: rgba(0xd1aa7bff).into(), terminal_ansi_bright_blue: rgba(0x68a4caff).into(), terminal_ansi_bright_magenta: rgba(0xc88da2ff).into(), terminal_ansi_bright_cyan: rgba(0x84bfc8ff).into(), terminal_ansi_bright_white: rgba(0xc5d1d3ff).into(), terminal_ansi_black: rgba(0x182935ff).into(), terminal_ansi_red: rgba(0xc08872ff).into(), terminal_ansi_green: rgba(0x72c09fff).into(), terminal_ansi_yellow: rgba(0xc8a984ff).into(), terminal_ansi_blue: rgba(0x6095b7ff).into(), terminal_ansi_magenta: rgba(0xc28097ff).into(), terminal_ansi_cyan: rgba(0x72b7c0ff).into(), terminal_ansi_white: rgba(0xc5cdd3ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "70577f71-a351-43c6-9b64-7a5f95ef0ad2".into(), name: "Noctis".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x0d6571ff).into(), border_variant: rgba(0x0d6571ff).into(), border_focused: rgba(0x0d6571ff).into(), border_disabled: rgba(0x0d6571ff).into(), border_selected: rgba(0x0d6571ff).into(), border_transparent: rgba(0x0d6571ff).into(), elevated_surface_background: rgba(0x03181aff).into(), surface_background: rgba(0x03181aff).into(), background: rgba(0x052428ff).into(), element_background: rgba(0x089099ff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xb1c9ccff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x052e32ff).into(), tab_active_background: rgba(0x052428ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x03181aff).into(), terminal_ansi_bright_black: rgba(0x47686cff).into(), terminal_ansi_bright_red: rgba(0xe97749ff).into(), terminal_ansi_bright_green: rgba(0x5febb1ff).into(), terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), terminal_ansi_bright_white: rgba(0xc1d4d7ff).into(), terminal_ansi_black: rgba(0x324a4dff).into(), terminal_ansi_red: rgba(0xe66432ff).into(), terminal_ansi_green: rgba(0x49e9a6ff).into(), terminal_ansi_yellow: rgba(0xe4b781ff).into(), terminal_ansi_blue: rgba(0x49ace9ff).into(), terminal_ansi_magenta: rgba(0xdf759aff).into(), terminal_ansi_cyan: rgba(0x49d5e9ff).into(), terminal_ansi_white: rgba(0xb1c9ccff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "abcd25b0-8740-430f-a7e0-0b193ef1c271".into(), name: "Noctis Obscuro".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x0d6571ff).into(), border_variant: rgba(0x0d6571ff).into(), border_focused: rgba(0x0d6571ff).into(), border_disabled: rgba(0x0d6571ff).into(), border_selected: rgba(0x0d6571ff).into(), border_transparent: rgba(0x0d6571ff).into(), elevated_surface_background: rgba(0x020c0eff).into(), surface_background: rgba(0x020c0eff).into(), background: rgba(0x031316ff).into(), element_background: rgba(0x089099ff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xb1c9ccff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x052e32ff).into(), tab_active_background: rgba(0x031316ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x020c0eff).into(), terminal_ansi_bright_black: rgba(0x47686cff).into(), terminal_ansi_bright_red: rgba(0xe97749ff).into(), terminal_ansi_bright_green: rgba(0x5febb1ff).into(), terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), terminal_ansi_bright_white: rgba(0xc1d4d7ff).into(), terminal_ansi_black: rgba(0x324a4dff).into(), terminal_ansi_red: rgba(0xe66432ff).into(), terminal_ansi_green: rgba(0x49e9a6ff).into(), terminal_ansi_yellow: rgba(0xe4b781ff).into(), terminal_ansi_blue: rgba(0x49ace9ff).into(), terminal_ansi_magenta: rgba(0xdf759aff).into(), terminal_ansi_cyan: rgba(0x49d5e9ff).into(), terminal_ansi_white: rgba(0xb1c9ccff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "86b6a2b4-69b9-40d5-b078-3feb93d0786d".into(), name: "Noctis Sereno".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x0d6571ff).into(), border_variant: rgba(0x0d6571ff).into(), border_focused: rgba(0x0d6571ff).into(), border_disabled: rgba(0x0d6571ff).into(), border_selected: rgba(0x0d6571ff).into(), border_transparent: rgba(0x0d6571ff).into(), elevated_surface_background: rgba(0x020c0eff).into(), surface_background: rgba(0x020c0eff).into(), background: rgba(0x031316ff).into(), element_background: rgba(0x089099ff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xb1c9ccff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x052e32ff).into(), tab_active_background: rgba(0x031316ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x020c0eff).into(), terminal_ansi_bright_black: rgba(0x47686cff).into(), terminal_ansi_bright_red: rgba(0xe97749ff).into(), terminal_ansi_bright_green: rgba(0x5febb1ff).into(), terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), terminal_ansi_bright_white: rgba(0xc1d4d7ff).into(), terminal_ansi_black: rgba(0x324a4dff).into(), terminal_ansi_red: rgba(0xe66432ff).into(), terminal_ansi_green: rgba(0x49e9a6ff).into(), terminal_ansi_yellow: rgba(0xe4b781ff).into(), terminal_ansi_blue: rgba(0x49ace9ff).into(), terminal_ansi_magenta: rgba(0xdf759aff).into(), terminal_ansi_cyan: rgba(0x49d5e9ff).into(), terminal_ansi_white: rgba(0xb1c9ccff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "aa50141c-1c64-4773-980f-e4bf062f893f".into(), name: "Noctis Uva".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x6d66a7ff).into(), border_variant: rgba(0x6d66a7ff).into(), border_focused: rgba(0x6d66a7ff).into(), border_disabled: rgba(0x6d66a7ff).into(), border_selected: rgba(0x6d66a7ff).into(), border_transparent: rgba(0x6d66a7ff).into(), elevated_surface_background: rgba(0x1f1d30ff).into(), surface_background: rgba(0x1f1d30ff).into(), background: rgba(0x292640ff).into(), element_background: rgba(0x007e99ff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xc5c2d6ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x2f2c49ff).into(), tab_active_background: rgba(0x292640ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x1f1d30ff).into(), terminal_ansi_bright_black: rgba(0x504e65ff).into(), terminal_ansi_bright_red: rgba(0xe97749ff).into(), terminal_ansi_bright_green: rgba(0x5febb1ff).into(), terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), terminal_ansi_bright_white: rgba(0xc5c2d6ff).into(), terminal_ansi_black: rgba(0x302f3dff).into(), terminal_ansi_red: rgba(0xe66432ff).into(), terminal_ansi_green: rgba(0x49e9a6ff).into(), terminal_ansi_yellow: rgba(0xe4b781ff).into(), terminal_ansi_blue: rgba(0x49ace9ff).into(), terminal_ansi_magenta: rgba(0xdf759aff).into(), terminal_ansi_cyan: rgba(0x49d5e9ff).into(), terminal_ansi_white: rgba(0xb6b3ccff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "ce4ba03d-5a76-4e6c-9b45-f7c2c2fa3b41".into(), name: "Noctis Viola".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x8666a7ff).into(), border_variant: rgba(0x8666a7ff).into(), border_focused: rgba(0x8666a7ff).into(), border_disabled: rgba(0x8666a7ff).into(), border_selected: rgba(0x8666a7ff).into(), border_transparent: rgba(0x8666a7ff).into(), elevated_surface_background: rgba(0x291d35ff).into(), surface_background: rgba(0x291d35ff).into(), background: rgba(0x30243dff).into(), element_background: rgba(0x007e99ff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xccbfd9ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x3d2e4dff).into(), tab_active_background: rgba(0x30243dff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x291d35ff).into(), terminal_ansi_bright_black: rgba(0x594e65ff).into(), terminal_ansi_bright_red: rgba(0xe97749ff).into(), terminal_ansi_bright_green: rgba(0x5febb1ff).into(), terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), terminal_ansi_bright_white: rgba(0xccbfd9ff).into(), terminal_ansi_black: rgba(0x362f3dff).into(), terminal_ansi_red: rgba(0xe66432ff).into(), terminal_ansi_green: rgba(0x49e9a6ff).into(), terminal_ansi_yellow: rgba(0xe4b781ff).into(), terminal_ansi_blue: rgba(0x49ace9ff).into(), terminal_ansi_magenta: rgba(0xdf759aff).into(), terminal_ansi_cyan: rgba(0x49d5e9ff).into(), terminal_ansi_white: rgba(0xbfafcfff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }], scales: default_color_scales(), } } diff --git a/crates/theme_importer/src/main.rs b/crates/theme_importer/src/main.rs index 8ee4df2e96..3fd2b71ac0 100644 --- a/crates/theme_importer/src/main.rs +++ b/crates/theme_importer/src/main.rs @@ -50,19 +50,42 @@ pub struct ThemeMetadata { } 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"); - println!("Creating path: assets/themes/src/vscode/"); - let vscode_themes_path = PathBuf::from_str("assets/themes/src/vscode/")?; + let themes_output_path = PathBuf::from_str(OUT_PATH)?; + + if !themes_output_path.exists() { + println!("Creating directory: {:?}", themes_output_path); + fs::create_dir_all(&themes_output_path)?; + } + + // We create mod.rs at the beginning to prevent `mod themes;`/`pub use themes::*;` from being + // invalid in the theme crate root. + println!( + "Creating file: {:?}", + themes_output_path.join(format!("mod.rs")) + ); + + let mut mod_rs_file = File::create(themes_output_path.join(format!("mod.rs")))?; + + println!("Loading themes source..."); + let vscode_themes_path = PathBuf::from_str(SOURCE_PATH)?; + if !vscode_themes_path.exists() { + return Err(anyhow!(format!( + "Couldn't find {}, make sure it exists", + SOURCE_PATH + ))); + } let mut theme_families = Vec::new(); for theme_family_dir in fs::read_dir(&vscode_themes_path)? { - println!("Reading directory: {:?}", vscode_themes_path); - let theme_family_dir = theme_family_dir?; - if theme_family_dir.file_name().to_str() == Some(".DS_Store") { + if !theme_family_dir.file_type()?.is_dir() { continue; } @@ -72,12 +95,18 @@ fn main() -> Result<()> { .ok_or(anyhow!("no file stem")) .map(|stem| stem.to_string_lossy().to_string())?; - println!( - "Opening file: {:?}", - theme_family_dir.path().join("family.json") - ); let family_metadata_file = File::open(theme_family_dir.path().join("family.json")) - .context(format!("no `family.json` found for '{theme_family_slug}'"))?; + .context(format!( + "no `family.json` found for '{}'", + theme_family_slug + ))?; + + 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); + continue; + } let family_metadata: FamilyMetadata = serde_json::from_reader(family_metadata_file) .context(format!( @@ -118,8 +147,6 @@ fn main() -> Result<()> { theme_families.push(theme_family); } - let themes_output_path = PathBuf::from_str("crates/theme2/src/themes")?; - let mut theme_modules = Vec::new(); for theme_family in theme_families { @@ -153,17 +180,28 @@ fn main() -> Result<()> { theme_modules.push(theme_family_slug); } - println!( - "Creating file: {:?}", - themes_output_path.join(format!("mod.rs")) + let themes_vector_contents = format!( + r#" + use crate::ThemeFamily; + + pub(crate) fn all_imported_themes() -> Vec {{ + vec![{all_themes}] + }} + "#, + all_themes = theme_modules + .iter() + .map(|module| format!("{}()", module)) + .collect::>() + .join(", ") ); - let mut mod_rs_file = File::create(themes_output_path.join(format!("mod.rs")))?; let mod_rs_contents = format!( r#" {mod_statements} {use_statements} + + {themes_vector_contents} "#, mod_statements = theme_modules .iter() @@ -174,7 +212,8 @@ fn main() -> Result<()> { .iter() .map(|module| format!("pub use {module}::*;")) .collect::>() - .join("\n") + .join("\n"), + themes_vector_contents = themes_vector_contents ); mod_rs_file.write_all(mod_rs_contents.as_bytes())?; diff --git a/crates/theme_importer/src/theme_printer.rs b/crates/theme_importer/src/theme_printer.rs index 1c4d263389..98765d6129 100644 --- a/crates/theme_importer/src/theme_printer.rs +++ b/crates/theme_importer/src/theme_printer.rs @@ -134,6 +134,8 @@ impl<'a> Debug for ThemeColorsPrinter<'a> { .field("border", &HslaPrinter(self.0.border)) .field("border_variant", &HslaPrinter(self.0.border_variant)) .field("border_focused", &HslaPrinter(self.0.border_focused)) + .field("border_disabled", &HslaPrinter(self.0.border_disabled)) + .field("border_selected", &HslaPrinter(self.0.border_selected)) .field( "border_transparent", &HslaPrinter(self.0.border_transparent), diff --git a/crates/theme_importer/src/vscode.rs b/crates/theme_importer/src/vscode.rs index 06c4653dec..f63766b6a5 100644 --- a/crates/theme_importer/src/vscode.rs +++ b/crates/theme_importer/src/vscode.rs @@ -456,6 +456,14 @@ impl VsCodeThemeConverter { .panel_border .as_ref() .traverse(|color| try_parse_color(&color))?, + border_disabled: vscode_colors + .panel_border + .as_ref() + .traverse(|color| try_parse_color(&color))?, + border_selected: vscode_colors + .panel_border + .as_ref() + .traverse(|color| try_parse_color(&color))?, border_transparent: vscode_colors .panel_border .as_ref() From 62981fc2ee9d2ff48ec326eaf6fea8ee741c32a6 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Mon, 6 Nov 2023 14:58:34 -0500 Subject: [PATCH 73/76] Format themes --- crates/theme2/src/themes/andromeda.rs | 345 ++++- crates/theme2/src/themes/ayu.rs | 503 ++++++- crates/theme2/src/themes/dracula.rs | 185 ++- crates/theme2/src/themes/gruvbox.rs | 977 +++++++++++++- crates/theme2/src/themes/mod.rs | 24 +- crates/theme2/src/themes/nord.rs | 185 ++- crates/theme2/src/themes/notctis.rs | 1767 ++++++++++++++++++++++++- 7 files changed, 3882 insertions(+), 104 deletions(-) diff --git a/crates/theme2/src/themes/andromeda.rs b/crates/theme2/src/themes/andromeda.rs index 8b32d20480..e9bbbc48b4 100644 --- a/crates/theme2/src/themes/andromeda.rs +++ b/crates/theme2/src/themes/andromeda.rs @@ -1,18 +1,333 @@ +use gpui::rgba; - use gpui::rgba; +use crate::{ + default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, + SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, +}; - use crate::{ - default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, - SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, - }; - - pub fn andromeda() -> ThemeFamily { - ThemeFamily { - id: "0d2fdd0e-de6d-44b2-8f16-f4da10a78f2e".into(), - name: "Andromeda".into(), - author: "Eliver Lara (EliverLara)".into(), - themes: vec![ThemeVariant { id: "8a4e3be2-0ea0-4a0c-9fee-bc63123205ba".into(), name: "Andromeda".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x1b1d23ff).into(), border_variant: rgba(0x1b1d23ff).into(), border_focused: rgba(0x1b1d23ff).into(), border_disabled: rgba(0x1b1d23ff).into(), border_selected: rgba(0x1b1d23ff).into(), border_transparent: rgba(0x1b1d23ff).into(), elevated_surface_background: rgba(0x23262eff).into(), surface_background: rgba(0x23262eff).into(), background: rgba(0x23262eff).into(), element_background: rgba(0x00e8c5cc).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xd4cdd8ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x23262eff).into(), tab_active_background: rgba(0x23262eff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x111113ff).into(), terminal_ansi_bright_black: rgba(0x000000e6).into(), terminal_ansi_bright_red: rgba(0xee5d42ff).into(), terminal_ansi_bright_green: rgba(0x95e072ff).into(), terminal_ansi_bright_yellow: rgba(0xffe66dff).into(), terminal_ansi_bright_blue: rgba(0x7bb7ffff).into(), terminal_ansi_bright_magenta: rgba(0xff00a9ff).into(), terminal_ansi_bright_cyan: rgba(0x00e8c6ff).into(), terminal_ansi_bright_white: rgba(0xb0b4baff).into(), terminal_ansi_black: rgba(0x000000f2).into(), terminal_ansi_red: rgba(0xee5d42ff).into(), terminal_ansi_green: rgba(0x95e072ff).into(), terminal_ansi_yellow: rgba(0xffe66dff).into(), terminal_ansi_blue: rgba(0x7bb7ffff).into(), terminal_ansi_magenta: rgba(0xff00a9ff).into(), terminal_ansi_cyan: rgba(0x00e8c6ff).into(), terminal_ansi_white: rgba(0xedeef0ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "812f0805-5f84-4f3f-97d3-b38b44307132".into(), name: "Andromeda Bordered".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x1b1d23ff).into(), border_variant: rgba(0x1b1d23ff).into(), border_focused: rgba(0x1b1d23ff).into(), border_disabled: rgba(0x1b1d23ff).into(), border_selected: rgba(0x1b1d23ff).into(), border_transparent: rgba(0x1b1d23ff).into(), elevated_surface_background: rgba(0x23262eff).into(), surface_background: rgba(0x23262eff).into(), background: rgba(0x262933ff).into(), element_background: rgba(0x00e8c5cc).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xd4cdd8ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x23262eff).into(), tab_active_background: rgba(0x262933ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x111113ff).into(), terminal_ansi_bright_black: rgba(0x000000e6).into(), terminal_ansi_bright_red: rgba(0xee5d42ff).into(), terminal_ansi_bright_green: rgba(0x95e072ff).into(), terminal_ansi_bright_yellow: rgba(0xffe66dff).into(), terminal_ansi_bright_blue: rgba(0x7bb7ffff).into(), terminal_ansi_bright_magenta: rgba(0xff00a9ff).into(), terminal_ansi_bright_cyan: rgba(0x00e8c6ff).into(), terminal_ansi_bright_white: rgba(0xb0b4baff).into(), terminal_ansi_black: rgba(0x000000f2).into(), terminal_ansi_red: rgba(0xee5d42ff).into(), terminal_ansi_green: rgba(0x95e072ff).into(), terminal_ansi_yellow: rgba(0xffe66dff).into(), terminal_ansi_blue: rgba(0x7bb7ffff).into(), terminal_ansi_magenta: rgba(0xff00a9ff).into(), terminal_ansi_cyan: rgba(0x00e8c6ff).into(), terminal_ansi_white: rgba(0xedeef0ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }], - scales: default_color_scales(), +pub fn andromeda() -> ThemeFamily { + ThemeFamily { + id: "0d2fdd0e-de6d-44b2-8f16-f4da10a78f2e".into(), + name: "Andromeda".into(), + author: "Eliver Lara (EliverLara)".into(), + themes: vec![ + ThemeVariant { + id: "8a4e3be2-0ea0-4a0c-9fee-bc63123205ba".into(), + name: "Andromeda".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x1b1d23ff).into(), + border_variant: rgba(0x1b1d23ff).into(), + border_focused: rgba(0x1b1d23ff).into(), + border_disabled: rgba(0x1b1d23ff).into(), + border_selected: rgba(0x1b1d23ff).into(), + border_transparent: rgba(0x1b1d23ff).into(), + elevated_surface_background: rgba(0x23262eff).into(), + surface_background: rgba(0x23262eff).into(), + background: rgba(0x23262eff).into(), + element_background: rgba(0x00e8c5cc).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xd4cdd8ff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x23262eff).into(), + tab_active_background: rgba(0x23262eff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x111113ff).into(), + terminal_ansi_bright_black: rgba(0x000000e6).into(), + terminal_ansi_bright_red: rgba(0xee5d42ff).into(), + terminal_ansi_bright_green: rgba(0x95e072ff).into(), + terminal_ansi_bright_yellow: rgba(0xffe66dff).into(), + terminal_ansi_bright_blue: rgba(0x7bb7ffff).into(), + terminal_ansi_bright_magenta: rgba(0xff00a9ff).into(), + terminal_ansi_bright_cyan: rgba(0x00e8c6ff).into(), + terminal_ansi_bright_white: rgba(0xb0b4baff).into(), + terminal_ansi_black: rgba(0x000000f2).into(), + terminal_ansi_red: rgba(0xee5d42ff).into(), + terminal_ansi_green: rgba(0x95e072ff).into(), + terminal_ansi_yellow: rgba(0xffe66dff).into(), + terminal_ansi_blue: rgba(0x7bb7ffff).into(), + terminal_ansi_magenta: rgba(0xff00a9ff).into(), + terminal_ansi_cyan: rgba(0x00e8c6ff).into(), + terminal_ansi_white: rgba(0xedeef0ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "812f0805-5f84-4f3f-97d3-b38b44307132".into(), + name: "Andromeda Bordered".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x1b1d23ff).into(), + border_variant: rgba(0x1b1d23ff).into(), + border_focused: rgba(0x1b1d23ff).into(), + border_disabled: rgba(0x1b1d23ff).into(), + border_selected: rgba(0x1b1d23ff).into(), + border_transparent: rgba(0x1b1d23ff).into(), + elevated_surface_background: rgba(0x23262eff).into(), + surface_background: rgba(0x23262eff).into(), + background: rgba(0x262933ff).into(), + element_background: rgba(0x00e8c5cc).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xd4cdd8ff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x23262eff).into(), + tab_active_background: rgba(0x262933ff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x111113ff).into(), + terminal_ansi_bright_black: rgba(0x000000e6).into(), + terminal_ansi_bright_red: rgba(0xee5d42ff).into(), + terminal_ansi_bright_green: rgba(0x95e072ff).into(), + terminal_ansi_bright_yellow: rgba(0xffe66dff).into(), + terminal_ansi_bright_blue: rgba(0x7bb7ffff).into(), + terminal_ansi_bright_magenta: rgba(0xff00a9ff).into(), + terminal_ansi_bright_cyan: rgba(0x00e8c6ff).into(), + terminal_ansi_bright_white: rgba(0xb0b4baff).into(), + terminal_ansi_black: rgba(0x000000f2).into(), + terminal_ansi_red: rgba(0xee5d42ff).into(), + terminal_ansi_green: rgba(0x95e072ff).into(), + terminal_ansi_yellow: rgba(0xffe66dff).into(), + terminal_ansi_blue: rgba(0x7bb7ffff).into(), + terminal_ansi_magenta: rgba(0xff00a9ff).into(), + terminal_ansi_cyan: rgba(0x00e8c6ff).into(), + terminal_ansi_white: rgba(0xedeef0ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ], + scales: default_color_scales(), + } } - } - \ No newline at end of file diff --git a/crates/theme2/src/themes/ayu.rs b/crates/theme2/src/themes/ayu.rs index 4e12340d3f..14e316e400 100644 --- a/crates/theme2/src/themes/ayu.rs +++ b/crates/theme2/src/themes/ayu.rs @@ -1,18 +1,491 @@ +use gpui::rgba; - use gpui::rgba; +use crate::{ + default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, + SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, +}; - use crate::{ - default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, - SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, - }; - - pub fn ayu() -> ThemeFamily { - ThemeFamily { - id: "769923cd-f2b6-4675-96b8-8a2953fc635b".into(), - name: "Ayu".into(), - author: "dempfi (Ike Ku)".into(), - themes: vec![ThemeVariant { id: "f6ae55e2-a844-47ba-a720-ca88dd7b2a12".into(), name: "Ayu Light".into(), appearance: Appearance::Light, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x6b7d8f1f).into(), border_variant: rgba(0x6b7d8f1f).into(), border_focused: rgba(0x6b7d8f1f).into(), border_disabled: rgba(0x6b7d8f1f).into(), border_selected: rgba(0x6b7d8f1f).into(), border_transparent: rgba(0x6b7d8f1f).into(), elevated_surface_background: rgba(0xf8f9faff).into(), surface_background: rgba(0xf8f9faff).into(), background: rgba(0xf8f9faff).into(), element_background: rgba(0xffaa32ff).into(), element_hover: rgba(0xe8e8ecff).into(), element_active: rgba(0xe0e1e6ff).into(), element_selected: rgba(0xe0e1e6ff).into(), element_disabled: rgba(0x0000320f).into(), element_placeholder: rgba(0x60646cff).into(), element_drop_target: rgba(0x008bff0b).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0xe8e8ecff).into(), ghost_element_active: rgba(0xe0e1e6ff).into(), ghost_element_selected: rgba(0xe0e1e6ff).into(), ghost_element_disabled: rgba(0x0000320f).into(), text: rgba(0x8a9199ff).into(), text_muted: rgba(0x60646cff).into(), text_placeholder: rgba(0x80838dff).into(), text_disabled: rgba(0x8b8d98ff).into(), text_accent: rgba(0x0c73ceff).into(), icon: rgba(0x60646cff).into(), icon_muted: rgba(0x80838dff).into(), icon_disabled: rgba(0x8b8d98ff).into(), icon_placeholder: rgba(0x80838dff).into(), icon_accent: rgba(0x0c73ceff).into(), status_bar_background: rgba(0xf9f9fbff).into(), title_bar_background: rgba(0xf9f9fbff).into(), toolbar_background: rgba(0xfcfcfdff).into(), tab_bar_background: rgba(0xf9f9fbff).into(), tab_inactive_background: rgba(0xf8f9faff).into(), tab_active_background: rgba(0xf8f9faff).into(), editor_background: rgba(0xfcfcfdff).into(), editor_subheader_background: rgba(0xf9f9fbff).into(), editor_active_line: rgba(0x0000320f).into(), terminal_background: rgba(0xf8f9faff).into(), terminal_ansi_bright_black: rgba(0x686868ff).into(), terminal_ansi_bright_red: rgba(0xef7070ff).into(), terminal_ansi_bright_green: rgba(0x86b300ff).into(), terminal_ansi_bright_yellow: rgba(0xf2ad48ff).into(), terminal_ansi_bright_blue: rgba(0x389ee6ff).into(), terminal_ansi_bright_magenta: rgba(0xa37accff).into(), terminal_ansi_bright_cyan: rgba(0x4bbf98ff).into(), terminal_ansi_bright_white: rgba(0xd1d1d1ff).into(), terminal_ansi_black: rgba(0x000000ff).into(), terminal_ansi_red: rgba(0xea6c6dff).into(), terminal_ansi_green: rgba(0x6cbf43ff).into(), terminal_ansi_yellow: rgba(0xeca944ff).into(), terminal_ansi_blue: rgba(0x3198e1ff).into(), terminal_ansi_magenta: rgba(0x9e75c7ff).into(), terminal_ansi_cyan: rgba(0x46ba94ff).into(), terminal_ansi_white: rgba(0xc7c7c7ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "440f604c-3a70-4bac-901a-2dc92c7a241a".into(), name: "Ayu Mirage".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x171a24ff).into(), border_variant: rgba(0x171a24ff).into(), border_focused: rgba(0x171a24ff).into(), border_disabled: rgba(0x171a24ff).into(), border_selected: rgba(0x171a24ff).into(), border_transparent: rgba(0x171a24ff).into(), elevated_surface_background: rgba(0x1f2430ff).into(), surface_background: rgba(0x1f2430ff).into(), background: rgba(0x1f2430ff).into(), element_background: rgba(0xffcb65ff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0x707a8cff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x1f2430ff).into(), tab_active_background: rgba(0x1f2430ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x1f2430ff).into(), terminal_ansi_bright_black: rgba(0x686868ff).into(), terminal_ansi_bright_red: rgba(0xf18678ff).into(), terminal_ansi_bright_green: rgba(0xd4fe7fff).into(), terminal_ansi_bright_yellow: rgba(0xffd173ff).into(), terminal_ansi_bright_blue: rgba(0x73cfffff).into(), terminal_ansi_bright_magenta: rgba(0xdfbfffff).into(), terminal_ansi_bright_cyan: rgba(0x95e6cbff).into(), terminal_ansi_bright_white: rgba(0xffffffff).into(), terminal_ansi_black: rgba(0x171a24ff).into(), terminal_ansi_red: rgba(0xed8173ff).into(), terminal_ansi_green: rgba(0x86d96bff).into(), terminal_ansi_yellow: rgba(0xfacc6eff).into(), terminal_ansi_blue: rgba(0x6ccafaff).into(), terminal_ansi_magenta: rgba(0xdabafaff).into(), terminal_ansi_cyan: rgba(0x90e1c6ff).into(), terminal_ansi_white: rgba(0xc7c7c7ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "0135d1f0-1331-4e5a-9634-73e8f72356d0".into(), name: "Ayu Dark".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x1e232bff).into(), border_variant: rgba(0x1e232bff).into(), border_focused: rgba(0x1e232bff).into(), border_disabled: rgba(0x1e232bff).into(), border_selected: rgba(0x1e232bff).into(), border_transparent: rgba(0x1e232bff).into(), elevated_surface_background: rgba(0x0b0e14ff).into(), surface_background: rgba(0x0b0e14ff).into(), background: rgba(0x0b0e14ff).into(), element_background: rgba(0xe6b450ff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0x565b66ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x0b0e14ff).into(), tab_active_background: rgba(0x0b0e14ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x0b0e14ff).into(), terminal_ansi_bright_black: rgba(0x686868ff).into(), terminal_ansi_bright_red: rgba(0xef7077ff).into(), terminal_ansi_bright_green: rgba(0xa9d94bff).into(), terminal_ansi_bright_yellow: rgba(0xffb353ff).into(), terminal_ansi_bright_blue: rgba(0x59c2ffff).into(), terminal_ansi_bright_magenta: rgba(0xd2a6ffff).into(), terminal_ansi_bright_cyan: rgba(0x95e6cbff).into(), terminal_ansi_bright_white: rgba(0xffffffff).into(), terminal_ansi_black: rgba(0x1e232bff).into(), terminal_ansi_red: rgba(0xea6c72ff).into(), terminal_ansi_green: rgba(0x7ed962ff).into(), terminal_ansi_yellow: rgba(0xf9af4fff).into(), terminal_ansi_blue: rgba(0x52bdfaff).into(), terminal_ansi_magenta: rgba(0xcca1faff).into(), terminal_ansi_cyan: rgba(0x90e1c6ff).into(), terminal_ansi_white: rgba(0xc7c7c7ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }], - scales: default_color_scales(), +pub fn ayu() -> ThemeFamily { + ThemeFamily { + id: "769923cd-f2b6-4675-96b8-8a2953fc635b".into(), + name: "Ayu".into(), + author: "dempfi (Ike Ku)".into(), + themes: vec![ + ThemeVariant { + id: "f6ae55e2-a844-47ba-a720-ca88dd7b2a12".into(), + name: "Ayu Light".into(), + appearance: Appearance::Light, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x6b7d8f1f).into(), + border_variant: rgba(0x6b7d8f1f).into(), + border_focused: rgba(0x6b7d8f1f).into(), + border_disabled: rgba(0x6b7d8f1f).into(), + border_selected: rgba(0x6b7d8f1f).into(), + border_transparent: rgba(0x6b7d8f1f).into(), + elevated_surface_background: rgba(0xf8f9faff).into(), + surface_background: rgba(0xf8f9faff).into(), + background: rgba(0xf8f9faff).into(), + element_background: rgba(0xffaa32ff).into(), + element_hover: rgba(0xe8e8ecff).into(), + element_active: rgba(0xe0e1e6ff).into(), + element_selected: rgba(0xe0e1e6ff).into(), + element_disabled: rgba(0x0000320f).into(), + element_placeholder: rgba(0x60646cff).into(), + element_drop_target: rgba(0x008bff0b).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0xe8e8ecff).into(), + ghost_element_active: rgba(0xe0e1e6ff).into(), + ghost_element_selected: rgba(0xe0e1e6ff).into(), + ghost_element_disabled: rgba(0x0000320f).into(), + text: rgba(0x8a9199ff).into(), + text_muted: rgba(0x60646cff).into(), + text_placeholder: rgba(0x80838dff).into(), + text_disabled: rgba(0x8b8d98ff).into(), + text_accent: rgba(0x0c73ceff).into(), + icon: rgba(0x60646cff).into(), + icon_muted: rgba(0x80838dff).into(), + icon_disabled: rgba(0x8b8d98ff).into(), + icon_placeholder: rgba(0x80838dff).into(), + icon_accent: rgba(0x0c73ceff).into(), + status_bar_background: rgba(0xf9f9fbff).into(), + title_bar_background: rgba(0xf9f9fbff).into(), + toolbar_background: rgba(0xfcfcfdff).into(), + tab_bar_background: rgba(0xf9f9fbff).into(), + tab_inactive_background: rgba(0xf8f9faff).into(), + tab_active_background: rgba(0xf8f9faff).into(), + editor_background: rgba(0xfcfcfdff).into(), + editor_subheader_background: rgba(0xf9f9fbff).into(), + editor_active_line: rgba(0x0000320f).into(), + terminal_background: rgba(0xf8f9faff).into(), + terminal_ansi_bright_black: rgba(0x686868ff).into(), + terminal_ansi_bright_red: rgba(0xef7070ff).into(), + terminal_ansi_bright_green: rgba(0x86b300ff).into(), + terminal_ansi_bright_yellow: rgba(0xf2ad48ff).into(), + terminal_ansi_bright_blue: rgba(0x389ee6ff).into(), + terminal_ansi_bright_magenta: rgba(0xa37accff).into(), + terminal_ansi_bright_cyan: rgba(0x4bbf98ff).into(), + terminal_ansi_bright_white: rgba(0xd1d1d1ff).into(), + terminal_ansi_black: rgba(0x000000ff).into(), + terminal_ansi_red: rgba(0xea6c6dff).into(), + terminal_ansi_green: rgba(0x6cbf43ff).into(), + terminal_ansi_yellow: rgba(0xeca944ff).into(), + terminal_ansi_blue: rgba(0x3198e1ff).into(), + terminal_ansi_magenta: rgba(0x9e75c7ff).into(), + terminal_ansi_cyan: rgba(0x46ba94ff).into(), + terminal_ansi_white: rgba(0xc7c7c7ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "440f604c-3a70-4bac-901a-2dc92c7a241a".into(), + name: "Ayu Mirage".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x171a24ff).into(), + border_variant: rgba(0x171a24ff).into(), + border_focused: rgba(0x171a24ff).into(), + border_disabled: rgba(0x171a24ff).into(), + border_selected: rgba(0x171a24ff).into(), + border_transparent: rgba(0x171a24ff).into(), + elevated_surface_background: rgba(0x1f2430ff).into(), + surface_background: rgba(0x1f2430ff).into(), + background: rgba(0x1f2430ff).into(), + element_background: rgba(0xffcb65ff).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0x707a8cff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x1f2430ff).into(), + tab_active_background: rgba(0x1f2430ff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x1f2430ff).into(), + terminal_ansi_bright_black: rgba(0x686868ff).into(), + terminal_ansi_bright_red: rgba(0xf18678ff).into(), + terminal_ansi_bright_green: rgba(0xd4fe7fff).into(), + terminal_ansi_bright_yellow: rgba(0xffd173ff).into(), + terminal_ansi_bright_blue: rgba(0x73cfffff).into(), + terminal_ansi_bright_magenta: rgba(0xdfbfffff).into(), + terminal_ansi_bright_cyan: rgba(0x95e6cbff).into(), + terminal_ansi_bright_white: rgba(0xffffffff).into(), + terminal_ansi_black: rgba(0x171a24ff).into(), + terminal_ansi_red: rgba(0xed8173ff).into(), + terminal_ansi_green: rgba(0x86d96bff).into(), + terminal_ansi_yellow: rgba(0xfacc6eff).into(), + terminal_ansi_blue: rgba(0x6ccafaff).into(), + terminal_ansi_magenta: rgba(0xdabafaff).into(), + terminal_ansi_cyan: rgba(0x90e1c6ff).into(), + terminal_ansi_white: rgba(0xc7c7c7ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "0135d1f0-1331-4e5a-9634-73e8f72356d0".into(), + name: "Ayu Dark".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x1e232bff).into(), + border_variant: rgba(0x1e232bff).into(), + border_focused: rgba(0x1e232bff).into(), + border_disabled: rgba(0x1e232bff).into(), + border_selected: rgba(0x1e232bff).into(), + border_transparent: rgba(0x1e232bff).into(), + elevated_surface_background: rgba(0x0b0e14ff).into(), + surface_background: rgba(0x0b0e14ff).into(), + background: rgba(0x0b0e14ff).into(), + element_background: rgba(0xe6b450ff).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0x565b66ff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x0b0e14ff).into(), + tab_active_background: rgba(0x0b0e14ff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x0b0e14ff).into(), + terminal_ansi_bright_black: rgba(0x686868ff).into(), + terminal_ansi_bright_red: rgba(0xef7077ff).into(), + terminal_ansi_bright_green: rgba(0xa9d94bff).into(), + terminal_ansi_bright_yellow: rgba(0xffb353ff).into(), + terminal_ansi_bright_blue: rgba(0x59c2ffff).into(), + terminal_ansi_bright_magenta: rgba(0xd2a6ffff).into(), + terminal_ansi_bright_cyan: rgba(0x95e6cbff).into(), + terminal_ansi_bright_white: rgba(0xffffffff).into(), + terminal_ansi_black: rgba(0x1e232bff).into(), + terminal_ansi_red: rgba(0xea6c72ff).into(), + terminal_ansi_green: rgba(0x7ed962ff).into(), + terminal_ansi_yellow: rgba(0xf9af4fff).into(), + terminal_ansi_blue: rgba(0x52bdfaff).into(), + terminal_ansi_magenta: rgba(0xcca1faff).into(), + terminal_ansi_cyan: rgba(0x90e1c6ff).into(), + terminal_ansi_white: rgba(0xc7c7c7ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ], + scales: default_color_scales(), + } } - } - \ No newline at end of file diff --git a/crates/theme2/src/themes/dracula.rs b/crates/theme2/src/themes/dracula.rs index aff13ecae5..0f8de4996f 100644 --- a/crates/theme2/src/themes/dracula.rs +++ b/crates/theme2/src/themes/dracula.rs @@ -1,18 +1,173 @@ +use gpui::rgba; - use gpui::rgba; +use crate::{ + default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, + SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, +}; - use crate::{ - default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, - SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, - }; - - pub fn dracula() -> ThemeFamily { - ThemeFamily { - id: "690e6a78-4aa6-471e-a342-4d0e0ee14952".into(), - name: "Dracula".into(), - author: "Zeno Rocha".into(), - themes: vec![ThemeVariant { id: "b4d04bac-514f-4a38-bf03-df54bb135d82".into(), name: "Dracula".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0xbd93f9ff).into(), border_variant: rgba(0xbd93f9ff).into(), border_focused: rgba(0xbd93f9ff).into(), border_disabled: rgba(0xbd93f9ff).into(), border_selected: rgba(0xbd93f9ff).into(), border_transparent: rgba(0xbd93f9ff).into(), elevated_surface_background: rgba(0x282a35ff).into(), surface_background: rgba(0x282a35ff).into(), background: rgba(0x282a35ff).into(), element_background: rgba(0x44475aff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xf8f8f2ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x21222cff).into(), tab_active_background: rgba(0x282a35ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x282a35ff).into(), terminal_ansi_bright_black: rgba(0x6272a4ff).into(), terminal_ansi_bright_red: rgba(0xff6d6dff).into(), terminal_ansi_bright_green: rgba(0x69ff94ff).into(), terminal_ansi_bright_yellow: rgba(0xffffa5ff).into(), terminal_ansi_bright_blue: rgba(0xd6abfeff).into(), terminal_ansi_bright_magenta: rgba(0xff92dfff).into(), terminal_ansi_bright_cyan: rgba(0xa3fefeff).into(), terminal_ansi_bright_white: rgba(0xffffffff).into(), terminal_ansi_black: rgba(0x21222cff).into(), terminal_ansi_red: rgba(0xff5555ff).into(), terminal_ansi_green: rgba(0x50fa7bff).into(), terminal_ansi_yellow: rgba(0xf1fa8cff).into(), terminal_ansi_blue: rgba(0xbd93f9ff).into(), terminal_ansi_magenta: rgba(0xff79c6ff).into(), terminal_ansi_cyan: rgba(0x8be9fdff).into(), terminal_ansi_white: rgba(0xf8f8f2ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }], - scales: default_color_scales(), +pub fn dracula() -> ThemeFamily { + ThemeFamily { + id: "690e6a78-4aa6-471e-a342-4d0e0ee14952".into(), + name: "Dracula".into(), + author: "Zeno Rocha".into(), + themes: vec![ThemeVariant { + id: "b4d04bac-514f-4a38-bf03-df54bb135d82".into(), + name: "Dracula".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0xbd93f9ff).into(), + border_variant: rgba(0xbd93f9ff).into(), + border_focused: rgba(0xbd93f9ff).into(), + border_disabled: rgba(0xbd93f9ff).into(), + border_selected: rgba(0xbd93f9ff).into(), + border_transparent: rgba(0xbd93f9ff).into(), + elevated_surface_background: rgba(0x282a35ff).into(), + surface_background: rgba(0x282a35ff).into(), + background: rgba(0x282a35ff).into(), + element_background: rgba(0x44475aff).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xf8f8f2ff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x21222cff).into(), + tab_active_background: rgba(0x282a35ff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x282a35ff).into(), + terminal_ansi_bright_black: rgba(0x6272a4ff).into(), + terminal_ansi_bright_red: rgba(0xff6d6dff).into(), + terminal_ansi_bright_green: rgba(0x69ff94ff).into(), + terminal_ansi_bright_yellow: rgba(0xffffa5ff).into(), + terminal_ansi_bright_blue: rgba(0xd6abfeff).into(), + terminal_ansi_bright_magenta: rgba(0xff92dfff).into(), + terminal_ansi_bright_cyan: rgba(0xa3fefeff).into(), + terminal_ansi_bright_white: rgba(0xffffffff).into(), + terminal_ansi_black: rgba(0x21222cff).into(), + terminal_ansi_red: rgba(0xff5555ff).into(), + terminal_ansi_green: rgba(0x50fa7bff).into(), + terminal_ansi_yellow: rgba(0xf1fa8cff).into(), + terminal_ansi_blue: rgba(0xbd93f9ff).into(), + terminal_ansi_magenta: rgba(0xff79c6ff).into(), + terminal_ansi_cyan: rgba(0x8be9fdff).into(), + terminal_ansi_white: rgba(0xf8f8f2ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }], + scales: default_color_scales(), + } } - } - \ No newline at end of file diff --git a/crates/theme2/src/themes/gruvbox.rs b/crates/theme2/src/themes/gruvbox.rs index e5d8507ee6..baf0df3341 100644 --- a/crates/theme2/src/themes/gruvbox.rs +++ b/crates/theme2/src/themes/gruvbox.rs @@ -1,18 +1,965 @@ +use gpui::rgba; - use gpui::rgba; +use crate::{ + default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, + SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, +}; - use crate::{ - default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, - SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, - }; - - pub fn gruvbox() -> ThemeFamily { - ThemeFamily { - id: "c3d8b05f-5538-4b73-9ce9-30a31f73f5f2".into(), - name: "Gruvbox".into(), - author: "morhetz".into(), - themes: vec![ThemeVariant { id: "014ce751-7184-44a0-b977-001d88e94d75".into(), name: "Gruvbox Dark Hard".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x3c3836ff).into(), border_variant: rgba(0x3c3836ff).into(), border_focused: rgba(0x3c3836ff).into(), border_disabled: rgba(0x3c3836ff).into(), border_selected: rgba(0x3c3836ff).into(), border_transparent: rgba(0x3c3836ff).into(), elevated_surface_background: rgba(0x18191bff).into(), surface_background: rgba(0x18191bff).into(), background: rgba(0x1d2021ff).into(), element_background: rgba(0x44858780).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xebdbb2ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x1d2021ff).into(), tab_active_background: rgba(0x32302fff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x1d2021ff).into(), terminal_ansi_bright_black: rgba(0x928374ff).into(), terminal_ansi_bright_red: rgba(0xfb4833ff).into(), terminal_ansi_bright_green: rgba(0xb8bb25ff).into(), terminal_ansi_bright_yellow: rgba(0xfabd2eff).into(), terminal_ansi_bright_blue: rgba(0x83a598ff).into(), terminal_ansi_bright_magenta: rgba(0xd3869bff).into(), terminal_ansi_bright_cyan: rgba(0x8ec07cff).into(), terminal_ansi_bright_white: rgba(0xebdbb2ff).into(), terminal_ansi_black: rgba(0x3c3836ff).into(), terminal_ansi_red: rgba(0xcc241cff).into(), terminal_ansi_green: rgba(0x989719ff).into(), terminal_ansi_yellow: rgba(0xd79920ff).into(), terminal_ansi_blue: rgba(0x448587ff).into(), terminal_ansi_magenta: rgba(0xb16185ff).into(), terminal_ansi_cyan: rgba(0x679d6aff).into(), terminal_ansi_white: rgba(0xa89984ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "abf0dd62-cc6a-464b-bd63-75c28eabb1c0".into(), name: "Gruvbox Dark Medium".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x3c3836ff).into(), border_variant: rgba(0x3c3836ff).into(), border_focused: rgba(0x3c3836ff).into(), border_disabled: rgba(0x3c3836ff).into(), border_selected: rgba(0x3c3836ff).into(), border_transparent: rgba(0x3c3836ff).into(), elevated_surface_background: rgba(0x18191bff).into(), surface_background: rgba(0x18191bff).into(), background: rgba(0x282828ff).into(), element_background: rgba(0x44858780).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xebdbb2ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x282828ff).into(), tab_active_background: rgba(0x3c3836ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x282828ff).into(), terminal_ansi_bright_black: rgba(0x928374ff).into(), terminal_ansi_bright_red: rgba(0xfb4833ff).into(), terminal_ansi_bright_green: rgba(0xb8bb25ff).into(), terminal_ansi_bright_yellow: rgba(0xfabd2eff).into(), terminal_ansi_bright_blue: rgba(0x83a598ff).into(), terminal_ansi_bright_magenta: rgba(0xd3869bff).into(), terminal_ansi_bright_cyan: rgba(0x8ec07cff).into(), terminal_ansi_bright_white: rgba(0xebdbb2ff).into(), terminal_ansi_black: rgba(0x3c3836ff).into(), terminal_ansi_red: rgba(0xcc241cff).into(), terminal_ansi_green: rgba(0x989719ff).into(), terminal_ansi_yellow: rgba(0xd79920ff).into(), terminal_ansi_blue: rgba(0x448587ff).into(), terminal_ansi_magenta: rgba(0xb16185ff).into(), terminal_ansi_cyan: rgba(0x679d6aff).into(), terminal_ansi_white: rgba(0xa89984ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "03a2ee16-8076-449b-9bb2-16fd02fbf21d".into(), name: "Gruvbox Dark Soft".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x3c3836ff).into(), border_variant: rgba(0x3c3836ff).into(), border_focused: rgba(0x3c3836ff).into(), border_disabled: rgba(0x3c3836ff).into(), border_selected: rgba(0x3c3836ff).into(), border_transparent: rgba(0x3c3836ff).into(), elevated_surface_background: rgba(0x18191bff).into(), surface_background: rgba(0x18191bff).into(), background: rgba(0x32302fff).into(), element_background: rgba(0x44858780).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xebdbb2ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x32302fff).into(), tab_active_background: rgba(0x504945ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x32302fff).into(), terminal_ansi_bright_black: rgba(0x928374ff).into(), terminal_ansi_bright_red: rgba(0xfb4833ff).into(), terminal_ansi_bright_green: rgba(0xb8bb25ff).into(), terminal_ansi_bright_yellow: rgba(0xfabd2eff).into(), terminal_ansi_bright_blue: rgba(0x83a598ff).into(), terminal_ansi_bright_magenta: rgba(0xd3869bff).into(), terminal_ansi_bright_cyan: rgba(0x8ec07cff).into(), terminal_ansi_bright_white: rgba(0xebdbb2ff).into(), terminal_ansi_black: rgba(0x3c3836ff).into(), terminal_ansi_red: rgba(0xcc241cff).into(), terminal_ansi_green: rgba(0x989719ff).into(), terminal_ansi_yellow: rgba(0xd79920ff).into(), terminal_ansi_blue: rgba(0x448587ff).into(), terminal_ansi_magenta: rgba(0xb16185ff).into(), terminal_ansi_cyan: rgba(0x679d6aff).into(), terminal_ansi_white: rgba(0xa89984ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "7bbc0a0b-5b57-4731-bfae-02b4ff7ee821".into(), name: "Gruvbox Light Hard".into(), appearance: Appearance::Light, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0xebdbb2ff).into(), border_variant: rgba(0xebdbb2ff).into(), border_focused: rgba(0xebdbb2ff).into(), border_disabled: rgba(0xebdbb2ff).into(), border_selected: rgba(0xebdbb2ff).into(), border_transparent: rgba(0xebdbb2ff).into(), elevated_surface_background: rgba(0xf9f9fbff).into(), surface_background: rgba(0xf9f9fbff).into(), background: rgba(0xf9f5d7ff).into(), element_background: rgba(0x44858780).into(), element_hover: rgba(0xe8e8ecff).into(), element_active: rgba(0xe0e1e6ff).into(), element_selected: rgba(0xe0e1e6ff).into(), element_disabled: rgba(0x0000320f).into(), element_placeholder: rgba(0x60646cff).into(), element_drop_target: rgba(0x008bff0b).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0xe8e8ecff).into(), ghost_element_active: rgba(0xe0e1e6ff).into(), ghost_element_selected: rgba(0xe0e1e6ff).into(), ghost_element_disabled: rgba(0x0000320f).into(), text: rgba(0x3c3836ff).into(), text_muted: rgba(0x60646cff).into(), text_placeholder: rgba(0x80838dff).into(), text_disabled: rgba(0x8b8d98ff).into(), text_accent: rgba(0x0c73ceff).into(), icon: rgba(0x60646cff).into(), icon_muted: rgba(0x80838dff).into(), icon_disabled: rgba(0x8b8d98ff).into(), icon_placeholder: rgba(0x80838dff).into(), icon_accent: rgba(0x0c73ceff).into(), status_bar_background: rgba(0xf9f9fbff).into(), title_bar_background: rgba(0xf9f9fbff).into(), toolbar_background: rgba(0xfcfcfdff).into(), tab_bar_background: rgba(0xf9f9fbff).into(), tab_inactive_background: rgba(0xf9f5d7ff).into(), tab_active_background: rgba(0xf2e5bcff).into(), editor_background: rgba(0xfcfcfdff).into(), editor_subheader_background: rgba(0xf9f9fbff).into(), editor_active_line: rgba(0x0000320f).into(), terminal_background: rgba(0xf9f5d7ff).into(), terminal_ansi_bright_black: rgba(0x928374ff).into(), terminal_ansi_bright_red: rgba(0x9d0006ff).into(), terminal_ansi_bright_green: rgba(0x79740eff).into(), terminal_ansi_bright_yellow: rgba(0xb57613ff).into(), terminal_ansi_bright_blue: rgba(0x066578ff).into(), terminal_ansi_bright_magenta: rgba(0x8f3e71ff).into(), terminal_ansi_bright_cyan: rgba(0x427b58ff).into(), terminal_ansi_bright_white: rgba(0x3c3836ff).into(), terminal_ansi_black: rgba(0xebdbb2ff).into(), terminal_ansi_red: rgba(0xcc241cff).into(), terminal_ansi_green: rgba(0x989719ff).into(), terminal_ansi_yellow: rgba(0xd79920ff).into(), terminal_ansi_blue: rgba(0x448587ff).into(), terminal_ansi_magenta: rgba(0xb16185ff).into(), terminal_ansi_cyan: rgba(0x679d6aff).into(), terminal_ansi_white: rgba(0x7c6f64ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "3319ee0f-2d7f-4efc-84ae-132b30126bb1".into(), name: "Gruvbox Light Medium".into(), appearance: Appearance::Light, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0xebdbb2ff).into(), border_variant: rgba(0xebdbb2ff).into(), border_focused: rgba(0xebdbb2ff).into(), border_disabled: rgba(0xebdbb2ff).into(), border_selected: rgba(0xebdbb2ff).into(), border_transparent: rgba(0xebdbb2ff).into(), elevated_surface_background: rgba(0xf9f9fbff).into(), surface_background: rgba(0xf9f9fbff).into(), background: rgba(0xfbf1c7ff).into(), element_background: rgba(0x44858780).into(), element_hover: rgba(0xe8e8ecff).into(), element_active: rgba(0xe0e1e6ff).into(), element_selected: rgba(0xe0e1e6ff).into(), element_disabled: rgba(0x0000320f).into(), element_placeholder: rgba(0x60646cff).into(), element_drop_target: rgba(0x008bff0b).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0xe8e8ecff).into(), ghost_element_active: rgba(0xe0e1e6ff).into(), ghost_element_selected: rgba(0xe0e1e6ff).into(), ghost_element_disabled: rgba(0x0000320f).into(), text: rgba(0x3c3836ff).into(), text_muted: rgba(0x60646cff).into(), text_placeholder: rgba(0x80838dff).into(), text_disabled: rgba(0x8b8d98ff).into(), text_accent: rgba(0x0c73ceff).into(), icon: rgba(0x60646cff).into(), icon_muted: rgba(0x80838dff).into(), icon_disabled: rgba(0x8b8d98ff).into(), icon_placeholder: rgba(0x80838dff).into(), icon_accent: rgba(0x0c73ceff).into(), status_bar_background: rgba(0xf9f9fbff).into(), title_bar_background: rgba(0xf9f9fbff).into(), toolbar_background: rgba(0xfcfcfdff).into(), tab_bar_background: rgba(0xf9f9fbff).into(), tab_inactive_background: rgba(0xfbf1c7ff).into(), tab_active_background: rgba(0xebdbb2ff).into(), editor_background: rgba(0xfcfcfdff).into(), editor_subheader_background: rgba(0xf9f9fbff).into(), editor_active_line: rgba(0x0000320f).into(), terminal_background: rgba(0xfbf1c7ff).into(), terminal_ansi_bright_black: rgba(0x928374ff).into(), terminal_ansi_bright_red: rgba(0x9d0006ff).into(), terminal_ansi_bright_green: rgba(0x79740eff).into(), terminal_ansi_bright_yellow: rgba(0xb57613ff).into(), terminal_ansi_bright_blue: rgba(0x066578ff).into(), terminal_ansi_bright_magenta: rgba(0x8f3e71ff).into(), terminal_ansi_bright_cyan: rgba(0x427b58ff).into(), terminal_ansi_bright_white: rgba(0x3c3836ff).into(), terminal_ansi_black: rgba(0xebdbb2ff).into(), terminal_ansi_red: rgba(0xcc241cff).into(), terminal_ansi_green: rgba(0x989719ff).into(), terminal_ansi_yellow: rgba(0xd79920ff).into(), terminal_ansi_blue: rgba(0x448587ff).into(), terminal_ansi_magenta: rgba(0xb16185ff).into(), terminal_ansi_cyan: rgba(0x679d6aff).into(), terminal_ansi_white: rgba(0x7c6f64ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "d455f416-a0a5-4ef6-a808-64aafeb7aaae".into(), name: "Gruvbox Light Soft".into(), appearance: Appearance::Light, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0xebdbb2ff).into(), border_variant: rgba(0xebdbb2ff).into(), border_focused: rgba(0xebdbb2ff).into(), border_disabled: rgba(0xebdbb2ff).into(), border_selected: rgba(0xebdbb2ff).into(), border_transparent: rgba(0xebdbb2ff).into(), elevated_surface_background: rgba(0xf9f9fbff).into(), surface_background: rgba(0xf9f9fbff).into(), background: rgba(0xf2e5bcff).into(), element_background: rgba(0x44858780).into(), element_hover: rgba(0xe8e8ecff).into(), element_active: rgba(0xe0e1e6ff).into(), element_selected: rgba(0xe0e1e6ff).into(), element_disabled: rgba(0x0000320f).into(), element_placeholder: rgba(0x60646cff).into(), element_drop_target: rgba(0x008bff0b).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0xe8e8ecff).into(), ghost_element_active: rgba(0xe0e1e6ff).into(), ghost_element_selected: rgba(0xe0e1e6ff).into(), ghost_element_disabled: rgba(0x0000320f).into(), text: rgba(0x3c3836ff).into(), text_muted: rgba(0x60646cff).into(), text_placeholder: rgba(0x80838dff).into(), text_disabled: rgba(0x8b8d98ff).into(), text_accent: rgba(0x0c73ceff).into(), icon: rgba(0x60646cff).into(), icon_muted: rgba(0x80838dff).into(), icon_disabled: rgba(0x8b8d98ff).into(), icon_placeholder: rgba(0x80838dff).into(), icon_accent: rgba(0x0c73ceff).into(), status_bar_background: rgba(0xf9f9fbff).into(), title_bar_background: rgba(0xf9f9fbff).into(), toolbar_background: rgba(0xfcfcfdff).into(), tab_bar_background: rgba(0xf9f9fbff).into(), tab_inactive_background: rgba(0xf2e5bcff).into(), tab_active_background: rgba(0xd5c4a1ff).into(), editor_background: rgba(0xfcfcfdff).into(), editor_subheader_background: rgba(0xf9f9fbff).into(), editor_active_line: rgba(0x0000320f).into(), terminal_background: rgba(0xf2e5bcff).into(), terminal_ansi_bright_black: rgba(0x928374ff).into(), terminal_ansi_bright_red: rgba(0x9d0006ff).into(), terminal_ansi_bright_green: rgba(0x79740eff).into(), terminal_ansi_bright_yellow: rgba(0xb57613ff).into(), terminal_ansi_bright_blue: rgba(0x066578ff).into(), terminal_ansi_bright_magenta: rgba(0x8f3e71ff).into(), terminal_ansi_bright_cyan: rgba(0x427b58ff).into(), terminal_ansi_bright_white: rgba(0x3c3836ff).into(), terminal_ansi_black: rgba(0xebdbb2ff).into(), terminal_ansi_red: rgba(0xcc241cff).into(), terminal_ansi_green: rgba(0x989719ff).into(), terminal_ansi_yellow: rgba(0xd79920ff).into(), terminal_ansi_blue: rgba(0x448587ff).into(), terminal_ansi_magenta: rgba(0xb16185ff).into(), terminal_ansi_cyan: rgba(0x679d6aff).into(), terminal_ansi_white: rgba(0x7c6f64ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }], - scales: default_color_scales(), +pub fn gruvbox() -> ThemeFamily { + ThemeFamily { + id: "c3d8b05f-5538-4b73-9ce9-30a31f73f5f2".into(), + name: "Gruvbox".into(), + author: "morhetz".into(), + themes: vec![ + ThemeVariant { + id: "014ce751-7184-44a0-b977-001d88e94d75".into(), + name: "Gruvbox Dark Hard".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x3c3836ff).into(), + border_variant: rgba(0x3c3836ff).into(), + border_focused: rgba(0x3c3836ff).into(), + border_disabled: rgba(0x3c3836ff).into(), + border_selected: rgba(0x3c3836ff).into(), + border_transparent: rgba(0x3c3836ff).into(), + elevated_surface_background: rgba(0x18191bff).into(), + surface_background: rgba(0x18191bff).into(), + background: rgba(0x1d2021ff).into(), + element_background: rgba(0x44858780).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xebdbb2ff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x1d2021ff).into(), + tab_active_background: rgba(0x32302fff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x1d2021ff).into(), + terminal_ansi_bright_black: rgba(0x928374ff).into(), + terminal_ansi_bright_red: rgba(0xfb4833ff).into(), + terminal_ansi_bright_green: rgba(0xb8bb25ff).into(), + terminal_ansi_bright_yellow: rgba(0xfabd2eff).into(), + terminal_ansi_bright_blue: rgba(0x83a598ff).into(), + terminal_ansi_bright_magenta: rgba(0xd3869bff).into(), + terminal_ansi_bright_cyan: rgba(0x8ec07cff).into(), + terminal_ansi_bright_white: rgba(0xebdbb2ff).into(), + terminal_ansi_black: rgba(0x3c3836ff).into(), + terminal_ansi_red: rgba(0xcc241cff).into(), + terminal_ansi_green: rgba(0x989719ff).into(), + terminal_ansi_yellow: rgba(0xd79920ff).into(), + terminal_ansi_blue: rgba(0x448587ff).into(), + terminal_ansi_magenta: rgba(0xb16185ff).into(), + terminal_ansi_cyan: rgba(0x679d6aff).into(), + terminal_ansi_white: rgba(0xa89984ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "abf0dd62-cc6a-464b-bd63-75c28eabb1c0".into(), + name: "Gruvbox Dark Medium".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x3c3836ff).into(), + border_variant: rgba(0x3c3836ff).into(), + border_focused: rgba(0x3c3836ff).into(), + border_disabled: rgba(0x3c3836ff).into(), + border_selected: rgba(0x3c3836ff).into(), + border_transparent: rgba(0x3c3836ff).into(), + elevated_surface_background: rgba(0x18191bff).into(), + surface_background: rgba(0x18191bff).into(), + background: rgba(0x282828ff).into(), + element_background: rgba(0x44858780).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xebdbb2ff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x282828ff).into(), + tab_active_background: rgba(0x3c3836ff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x282828ff).into(), + terminal_ansi_bright_black: rgba(0x928374ff).into(), + terminal_ansi_bright_red: rgba(0xfb4833ff).into(), + terminal_ansi_bright_green: rgba(0xb8bb25ff).into(), + terminal_ansi_bright_yellow: rgba(0xfabd2eff).into(), + terminal_ansi_bright_blue: rgba(0x83a598ff).into(), + terminal_ansi_bright_magenta: rgba(0xd3869bff).into(), + terminal_ansi_bright_cyan: rgba(0x8ec07cff).into(), + terminal_ansi_bright_white: rgba(0xebdbb2ff).into(), + terminal_ansi_black: rgba(0x3c3836ff).into(), + terminal_ansi_red: rgba(0xcc241cff).into(), + terminal_ansi_green: rgba(0x989719ff).into(), + terminal_ansi_yellow: rgba(0xd79920ff).into(), + terminal_ansi_blue: rgba(0x448587ff).into(), + terminal_ansi_magenta: rgba(0xb16185ff).into(), + terminal_ansi_cyan: rgba(0x679d6aff).into(), + terminal_ansi_white: rgba(0xa89984ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "03a2ee16-8076-449b-9bb2-16fd02fbf21d".into(), + name: "Gruvbox Dark Soft".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x3c3836ff).into(), + border_variant: rgba(0x3c3836ff).into(), + border_focused: rgba(0x3c3836ff).into(), + border_disabled: rgba(0x3c3836ff).into(), + border_selected: rgba(0x3c3836ff).into(), + border_transparent: rgba(0x3c3836ff).into(), + elevated_surface_background: rgba(0x18191bff).into(), + surface_background: rgba(0x18191bff).into(), + background: rgba(0x32302fff).into(), + element_background: rgba(0x44858780).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xebdbb2ff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x32302fff).into(), + tab_active_background: rgba(0x504945ff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x32302fff).into(), + terminal_ansi_bright_black: rgba(0x928374ff).into(), + terminal_ansi_bright_red: rgba(0xfb4833ff).into(), + terminal_ansi_bright_green: rgba(0xb8bb25ff).into(), + terminal_ansi_bright_yellow: rgba(0xfabd2eff).into(), + terminal_ansi_bright_blue: rgba(0x83a598ff).into(), + terminal_ansi_bright_magenta: rgba(0xd3869bff).into(), + terminal_ansi_bright_cyan: rgba(0x8ec07cff).into(), + terminal_ansi_bright_white: rgba(0xebdbb2ff).into(), + terminal_ansi_black: rgba(0x3c3836ff).into(), + terminal_ansi_red: rgba(0xcc241cff).into(), + terminal_ansi_green: rgba(0x989719ff).into(), + terminal_ansi_yellow: rgba(0xd79920ff).into(), + terminal_ansi_blue: rgba(0x448587ff).into(), + terminal_ansi_magenta: rgba(0xb16185ff).into(), + terminal_ansi_cyan: rgba(0x679d6aff).into(), + terminal_ansi_white: rgba(0xa89984ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "7bbc0a0b-5b57-4731-bfae-02b4ff7ee821".into(), + name: "Gruvbox Light Hard".into(), + appearance: Appearance::Light, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0xebdbb2ff).into(), + border_variant: rgba(0xebdbb2ff).into(), + border_focused: rgba(0xebdbb2ff).into(), + border_disabled: rgba(0xebdbb2ff).into(), + border_selected: rgba(0xebdbb2ff).into(), + border_transparent: rgba(0xebdbb2ff).into(), + elevated_surface_background: rgba(0xf9f9fbff).into(), + surface_background: rgba(0xf9f9fbff).into(), + background: rgba(0xf9f5d7ff).into(), + element_background: rgba(0x44858780).into(), + element_hover: rgba(0xe8e8ecff).into(), + element_active: rgba(0xe0e1e6ff).into(), + element_selected: rgba(0xe0e1e6ff).into(), + element_disabled: rgba(0x0000320f).into(), + element_placeholder: rgba(0x60646cff).into(), + element_drop_target: rgba(0x008bff0b).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0xe8e8ecff).into(), + ghost_element_active: rgba(0xe0e1e6ff).into(), + ghost_element_selected: rgba(0xe0e1e6ff).into(), + ghost_element_disabled: rgba(0x0000320f).into(), + text: rgba(0x3c3836ff).into(), + text_muted: rgba(0x60646cff).into(), + text_placeholder: rgba(0x80838dff).into(), + text_disabled: rgba(0x8b8d98ff).into(), + text_accent: rgba(0x0c73ceff).into(), + icon: rgba(0x60646cff).into(), + icon_muted: rgba(0x80838dff).into(), + icon_disabled: rgba(0x8b8d98ff).into(), + icon_placeholder: rgba(0x80838dff).into(), + icon_accent: rgba(0x0c73ceff).into(), + status_bar_background: rgba(0xf9f9fbff).into(), + title_bar_background: rgba(0xf9f9fbff).into(), + toolbar_background: rgba(0xfcfcfdff).into(), + tab_bar_background: rgba(0xf9f9fbff).into(), + tab_inactive_background: rgba(0xf9f5d7ff).into(), + tab_active_background: rgba(0xf2e5bcff).into(), + editor_background: rgba(0xfcfcfdff).into(), + editor_subheader_background: rgba(0xf9f9fbff).into(), + editor_active_line: rgba(0x0000320f).into(), + terminal_background: rgba(0xf9f5d7ff).into(), + terminal_ansi_bright_black: rgba(0x928374ff).into(), + terminal_ansi_bright_red: rgba(0x9d0006ff).into(), + terminal_ansi_bright_green: rgba(0x79740eff).into(), + terminal_ansi_bright_yellow: rgba(0xb57613ff).into(), + terminal_ansi_bright_blue: rgba(0x066578ff).into(), + terminal_ansi_bright_magenta: rgba(0x8f3e71ff).into(), + terminal_ansi_bright_cyan: rgba(0x427b58ff).into(), + terminal_ansi_bright_white: rgba(0x3c3836ff).into(), + terminal_ansi_black: rgba(0xebdbb2ff).into(), + terminal_ansi_red: rgba(0xcc241cff).into(), + terminal_ansi_green: rgba(0x989719ff).into(), + terminal_ansi_yellow: rgba(0xd79920ff).into(), + terminal_ansi_blue: rgba(0x448587ff).into(), + terminal_ansi_magenta: rgba(0xb16185ff).into(), + terminal_ansi_cyan: rgba(0x679d6aff).into(), + terminal_ansi_white: rgba(0x7c6f64ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "3319ee0f-2d7f-4efc-84ae-132b30126bb1".into(), + name: "Gruvbox Light Medium".into(), + appearance: Appearance::Light, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0xebdbb2ff).into(), + border_variant: rgba(0xebdbb2ff).into(), + border_focused: rgba(0xebdbb2ff).into(), + border_disabled: rgba(0xebdbb2ff).into(), + border_selected: rgba(0xebdbb2ff).into(), + border_transparent: rgba(0xebdbb2ff).into(), + elevated_surface_background: rgba(0xf9f9fbff).into(), + surface_background: rgba(0xf9f9fbff).into(), + background: rgba(0xfbf1c7ff).into(), + element_background: rgba(0x44858780).into(), + element_hover: rgba(0xe8e8ecff).into(), + element_active: rgba(0xe0e1e6ff).into(), + element_selected: rgba(0xe0e1e6ff).into(), + element_disabled: rgba(0x0000320f).into(), + element_placeholder: rgba(0x60646cff).into(), + element_drop_target: rgba(0x008bff0b).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0xe8e8ecff).into(), + ghost_element_active: rgba(0xe0e1e6ff).into(), + ghost_element_selected: rgba(0xe0e1e6ff).into(), + ghost_element_disabled: rgba(0x0000320f).into(), + text: rgba(0x3c3836ff).into(), + text_muted: rgba(0x60646cff).into(), + text_placeholder: rgba(0x80838dff).into(), + text_disabled: rgba(0x8b8d98ff).into(), + text_accent: rgba(0x0c73ceff).into(), + icon: rgba(0x60646cff).into(), + icon_muted: rgba(0x80838dff).into(), + icon_disabled: rgba(0x8b8d98ff).into(), + icon_placeholder: rgba(0x80838dff).into(), + icon_accent: rgba(0x0c73ceff).into(), + status_bar_background: rgba(0xf9f9fbff).into(), + title_bar_background: rgba(0xf9f9fbff).into(), + toolbar_background: rgba(0xfcfcfdff).into(), + tab_bar_background: rgba(0xf9f9fbff).into(), + tab_inactive_background: rgba(0xfbf1c7ff).into(), + tab_active_background: rgba(0xebdbb2ff).into(), + editor_background: rgba(0xfcfcfdff).into(), + editor_subheader_background: rgba(0xf9f9fbff).into(), + editor_active_line: rgba(0x0000320f).into(), + terminal_background: rgba(0xfbf1c7ff).into(), + terminal_ansi_bright_black: rgba(0x928374ff).into(), + terminal_ansi_bright_red: rgba(0x9d0006ff).into(), + terminal_ansi_bright_green: rgba(0x79740eff).into(), + terminal_ansi_bright_yellow: rgba(0xb57613ff).into(), + terminal_ansi_bright_blue: rgba(0x066578ff).into(), + terminal_ansi_bright_magenta: rgba(0x8f3e71ff).into(), + terminal_ansi_bright_cyan: rgba(0x427b58ff).into(), + terminal_ansi_bright_white: rgba(0x3c3836ff).into(), + terminal_ansi_black: rgba(0xebdbb2ff).into(), + terminal_ansi_red: rgba(0xcc241cff).into(), + terminal_ansi_green: rgba(0x989719ff).into(), + terminal_ansi_yellow: rgba(0xd79920ff).into(), + terminal_ansi_blue: rgba(0x448587ff).into(), + terminal_ansi_magenta: rgba(0xb16185ff).into(), + terminal_ansi_cyan: rgba(0x679d6aff).into(), + terminal_ansi_white: rgba(0x7c6f64ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "d455f416-a0a5-4ef6-a808-64aafeb7aaae".into(), + name: "Gruvbox Light Soft".into(), + appearance: Appearance::Light, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0xebdbb2ff).into(), + border_variant: rgba(0xebdbb2ff).into(), + border_focused: rgba(0xebdbb2ff).into(), + border_disabled: rgba(0xebdbb2ff).into(), + border_selected: rgba(0xebdbb2ff).into(), + border_transparent: rgba(0xebdbb2ff).into(), + elevated_surface_background: rgba(0xf9f9fbff).into(), + surface_background: rgba(0xf9f9fbff).into(), + background: rgba(0xf2e5bcff).into(), + element_background: rgba(0x44858780).into(), + element_hover: rgba(0xe8e8ecff).into(), + element_active: rgba(0xe0e1e6ff).into(), + element_selected: rgba(0xe0e1e6ff).into(), + element_disabled: rgba(0x0000320f).into(), + element_placeholder: rgba(0x60646cff).into(), + element_drop_target: rgba(0x008bff0b).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0xe8e8ecff).into(), + ghost_element_active: rgba(0xe0e1e6ff).into(), + ghost_element_selected: rgba(0xe0e1e6ff).into(), + ghost_element_disabled: rgba(0x0000320f).into(), + text: rgba(0x3c3836ff).into(), + text_muted: rgba(0x60646cff).into(), + text_placeholder: rgba(0x80838dff).into(), + text_disabled: rgba(0x8b8d98ff).into(), + text_accent: rgba(0x0c73ceff).into(), + icon: rgba(0x60646cff).into(), + icon_muted: rgba(0x80838dff).into(), + icon_disabled: rgba(0x8b8d98ff).into(), + icon_placeholder: rgba(0x80838dff).into(), + icon_accent: rgba(0x0c73ceff).into(), + status_bar_background: rgba(0xf9f9fbff).into(), + title_bar_background: rgba(0xf9f9fbff).into(), + toolbar_background: rgba(0xfcfcfdff).into(), + tab_bar_background: rgba(0xf9f9fbff).into(), + tab_inactive_background: rgba(0xf2e5bcff).into(), + tab_active_background: rgba(0xd5c4a1ff).into(), + editor_background: rgba(0xfcfcfdff).into(), + editor_subheader_background: rgba(0xf9f9fbff).into(), + editor_active_line: rgba(0x0000320f).into(), + terminal_background: rgba(0xf2e5bcff).into(), + terminal_ansi_bright_black: rgba(0x928374ff).into(), + terminal_ansi_bright_red: rgba(0x9d0006ff).into(), + terminal_ansi_bright_green: rgba(0x79740eff).into(), + terminal_ansi_bright_yellow: rgba(0xb57613ff).into(), + terminal_ansi_bright_blue: rgba(0x066578ff).into(), + terminal_ansi_bright_magenta: rgba(0x8f3e71ff).into(), + terminal_ansi_bright_cyan: rgba(0x427b58ff).into(), + terminal_ansi_bright_white: rgba(0x3c3836ff).into(), + terminal_ansi_black: rgba(0xebdbb2ff).into(), + terminal_ansi_red: rgba(0xcc241cff).into(), + terminal_ansi_green: rgba(0x989719ff).into(), + terminal_ansi_yellow: rgba(0xd79920ff).into(), + terminal_ansi_blue: rgba(0x448587ff).into(), + terminal_ansi_magenta: rgba(0xb16185ff).into(), + terminal_ansi_cyan: rgba(0x679d6aff).into(), + terminal_ansi_white: rgba(0x7c6f64ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ], + scales: default_color_scales(), + } } - } - \ No newline at end of file diff --git a/crates/theme2/src/themes/mod.rs b/crates/theme2/src/themes/mod.rs index 41071e8655..bb60ec8294 100644 --- a/crates/theme2/src/themes/mod.rs +++ b/crates/theme2/src/themes/mod.rs @@ -1,23 +1,19 @@ - - mod andromeda; +mod andromeda; +mod ayu; mod dracula; +mod gruvbox; mod nord; mod notctis; -mod ayu; -mod gruvbox; - pub use andromeda::*; +pub use andromeda::*; +pub use ayu::*; pub use dracula::*; +pub use gruvbox::*; pub use nord::*; pub use notctis::*; -pub use ayu::*; -pub use gruvbox::*; - - use crate::ThemeFamily; +use crate::ThemeFamily; - pub(crate) fn all_imported_themes() -> Vec { - vec![andromeda(), dracula(), nord(), notctis(), ayu(), gruvbox()] - } - - \ No newline at end of file +pub(crate) fn all_imported_themes() -> Vec { + vec![andromeda(), dracula(), nord(), notctis(), ayu(), gruvbox()] +} diff --git a/crates/theme2/src/themes/nord.rs b/crates/theme2/src/themes/nord.rs index 25d2e6e6cf..f5db8a9be6 100644 --- a/crates/theme2/src/themes/nord.rs +++ b/crates/theme2/src/themes/nord.rs @@ -1,18 +1,173 @@ +use gpui::rgba; - use gpui::rgba; +use crate::{ + default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, + SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, +}; - use crate::{ - default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, - SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, - }; - - pub fn nord() -> ThemeFamily { - ThemeFamily { - id: "63407887-c052-4dd4-b781-e6194ddcbead".into(), - name: "Nord".into(), - author: "Sven Greb (svengreb)".into(), - themes: vec![ThemeVariant { id: "27d48816-e82b-4285-a615-7a970d51b4a0".into(), name: "Nord".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x3b4252ff).into(), border_variant: rgba(0x3b4252ff).into(), border_focused: rgba(0x3b4252ff).into(), border_disabled: rgba(0x3b4252ff).into(), border_selected: rgba(0x3b4252ff).into(), border_transparent: rgba(0x3b4252ff).into(), elevated_surface_background: rgba(0x2e3440ff).into(), surface_background: rgba(0x2e3440ff).into(), background: rgba(0x2e3440ff).into(), element_background: rgba(0x88bfd0ee).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xd8dee9ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x2e3440ff).into(), tab_active_background: rgba(0x3b4252ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x2e3440ff).into(), terminal_ansi_bright_black: rgba(0x4c566aff).into(), terminal_ansi_bright_red: rgba(0xbf616aff).into(), terminal_ansi_bright_green: rgba(0xa3be8cff).into(), terminal_ansi_bright_yellow: rgba(0xebcb8bff).into(), terminal_ansi_bright_blue: rgba(0x81a1c1ff).into(), terminal_ansi_bright_magenta: rgba(0xb48eacff).into(), terminal_ansi_bright_cyan: rgba(0x8fbcbbff).into(), terminal_ansi_bright_white: rgba(0xeceff4ff).into(), terminal_ansi_black: rgba(0x3b4252ff).into(), terminal_ansi_red: rgba(0xbf616aff).into(), terminal_ansi_green: rgba(0xa3be8cff).into(), terminal_ansi_yellow: rgba(0xebcb8bff).into(), terminal_ansi_blue: rgba(0x81a1c1ff).into(), terminal_ansi_magenta: rgba(0xb48eacff).into(), terminal_ansi_cyan: rgba(0x88bfd0ff).into(), terminal_ansi_white: rgba(0xe5e9f0ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }], - scales: default_color_scales(), +pub fn nord() -> ThemeFamily { + ThemeFamily { + id: "63407887-c052-4dd4-b781-e6194ddcbead".into(), + name: "Nord".into(), + author: "Sven Greb (svengreb)".into(), + themes: vec![ThemeVariant { + id: "27d48816-e82b-4285-a615-7a970d51b4a0".into(), + name: "Nord".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x3b4252ff).into(), + border_variant: rgba(0x3b4252ff).into(), + border_focused: rgba(0x3b4252ff).into(), + border_disabled: rgba(0x3b4252ff).into(), + border_selected: rgba(0x3b4252ff).into(), + border_transparent: rgba(0x3b4252ff).into(), + elevated_surface_background: rgba(0x2e3440ff).into(), + surface_background: rgba(0x2e3440ff).into(), + background: rgba(0x2e3440ff).into(), + element_background: rgba(0x88bfd0ee).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xd8dee9ff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x2e3440ff).into(), + tab_active_background: rgba(0x3b4252ff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x2e3440ff).into(), + terminal_ansi_bright_black: rgba(0x4c566aff).into(), + terminal_ansi_bright_red: rgba(0xbf616aff).into(), + terminal_ansi_bright_green: rgba(0xa3be8cff).into(), + terminal_ansi_bright_yellow: rgba(0xebcb8bff).into(), + terminal_ansi_bright_blue: rgba(0x81a1c1ff).into(), + terminal_ansi_bright_magenta: rgba(0xb48eacff).into(), + terminal_ansi_bright_cyan: rgba(0x8fbcbbff).into(), + terminal_ansi_bright_white: rgba(0xeceff4ff).into(), + terminal_ansi_black: rgba(0x3b4252ff).into(), + terminal_ansi_red: rgba(0xbf616aff).into(), + terminal_ansi_green: rgba(0xa3be8cff).into(), + terminal_ansi_yellow: rgba(0xebcb8bff).into(), + terminal_ansi_blue: rgba(0x81a1c1ff).into(), + terminal_ansi_magenta: rgba(0xb48eacff).into(), + terminal_ansi_cyan: rgba(0x88bfd0ff).into(), + terminal_ansi_white: rgba(0xe5e9f0ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }], + scales: default_color_scales(), + } } - } - \ No newline at end of file diff --git a/crates/theme2/src/themes/notctis.rs b/crates/theme2/src/themes/notctis.rs index 2f228a9b6f..7f68cf1da4 100644 --- a/crates/theme2/src/themes/notctis.rs +++ b/crates/theme2/src/themes/notctis.rs @@ -1,18 +1,1755 @@ +use gpui::rgba; - use gpui::rgba; +use crate::{ + default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, + SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, +}; - use crate::{ - default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, - SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, - }; - - pub fn notctis() -> ThemeFamily { - ThemeFamily { - id: "7cd79bb0-ffd7-48b5-b104-a6c171161a1b".into(), - name: "Notctis".into(), - author: "Liviu Schera (liviuschera)".into(), - themes: vec![ThemeVariant { id: "66251405-0342-4f10-849c-b81fe33009aa".into(), name: "Noctis Azureus".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x1579b6ff).into(), border_variant: rgba(0x1579b6ff).into(), border_focused: rgba(0x1579b6ff).into(), border_disabled: rgba(0x1579b6ff).into(), border_selected: rgba(0x1579b6ff).into(), border_transparent: rgba(0x1579b6ff).into(), elevated_surface_background: rgba(0x051b28ff).into(), surface_background: rgba(0x051b28ff).into(), background: rgba(0x07263aff).into(), element_background: rgba(0x007e99ff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xbecfdaff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x08324eff).into(), tab_active_background: rgba(0x07263aff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x051b28ff).into(), terminal_ansi_bright_black: rgba(0x475e6cff).into(), terminal_ansi_bright_red: rgba(0xe97749ff).into(), terminal_ansi_bright_green: rgba(0x5febb1ff).into(), terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), terminal_ansi_bright_white: rgba(0xbecfdaff).into(), terminal_ansi_black: rgba(0x28343dff).into(), terminal_ansi_red: rgba(0xe66432ff).into(), terminal_ansi_green: rgba(0x49e9a6ff).into(), terminal_ansi_yellow: rgba(0xe4b781ff).into(), terminal_ansi_blue: rgba(0x49ace9ff).into(), terminal_ansi_magenta: rgba(0xdf759aff).into(), terminal_ansi_cyan: rgba(0x49d5e9ff).into(), terminal_ansi_white: rgba(0xaec3d0ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "3717c8d5-deb9-4551-ac9b-12cf37c5af11".into(), name: "Noctis Bordo".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x997582ff).into(), border_variant: rgba(0x997582ff).into(), border_focused: rgba(0x997582ff).into(), border_disabled: rgba(0x997582ff).into(), border_selected: rgba(0x997582ff).into(), border_transparent: rgba(0x997582ff).into(), elevated_surface_background: rgba(0x272022ff).into(), surface_background: rgba(0x272022ff).into(), background: rgba(0x322a2dff).into(), element_background: rgba(0x007e99ff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xcbbec2ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x413036ff).into(), tab_active_background: rgba(0x322a2dff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x272022ff).into(), terminal_ansi_bright_black: rgba(0x69545bff).into(), terminal_ansi_bright_red: rgba(0xe97749ff).into(), terminal_ansi_bright_green: rgba(0x5febb1ff).into(), terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), terminal_ansi_bright_white: rgba(0xcbbec2ff).into(), terminal_ansi_black: rgba(0x47393eff).into(), terminal_ansi_red: rgba(0xe66432ff).into(), terminal_ansi_green: rgba(0x49e9a6ff).into(), terminal_ansi_yellow: rgba(0xe4b781ff).into(), terminal_ansi_blue: rgba(0x49ace9ff).into(), terminal_ansi_magenta: rgba(0xdf759aff).into(), terminal_ansi_cyan: rgba(0x49d5e9ff).into(), terminal_ansi_white: rgba(0xb9acb0ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "9143cedc-71a4-4005-9b4d-ed23c4ac83fc".into(), name: "Noctus Hibernus".into(), appearance: Appearance::Light, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x00c6e0ff).into(), border_variant: rgba(0x00c6e0ff).into(), border_focused: rgba(0x00c6e0ff).into(), border_disabled: rgba(0x00c6e0ff).into(), border_selected: rgba(0x00c6e0ff).into(), border_transparent: rgba(0x00c6e0ff).into(), elevated_surface_background: rgba(0xe1eeefff).into(), surface_background: rgba(0xe1eeefff).into(), background: rgba(0xf4f6f6ff).into(), element_background: rgba(0x089099ff).into(), element_hover: rgba(0xe8e8ecff).into(), element_active: rgba(0xe0e1e6ff).into(), element_selected: rgba(0xe0e1e6ff).into(), element_disabled: rgba(0x0000320f).into(), element_placeholder: rgba(0x60646cff).into(), element_drop_target: rgba(0x008bff0b).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0xe8e8ecff).into(), ghost_element_active: rgba(0xe0e1e6ff).into(), ghost_element_selected: rgba(0xe0e1e6ff).into(), ghost_element_disabled: rgba(0x0000320f).into(), text: rgba(0x005661ff).into(), text_muted: rgba(0x60646cff).into(), text_placeholder: rgba(0x80838dff).into(), text_disabled: rgba(0x8b8d98ff).into(), text_accent: rgba(0x0c73ceff).into(), icon: rgba(0x60646cff).into(), icon_muted: rgba(0x80838dff).into(), icon_disabled: rgba(0x8b8d98ff).into(), icon_placeholder: rgba(0x80838dff).into(), icon_accent: rgba(0x0c73ceff).into(), status_bar_background: rgba(0xf9f9fbff).into(), title_bar_background: rgba(0xf9f9fbff).into(), toolbar_background: rgba(0xfcfcfdff).into(), tab_bar_background: rgba(0xf9f9fbff).into(), tab_inactive_background: rgba(0xcaedf2ff).into(), tab_active_background: rgba(0xf4f6f6ff).into(), editor_background: rgba(0xfcfcfdff).into(), editor_subheader_background: rgba(0xf9f9fbff).into(), editor_active_line: rgba(0x0000320f).into(), terminal_background: rgba(0xe1eeefff).into(), terminal_ansi_bright_black: rgba(0x004d57ff).into(), terminal_ansi_bright_red: rgba(0xff3f00ff).into(), terminal_ansi_bright_green: rgba(0x00d17aff).into(), terminal_ansi_bright_yellow: rgba(0xff8c00ff).into(), terminal_ansi_bright_blue: rgba(0x0ea3ffff).into(), terminal_ansi_bright_magenta: rgba(0xff6b9eff).into(), terminal_ansi_bright_cyan: rgba(0x00cae6ff).into(), terminal_ansi_bright_white: rgba(0xbbc3c4ff).into(), terminal_ansi_black: rgba(0x003b41ff).into(), terminal_ansi_red: rgba(0xe34d1bff).into(), terminal_ansi_green: rgba(0x00b368ff).into(), terminal_ansi_yellow: rgba(0xf49724ff).into(), terminal_ansi_blue: rgba(0x0094f0ff).into(), terminal_ansi_magenta: rgba(0xff5792ff).into(), terminal_ansi_cyan: rgba(0x00bdd6ff).into(), terminal_ansi_white: rgba(0x8ca6a6ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "82f6e468-a5de-4e3a-ba13-4ced22ac819b".into(), name: "Noctis Lilac".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0xaea4f4ff).into(), border_variant: rgba(0xaea4f4ff).into(), border_focused: rgba(0xaea4f4ff).into(), border_disabled: rgba(0xaea4f4ff).into(), border_selected: rgba(0xaea4f4ff).into(), border_transparent: rgba(0xaea4f4ff).into(), elevated_surface_background: rgba(0xe9e7f3ff).into(), surface_background: rgba(0xe9e7f3ff).into(), background: rgba(0xf2f1f8ff).into(), element_background: rgba(0x8d7ffeff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0x0c006bff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0xe2dff6ff).into(), tab_active_background: rgba(0xf2f1f8ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0xe9e7f3ff).into(), terminal_ansi_bright_black: rgba(0x0f0080ff).into(), terminal_ansi_bright_red: rgba(0xff3f00ff).into(), terminal_ansi_bright_green: rgba(0x00d17aff).into(), terminal_ansi_bright_yellow: rgba(0xff8c00ff).into(), terminal_ansi_bright_blue: rgba(0x0ea3ffff).into(), terminal_ansi_bright_magenta: rgba(0xff6b9eff).into(), terminal_ansi_bright_cyan: rgba(0x00cae6ff).into(), terminal_ansi_bright_white: rgba(0xbbc3c4ff).into(), terminal_ansi_black: rgba(0x0c006bff).into(), terminal_ansi_red: rgba(0xe34d1bff).into(), terminal_ansi_green: rgba(0x00b368ff).into(), terminal_ansi_yellow: rgba(0xf49724ff).into(), terminal_ansi_blue: rgba(0x0094f0ff).into(), terminal_ansi_magenta: rgba(0xff5792ff).into(), terminal_ansi_cyan: rgba(0x00bdd6ff).into(), terminal_ansi_white: rgba(0x8ca6a6ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "655fe060-e62c-4582-a9d2-87ab9f8f21b7".into(), name: "Noctis Lux".into(), appearance: Appearance::Light, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x00c6e0ff).into(), border_variant: rgba(0x00c6e0ff).into(), border_focused: rgba(0x00c6e0ff).into(), border_disabled: rgba(0x00c6e0ff).into(), border_selected: rgba(0x00c6e0ff).into(), border_transparent: rgba(0x00c6e0ff).into(), elevated_surface_background: rgba(0xf6eddaff).into(), surface_background: rgba(0xf6eddaff).into(), background: rgba(0xfef8ecff).into(), element_background: rgba(0x089099ff).into(), element_hover: rgba(0xe8e8ecff).into(), element_active: rgba(0xe0e1e6ff).into(), element_selected: rgba(0xe0e1e6ff).into(), element_disabled: rgba(0x0000320f).into(), element_placeholder: rgba(0x60646cff).into(), element_drop_target: rgba(0x008bff0b).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0xe8e8ecff).into(), ghost_element_active: rgba(0xe0e1e6ff).into(), ghost_element_selected: rgba(0xe0e1e6ff).into(), ghost_element_disabled: rgba(0x0000320f).into(), text: rgba(0x005661ff).into(), text_muted: rgba(0x60646cff).into(), text_placeholder: rgba(0x80838dff).into(), text_disabled: rgba(0x8b8d98ff).into(), text_accent: rgba(0x0c73ceff).into(), icon: rgba(0x60646cff).into(), icon_muted: rgba(0x80838dff).into(), icon_disabled: rgba(0x8b8d98ff).into(), icon_placeholder: rgba(0x80838dff).into(), icon_accent: rgba(0x0c73ceff).into(), status_bar_background: rgba(0xf9f9fbff).into(), title_bar_background: rgba(0xf9f9fbff).into(), toolbar_background: rgba(0xfcfcfdff).into(), tab_bar_background: rgba(0xf9f9fbff).into(), tab_inactive_background: rgba(0xf0e9d6ff).into(), tab_active_background: rgba(0xfef8ecff).into(), editor_background: rgba(0xfcfcfdff).into(), editor_subheader_background: rgba(0xf9f9fbff).into(), editor_active_line: rgba(0x0000320f).into(), terminal_background: rgba(0xf6eddaff).into(), terminal_ansi_bright_black: rgba(0x004d57ff).into(), terminal_ansi_bright_red: rgba(0xff3f00ff).into(), terminal_ansi_bright_green: rgba(0x00d17aff).into(), terminal_ansi_bright_yellow: rgba(0xff8c00ff).into(), terminal_ansi_bright_blue: rgba(0x0ea3ffff).into(), terminal_ansi_bright_magenta: rgba(0xff6b9eff).into(), terminal_ansi_bright_cyan: rgba(0x00cae6ff).into(), terminal_ansi_bright_white: rgba(0xbbc3c4ff).into(), terminal_ansi_black: rgba(0x003b41ff).into(), terminal_ansi_red: rgba(0xe34d1bff).into(), terminal_ansi_green: rgba(0x00b368ff).into(), terminal_ansi_yellow: rgba(0xf49724ff).into(), terminal_ansi_blue: rgba(0x0094f0ff).into(), terminal_ansi_magenta: rgba(0xff5792ff).into(), terminal_ansi_cyan: rgba(0x00bdd6ff).into(), terminal_ansi_white: rgba(0x8ca6a6ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "b8540210-1aff-4d72-bb65-040b2c575e35".into(), name: "Noctis Minimus".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x496c83ff).into(), border_variant: rgba(0x496c83ff).into(), border_focused: rgba(0x496c83ff).into(), border_disabled: rgba(0x496c83ff).into(), border_selected: rgba(0x496c83ff).into(), border_transparent: rgba(0x496c83ff).into(), elevated_surface_background: rgba(0x0e1920ff).into(), surface_background: rgba(0x0e1920ff).into(), background: rgba(0x1b2932ff).into(), element_background: rgba(0x2e616bff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xc5cdd3ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x202d37ff).into(), tab_active_background: rgba(0x1b2932ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x0e1920ff).into(), terminal_ansi_bright_black: rgba(0x425866ff).into(), terminal_ansi_bright_red: rgba(0xca8468ff).into(), terminal_ansi_bright_green: rgba(0x84c8abff).into(), terminal_ansi_bright_yellow: rgba(0xd1aa7bff).into(), terminal_ansi_bright_blue: rgba(0x68a4caff).into(), terminal_ansi_bright_magenta: rgba(0xc88da2ff).into(), terminal_ansi_bright_cyan: rgba(0x84bfc8ff).into(), terminal_ansi_bright_white: rgba(0xc5d1d3ff).into(), terminal_ansi_black: rgba(0x182935ff).into(), terminal_ansi_red: rgba(0xc08872ff).into(), terminal_ansi_green: rgba(0x72c09fff).into(), terminal_ansi_yellow: rgba(0xc8a984ff).into(), terminal_ansi_blue: rgba(0x6095b7ff).into(), terminal_ansi_magenta: rgba(0xc28097ff).into(), terminal_ansi_cyan: rgba(0x72b7c0ff).into(), terminal_ansi_white: rgba(0xc5cdd3ff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "70577f71-a351-43c6-9b64-7a5f95ef0ad2".into(), name: "Noctis".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x0d6571ff).into(), border_variant: rgba(0x0d6571ff).into(), border_focused: rgba(0x0d6571ff).into(), border_disabled: rgba(0x0d6571ff).into(), border_selected: rgba(0x0d6571ff).into(), border_transparent: rgba(0x0d6571ff).into(), elevated_surface_background: rgba(0x03181aff).into(), surface_background: rgba(0x03181aff).into(), background: rgba(0x052428ff).into(), element_background: rgba(0x089099ff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xb1c9ccff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x052e32ff).into(), tab_active_background: rgba(0x052428ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x03181aff).into(), terminal_ansi_bright_black: rgba(0x47686cff).into(), terminal_ansi_bright_red: rgba(0xe97749ff).into(), terminal_ansi_bright_green: rgba(0x5febb1ff).into(), terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), terminal_ansi_bright_white: rgba(0xc1d4d7ff).into(), terminal_ansi_black: rgba(0x324a4dff).into(), terminal_ansi_red: rgba(0xe66432ff).into(), terminal_ansi_green: rgba(0x49e9a6ff).into(), terminal_ansi_yellow: rgba(0xe4b781ff).into(), terminal_ansi_blue: rgba(0x49ace9ff).into(), terminal_ansi_magenta: rgba(0xdf759aff).into(), terminal_ansi_cyan: rgba(0x49d5e9ff).into(), terminal_ansi_white: rgba(0xb1c9ccff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "abcd25b0-8740-430f-a7e0-0b193ef1c271".into(), name: "Noctis Obscuro".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x0d6571ff).into(), border_variant: rgba(0x0d6571ff).into(), border_focused: rgba(0x0d6571ff).into(), border_disabled: rgba(0x0d6571ff).into(), border_selected: rgba(0x0d6571ff).into(), border_transparent: rgba(0x0d6571ff).into(), elevated_surface_background: rgba(0x020c0eff).into(), surface_background: rgba(0x020c0eff).into(), background: rgba(0x031316ff).into(), element_background: rgba(0x089099ff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xb1c9ccff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x052e32ff).into(), tab_active_background: rgba(0x031316ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x020c0eff).into(), terminal_ansi_bright_black: rgba(0x47686cff).into(), terminal_ansi_bright_red: rgba(0xe97749ff).into(), terminal_ansi_bright_green: rgba(0x5febb1ff).into(), terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), terminal_ansi_bright_white: rgba(0xc1d4d7ff).into(), terminal_ansi_black: rgba(0x324a4dff).into(), terminal_ansi_red: rgba(0xe66432ff).into(), terminal_ansi_green: rgba(0x49e9a6ff).into(), terminal_ansi_yellow: rgba(0xe4b781ff).into(), terminal_ansi_blue: rgba(0x49ace9ff).into(), terminal_ansi_magenta: rgba(0xdf759aff).into(), terminal_ansi_cyan: rgba(0x49d5e9ff).into(), terminal_ansi_white: rgba(0xb1c9ccff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "86b6a2b4-69b9-40d5-b078-3feb93d0786d".into(), name: "Noctis Sereno".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x0d6571ff).into(), border_variant: rgba(0x0d6571ff).into(), border_focused: rgba(0x0d6571ff).into(), border_disabled: rgba(0x0d6571ff).into(), border_selected: rgba(0x0d6571ff).into(), border_transparent: rgba(0x0d6571ff).into(), elevated_surface_background: rgba(0x020c0eff).into(), surface_background: rgba(0x020c0eff).into(), background: rgba(0x031316ff).into(), element_background: rgba(0x089099ff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xb1c9ccff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x052e32ff).into(), tab_active_background: rgba(0x031316ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x020c0eff).into(), terminal_ansi_bright_black: rgba(0x47686cff).into(), terminal_ansi_bright_red: rgba(0xe97749ff).into(), terminal_ansi_bright_green: rgba(0x5febb1ff).into(), terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), terminal_ansi_bright_white: rgba(0xc1d4d7ff).into(), terminal_ansi_black: rgba(0x324a4dff).into(), terminal_ansi_red: rgba(0xe66432ff).into(), terminal_ansi_green: rgba(0x49e9a6ff).into(), terminal_ansi_yellow: rgba(0xe4b781ff).into(), terminal_ansi_blue: rgba(0x49ace9ff).into(), terminal_ansi_magenta: rgba(0xdf759aff).into(), terminal_ansi_cyan: rgba(0x49d5e9ff).into(), terminal_ansi_white: rgba(0xb1c9ccff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "aa50141c-1c64-4773-980f-e4bf062f893f".into(), name: "Noctis Uva".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x6d66a7ff).into(), border_variant: rgba(0x6d66a7ff).into(), border_focused: rgba(0x6d66a7ff).into(), border_disabled: rgba(0x6d66a7ff).into(), border_selected: rgba(0x6d66a7ff).into(), border_transparent: rgba(0x6d66a7ff).into(), elevated_surface_background: rgba(0x1f1d30ff).into(), surface_background: rgba(0x1f1d30ff).into(), background: rgba(0x292640ff).into(), element_background: rgba(0x007e99ff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xc5c2d6ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x2f2c49ff).into(), tab_active_background: rgba(0x292640ff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x1f1d30ff).into(), terminal_ansi_bright_black: rgba(0x504e65ff).into(), terminal_ansi_bright_red: rgba(0xe97749ff).into(), terminal_ansi_bright_green: rgba(0x5febb1ff).into(), terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), terminal_ansi_bright_white: rgba(0xc5c2d6ff).into(), terminal_ansi_black: rgba(0x302f3dff).into(), terminal_ansi_red: rgba(0xe66432ff).into(), terminal_ansi_green: rgba(0x49e9a6ff).into(), terminal_ansi_yellow: rgba(0xe4b781ff).into(), terminal_ansi_blue: rgba(0x49ace9ff).into(), terminal_ansi_magenta: rgba(0xdf759aff).into(), terminal_ansi_cyan: rgba(0x49d5e9ff).into(), terminal_ansi_white: rgba(0xb6b3ccff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }, ThemeVariant { id: "ce4ba03d-5a76-4e6c-9b45-f7c2c2fa3b41".into(), name: "Noctis Viola".into(), appearance: Appearance::Dark, styles: ThemeStyles { system: SystemColors { transparent: rgba(0x00000000).into(), mac_os_traffic_light_red: rgba(0xec6b5fff).into(), mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), mac_os_traffic_light_green: rgba(0x61c454ff).into() }, colors: ThemeColors { border: rgba(0x8666a7ff).into(), border_variant: rgba(0x8666a7ff).into(), border_focused: rgba(0x8666a7ff).into(), border_disabled: rgba(0x8666a7ff).into(), border_selected: rgba(0x8666a7ff).into(), border_transparent: rgba(0x8666a7ff).into(), elevated_surface_background: rgba(0x291d35ff).into(), surface_background: rgba(0x291d35ff).into(), background: rgba(0x30243dff).into(), element_background: rgba(0x007e99ff).into(), element_hover: rgba(0x272a2dff).into(), element_active: rgba(0x2e3135ff).into(), element_selected: rgba(0x2e3135ff).into(), element_disabled: rgba(0xddeaf814).into(), element_placeholder: rgba(0xb0b4baff).into(), element_drop_target: rgba(0x1166fb18).into(), ghost_element_background: rgba(0x00000000).into(), ghost_element_hover: rgba(0x272a2dff).into(), ghost_element_active: rgba(0x2e3135ff).into(), ghost_element_selected: rgba(0x2e3135ff).into(), ghost_element_disabled: rgba(0xddeaf814).into(), text: rgba(0xccbfd9ff).into(), text_muted: rgba(0xb0b4baff).into(), text_placeholder: rgba(0x767a83ff).into(), text_disabled: rgba(0x696e77ff).into(), text_accent: rgba(0x6fb8ffff).into(), icon: rgba(0xb0b4baff).into(), icon_muted: rgba(0x767a83ff).into(), icon_disabled: rgba(0x696e77ff).into(), icon_placeholder: rgba(0x767a83ff).into(), icon_accent: rgba(0x6fb8ffff).into(), status_bar_background: rgba(0x18191bff).into(), title_bar_background: rgba(0x18191bff).into(), toolbar_background: rgba(0x111113ff).into(), tab_bar_background: rgba(0x18191bff).into(), tab_inactive_background: rgba(0x3d2e4dff).into(), tab_active_background: rgba(0x30243dff).into(), editor_background: rgba(0x111113ff).into(), editor_subheader_background: rgba(0x18191bff).into(), editor_active_line: rgba(0xddeaf814).into(), terminal_background: rgba(0x291d35ff).into(), terminal_ansi_bright_black: rgba(0x594e65ff).into(), terminal_ansi_bright_red: rgba(0xe97749ff).into(), terminal_ansi_bright_green: rgba(0x5febb1ff).into(), terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), terminal_ansi_bright_white: rgba(0xccbfd9ff).into(), terminal_ansi_black: rgba(0x362f3dff).into(), terminal_ansi_red: rgba(0xe66432ff).into(), terminal_ansi_green: rgba(0x49e9a6ff).into(), terminal_ansi_yellow: rgba(0xe4b781ff).into(), terminal_ansi_blue: rgba(0x49ace9ff).into(), terminal_ansi_magenta: rgba(0xdf759aff).into(), terminal_ansi_cyan: rgba(0x49d5e9ff).into(), terminal_ansi_white: rgba(0xbfafcfff).into() }, status: StatusColors { conflict: rgba(0xff9592ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), error: rgba(0xff9592ff).into(), hidden: rgba(0xb0b4baff).into(), ignored: rgba(0xb0b4baff).into(), info: rgba(0x6fb8ffff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into(), success: rgba(0x70cf82ff).into(), warning: rgba(0xf5e147ff).into() }, git: GitStatusColors { conflict: rgba(0xffa057ff).into(), created: rgba(0x70cf82ff).into(), deleted: rgba(0xff9592ff).into(), ignored: rgba(0xb0b4baff).into(), modified: rgba(0xf5e147ff).into(), renamed: rgba(0x6fb8ffff).into() }, player: PlayerColors(vec![PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }, PlayerColor { cursor: rgba(0x00000000).into(), background: rgba(0x00000000).into(), selection: rgba(0x00000000).into() }]), syntax: SyntaxTheme { highlights: vec![("attribute".into(), rgba(0x4ccce6ff).into()), ("boolean".into(), rgba(0xff977dff).into()), ("comment".into(), rgba(0xb0b4baff).into()), ("comment.doc".into(), rgba(0xe0dffeff).into()), ("constant".into(), rgba(0x8c323aff).into()), ("constructor".into(), rgba(0x8c323aff).into()), ("embedded".into(), rgba(0x8c323aff).into()), ("emphasis".into(), rgba(0x8c323aff).into()), ("emphasis.strong".into(), rgba(0x8c323aff).into()), ("enum".into(), rgba(0x8c323aff).into()), ("function".into(), rgba(0x8c323aff).into()), ("hint".into(), rgba(0x8c323aff).into()), ("keyword".into(), rgba(0xffa057ff).into()), ("label".into(), rgba(0x8c323aff).into()), ("link_text".into(), rgba(0x8c323aff).into()), ("link_uri".into(), rgba(0x8c323aff).into()), ("number".into(), rgba(0x8c323aff).into()), ("operator".into(), rgba(0x8c323aff).into()), ("predictive".into(), rgba(0x8c323aff).into()), ("preproc".into(), rgba(0x8c323aff).into()), ("primary".into(), rgba(0x8c323aff).into()), ("property".into(), rgba(0x8c323aff).into()), ("punctuation".into(), rgba(0xb0b4baff).into()), ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), ("punctuation.special".into(), rgba(0x8c323aff).into()), ("string".into(), rgba(0x1ed8a3ff).into()), ("string.escape".into(), rgba(0x8c323aff).into()), ("string.regex".into(), rgba(0xff977dff).into()), ("string.special".into(), rgba(0x8c323aff).into()), ("string.special.symbol".into(), rgba(0x8c323aff).into()), ("tag".into(), rgba(0x8c323aff).into()), ("text.literal".into(), rgba(0x8c323aff).into()), ("title".into(), rgba(0x8c323aff).into()), ("type".into(), rgba(0x8c323aff).into()), ("variable".into(), rgba(0x8c323aff).into()), ("variable.special".into(), rgba(0x8c323aff).into()), ("variant".into(), rgba(0x8c323aff).into())] } } }], - scales: default_color_scales(), +pub fn notctis() -> ThemeFamily { + ThemeFamily { + id: "7cd79bb0-ffd7-48b5-b104-a6c171161a1b".into(), + name: "Notctis".into(), + author: "Liviu Schera (liviuschera)".into(), + themes: vec![ + ThemeVariant { + id: "66251405-0342-4f10-849c-b81fe33009aa".into(), + name: "Noctis Azureus".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x1579b6ff).into(), + border_variant: rgba(0x1579b6ff).into(), + border_focused: rgba(0x1579b6ff).into(), + border_disabled: rgba(0x1579b6ff).into(), + border_selected: rgba(0x1579b6ff).into(), + border_transparent: rgba(0x1579b6ff).into(), + elevated_surface_background: rgba(0x051b28ff).into(), + surface_background: rgba(0x051b28ff).into(), + background: rgba(0x07263aff).into(), + element_background: rgba(0x007e99ff).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xbecfdaff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x08324eff).into(), + tab_active_background: rgba(0x07263aff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x051b28ff).into(), + terminal_ansi_bright_black: rgba(0x475e6cff).into(), + terminal_ansi_bright_red: rgba(0xe97749ff).into(), + terminal_ansi_bright_green: rgba(0x5febb1ff).into(), + terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), + terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), + terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), + terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), + terminal_ansi_bright_white: rgba(0xbecfdaff).into(), + terminal_ansi_black: rgba(0x28343dff).into(), + terminal_ansi_red: rgba(0xe66432ff).into(), + terminal_ansi_green: rgba(0x49e9a6ff).into(), + terminal_ansi_yellow: rgba(0xe4b781ff).into(), + terminal_ansi_blue: rgba(0x49ace9ff).into(), + terminal_ansi_magenta: rgba(0xdf759aff).into(), + terminal_ansi_cyan: rgba(0x49d5e9ff).into(), + terminal_ansi_white: rgba(0xaec3d0ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "3717c8d5-deb9-4551-ac9b-12cf37c5af11".into(), + name: "Noctis Bordo".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x997582ff).into(), + border_variant: rgba(0x997582ff).into(), + border_focused: rgba(0x997582ff).into(), + border_disabled: rgba(0x997582ff).into(), + border_selected: rgba(0x997582ff).into(), + border_transparent: rgba(0x997582ff).into(), + elevated_surface_background: rgba(0x272022ff).into(), + surface_background: rgba(0x272022ff).into(), + background: rgba(0x322a2dff).into(), + element_background: rgba(0x007e99ff).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xcbbec2ff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x413036ff).into(), + tab_active_background: rgba(0x322a2dff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x272022ff).into(), + terminal_ansi_bright_black: rgba(0x69545bff).into(), + terminal_ansi_bright_red: rgba(0xe97749ff).into(), + terminal_ansi_bright_green: rgba(0x5febb1ff).into(), + terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), + terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), + terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), + terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), + terminal_ansi_bright_white: rgba(0xcbbec2ff).into(), + terminal_ansi_black: rgba(0x47393eff).into(), + terminal_ansi_red: rgba(0xe66432ff).into(), + terminal_ansi_green: rgba(0x49e9a6ff).into(), + terminal_ansi_yellow: rgba(0xe4b781ff).into(), + terminal_ansi_blue: rgba(0x49ace9ff).into(), + terminal_ansi_magenta: rgba(0xdf759aff).into(), + terminal_ansi_cyan: rgba(0x49d5e9ff).into(), + terminal_ansi_white: rgba(0xb9acb0ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "9143cedc-71a4-4005-9b4d-ed23c4ac83fc".into(), + name: "Noctus Hibernus".into(), + appearance: Appearance::Light, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x00c6e0ff).into(), + border_variant: rgba(0x00c6e0ff).into(), + border_focused: rgba(0x00c6e0ff).into(), + border_disabled: rgba(0x00c6e0ff).into(), + border_selected: rgba(0x00c6e0ff).into(), + border_transparent: rgba(0x00c6e0ff).into(), + elevated_surface_background: rgba(0xe1eeefff).into(), + surface_background: rgba(0xe1eeefff).into(), + background: rgba(0xf4f6f6ff).into(), + element_background: rgba(0x089099ff).into(), + element_hover: rgba(0xe8e8ecff).into(), + element_active: rgba(0xe0e1e6ff).into(), + element_selected: rgba(0xe0e1e6ff).into(), + element_disabled: rgba(0x0000320f).into(), + element_placeholder: rgba(0x60646cff).into(), + element_drop_target: rgba(0x008bff0b).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0xe8e8ecff).into(), + ghost_element_active: rgba(0xe0e1e6ff).into(), + ghost_element_selected: rgba(0xe0e1e6ff).into(), + ghost_element_disabled: rgba(0x0000320f).into(), + text: rgba(0x005661ff).into(), + text_muted: rgba(0x60646cff).into(), + text_placeholder: rgba(0x80838dff).into(), + text_disabled: rgba(0x8b8d98ff).into(), + text_accent: rgba(0x0c73ceff).into(), + icon: rgba(0x60646cff).into(), + icon_muted: rgba(0x80838dff).into(), + icon_disabled: rgba(0x8b8d98ff).into(), + icon_placeholder: rgba(0x80838dff).into(), + icon_accent: rgba(0x0c73ceff).into(), + status_bar_background: rgba(0xf9f9fbff).into(), + title_bar_background: rgba(0xf9f9fbff).into(), + toolbar_background: rgba(0xfcfcfdff).into(), + tab_bar_background: rgba(0xf9f9fbff).into(), + tab_inactive_background: rgba(0xcaedf2ff).into(), + tab_active_background: rgba(0xf4f6f6ff).into(), + editor_background: rgba(0xfcfcfdff).into(), + editor_subheader_background: rgba(0xf9f9fbff).into(), + editor_active_line: rgba(0x0000320f).into(), + terminal_background: rgba(0xe1eeefff).into(), + terminal_ansi_bright_black: rgba(0x004d57ff).into(), + terminal_ansi_bright_red: rgba(0xff3f00ff).into(), + terminal_ansi_bright_green: rgba(0x00d17aff).into(), + terminal_ansi_bright_yellow: rgba(0xff8c00ff).into(), + terminal_ansi_bright_blue: rgba(0x0ea3ffff).into(), + terminal_ansi_bright_magenta: rgba(0xff6b9eff).into(), + terminal_ansi_bright_cyan: rgba(0x00cae6ff).into(), + terminal_ansi_bright_white: rgba(0xbbc3c4ff).into(), + terminal_ansi_black: rgba(0x003b41ff).into(), + terminal_ansi_red: rgba(0xe34d1bff).into(), + terminal_ansi_green: rgba(0x00b368ff).into(), + terminal_ansi_yellow: rgba(0xf49724ff).into(), + terminal_ansi_blue: rgba(0x0094f0ff).into(), + terminal_ansi_magenta: rgba(0xff5792ff).into(), + terminal_ansi_cyan: rgba(0x00bdd6ff).into(), + terminal_ansi_white: rgba(0x8ca6a6ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "82f6e468-a5de-4e3a-ba13-4ced22ac819b".into(), + name: "Noctis Lilac".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0xaea4f4ff).into(), + border_variant: rgba(0xaea4f4ff).into(), + border_focused: rgba(0xaea4f4ff).into(), + border_disabled: rgba(0xaea4f4ff).into(), + border_selected: rgba(0xaea4f4ff).into(), + border_transparent: rgba(0xaea4f4ff).into(), + elevated_surface_background: rgba(0xe9e7f3ff).into(), + surface_background: rgba(0xe9e7f3ff).into(), + background: rgba(0xf2f1f8ff).into(), + element_background: rgba(0x8d7ffeff).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0x0c006bff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0xe2dff6ff).into(), + tab_active_background: rgba(0xf2f1f8ff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0xe9e7f3ff).into(), + terminal_ansi_bright_black: rgba(0x0f0080ff).into(), + terminal_ansi_bright_red: rgba(0xff3f00ff).into(), + terminal_ansi_bright_green: rgba(0x00d17aff).into(), + terminal_ansi_bright_yellow: rgba(0xff8c00ff).into(), + terminal_ansi_bright_blue: rgba(0x0ea3ffff).into(), + terminal_ansi_bright_magenta: rgba(0xff6b9eff).into(), + terminal_ansi_bright_cyan: rgba(0x00cae6ff).into(), + terminal_ansi_bright_white: rgba(0xbbc3c4ff).into(), + terminal_ansi_black: rgba(0x0c006bff).into(), + terminal_ansi_red: rgba(0xe34d1bff).into(), + terminal_ansi_green: rgba(0x00b368ff).into(), + terminal_ansi_yellow: rgba(0xf49724ff).into(), + terminal_ansi_blue: rgba(0x0094f0ff).into(), + terminal_ansi_magenta: rgba(0xff5792ff).into(), + terminal_ansi_cyan: rgba(0x00bdd6ff).into(), + terminal_ansi_white: rgba(0x8ca6a6ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "655fe060-e62c-4582-a9d2-87ab9f8f21b7".into(), + name: "Noctis Lux".into(), + appearance: Appearance::Light, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x00c6e0ff).into(), + border_variant: rgba(0x00c6e0ff).into(), + border_focused: rgba(0x00c6e0ff).into(), + border_disabled: rgba(0x00c6e0ff).into(), + border_selected: rgba(0x00c6e0ff).into(), + border_transparent: rgba(0x00c6e0ff).into(), + elevated_surface_background: rgba(0xf6eddaff).into(), + surface_background: rgba(0xf6eddaff).into(), + background: rgba(0xfef8ecff).into(), + element_background: rgba(0x089099ff).into(), + element_hover: rgba(0xe8e8ecff).into(), + element_active: rgba(0xe0e1e6ff).into(), + element_selected: rgba(0xe0e1e6ff).into(), + element_disabled: rgba(0x0000320f).into(), + element_placeholder: rgba(0x60646cff).into(), + element_drop_target: rgba(0x008bff0b).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0xe8e8ecff).into(), + ghost_element_active: rgba(0xe0e1e6ff).into(), + ghost_element_selected: rgba(0xe0e1e6ff).into(), + ghost_element_disabled: rgba(0x0000320f).into(), + text: rgba(0x005661ff).into(), + text_muted: rgba(0x60646cff).into(), + text_placeholder: rgba(0x80838dff).into(), + text_disabled: rgba(0x8b8d98ff).into(), + text_accent: rgba(0x0c73ceff).into(), + icon: rgba(0x60646cff).into(), + icon_muted: rgba(0x80838dff).into(), + icon_disabled: rgba(0x8b8d98ff).into(), + icon_placeholder: rgba(0x80838dff).into(), + icon_accent: rgba(0x0c73ceff).into(), + status_bar_background: rgba(0xf9f9fbff).into(), + title_bar_background: rgba(0xf9f9fbff).into(), + toolbar_background: rgba(0xfcfcfdff).into(), + tab_bar_background: rgba(0xf9f9fbff).into(), + tab_inactive_background: rgba(0xf0e9d6ff).into(), + tab_active_background: rgba(0xfef8ecff).into(), + editor_background: rgba(0xfcfcfdff).into(), + editor_subheader_background: rgba(0xf9f9fbff).into(), + editor_active_line: rgba(0x0000320f).into(), + terminal_background: rgba(0xf6eddaff).into(), + terminal_ansi_bright_black: rgba(0x004d57ff).into(), + terminal_ansi_bright_red: rgba(0xff3f00ff).into(), + terminal_ansi_bright_green: rgba(0x00d17aff).into(), + terminal_ansi_bright_yellow: rgba(0xff8c00ff).into(), + terminal_ansi_bright_blue: rgba(0x0ea3ffff).into(), + terminal_ansi_bright_magenta: rgba(0xff6b9eff).into(), + terminal_ansi_bright_cyan: rgba(0x00cae6ff).into(), + terminal_ansi_bright_white: rgba(0xbbc3c4ff).into(), + terminal_ansi_black: rgba(0x003b41ff).into(), + terminal_ansi_red: rgba(0xe34d1bff).into(), + terminal_ansi_green: rgba(0x00b368ff).into(), + terminal_ansi_yellow: rgba(0xf49724ff).into(), + terminal_ansi_blue: rgba(0x0094f0ff).into(), + terminal_ansi_magenta: rgba(0xff5792ff).into(), + terminal_ansi_cyan: rgba(0x00bdd6ff).into(), + terminal_ansi_white: rgba(0x8ca6a6ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "b8540210-1aff-4d72-bb65-040b2c575e35".into(), + name: "Noctis Minimus".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x496c83ff).into(), + border_variant: rgba(0x496c83ff).into(), + border_focused: rgba(0x496c83ff).into(), + border_disabled: rgba(0x496c83ff).into(), + border_selected: rgba(0x496c83ff).into(), + border_transparent: rgba(0x496c83ff).into(), + elevated_surface_background: rgba(0x0e1920ff).into(), + surface_background: rgba(0x0e1920ff).into(), + background: rgba(0x1b2932ff).into(), + element_background: rgba(0x2e616bff).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xc5cdd3ff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x202d37ff).into(), + tab_active_background: rgba(0x1b2932ff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x0e1920ff).into(), + terminal_ansi_bright_black: rgba(0x425866ff).into(), + terminal_ansi_bright_red: rgba(0xca8468ff).into(), + terminal_ansi_bright_green: rgba(0x84c8abff).into(), + terminal_ansi_bright_yellow: rgba(0xd1aa7bff).into(), + terminal_ansi_bright_blue: rgba(0x68a4caff).into(), + terminal_ansi_bright_magenta: rgba(0xc88da2ff).into(), + terminal_ansi_bright_cyan: rgba(0x84bfc8ff).into(), + terminal_ansi_bright_white: rgba(0xc5d1d3ff).into(), + terminal_ansi_black: rgba(0x182935ff).into(), + terminal_ansi_red: rgba(0xc08872ff).into(), + terminal_ansi_green: rgba(0x72c09fff).into(), + terminal_ansi_yellow: rgba(0xc8a984ff).into(), + terminal_ansi_blue: rgba(0x6095b7ff).into(), + terminal_ansi_magenta: rgba(0xc28097ff).into(), + terminal_ansi_cyan: rgba(0x72b7c0ff).into(), + terminal_ansi_white: rgba(0xc5cdd3ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "70577f71-a351-43c6-9b64-7a5f95ef0ad2".into(), + name: "Noctis".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x0d6571ff).into(), + border_variant: rgba(0x0d6571ff).into(), + border_focused: rgba(0x0d6571ff).into(), + border_disabled: rgba(0x0d6571ff).into(), + border_selected: rgba(0x0d6571ff).into(), + border_transparent: rgba(0x0d6571ff).into(), + elevated_surface_background: rgba(0x03181aff).into(), + surface_background: rgba(0x03181aff).into(), + background: rgba(0x052428ff).into(), + element_background: rgba(0x089099ff).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xb1c9ccff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x052e32ff).into(), + tab_active_background: rgba(0x052428ff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x03181aff).into(), + terminal_ansi_bright_black: rgba(0x47686cff).into(), + terminal_ansi_bright_red: rgba(0xe97749ff).into(), + terminal_ansi_bright_green: rgba(0x5febb1ff).into(), + terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), + terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), + terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), + terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), + terminal_ansi_bright_white: rgba(0xc1d4d7ff).into(), + terminal_ansi_black: rgba(0x324a4dff).into(), + terminal_ansi_red: rgba(0xe66432ff).into(), + terminal_ansi_green: rgba(0x49e9a6ff).into(), + terminal_ansi_yellow: rgba(0xe4b781ff).into(), + terminal_ansi_blue: rgba(0x49ace9ff).into(), + terminal_ansi_magenta: rgba(0xdf759aff).into(), + terminal_ansi_cyan: rgba(0x49d5e9ff).into(), + terminal_ansi_white: rgba(0xb1c9ccff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "abcd25b0-8740-430f-a7e0-0b193ef1c271".into(), + name: "Noctis Obscuro".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x0d6571ff).into(), + border_variant: rgba(0x0d6571ff).into(), + border_focused: rgba(0x0d6571ff).into(), + border_disabled: rgba(0x0d6571ff).into(), + border_selected: rgba(0x0d6571ff).into(), + border_transparent: rgba(0x0d6571ff).into(), + elevated_surface_background: rgba(0x020c0eff).into(), + surface_background: rgba(0x020c0eff).into(), + background: rgba(0x031316ff).into(), + element_background: rgba(0x089099ff).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xb1c9ccff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x052e32ff).into(), + tab_active_background: rgba(0x031316ff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x020c0eff).into(), + terminal_ansi_bright_black: rgba(0x47686cff).into(), + terminal_ansi_bright_red: rgba(0xe97749ff).into(), + terminal_ansi_bright_green: rgba(0x5febb1ff).into(), + terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), + terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), + terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), + terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), + terminal_ansi_bright_white: rgba(0xc1d4d7ff).into(), + terminal_ansi_black: rgba(0x324a4dff).into(), + terminal_ansi_red: rgba(0xe66432ff).into(), + terminal_ansi_green: rgba(0x49e9a6ff).into(), + terminal_ansi_yellow: rgba(0xe4b781ff).into(), + terminal_ansi_blue: rgba(0x49ace9ff).into(), + terminal_ansi_magenta: rgba(0xdf759aff).into(), + terminal_ansi_cyan: rgba(0x49d5e9ff).into(), + terminal_ansi_white: rgba(0xb1c9ccff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "86b6a2b4-69b9-40d5-b078-3feb93d0786d".into(), + name: "Noctis Sereno".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x0d6571ff).into(), + border_variant: rgba(0x0d6571ff).into(), + border_focused: rgba(0x0d6571ff).into(), + border_disabled: rgba(0x0d6571ff).into(), + border_selected: rgba(0x0d6571ff).into(), + border_transparent: rgba(0x0d6571ff).into(), + elevated_surface_background: rgba(0x020c0eff).into(), + surface_background: rgba(0x020c0eff).into(), + background: rgba(0x031316ff).into(), + element_background: rgba(0x089099ff).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xb1c9ccff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x052e32ff).into(), + tab_active_background: rgba(0x031316ff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x020c0eff).into(), + terminal_ansi_bright_black: rgba(0x47686cff).into(), + terminal_ansi_bright_red: rgba(0xe97749ff).into(), + terminal_ansi_bright_green: rgba(0x5febb1ff).into(), + terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), + terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), + terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), + terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), + terminal_ansi_bright_white: rgba(0xc1d4d7ff).into(), + terminal_ansi_black: rgba(0x324a4dff).into(), + terminal_ansi_red: rgba(0xe66432ff).into(), + terminal_ansi_green: rgba(0x49e9a6ff).into(), + terminal_ansi_yellow: rgba(0xe4b781ff).into(), + terminal_ansi_blue: rgba(0x49ace9ff).into(), + terminal_ansi_magenta: rgba(0xdf759aff).into(), + terminal_ansi_cyan: rgba(0x49d5e9ff).into(), + terminal_ansi_white: rgba(0xb1c9ccff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "aa50141c-1c64-4773-980f-e4bf062f893f".into(), + name: "Noctis Uva".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x6d66a7ff).into(), + border_variant: rgba(0x6d66a7ff).into(), + border_focused: rgba(0x6d66a7ff).into(), + border_disabled: rgba(0x6d66a7ff).into(), + border_selected: rgba(0x6d66a7ff).into(), + border_transparent: rgba(0x6d66a7ff).into(), + elevated_surface_background: rgba(0x1f1d30ff).into(), + surface_background: rgba(0x1f1d30ff).into(), + background: rgba(0x292640ff).into(), + element_background: rgba(0x007e99ff).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xc5c2d6ff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x2f2c49ff).into(), + tab_active_background: rgba(0x292640ff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x1f1d30ff).into(), + terminal_ansi_bright_black: rgba(0x504e65ff).into(), + terminal_ansi_bright_red: rgba(0xe97749ff).into(), + terminal_ansi_bright_green: rgba(0x5febb1ff).into(), + terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), + terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), + terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), + terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), + terminal_ansi_bright_white: rgba(0xc5c2d6ff).into(), + terminal_ansi_black: rgba(0x302f3dff).into(), + terminal_ansi_red: rgba(0xe66432ff).into(), + terminal_ansi_green: rgba(0x49e9a6ff).into(), + terminal_ansi_yellow: rgba(0xe4b781ff).into(), + terminal_ansi_blue: rgba(0x49ace9ff).into(), + terminal_ansi_magenta: rgba(0xdf759aff).into(), + terminal_ansi_cyan: rgba(0x49d5e9ff).into(), + terminal_ansi_white: rgba(0xb6b3ccff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "ce4ba03d-5a76-4e6c-9b45-f7c2c2fa3b41".into(), + name: "Noctis Viola".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x8666a7ff).into(), + border_variant: rgba(0x8666a7ff).into(), + border_focused: rgba(0x8666a7ff).into(), + border_disabled: rgba(0x8666a7ff).into(), + border_selected: rgba(0x8666a7ff).into(), + border_transparent: rgba(0x8666a7ff).into(), + elevated_surface_background: rgba(0x291d35ff).into(), + surface_background: rgba(0x291d35ff).into(), + background: rgba(0x30243dff).into(), + element_background: rgba(0x007e99ff).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xccbfd9ff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x3d2e4dff).into(), + tab_active_background: rgba(0x30243dff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x291d35ff).into(), + terminal_ansi_bright_black: rgba(0x594e65ff).into(), + terminal_ansi_bright_red: rgba(0xe97749ff).into(), + terminal_ansi_bright_green: rgba(0x5febb1ff).into(), + terminal_ansi_bright_yellow: rgba(0xe69532ff).into(), + terminal_ansi_bright_blue: rgba(0x5fb5ebff).into(), + terminal_ansi_bright_magenta: rgba(0xe697b2ff).into(), + terminal_ansi_bright_cyan: rgba(0x5fdaebff).into(), + terminal_ansi_bright_white: rgba(0xccbfd9ff).into(), + terminal_ansi_black: rgba(0x362f3dff).into(), + terminal_ansi_red: rgba(0xe66432ff).into(), + terminal_ansi_green: rgba(0x49e9a6ff).into(), + terminal_ansi_yellow: rgba(0xe4b781ff).into(), + terminal_ansi_blue: rgba(0x49ace9ff).into(), + terminal_ansi_magenta: rgba(0xdf759aff).into(), + terminal_ansi_cyan: rgba(0x49d5e9ff).into(), + terminal_ansi_white: rgba(0xbfafcfff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ], + scales: default_color_scales(), + } } - } - \ No newline at end of file From 3cb72610b3182cdb8f66853a742e3ee801776397 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Mon, 6 Nov 2023 15:24:36 -0500 Subject: [PATCH 74/76] Finish up initial themes --- assets/themes/src/vscode/night-owl/LICENSE | 21 + .../themes/src/vscode/night-owl/family.json | 16 + .../src/vscode/night-owl/night-owl-light.json | 1723 ++++++++++++++++ .../src/vscode/night-owl/night-owl.json | 1832 +++++++++++++++++ assets/themes/src/vscode/palenight/LICENSE | 7 + .../themes/src/vscode/palenight/family.json | 21 + .../palenight/palenight-mild-contrast.json | 1569 ++++++++++++++ .../vscode/palenight/palenight-operator.json | 1640 +++++++++++++++ .../src/vscode/palenight/palenight.json | 1569 ++++++++++++++ assets/themes/src/vscode/rose-pine/LICENSE | 21 + .../themes/src/vscode/rose-pine/family.json | 21 + .../src/vscode/rose-pine/rose-pine-dawn.json | 680 ++++++ .../src/vscode/rose-pine/rose-pine-moon.json | 680 ++++++ .../src/vscode/rose-pine/rose-pine.json | 680 ++++++ assets/themes/src/vscode/solarized/LICENSE | 19 + assets/themes/src/vscode/solarized/dark.json | 558 +++++ .../themes/src/vscode/solarized/family.json | 16 + assets/themes/src/vscode/solarized/light.json | 591 ++++++ assets/themes/src/vscode/synthwave-84/LICENSE | 21 + .../src/vscode/synthwave-84/family.json | 11 + .../src/vscode/synthwave-84/synthwave.json | 822 ++++++++ crates/theme2/src/themes/andromeda.rs | 6 +- crates/theme2/src/themes/ayu.rs | 8 +- crates/theme2/src/themes/dracula.rs | 4 +- crates/theme2/src/themes/gruvbox.rs | 14 +- crates/theme2/src/themes/mod.rs | 24 +- crates/theme2/src/themes/night_owl.rs | 333 +++ crates/theme2/src/themes/nord.rs | 4 +- crates/theme2/src/themes/notctis.rs | 24 +- crates/theme2/src/themes/palenight.rs | 491 +++++ crates/theme2/src/themes/rose_pine.rs | 491 +++++ crates/theme2/src/themes/solarized.rs | 333 +++ crates/theme2/src/themes/synthwave_84.rs | 173 ++ crates/theme_importer/src/main.rs | 25 +- 34 files changed, 14401 insertions(+), 47 deletions(-) create mode 100644 assets/themes/src/vscode/night-owl/LICENSE create mode 100644 assets/themes/src/vscode/night-owl/family.json create mode 100644 assets/themes/src/vscode/night-owl/night-owl-light.json create mode 100644 assets/themes/src/vscode/night-owl/night-owl.json create mode 100644 assets/themes/src/vscode/palenight/LICENSE create mode 100644 assets/themes/src/vscode/palenight/family.json create mode 100644 assets/themes/src/vscode/palenight/palenight-mild-contrast.json create mode 100644 assets/themes/src/vscode/palenight/palenight-operator.json create mode 100644 assets/themes/src/vscode/palenight/palenight.json create mode 100644 assets/themes/src/vscode/rose-pine/LICENSE create mode 100644 assets/themes/src/vscode/rose-pine/family.json create mode 100644 assets/themes/src/vscode/rose-pine/rose-pine-dawn.json create mode 100644 assets/themes/src/vscode/rose-pine/rose-pine-moon.json create mode 100644 assets/themes/src/vscode/rose-pine/rose-pine.json create mode 100644 assets/themes/src/vscode/solarized/LICENSE create mode 100644 assets/themes/src/vscode/solarized/dark.json create mode 100644 assets/themes/src/vscode/solarized/family.json create mode 100644 assets/themes/src/vscode/solarized/light.json create mode 100644 assets/themes/src/vscode/synthwave-84/LICENSE create mode 100644 assets/themes/src/vscode/synthwave-84/family.json create mode 100644 assets/themes/src/vscode/synthwave-84/synthwave.json create mode 100644 crates/theme2/src/themes/night_owl.rs create mode 100644 crates/theme2/src/themes/palenight.rs create mode 100644 crates/theme2/src/themes/rose_pine.rs create mode 100644 crates/theme2/src/themes/solarized.rs create mode 100644 crates/theme2/src/themes/synthwave_84.rs diff --git a/assets/themes/src/vscode/night-owl/LICENSE b/assets/themes/src/vscode/night-owl/LICENSE new file mode 100644 index 0000000000..e1de2ebbb6 --- /dev/null +++ b/assets/themes/src/vscode/night-owl/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Sarah Drasner + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/assets/themes/src/vscode/night-owl/family.json b/assets/themes/src/vscode/night-owl/family.json new file mode 100644 index 0000000000..81c6ca7534 --- /dev/null +++ b/assets/themes/src/vscode/night-owl/family.json @@ -0,0 +1,16 @@ +{ + "name": "Night Owl", + "author": "Sarah Drasner (sdras)", + "themes": [ + { + "name": "Night Owl", + "file_name": "night-owl.json", + "appearance": "dark" + }, + { + "name": "Night Owl Light", + "file_name": "night-owl-light.json", + "appearance": "light" + } + ] +} diff --git a/assets/themes/src/vscode/night-owl/night-owl-light.json b/assets/themes/src/vscode/night-owl/night-owl-light.json new file mode 100644 index 0000000000..81e0fc0092 --- /dev/null +++ b/assets/themes/src/vscode/night-owl/night-owl-light.json @@ -0,0 +1,1723 @@ +{ + "name": "Night Owl Light", + "type": "light", + "semanticHighlighting": false, + "colors": { + "foreground": "#403f53", + "focusBorder": "#93A1A1", + "errorForeground": "#403f53", + "selection.background": "#7a8181ad", + "descriptionForeground": "#403f53", + "widget.shadow": "#d9d9d9", + "titleBar.activeBackground": "#F0F0F0", + + "notifications.background": "#F0F0F0", + "notifications.foreground": "#403f53", + "notificationLink.foreground": "#994cc3", + "notifications.border": "#CCCCCC", + "notificationCenter.border": "#CCCCCC", + "notificationToast.border": "#CCCCCC", + "notificationCenterHeader.foreground": "#403f53", + "notificationCenterHeader.background": "#F0F0F0", + + "button.background": "#2AA298", + "button.foreground": "#F0F0F0", + + "dropdown.background": "#F0F0F0", + "dropdown.foreground": "#403f53", + "dropdown.border": "#d9d9d9", + + "input.background": "#F0F0F0", + "input.foreground": "#403f53", + "input.border": "#d9d9d9", + "input.placeholderForeground": "#93A1A1", + "inputOption.activeBorder": "#2AA298", + "inputValidation.infoBorder": "#D0D0D0", + "inputValidation.infoBackground": "#F0F0F0", + "inputValidation.warningBackground": "#daaa01", + "inputValidation.warningBorder": "#E0AF02", + "inputValidation.errorBackground": "#f76e6e", + "inputValidation.errorBorder": "#de3d3b", + + "badge.background": "#2AA298", + "badge.foreground": "#F0F0F0", + + "progressBar.background": "#2AA298", + + "list.activeSelectionBackground": "#d3e8f8", + "list.activeSelectionForeground": "#403f53", + "list.inactiveSelectionBackground": "#E0E7EA", + "list.inactiveSelectionForeground": "#403f53", + "list.focusBackground": "#d3e8f8", + "list.hoverBackground": "#d3e8f8", + "list.focusForeground": "#403f53", + "list.hoverForeground": "#403f53", + "list.highlightForeground": "#403f53", + "list.errorForeground": "#E64D49", + "list.warningForeground": "#daaa01", + + "activityBar.background": "#F0F0F0", + "activityBar.foreground": "#403f53", + "activityBar.dropBackground": "#D0D0D0", + "activityBarBadge.background": "#403f53", + "activityBarBadge.foreground": "#F0F0F0", + "activityBar.border": "#F0F0F0", + + "sideBar.background": "#F0F0F0", + "sideBar.foreground": "#403f53", + "sideBarTitle.foreground": "#403f53", + "sideBar.border": "#F0F0F0", + + "scrollbar.shadow": "#CCCCCC", + + "tab.border": "#F0F0F0", + "tab.activeBackground": "#F6F6F6", + "tab.activeForeground": "#403f53", + "tab.inactiveForeground": "#403f53", + "tab.inactiveBackground": "#F0F0F0", + "editorGroup.border": "#F0F0F0", + "editorGroup.background": "#F6F6F6", + "editorGroupHeader.tabsBackground": "#F0F0F0", + "editorGroupHeader.tabsBorder": "#F0F0F0", + "editorGroupHeader.noTabsBackground": "#F0F0F0", + "tab.activeModifiedBorder": "#2AA298", + "tab.inactiveModifiedBorder": "#93A1A1", + "tab.unfocusedActiveModifiedBorder": "#93A1A1", + "tab.unfocusedInactiveModifiedBorder": "#93A1A1", + + "editor.background": "#FBFBFB", + "editor.foreground": "#403f53", + "editorCursor.foreground": "#90A7B2", + "editorLineNumber.foreground": "#90A7B2", + "editorLineNumber.activeForeground": "#403f53", + "editor.selectionBackground": "#E0E0E0", + "editor.selectionHighlightBackground": "#339cec33", + "editor.wordHighlightBackground": "#339cec33", + "editor.wordHighlightStrongBackground": "#007dd659", + "editor.findMatchBackground": "#93A1A16c", + "editor.findMatchHighlightBackground": "#93a1a16c", + "editor.findRangeHighlightBackground": "#7497a633", + "editor.hoverHighlightBackground": "#339cec33", + "editor.lineHighlightBackground": "#F0F0F0", + "editor.rangeHighlightBackground": "#7497a633", + "editorWhitespace.foreground": "#d9d9d9", + "editorIndentGuide.background": "#d9d9d9", + "editorCodeLens.foreground": "#403f53", + "editorBracketMatch.background": "#d3e8f8", + "editorBracketMatch.border": "#2AA298", + "editorError.foreground": "#E64D49", + "editorError.border": "#FBFBFB", + "editorWarning.foreground": "#daaa01", + "editorWarning.border": "#daaa01", + "editorGutter.addedBackground": "#49d0c5", + "editorGutter.modifiedBackground": "#6fbef6", + "editorGutter.deletedBackground": "#f76e6e", + "editorRuler.foreground": "#d9d9d9", + "editorOverviewRuler.errorForeground": "#E64D49", + "editorOverviewRuler.warningForeground": "#daaa01", + + "editorWidget.background": "#F0F0F0", + "editorWidget.border": "#d9d9d9", + "editorSuggestWidget.background": "#F0F0F0", + "editorSuggestWidget.foreground": "#403f53", + "editorSuggestWidget.highlightForeground": "#403f53", + "editorSuggestWidget.selectedBackground": "#d3e8f8", + "editorSuggestWidget.border": "#d9d9d9", + "editorHoverWidget.background": "#F0F0F0", + "editorHoverWidget.border": "#d9d9d9", + "debugExceptionWidget.background": "#F0F0F0", + "debugExceptionWidget.border": "#d9d9d9", + "editorMarkerNavigation.background": "#D0D0D0", + "editorMarkerNavigationError.background": "#f76e6e", + "editorMarkerNavigationWarning.background": "#daaa01", + + "debugToolBar.background": "#F0F0F0", + + "pickerGroup.border": "#d9d9d9", + "pickerGroup.foreground": "#403f53", + + "extensionButton.prominentBackground": "#2AA298", + "extensionButton.prominentForeground": "#F0F0F0", + + "statusBar.background": "#F0F0F0", + "statusBar.border": "#F0F0F0", + "statusBar.debuggingBackground": "#F0F0F0", + "statusBar.debuggingForeground": "#403f53", + "statusBar.foreground": "#403f53", + "statusBar.noFolderBackground": "#F0F0F0", + "statusBar.noFolderForeground": "#403f53", + + "panel.background": "#F0F0F0", + "panel.border": "#d9d9d9", + + "peekView.border": "#d9d9d9", + "peekViewEditor.background": "#F6F6F6", + "peekViewEditorGutter.background": "#F6F6F6", + "peekViewEditor.matchHighlightBackground": "#49d0c5", + "peekViewResult.background": "#F0F0F0", + "peekViewResult.fileForeground": "#403f53", + "peekViewResult.lineForeground": "#403f53", + "peekViewResult.matchHighlightBackground": "#49d0c5", + "peekViewResult.selectionBackground": "#E0E7EA", + "peekViewResult.selectionForeground": "#403f53", + "peekViewTitle.background": "#F0F0F0", + "peekViewTitleLabel.foreground": "#403f53", + "peekViewTitleDescription.foreground": "#403f53", + + "terminal.ansiBrightBlack": "#403f53", + "terminal.ansiBlack": "#403f53", + "terminal.ansiBrightBlue": "#288ed7", + "terminal.ansiBlue": "#288ed7", + "terminal.ansiBrightCyan": "#2AA298", + "terminal.ansiCyan": "#2AA298", + "terminal.ansiBrightGreen": "#08916a", + "terminal.ansiGreen": "#08916a", + "terminal.ansiBrightMagenta": "#d6438a", + "terminal.ansiMagenta": "#d6438a", + "terminal.ansiBrightRed": "#de3d3b", + "terminal.ansiRed": "#de3d3b", + "terminal.ansiBrightWhite": "#F0F0F0", + "terminal.ansiWhite": "#F0F0F0", + "terminal.ansiBrightYellow": "#daaa01", + "terminal.ansiYellow": "#E0AF02", + "terminal.background": "#F6F6F6", + "terminal.foreground": "#403f53" + }, + "tokenColors": [ + { + "name": "Changed", + "scope": [ + "markup.changed", + "meta.diff.header.git", + "meta.diff.header.from-file", + "meta.diff.header.to-file" + ], + "settings": { + "foreground": "#a2bffc", + "fontStyle": "italic" + } + }, + { + "name": "Deleted", + "scope": "markup.deleted.diff", + "settings": { + "foreground": "#EF535090", + "fontStyle": "italic" + } + }, + { + "name": "Inserted", + "scope": "markup.inserted.diff", + "settings": { + "foreground": "#4876d6ff", + "fontStyle": "italic" + } + }, + { + "name": "Global settings", + "settings": { + "background": "#011627", + "foreground": "#403f53" + } + }, + { + "name": "Comment", + "scope": "comment", + "settings": { + "foreground": "#989fb1", + "fontStyle": "italic" + } + }, + { + "name": "String", + "scope": "string", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "String Quoted", + "scope": ["string.quoted", "variable.other.readwrite.js"], + "settings": { + "foreground": "#c96765" + } + }, + { + "name": "Support Constant Math", + "scope": "support.constant.math", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Number", + "scope": ["constant.numeric", "constant.character.numeric"], + "settings": { + "foreground": "#aa0982", + "fontStyle": "" + } + }, + { + "name": "Built-in constant", + "scope": [ + "constant.language", + "punctuation.definition.constant", + "variable.other.constant" + ], + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "User-defined constant", + "scope": ["constant.character", "constant.other"], + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Constant Character Escape", + "scope": "constant.character.escape", + "settings": { + "foreground": "#aa0982" + } + }, + { + "name": "RegExp String", + "scope": ["string.regexp", "string.regexp keyword.other"], + "settings": { + "foreground": "#5ca7e4" + } + }, + { + "name": "Comma in functions", + "scope": "meta.function punctuation.separator.comma", + "settings": { + "foreground": "#5f7e97" + } + }, + { + "name": "Variable", + "scope": "variable", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Keyword", + "scope": ["punctuation.accessor", "keyword"], + "settings": { + "foreground": "#994cc3", + "fontStyle": "italic" + } + }, + { + "name": "Storage", + "scope": [ + "storage", + "meta.var.expr", + "meta.class meta.method.declaration meta.var.expr storage.type.js", + "storage.type.property.js", + "storage.type.property.ts", + "storage.type.property.tsx" + ], + "settings": { + "foreground": "#994cc3", + "fontStyle": "italic" + } + }, + { + "name": "Storage type", + "scope": "storage.type", + "settings": { + "foreground": "#994cc3" + } + }, + { + "name": "Storage type", + "scope": "storage.type.function.arrow.js", + "settings": { + "fontStyle": "" + } + }, + { + "name": "Class name", + "scope": ["entity.name.class", "meta.class entity.name.type.class"], + "settings": { + "foreground": "#111111" + } + }, + { + "name": "Inherited class", + "scope": "entity.other.inherited-class", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Function name", + "scope": "entity.name.function", + "settings": { + "foreground": "#994cc3", + "fontStyle": "italic" + } + }, + { + "name": "Meta Tag", + "scope": ["punctuation.definition.tag", "meta.tag"], + "settings": { + "foreground": "#994cc3" + } + }, + { + "name": "HTML Tag names", + "scope": [ + "entity.name.tag", + "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": "#994cc3", + "fontStyle": "" + } + }, + { + "name": "Tag attribute", + "scope": "entity.other.attribute-name", + "settings": { + "fontStyle": "italic", + "foreground": "#4876d6" + } + }, + { + "name": "Entity Name Tag Custom", + "scope": "entity.name.tag.custom", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Library (function & constant)", + "scope": ["support.function", "support.constant"], + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Support Constant Property Value meta", + "scope": "support.constant.meta.property-value", + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "Library class/type", + "scope": ["support.type", "support.class"], + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Support Variable DOM", + "scope": "support.variable.dom", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Invalid", + "scope": "invalid", + "settings": { + "foreground": "#ff2c83" + } + }, + { + "name": "Invalid deprecated", + "scope": "invalid.deprecated", + "settings": { + "foreground": "#d3423e" + } + }, + { + "name": "Keyword Operator", + "scope": "keyword.operator", + "settings": { + "foreground": "#0c969b", + "fontStyle": "" + } + }, + { + "name": "Keyword Operator Relational", + "scope": "keyword.operator.relational", + "settings": { + "foreground": "#994cc3", + "fontStyle": "italic" + } + }, + { + "name": "Keyword Operator Assignment", + "scope": "keyword.operator.assignment", + "settings": { + "foreground": "#994cc3" + } + }, + { + "name": "Keyword Operator Arithmetic", + "scope": "keyword.operator.arithmetic", + "settings": { + "foreground": "#994cc3" + } + }, + { + "name": "Keyword Operator Bitwise", + "scope": "keyword.operator.bitwise", + "settings": { + "foreground": "#994cc3" + } + }, + { + "name": "Keyword Operator Increment", + "scope": "keyword.operator.increment", + "settings": { + "foreground": "#994cc3" + } + }, + { + "name": "Keyword Operator Ternary", + "scope": "keyword.operator.ternary", + "settings": { + "foreground": "#994cc3" + } + }, + { + "name": "Double-Slashed Comment", + "scope": "comment.line.double-slash", + "settings": { + "foreground": "#939dbb" + } + }, + { + "name": "Object", + "scope": "object", + "settings": { + "foreground": "#cdebf7" + } + }, + { + "name": "Null", + "scope": "constant.language.null", + "settings": { + "foreground": "#bc5454" + } + }, + { + "name": "Meta Brace", + "scope": "meta.brace", + "settings": { + "foreground": "#403f53" + } + }, + { + "name": "Meta Delimiter Period", + "scope": "meta.delimiter.period", + "settings": { + "foreground": "#994cc3", + "fontStyle": "italic" + } + }, + { + "name": "Punctuation Definition String", + "scope": "punctuation.definition.string", + "settings": { + "foreground": "#111111" + } + }, + { + "name": "Punctuation Definition String Markdown", + "scope": "punctuation.definition.string.begin.markdown", + "settings": { + "foreground": "#bc5454" + } + }, + { + "name": "Boolean", + "scope": "constant.language.boolean", + "settings": { + "foreground": "#bc5454" + } + }, + { + "name": "Object Comma", + "scope": "object.comma", + "settings": { + "foreground": "#ffffff" + } + }, + { + "name": "Variable Parameter Function", + "scope": "variable.parameter.function", + "settings": { + "foreground": "#0c969b", + "fontStyle": "" + } + }, + { + "name": "Support Type Property Name & entity name tags", + "scope": [ + "support.type.vendor.property-name", + "support.constant.vendor.property-value", + "support.type.property-name", + "meta.property-list entity.name.tag" + ], + "settings": { + "foreground": "#0c969b", + "fontStyle": "" + } + }, + { + "name": "Entity Name tag reference in stylesheets", + "scope": "meta.property-list entity.name.tag.reference", + "settings": { + "foreground": "#57eaf1" + } + }, + { + "name": "Constant Other Color RGB Value Punctuation Definition Constant", + "scope": "constant.other.color.rgb-value punctuation.definition.constant", + "settings": { + "foreground": "#aa0982" + } + }, + { + "name": "Constant Other Color", + "scope": "constant.other.color", + "settings": { + "foreground": "#aa0982" + } + }, + { + "name": "Keyword Other Unit", + "scope": "keyword.other.unit", + "settings": { + "foreground": "#aa0982" + } + }, + { + "name": "Meta Selector", + "scope": "meta.selector", + "settings": { + "foreground": "#994cc3", + "fontStyle": "italic" + } + }, + { + "name": "Entity Other Attribute Name Id", + "scope": "entity.other.attribute-name.id", + "settings": { + "foreground": "#aa0982" + } + }, + { + "name": "Meta Property Name", + "scope": "meta.property-name", + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "Doctypes", + "scope": ["entity.name.tag.doctype", "meta.tag.sgml.doctype"], + "settings": { + "foreground": "#994cc3", + "fontStyle": "italic" + } + }, + { + "name": "Punctuation Definition Parameters", + "scope": "punctuation.definition.parameters", + "settings": { + "foreground": "#111111" + } + }, + { + "name": "Keyword Control Operator", + "scope": "keyword.control.operator", + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "Keyword Operator Logical", + "scope": "keyword.operator.logical", + "settings": { + "foreground": "#994cc3", + "fontStyle": "" + } + }, + { + "name": "Variable Instances", + "scope": [ + "variable.instance", + "variable.other.instance", + "variable.readwrite.instance", + "variable.other.readwrite.instance", + "variable.other.property" + ], + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "Variable Property Other object property", + "scope": ["variable.other.object.property"], + "settings": { + "foreground": "#111111", + "fontStyle": "italic" + } + }, + { + "name": "Variable Property Other object", + "scope": ["variable.other.object.js"], + "settings": { + "fontStyle": "" + } + }, + { + "name": "Entity Name Function", + "scope": ["entity.name.function"], + "settings": { + "foreground": "#4876d6", + "fontStyle": "italic" + } + }, + { + "name": "Keyword Operator Comparison, imports, returns and Keyword Operator Ruby", + "scope": [ + "keyword.operator.comparison", + "keyword.control.flow.js", + "keyword.control.flow.ts", + "keyword.control.flow.tsx", + "keyword.control.ruby", + "keyword.control.module.ruby", + "keyword.control.class.ruby", + "keyword.control.def.ruby", + "keyword.control.loop.js", + "keyword.control.loop.ts", + "keyword.control.import.js", + "keyword.control.import.ts", + "keyword.control.import.tsx", + "keyword.control.from.js", + "keyword.control.from.ts", + "keyword.control.from.tsx", + "keyword.operator.instanceof.js", + "keyword.operator.expression.instanceof.ts", + "keyword.operator.expression.instanceof.tsx" + ], + "settings": { + "foreground": "#994cc3", + "fontStyle": "italic" + } + }, + { + "name": "Keyword Control Conditional", + "scope": [ + "keyword.control.conditional.js", + "keyword.control.conditional.ts", + "keyword.control.switch.js", + "keyword.control.switch.ts" + ], + "settings": { + "foreground": "#994cc3", + "fontStyle": "" + } + }, + { + "name": "Support Constant, `new` keyword, Special Method Keyword, `debugger`, other keywords", + "scope": [ + "support.constant", + "keyword.other.special-method", + "keyword.other.new", + "keyword.other.debugger", + "keyword.control" + ], + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "Support Function", + "scope": "support.function", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Invalid Broken", + "scope": "invalid.broken", + "settings": { + "foreground": "#aa0982" + } + }, + { + "name": "Invalid Unimplemented", + "scope": "invalid.unimplemented", + "settings": { + "foreground": "#8BD649" + } + }, + { + "name": "Invalid Illegal", + "scope": "invalid.illegal", + "settings": { + "foreground": "#c96765" + } + }, + { + "name": "Language Variable", + "scope": "variable.language", + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "Support Variable Property", + "scope": "support.variable.property", + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "Variable Function", + "scope": "variable.function", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Variable Interpolation", + "scope": "variable.interpolation", + "settings": { + "foreground": "#ec5f67" + } + }, + { + "name": "Meta Function Call", + "scope": "meta.function-call", + "settings": { + "foreground": "#4876d6" + } + }, + { + "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": "#403f53" + } + }, + { + "name": "More Punctuation Tweaks", + "scope": [ + "punctuation.definition.list.begin", + "punctuation.definition.list.end", + "punctuation.separator.arguments", + "punctuation.definition.list" + ], + "settings": { + "foreground": "#111111" + } + }, + { + "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": "#403f53" + } + }, + { + "name": "Italics", + "scope": "italic", + "settings": { + "foreground": "#994cc3", + "fontStyle": "italic" + } + }, + { + "name": "Bold", + "scope": "bold", + "settings": { + "foreground": "#4876d6", + "fontStyle": "bold" + } + }, + { + "name": "Quote", + "scope": "quote", + "settings": { + "foreground": "#697098", + "fontStyle": "italic" + } + }, + { + "name": "Raw Code", + "scope": "raw", + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "CoffeScript Variable Assignment", + "scope": "variable.assignment.coffee", + "settings": { + "foreground": "#31e1eb" + } + }, + { + "name": "CoffeScript Parameter Function", + "scope": "variable.parameter.function.coffee", + "settings": { + "foreground": "#403f53" + } + }, + { + "name": "CoffeeScript Assignments", + "scope": "variable.assignment.coffee", + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "C# Readwrite Variables", + "scope": "variable.other.readwrite.cs", + "settings": { + "foreground": "#403f53" + } + }, + { + "name": "C# Classes & Storage types", + "scope": ["entity.name.type.class.cs", "storage.type.cs"], + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "C# Namespaces", + "scope": "entity.name.type.namespace.cs", + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "Tag names in Stylesheets", + "scope": [ + "entity.name.tag.css", + "entity.name.tag.less", + "entity.name.tag.custom.css", + "support.constant.property-value.css" + ], + "settings": { + "foreground": "#c96765", + "fontStyle": "" + } + }, + { + "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": "#0c969b" + } + }, + { + "name": "CSS Keyword Other Unit", + "scope": "keyword.other.unit.css", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Attribute Name for CSS", + "scope": [ + "meta.attribute-selector.css entity.other.attribute-name.attribute", + "variable.other.readwrite.js" + ], + "settings": { + "foreground": "#aa0982" + } + }, + { + "name": "Elixir Classes", + "scope": [ + "source.elixir support.type.elixir", + "source.elixir meta.module.elixir entity.name.class.elixir" + ], + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Elixir Functions", + "scope": "source.elixir entity.name.function", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Elixir Constants", + "scope": [ + "source.elixir constant.other.symbol.elixir", + "source.elixir constant.other.keywords.elixir" + ], + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Elixir String Punctuations", + "scope": "source.elixir punctuation.definition.string", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Elixir", + "scope": [ + "source.elixir variable.other.readwrite.module.elixir", + "source.elixir variable.other.readwrite.module.elixir punctuation.definition.variable.elixir" + ], + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Elixir Binary Punctuations", + "scope": "source.elixir .punctuation.binary.elixir", + "settings": { + "foreground": "#994cc3", + "fontStyle": "italic" + } + }, + { + "name": "Closure Constant Keyword", + "scope": "constant.keyword.clojure", + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "Go Function Calls", + "scope": "source.go meta.function-call.go", + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "Go Keywords", + "scope": [ + "source.go keyword.package.go", + "source.go keyword.import.go", + "source.go keyword.function.go", + "source.go keyword.type.go", + "source.go keyword.struct.go", + "source.go keyword.interface.go", + "source.go keyword.const.go", + "source.go keyword.var.go", + "source.go keyword.map.go", + "source.go keyword.channel.go", + "source.go keyword.control.go" + ], + "settings": { + "foreground": "#994cc3", + "fontStyle": "italic" + } + }, + { + "name": "Go Constants e.g. nil, string format (%s, %d, etc.)", + "scope": ["source.go constant.language.go", "source.go constant.other.placeholder.go"], + "settings": { + "foreground": "#bc5454" + } + }, + { + "name": "C++ Functions", + "scope": ["entity.name.function.preprocessor.cpp", "entity.scope.name.cpp"], + "settings": { + "foreground": "#0c969bff" + } + }, + { + "name": "C++ Meta Namespace", + "scope": ["meta.namespace-block.cpp"], + "settings": { + "foreground": "#111111" + } + }, + { + "name": "C++ Language Primitive Storage", + "scope": ["storage.type.language.primitive.cpp"], + "settings": { + "foreground": "#bc5454" + } + }, + { + "name": "C++ Preprocessor Macro", + "scope": ["meta.preprocessor.macro.cpp"], + "settings": { + "foreground": "#403f53" + } + }, + { + "name": "C++ Variable Parameter", + "scope": ["variable.parameter"], + "settings": { + "foreground": "#111111" + } + }, + { + "name": "Powershell Variables", + "scope": ["variable.other.readwrite.powershell"], + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Powershell Function", + "scope": ["support.function.powershell"], + "settings": { + "foreground": "#0c969bff" + } + }, + { + "name": "ID Attribute Name in HTML", + "scope": "entity.other.attribute-name.id.html", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "HTML Punctuation Definition Tag", + "scope": "punctuation.definition.tag.html", + "settings": { + "foreground": "#994cc3" + } + }, + { + "name": "HTML Doctype", + "scope": "meta.tag.sgml.doctype.html", + "settings": { + "foreground": "#994cc3", + "fontStyle": "italic" + } + }, + { + "name": "JavaScript Classes", + "scope": "meta.class entity.name.type.class.js", + "settings": { + "foreground": "#111111" + } + }, + { + "name": "JavaScript Method Declaration e.g. `constructor`", + "scope": "meta.method.declaration storage.type.js", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "JavaScript Terminator", + "scope": "terminator.js", + "settings": { + "foreground": "#403f53" + } + }, + { + "name": "JavaScript Meta Punctuation Definition", + "scope": "meta.js punctuation.definition.js", + "settings": { + "foreground": "#403f53" + } + }, + { + "name": "Entity Names in Code Documentations", + "scope": ["entity.name.type.instance.jsdoc", "entity.name.type.instance.phpdoc"], + "settings": { + "foreground": "#5f7e97" + } + }, + { + "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": "#403f53" + } + }, + { + "name": "JavaScript Variable Parameter Function", + "scope": "variable.parameter.function.js", + "settings": { + "foreground": "#7986E7" + } + }, + { + "name": "JavaScript[React] Variable Other Object", + "scope": [ + "variable.other.object.js", + "variable.other.object.jsx", + "variable.object.property.js", + "variable.object.property.jsx" + ], + "settings": { + "foreground": "#403f53" + } + }, + { + "name": "JavaScript Variables", + "scope": ["variable.js", "variable.other.js"], + "settings": { + "foreground": "#403f53" + } + }, + { + "name": "JavaScript Entity Name Type", + "scope": ["entity.name.type.js", "entity.name.type.module.js"], + "settings": { + "foreground": "#111111", + "fontStyle": "" + } + }, + { + "name": "JavaScript Support Classes", + "scope": "support.class.js", + "settings": { + "foreground": "#403f53" + } + }, + { + "name": "JSON Property Names", + "scope": "support.type.property-name.json", + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "JSON Support Constants", + "scope": "support.constant.json", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "JSON Property values (string)", + "scope": "meta.structure.dictionary.value.json string.quoted.double", + "settings": { + "foreground": "#c789d6" + } + }, + { + "name": "Strings in JSON values", + "scope": "string.quoted.double.json punctuation.definition.string.json", + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "Specific JSON Property values like null", + "scope": "meta.structure.dictionary.json meta.structure.dictionary.value constant.language", + "settings": { + "foreground": "#bc5454" + } + }, + { + "name": "JavaScript Other Variable", + "scope": "variable.other.object.js", + "settings": { + "foreground": "#0c969b", + "fontStyle": "italic" + } + }, + { + "name": "Ruby Variables", + "scope": ["variable.other.ruby"], + "settings": { + "foreground": "#403f53" + } + }, + { + "name": "Ruby Class", + "scope": ["entity.name.type.class.ruby"], + "settings": { + "foreground": "#c96765" + } + }, + { + "name": "Ruby Hashkeys", + "scope": "constant.language.symbol.hashkey.ruby", + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "Ruby Symbols", + "scope": "constant.language.symbol.ruby", + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "LESS Tag names", + "scope": "entity.name.tag.less", + "settings": { + "foreground": "#994cc3" + } + }, + { + "name": "LESS Keyword Other Unit", + "scope": "keyword.other.unit.css", + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "Attribute Name for LESS", + "scope": "meta.attribute-selector.less entity.other.attribute-name.attribute", + "settings": { + "foreground": "#aa0982" + } + }, + { + "name": "Markdown Headings", + "scope": [ + "markup.heading.markdown", + "markup.heading.setext.1.markdown", + "markup.heading.setext.2.markdown" + ], + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Markdown Italics", + "scope": "markup.italic.markdown", + "settings": { + "foreground": "#994cc3", + "fontStyle": "italic" + } + }, + { + "name": "Markdown Bold", + "scope": "markup.bold.markdown", + "settings": { + "foreground": "#4876d6", + "fontStyle": "bold" + } + }, + { + "name": "Markdown Quote + others", + "scope": "markup.quote.markdown", + "settings": { + "foreground": "#697098", + "fontStyle": "italic" + } + }, + { + "name": "Markdown Raw Code + others", + "scope": "markup.inline.raw.markdown", + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "Markdown Links", + "scope": ["markup.underline.link.markdown", "markup.underline.link.image.markdown"], + "settings": { + "foreground": "#ff869a" + } + }, + { + "name": "Markdown Link Title and Description", + "scope": ["string.other.link.title.markdown", "string.other.link.description.markdown"], + "settings": { + "foreground": "#403f53" + } + }, + { + "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": "#4876d6" + } + }, + { + "name": "Markdown MetaData Punctuation", + "scope": ["punctuation.definition.metadata.markdown"], + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "Markdown List Punctuation", + "scope": ["beginning.punctuation.definition.list.markdown"], + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Markdown Inline Raw String", + "scope": "markup.inline.raw.string.markdown", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "PHP Variables", + "scope": ["variable.other.php", "variable.other.property.php"], + "settings": { + "foreground": "#111111" + } + }, + { + "name": "Support Classes in PHP", + "scope": "support.class.php", + "settings": { + "foreground": "#111111" + } + }, + { + "name": "Punctuations in PHP function calls", + "scope": "meta.function-call.php punctuation", + "settings": { + "foreground": "#403f53" + } + }, + { + "name": "PHP Global Variables", + "scope": "variable.other.global.php", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Declaration Punctuation in PHP Global Variables", + "scope": "variable.other.global.php punctuation.definition.variable", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Language Constants in Python", + "scope": "constant.language.python", + "settings": { + "foreground": "#bc5454" + } + }, + { + "name": "Python Function Parameter and Arguments", + "scope": ["variable.parameter.function.python", "meta.function-call.arguments.python"], + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Python Function Call", + "scope": ["meta.function-call.python", "meta.function-call.generic.python"], + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "Punctuations in Python", + "scope": "punctuation.python", + "settings": { + "foreground": "#403f53" + } + }, + { + "name": "Decorator Functions in Python", + "scope": "entity.name.function.decorator.python", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Python Language Variable", + "scope": "source.python variable.language.special", + "settings": { + "foreground": "#aa0982" + } + }, + { + "name": "Python import control keyword", + "scope": "keyword.control", + "settings": { + "foreground": "#994cc3", + "fontStyle": "italic" + } + }, + { + "name": "SCSS Variable", + "scope": [ + "variable.scss", + "variable.sass", + "variable.parameter.url.scss", + "variable.parameter.url.sass" + ], + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Variables in SASS At-Rules", + "scope": [ + "source.css.scss meta.at-rule variable", + "source.css.sass meta.at-rule variable" + ], + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "Variables in SASS At-Rules", + "scope": [ + "source.css.scss meta.at-rule variable", + "source.css.sass meta.at-rule variable" + ], + "settings": { + "foreground": "#111111" + } + }, + { + "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": "#aa0982" + } + }, + { + "name": "Tag names in SASS", + "scope": ["entity.name.tag.scss", "entity.name.tag.sass"], + "settings": { + "foreground": "#0c969b" + } + }, + { + "name": "SASS Keyword Other Unit", + "scope": ["keyword.other.unit.scss", "keyword.other.unit.sass"], + "settings": { + "foreground": "#994cc3" + } + }, + { + "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": "#403f53" + } + }, + { + "name": "TypeScript[React] Entity Name Types", + "scope": ["entity.name.type.ts", "entity.name.type.tsx"], + "settings": { + "foreground": "#111111" + } + }, + { + "name": "TypeScript[React] Node Classes", + "scope": ["support.class.node.ts", "support.class.node.tsx"], + "settings": { + "foreground": "#4876d6" + } + }, + { + "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": "#5f7e97" + } + }, + { + "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": "#403f53" + } + }, + { + "name": "TypeScript[React] Punctuation Decorators", + "scope": [ + "meta.decorator punctuation.decorator.ts", + "meta.decorator punctuation.decorator.tsx" + ], + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "TypeScript[React] Punctuation Decorators", + "scope": "meta.tag.js meta.jsx.children.tsx", + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "YAML Entity Name Tags", + "scope": "entity.name.tag.yaml", + "settings": { + "foreground": "#111111" + } + }, + { + "name": "JavaScript Variable Other ReadWrite", + "scope": ["variable.other.readwrite.js", "variable.parameter"], + "settings": { + "foreground": "#403f53" + } + }, + { + "name": "Support Class Component", + "scope": ["support.class.component.js", "support.class.component.tsx"], + "settings": { + "foreground": "#aa0982", + "fontStyle": "" + } + }, + { + "name": "Text nested in React tags", + "scope": ["meta.jsx.children", "meta.jsx.children.js", "meta.jsx.children.tsx"], + "settings": { + "foreground": "#403f53" + } + }, + { + "name": "TypeScript Classes", + "scope": "meta.class entity.name.type.class.tsx", + "settings": { + "foreground": "#111111" + } + }, + { + "name": "TypeScript Entity Name Type", + "scope": ["entity.name.type.tsx", "entity.name.type.module.tsx"], + "settings": { + "foreground": "#111111" + } + }, + { + "name": "TypeScript Class Variable Keyword", + "scope": [ + "meta.class.ts meta.var.expr.ts storage.type.ts", + "meta.class.tsx meta.var.expr.tsx storage.type.tsx" + ], + "settings": { + "foreground": "#994CC3" + } + }, + { + "name": "TypeScript Method Declaration e.g. `constructor`", + "scope": [ + "meta.method.declaration storage.type.ts", + "meta.method.declaration storage.type.tsx" + ], + "settings": { + "foreground": "#4876d6" + } + }, + { + "name": "normalize font style of certain components", + "scope": [ + "meta.property-list.css meta.property-value.css variable.other.less", + "meta.property-list.scss variable.scss", + "meta.property-list.sass variable.sass", + "meta.brace", + "keyword.operator.operator", + "keyword.operator.or.regexp", + "keyword.operator.expression.in", + "keyword.operator.relational", + "keyword.operator.assignment", + "keyword.operator.comparison", + "keyword.operator.type", + "keyword.operator", + "keyword", + "punctuation.definintion.string", + "punctuation", + "variable.other.readwrite.js", + "storage.type", + "source.css", + "string.quoted" + ], + "settings": { + "fontStyle": "" + } + } + ] +} diff --git a/assets/themes/src/vscode/night-owl/night-owl.json b/assets/themes/src/vscode/night-owl/night-owl.json new file mode 100644 index 0000000000..6d41b6299b --- /dev/null +++ b/assets/themes/src/vscode/night-owl/night-owl.json @@ -0,0 +1,1832 @@ +{ + "name": "Night Owl", + "type": "dark", + "semanticHighlighting": false, + "colors": { + "contrastBorder": "#122d42", + "focusBorder": "#122d42", + "foreground": "#d6deeb", + "widget.shadow": "#011627", + "selection.background": "#4373c2", + "errorForeground": "#EF5350", + "button.background": "#7e57c2cc", + "button.foreground": "#ffffffcc", + "button.hoverBackground": "#7e57c2", + "dropdown.background": "#011627", + "dropdown.border": "#5f7e97", + "dropdown.foreground": "#ffffffcc", + "input.background": "#0b253a", + "input.border": "#5f7e97", + "input.foreground": "#ffffffcc", + "input.placeholderForeground": "#5f7e97", + "inputOption.activeBorder": "#ffffffcc", + "punctuation.definition.generic.begin.html": "#ef5350f2", + "inputValidation.errorBackground": "#AB0300F2", + "inputValidation.errorBorder": "#EF5350", + "inputValidation.infoBackground": "#00589EF2", + "inputValidation.infoBorder": "#64B5F6", + "inputValidation.warningBackground": "#675700F2", + "inputValidation.warningBorder": "#FFCA28", + "scrollbar.shadow": "#010b14", + "scrollbarSlider.activeBackground": "#084d8180", + "scrollbarSlider.background": "#084d8180", + "scrollbarSlider.hoverBackground": "#084d8180", + "badge.background": "#5f7e97", + "badge.foreground": "#ffffff", + "progress.background": "#7e57c2", + "breadcrumb.foreground": "#A599E9", + "breadcrumb.focusForeground": "#ffffff", + "breadcrumb.activeSelectionForeground": "#FFFFFF", + "breadcrumbPicker.background": "#001122", + "list.activeSelectionBackground": "#234d708c", + "list.activeSelectionForeground": "#ffffff", + "list.invalidItemForeground": "#975f94", + "list.dropBackground": "#011627", + "list.focusBackground": "#010d18", + "list.focusForeground": "#ffffff", + "list.highlightForeground": "#ffffff", + "list.hoverBackground": "#011627", + "list.hoverForeground": "#ffffff", + "list.inactiveSelectionBackground": "#0e293f", + "list.inactiveSelectionForeground": "#5f7e97", + "activityBar.background": "#011627", + "activityBar.dropBackground": "#5f7e97", + "activityBar.foreground": "#5f7e97", + "activityBar.border": "#011627", + "activityBarBadge.background": "#44596b", + "activityBarBadge.foreground": "#ffffff", + "sideBar.background": "#011627", + "sideBar.foreground": "#89a4bb", + "sideBar.border": "#011627", + "sideBarTitle.foreground": "#5f7e97", + "sideBarSectionHeader.background": "#011627", + "sideBarSectionHeader.foreground": "#5f7e97", + "editorGroup.emptyBackground": "#011627", + "editorGroup.border": "#011627", + "editorGroup.dropBackground": "#7e57c273", + "editorGroupHeader.noTabsBackground": "#011627", + "editorGroupHeader.tabsBackground": "#011627", + "editorGroupHeader.tabsBorder": "#262A39", + "tab.activeBackground": "#0b2942", + "tab.activeForeground": "#d2dee7", + "tab.border": "#272B3B", + "tab.activeBorder": "#262A39", + "tab.unfocusedActiveBorder": "#262A39", + "tab.inactiveBackground": "#01111d", + "tab.inactiveForeground": "#5f7e97", + "tab.unfocusedActiveForeground": "#5f7e97", + "tab.unfocusedInactiveForeground": "#5f7e97", + "editor.background": "#011627", + "editor.foreground": "#d6deeb", + "editorLineNumber.foreground": "#4b6479", + "editorLineNumber.activeForeground": "#C5E4FD", + "editorCursor.foreground": "#80a4c2", + "editor.selectionBackground": "#1d3b53", + "editor.selectionHighlightBackground": "#5f7e9779", + "editor.inactiveSelectionBackground": "#7e57c25a", + "editor.wordHighlightBackground": "#f6bbe533", + "editor.wordHighlightStrongBackground": "#e2a2f433", + "editor.findMatchBackground": "#5f7e9779", + "editor.findMatchHighlightBackground": "#1085bb5d", + "editor.findRangeHighlightBackground": null, + "editor.hoverHighlightBackground": "#7e57c25a", + "editor.lineHighlightBackground": "#0003", + "editor.lineHighlightBorder": null, + "editorLink.activeForeground": null, + "editor.rangeHighlightBackground": "#7e57c25a", + "editorWhitespace.foreground": null, + "editorIndentGuide.background": "#5e81ce52", + "editorIndentGuide.activeBackground": "#7E97AC", + "editorRuler.foreground": "#5e81ce52", + "editorCodeLens.foreground": "#5e82ceb4", + "editorBracketMatch.background": "#5f7e974d", + "editorBracketMatch.border": null, + "editorOverviewRuler.currentContentForeground": "#7e57c2", + "editorOverviewRuler.incomingContentForeground": "#7e57c2", + "editorOverviewRuler.commonContentForeground": "#7e57c2", + "editorError.foreground": "#EF5350", + "editorError.border": null, + "editorWarning.foreground": "#b39554", + "editorWarning.border": null, + "editorGutter.background": "#011627", + "editorGutter.modifiedBackground": "#e2b93d", + "editorGutter.addedBackground": "#9CCC65", + "editorGutter.deletedBackground": "#EF5350", + "diffEditor.insertedTextBackground": "#99b76d23", + "diffEditor.insertedTextBorder": "#c5e47833", + "diffEditor.removedTextBackground": "#ef535033", + "diffEditor.removedTextBorder": "#ef53504d", + "editorWidget.background": "#021320", + "editorWidget.border": "#5f7e97", + "editorSuggestWidget.background": "#2C3043", + "editorSuggestWidget.border": "#2B2F40", + "editorSuggestWidget.foreground": "#d6deeb", + "editorSuggestWidget.highlightForeground": "#ffffff", + "editorSuggestWidget.selectedBackground": "#5f7e97", + "editorHoverWidget.background": "#011627", + "editorHoverWidget.border": "#5f7e97", + "debugExceptionWidget.background": "#011627", + "debugExceptionWidget.border": "#5f7e97", + "editorMarkerNavigation.background": "#0b2942", + "editorMarkerNavigationError.background": "#EF5350", + "editorMarkerNavigationWarning.background": "#FFCA28", + "peekView.border": "#5f7e97", + "peekViewEditor.background": "#011627", + "peekViewEditor.matchHighlightBackground": "#7e57c25a", + "peekViewResult.background": "#011627", + "peekViewResult.fileForeground": "#5f7e97", + "peekViewResult.lineForeground": "#5f7e97", + "peekViewResult.matchHighlightBackground": "#ffffffcc", + "peekViewResult.selectionBackground": "#2E3250", + "peekViewResult.selectionForeground": "#5f7e97", + "peekViewTitle.background": "#011627", + "peekViewTitleDescription.foreground": "#697098", + "peekViewTitleLabel.foreground": "#5f7e97", + "merge.currentHeaderBackground": "#5f7e97", + "merge.currentContentBackground": null, + "merge.incomingHeaderBackground": "#7e57c25a", + "merge.incomingContentBackground": null, + "merge.border": null, + "panel.background": "#011627", + "panel.border": "#5f7e97", + "panelTitle.activeBorder": "#5f7e97", + "panelTitle.activeForeground": "#ffffffcc", + "panelTitle.inactiveForeground": "#d6deeb80", + "statusBar.background": "#011627", + "statusBar.foreground": "#5f7e97", + "statusBar.border": "#262A39", + "statusBar.debuggingBackground": "#202431", + "statusBar.debuggingForeground": null, + "statusBar.debuggingBorder": "#1F2330", + "statusBar.noFolderForeground": null, + "statusBar.noFolderBackground": "#011627", + "statusBar.noFolderBorder": "#25293A", + "statusBarItem.activeBackground": "#202431", + "statusBarItem.hoverBackground": "#202431", + "statusBarItem.prominentBackground": "#202431", + "statusBarItem.prominentHoverBackground": "#202431", + "titleBar.activeBackground": "#011627", + "titleBar.activeForeground": "#eeefff", + "titleBar.inactiveBackground": "#010e1a", + "titleBar.inactiveForeground": null, + "notifications.background": "#01111d", + "notifications.border": "#262a39", + "notificationCenter.border": "#262a39", + "notificationToast.border": "#262a39", + "notifications.foreground": "#ffffffcc", + "notificationLink.foreground": "#80CBC4", + "extensionButton.prominentForeground": "#ffffffcc", + "extensionButton.prominentBackground": "#7e57c2cc", + "extensionButton.prominentHoverBackground": "#7e57c2", + "pickerGroup.foreground": "#d1aaff", + "pickerGroup.border": "#011627", + "terminal.ansiWhite": "#ffffff", + "terminal.ansiBlack": "#011627", + "terminal.ansiBlue": "#82AAFF", + "terminal.ansiCyan": "#21c7a8", + "terminal.ansiGreen": "#22da6e", + "terminal.ansiMagenta": "#C792EA", + "terminal.ansiRed": "#EF5350", + "terminal.ansiYellow": "#c5e478", + "terminal.ansiBrightWhite": "#ffffff", + "terminal.ansiBrightBlack": "#575656", + "terminal.ansiBrightBlue": "#82AAFF", + "terminal.ansiBrightCyan": "#7fdbca", + "terminal.ansiBrightGreen": "#22da6e", + "terminal.ansiBrightMagenta": "#C792EA", + "terminal.ansiBrightRed": "#EF5350", + "terminal.ansiBrightYellow": "#ffeb95", + "terminal.selectionBackground": "#1b90dd4d", + "terminalCursor.background": "#234d70", + "textCodeBlock.background": "#4f4f4f", + "debugToolBar.background": "#011627", + "welcomePage.buttonBackground": "#011627", + "welcomePage.buttonHoverBackground": "#011627", + "walkThrough.embeddedEditorBackground": "#011627", + "gitDecoration.modifiedResourceForeground": "#a2bffc", + "gitDecoration.deletedResourceForeground": "#EF535090", + "gitDecoration.untrackedResourceForeground": "#c5e478ff", + "gitDecoration.ignoredResourceForeground": "#395a75", + "gitDecoration.conflictingResourceForeground": "#ffeb95cc", + "source.elm": "#5f7e97", + "string.quoted.single.js": "#ffffff", + "meta.objectliteral.js": "#82AAFF" + }, + "tokenColors": [ + { + "name": "Changed", + "scope": [ + "markup.changed", + "meta.diff.header.git", + "meta.diff.header.from-file", + "meta.diff.header.to-file" + ], + "settings": { + "foreground": "#a2bffc", + "fontStyle": "italic" + } + }, + { + "name": "Deleted", + "scope": "markup.deleted.diff", + "settings": { + "foreground": "#EF535090", + "fontStyle": "italic" + } + }, + { + "name": "Inserted", + "scope": "markup.inserted.diff", + "settings": { + "foreground": "#c5e478ff", + "fontStyle": "italic" + } + }, + { + "name": "Global settings", + "settings": { + "background": "#011627", + "foreground": "#d6deeb" + } + }, + { + "name": "Comment", + "scope": "comment", + "settings": { + "foreground": "#637777", + "fontStyle": "italic" + } + }, + { + "name": "String", + "scope": "string", + "settings": { + "foreground": "#ecc48d" + } + }, + { + "name": "String Quoted", + "scope": ["string.quoted", "variable.other.readwrite.js"], + "settings": { + "foreground": "#ecc48d" + } + }, + { + "name": "Support Constant Math", + "scope": "support.constant.math", + "settings": { + "foreground": "#c5e478" + } + }, + { + "name": "Number", + "scope": ["constant.numeric", "constant.character.numeric"], + "settings": { + "foreground": "#F78C6C", + "fontStyle": "" + } + }, + { + "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": "#5ca7e4" + } + }, + { + "name": "Comma in functions", + "scope": "meta.function punctuation.separator.comma", + "settings": { + "foreground": "#5f7e97" + } + }, + { + "name": "Variable", + "scope": "variable", + "settings": { + "foreground": "#c5e478" + } + }, + { + "name": "Keyword", + "scope": ["punctuation.accessor", "keyword"], + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Storage", + "scope": [ + "storage", + "meta.var.expr", + "meta.class meta.method.declaration meta.var.expr storage.type.js", + "storage.type.property.js", + "storage.type.property.ts", + "storage.type.property.tsx" + ], + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Storage type", + "scope": "storage.type", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Storage type", + "scope": "storage.type.function.arrow.js", + "settings": { + "fontStyle": "" + } + }, + { + "name": "Class name", + "scope": ["entity.name.class", "meta.class entity.name.type.class"], + "settings": { + "foreground": "#ffcb8b" + } + }, + { + "name": "Inherited class", + "scope": "entity.other.inherited-class", + "settings": { + "foreground": "#c5e478" + } + }, + { + "name": "Function name", + "scope": "entity.name.function", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Meta Tag", + "scope": ["punctuation.definition.tag", "meta.tag"], + "settings": { + "foreground": "#7fdbca" + } + }, + { + "name": "HTML Tag names", + "scope": [ + "entity.name.tag", + "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": "#caece6", + "fontStyle": "" + } + }, + { + "name": "Tag attribute", + "scope": "entity.other.attribute-name", + "settings": { + "fontStyle": "italic", + "foreground": "#c5e478" + } + }, + { + "name": "Entity Name Tag Custom", + "scope": "entity.name.tag.custom", + "settings": { + "foreground": "#f78c6c" + } + }, + { + "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": "#7fdbca" + } + }, + { + "name": "Library class/type", + "scope": ["support.type", "support.class"], + "settings": { + "foreground": "#c5e478" + } + }, + { + "name": "Support Variable DOM", + "scope": "support.variable.dom", + "settings": { + "foreground": "#c5e478" + } + }, + { + "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": "#7fdbca", + "fontStyle": "" + } + }, + { + "name": "Keyword Operator Relational", + "scope": "keyword.operator.relational", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Keyword Operator Assignment", + "scope": "keyword.operator.assignment", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Keyword Operator Arithmetic", + "scope": "keyword.operator.arithmetic", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Keyword Operator Bitwise", + "scope": "keyword.operator.bitwise", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Keyword Operator Increment", + "scope": "keyword.operator.increment", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Keyword Operator Ternary", + "scope": "keyword.operator.ternary", + "settings": { + "foreground": "#c792ea" + } + }, + { + "name": "Double-Slashed Comment", + "scope": "comment.line.double-slash", + "settings": { + "foreground": "#637777" + } + }, + { + "name": "Object", + "scope": "object", + "settings": { + "foreground": "#cdebf7" + } + }, + { + "name": "Null", + "scope": "constant.language.null", + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "Meta Brace", + "scope": "meta.brace", + "settings": { + "foreground": "#d6deeb" + } + }, + { + "name": "Meta Delimiter Period", + "scope": "meta.delimiter.period", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Punctuation Definition String", + "scope": "punctuation.definition.string", + "settings": { + "foreground": "#d9f5dd" + } + }, + { + "name": "Punctuation Definition String Markdown", + "scope": "punctuation.definition.string.begin.markdown", + "settings": { + "foreground": "#ff5874" + } + }, + { + "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": "#7fdbca", + "fontStyle": "" + } + }, + { + "name": "Support Type Property Name & entity name tags", + "scope": [ + "support.type.vendor.property-name", + "support.constant.vendor.property-value", + "support.type.property-name", + "meta.property-list entity.name.tag" + ], + "settings": { + "foreground": "#80CBC4", + "fontStyle": "" + } + }, + { + "name": "Entity Name tag reference in stylesheets", + "scope": "meta.property-list entity.name.tag.reference", + "settings": { + "foreground": "#57eaf1" + } + }, + { + "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", + "fontStyle": "italic" + } + }, + { + "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": "#7fdbca" + } + }, + { + "name": "Keyword Operator Logical", + "scope": "keyword.operator.logical", + "settings": { + "foreground": "#c792ea", + "fontStyle": "" + } + }, + { + "name": "Variable Instances", + "scope": [ + "variable.instance", + "variable.other.instance", + "variable.readwrite.instance", + "variable.other.readwrite.instance", + "variable.other.property" + ], + "settings": { + "foreground": "#baebe2" + } + }, + { + "name": "Variable Property Other object property", + "scope": ["variable.other.object.property"], + "settings": { + "foreground": "#faf39f", + "fontStyle": "italic" + } + }, + { + "name": "Variable Property Other object", + "scope": ["variable.other.object.js"], + "settings": { + "fontStyle": "" + } + }, + { + "name": "Entity Name Function", + "scope": ["entity.name.function"], + "settings": { + "foreground": "#82AAFF", + "fontStyle": "italic" + } + }, + { + "name": "Keyword Operator Comparison, imports, returns and Keyword Operator Ruby", + "scope": [ + "keyword.operator.comparison", + "keyword.control.flow.js", + "keyword.control.flow.ts", + "keyword.control.flow.tsx", + "keyword.control.ruby", + "keyword.control.module.ruby", + "keyword.control.class.ruby", + "keyword.control.def.ruby", + "keyword.control.loop.js", + "keyword.control.loop.ts", + "keyword.control.import.js", + "keyword.control.import.ts", + "keyword.control.import.tsx", + "keyword.control.from.js", + "keyword.control.from.ts", + "keyword.control.from.tsx", + "keyword.operator.instanceof.js", + "keyword.operator.expression.instanceof.ts", + "keyword.operator.expression.instanceof.tsx" + ], + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Keyword Control Conditional", + "scope": [ + "keyword.control.conditional.js", + "keyword.control.conditional.ts", + "keyword.control.switch.js", + "keyword.control.switch.ts" + ], + "settings": { + "foreground": "#c792ea", + "fontStyle": "" + } + }, + { + "name": "Support Constant, `new` keyword, Special Method Keyword, `debugger`, other keywords", + "scope": [ + "support.constant", + "keyword.other.special-method", + "keyword.other.new", + "keyword.other.debugger", + "keyword.control" + ], + "settings": { + "foreground": "#7fdbca" + } + }, + { + "name": "Support Function", + "scope": "support.function", + "settings": { + "foreground": "#c5e478" + } + }, + { + "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": "#7fdbca" + } + }, + { + "name": "Support Variable Property", + "scope": "support.variable.property", + "settings": { + "foreground": "#7fdbca" + } + }, + { + "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": "#d6deeb" + } + }, + { + "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": "#d6deeb" + } + }, + { + "name": "Italics", + "scope": "italic", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Bold", + "scope": "bold", + "settings": { + "foreground": "#c5e478", + "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": "#31e1eb" + } + }, + { + "name": "CoffeScript Parameter Function", + "scope": "variable.parameter.function.coffee", + "settings": { + "foreground": "#d6deeb" + } + }, + { + "name": "CoffeeScript Assignments", + "scope": "variable.assignment.coffee", + "settings": { + "foreground": "#7fdbca" + } + }, + { + "name": "C# Readwrite Variables", + "scope": "variable.other.readwrite.cs", + "settings": { + "foreground": "#d6deeb" + } + }, + { + "name": "C# Classes & Storage types", + "scope": ["entity.name.type.class.cs", "storage.type.cs"], + "settings": { + "foreground": "#ffcb8b" + } + }, + { + "name": "C# Namespaces", + "scope": "entity.name.type.namespace.cs", + "settings": { + "foreground": "#B2CCD6" + } + }, + { + "name": "C# Unquoted String Zone", + "scope": "string.unquoted.preprocessor.message.cs", + "settings": { + "foreground": "#d6deeb" + } + }, + { + "name": "C# Region", + "scope": [ + "punctuation.separator.hash.cs", + "keyword.preprocessor.region.cs", + "keyword.preprocessor.endregion.cs" + ], + "settings": { + "foreground": "#ffcb8b", + "fontStyle": "bold" + } + }, + { + "name": "C# Other Variables", + "scope": "variable.other.object.cs", + "settings": { + "foreground": "#B2CCD6" + } + }, + { + "name": "C# Enum", + "scope": "entity.name.type.enum.cs", + "settings": { + "foreground": "#c5e478" + } + }, + { + "name": "Dart String", + "scope": [ + "string.interpolated.single.dart", + "string.interpolated.double.dart" + ], + "settings": { + "foreground": "#FFCB8B" + } + }, + { + "name": "Dart Class", + "scope": "support.class.dart", + "settings": { + "foreground": "#FFCB8B" + } + }, + { + "name": "Tag names in Stylesheets", + "scope": [ + "entity.name.tag.css", + "entity.name.tag.less", + "entity.name.tag.custom.css", + "support.constant.property-value.css" + ], + "settings": { + "foreground": "#ff6363", + "fontStyle": "" + } + }, + { + "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": "#7fdbca" + } + }, + { + "name": "CSS Keyword Other Unit", + "scope": "keyword.other.unit.css", + "settings": { + "foreground": "#FFEB95" + } + }, + { + "name": "Attribute Name for CSS", + "scope": [ + "meta.attribute-selector.css entity.other.attribute-name.attribute", + "variable.other.readwrite.js" + ], + "settings": { + "foreground": "#F78C6C" + } + }, + { + "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": "#c5e478" + } + }, + { + "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": "#c5e478" + } + }, + { + "name": "Elixir", + "scope": [ + "source.elixir variable.other.readwrite.module.elixir", + "source.elixir variable.other.readwrite.module.elixir punctuation.definition.variable.elixir" + ], + "settings": { + "foreground": "#c5e478" + } + }, + { + "name": "Elixir Binary Punctuations", + "scope": "source.elixir .punctuation.binary.elixir", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Closure Constant Keyword", + "scope": "constant.keyword.clojure", + "settings": { + "foreground": "#7fdbca" + } + }, + { + "name": "Go Function Calls", + "scope": "source.go meta.function-call.go", + "settings": { + "foreground": "#DDDDDD" + } + }, + { + "name": "Go Keywords", + "scope": [ + "source.go keyword.package.go", + "source.go keyword.import.go", + "source.go keyword.function.go", + "source.go keyword.type.go", + "source.go keyword.struct.go", + "source.go keyword.interface.go", + "source.go keyword.const.go", + "source.go keyword.var.go", + "source.go keyword.map.go", + "source.go keyword.channel.go", + "source.go keyword.control.go" + ], + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Go Constants e.g. nil, string format (%s, %d, etc.)", + "scope": [ + "source.go constant.language.go", + "source.go constant.other.placeholder.go" + ], + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "C++ Functions", + "scope": [ + "entity.name.function.preprocessor.cpp", + "entity.scope.name.cpp" + ], + "settings": { + "foreground": "#7fdbcaff" + } + }, + { + "name": "C++ Meta Namespace", + "scope": ["meta.namespace-block.cpp"], + "settings": { + "foreground": "#e0dec6" + } + }, + { + "name": "C++ Language Primitive Storage", + "scope": ["storage.type.language.primitive.cpp"], + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "C++ Preprocessor Macro", + "scope": ["meta.preprocessor.macro.cpp"], + "settings": { + "foreground": "#d6deeb" + } + }, + { + "name": "C++ Variable Parameter", + "scope": ["variable.parameter"], + "settings": { + "foreground": "#ffcb8b" + } + }, + { + "name": "Powershell Variables", + "scope": ["variable.other.readwrite.powershell"], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Powershell Function", + "scope": ["support.function.powershell"], + "settings": { + "foreground": "#7fdbcaff" + } + }, + { + "name": "ID Attribute Name in HTML", + "scope": "entity.other.attribute-name.id.html", + "settings": { + "foreground": "#c5e478" + } + }, + { + "name": "HTML Punctuation Definition Tag", + "scope": "punctuation.definition.tag.html", + "settings": { + "foreground": "#6ae9f0" + } + }, + { + "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" + } + }, + { + "name": "JavaScript Terminator", + "scope": "terminator.js", + "settings": { + "foreground": "#d6deeb" + } + }, + { + "name": "JavaScript Meta Punctuation Definition", + "scope": "meta.js punctuation.definition.js", + "settings": { + "foreground": "#d6deeb" + } + }, + { + "name": "Entity Names in Code Documentations", + "scope": [ + "entity.name.type.instance.jsdoc", + "entity.name.type.instance.phpdoc" + ], + "settings": { + "foreground": "#5f7e97" + } + }, + { + "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": "#d6deeb" + } + }, + { + "name": "JavaScript Variable Parameter Function", + "scope": "variable.parameter.function.js", + "settings": { + "foreground": "#7986E7" + } + }, + { + "name": "JavaScript[React] Variable Other Object", + "scope": [ + "variable.other.object.js", + "variable.other.object.jsx", + "variable.object.property.js", + "variable.object.property.jsx" + ], + "settings": { + "foreground": "#d6deeb" + } + }, + { + "name": "JavaScript Variables", + "scope": ["variable.js", "variable.other.js"], + "settings": { + "foreground": "#d6deeb" + } + }, + { + "name": "JavaScript Entity Name Type", + "scope": ["entity.name.type.js", "entity.name.type.module.js"], + "settings": { + "foreground": "#ffcb8b", + "fontStyle": "" + } + }, + { + "name": "JavaScript Support Classes", + "scope": "support.class.js", + "settings": { + "foreground": "#d6deeb" + } + }, + { + "name": "JSON Property Names", + "scope": "support.type.property-name.json", + "settings": { + "foreground": "#7fdbca" + } + }, + { + "name": "JSON Support Constants", + "scope": "support.constant.json", + "settings": { + "foreground": "#c5e478" + } + }, + { + "name": "JSON Property values (string)", + "scope": "meta.structure.dictionary.value.json string.quoted.double", + "settings": { + "foreground": "#c789d6" + } + }, + { + "name": "Strings in JSON values", + "scope": "string.quoted.double.json punctuation.definition.string.json", + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "Specific JSON Property values like null", + "scope": "meta.structure.dictionary.json meta.structure.dictionary.value constant.language", + "settings": { + "foreground": "#ff5874" + } + }, + { + "name": "JavaScript Other Variable", + "scope": "variable.other.object.js", + "settings": { + "foreground": "#7fdbca", + "fontStyle": "italic" + } + }, + { + "name": "Ruby Variables", + "scope": ["variable.other.ruby"], + "settings": { + "foreground": "#d6deeb" + } + }, + { + "name": "Ruby Class", + "scope": ["entity.name.type.class.ruby"], + "settings": { + "foreground": "#ecc48d" + } + }, + { + "name": "Ruby Hashkeys", + "scope": "constant.language.symbol.hashkey.ruby", + "settings": { + "foreground": "#7fdbca" + } + }, + { + "name": "Ruby Symbols", + "scope": "constant.language.symbol.ruby", + "settings": { + "foreground": "#7fdbca" + } + }, + { + "name": "LESS Tag names", + "scope": "entity.name.tag.less", + "settings": { + "foreground": "#7fdbca" + } + }, + { + "name": "LESS Keyword Other Unit", + "scope": "keyword.other.unit.css", + "settings": { + "foreground": "#FFEB95" + } + }, + { + "name": "Attribute Name for LESS", + "scope": "meta.attribute-selector.less entity.other.attribute-name.attribute", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Markdown Headings", + "scope": [ + "markup.heading.markdown", + "markup.heading.setext.1.markdown", + "markup.heading.setext.2.markdown" + ], + "settings": { + "foreground": "#82b1ff" + } + }, + { + "name": "Markdown Italics", + "scope": "markup.italic.markdown", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "Markdown Bold", + "scope": "markup.bold.markdown", + "settings": { + "foreground": "#c5e478", + "fontStyle": "bold" + } + }, + { + "name": "Markdown Quote + others", + "scope": "markup.quote.markdown", + "settings": { + "foreground": "#697098", + "fontStyle": "italic" + } + }, + { + "name": "Markdown Raw Code + others", + "scope": "markup.inline.raw.markdown", + "settings": { + "foreground": "#80CBC4" + } + }, + { + "name": "Markdown Links", + "scope": [ + "markup.underline.link.markdown", + "markup.underline.link.image.markdown" + ], + "settings": { + "foreground": "#ff869a" + } + }, + { + "name": "Markdown Link Title and Description", + "scope": [ + "string.other.link.title.markdown", + "string.other.link.description.markdown" + ], + "settings": { + "foreground": "#d6deeb" + } + }, + { + "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": "#7fdbca" + } + }, + { + "name": "Markdown List Punctuation", + "scope": ["beginning.punctuation.definition.list.markdown"], + "settings": { + "foreground": "#82b1ff" + } + }, + { + "name": "Markdown Inline Raw String", + "scope": "markup.inline.raw.string.markdown", + "settings": { + "foreground": "#c5e478" + } + }, + { + "name": "PHP Variables", + "scope": ["variable.other.php", "variable.other.property.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": "#d6deeb" + } + }, + { + "name": "PHP Global Variables", + "scope": "variable.other.global.php", + "settings": { + "foreground": "#c5e478" + } + }, + { + "name": "Declaration Punctuation in PHP Global Variables", + "scope": "variable.other.global.php punctuation.definition.variable", + "settings": { + "foreground": "#c5e478" + } + }, + { + "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": "#82AAFF" + } + }, + { + "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": "#d6deeb" + } + }, + { + "name": "Decorator Functions in Python", + "scope": "entity.name.function.decorator.python", + "settings": { + "foreground": "#c5e478" + } + }, + { + "name": "Python Language Variable", + "scope": "source.python variable.language.special", + "settings": { + "foreground": "#8EACE3" + } + }, + { + "name": "Python import control keyword", + "scope": "keyword.control", + "settings": { + "foreground": "#c792ea", + "fontStyle": "italic" + } + }, + { + "name": "SCSS Variable", + "scope": [ + "variable.scss", + "variable.sass", + "variable.parameter.url.scss", + "variable.parameter.url.sass" + ], + "settings": { + "foreground": "#c5e478" + } + }, + { + "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": "#7fdbca" + } + }, + { + "name": "SASS Keyword Other Unit", + "scope": ["keyword.other.unit.scss", "keyword.other.unit.sass"], + "settings": { + "foreground": "#FFEB95" + } + }, + { + "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": "#d6deeb" + } + }, + { + "name": "TypeScript[React] Entity Name Types", + "scope": ["entity.name.type.ts", "entity.name.type.tsx"], + "settings": { + "foreground": "#ffcb8b" + } + }, + { + "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": "#5f7e97" + } + }, + { + "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": "#d6deeb" + } + }, + { + "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": "#7fdbca" + } + }, + { + "name": "JavaScript Variable Other ReadWrite", + "scope": ["variable.other.readwrite.js", "variable.parameter"], + "settings": { + "foreground": "#d7dbe0" + } + }, + { + "name": "Support Class Component", + "scope": ["support.class.component.js", "support.class.component.tsx"], + "settings": { + "foreground": "#f78c6c", + "fontStyle": "" + } + }, + { + "name": "Text nested in React tags", + "scope": [ + "meta.jsx.children", + "meta.jsx.children.js", + "meta.jsx.children.tsx" + ], + "settings": { + "foreground": "#d6deeb" + } + }, + { + "name": "TypeScript Classes", + "scope": "meta.class entity.name.type.class.tsx", + "settings": { + "foreground": "#ffcb8b" + } + }, + { + "name": "TypeScript Entity Name Type", + "scope": ["entity.name.type.tsx", "entity.name.type.module.tsx"], + "settings": { + "foreground": "#ffcb8b" + } + }, + { + "name": "TypeScript Class Variable Keyword", + "scope": [ + "meta.class.ts meta.var.expr.ts storage.type.ts", + "meta.class.tsx meta.var.expr.tsx storage.type.tsx" + ], + "settings": { + "foreground": "#C792EA" + } + }, + { + "name": "TypeScript Method Declaration e.g. `constructor`", + "scope": [ + "meta.method.declaration storage.type.ts", + "meta.method.declaration storage.type.tsx" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "normalize font style of certain components", + "scope": [ + "meta.property-list.css meta.property-value.css variable.other.less", + "meta.property-list.scss variable.scss", + "meta.property-list.sass variable.sass", + "meta.brace", + "keyword.operator.operator", + "keyword.operator.or.regexp", + "keyword.operator.expression.in", + "keyword.operator.relational", + "keyword.operator.assignment", + "keyword.operator.comparison", + "keyword.operator.type", + "keyword.operator", + "keyword", + "punctuation.definintion.string", + "punctuation", + "variable.other.readwrite.js", + "storage.type", + "source.css", + "string.quoted" + ], + "settings": { + "fontStyle": "" + } + } + ] +} diff --git a/assets/themes/src/vscode/palenight/LICENSE b/assets/themes/src/vscode/palenight/LICENSE new file mode 100644 index 0000000000..139fba6d40 --- /dev/null +++ b/assets/themes/src/vscode/palenight/LICENSE @@ -0,0 +1,7 @@ +Copyright (c) 2017-present Olaolu Olawuyi + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/assets/themes/src/vscode/palenight/family.json b/assets/themes/src/vscode/palenight/family.json new file mode 100644 index 0000000000..69379fafe2 --- /dev/null +++ b/assets/themes/src/vscode/palenight/family.json @@ -0,0 +1,21 @@ +{ + "name": "Palenight", + "author": "Olaolu Olawuyi (whizkydee)", + "themes": [ + { + "name": "Palenight", + "file_name": "palenight.json", + "appearance": "dark" + }, + { + "name": "Palenight Operator", + "file_name": "palenight-operator.json", + "appearance": "dark" + }, + { + "name": "Palenight (Mild Contrast)", + "file_name": "palenight-mild-contrast.json", + "appearance": "dark" + } + ] +} diff --git a/assets/themes/src/vscode/palenight/palenight-mild-contrast.json b/assets/themes/src/vscode/palenight/palenight-mild-contrast.json new file mode 100644 index 0000000000..60164e29c7 --- /dev/null +++ b/assets/themes/src/vscode/palenight/palenight-mild-contrast.json @@ -0,0 +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" + } + } + ] +} diff --git a/assets/themes/src/vscode/palenight/palenight-operator.json b/assets/themes/src/vscode/palenight/palenight-operator.json new file mode 100644 index 0000000000..92104cd9ed --- /dev/null +++ b/assets/themes/src/vscode/palenight/palenight-operator.json @@ -0,0 +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" + } + } + ] +} diff --git a/assets/themes/src/vscode/palenight/palenight.json b/assets/themes/src/vscode/palenight/palenight.json new file mode 100644 index 0000000000..5351dc4f23 --- /dev/null +++ b/assets/themes/src/vscode/palenight/palenight.json @@ -0,0 +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" + } + } + ] +} diff --git a/assets/themes/src/vscode/rose-pine/LICENSE b/assets/themes/src/vscode/rose-pine/LICENSE new file mode 100644 index 0000000000..158292b8df --- /dev/null +++ b/assets/themes/src/vscode/rose-pine/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 Rosé Pine + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/assets/themes/src/vscode/rose-pine/family.json b/assets/themes/src/vscode/rose-pine/family.json new file mode 100644 index 0000000000..5b72edd300 --- /dev/null +++ b/assets/themes/src/vscode/rose-pine/family.json @@ -0,0 +1,21 @@ +{ + "name": "Rose Pine", + "author": "Rosé Pine", + "themes": [ + { + "name": "Rose Pine", + "file_name": "rose-pine.json", + "appearance": "dark" + }, + { + "name": "Rose Moon", + "file_name": "rose-pine-moon.json", + "appearance": "dark" + }, + { + "name": "Rose Pine Dawn", + "file_name": "rose-pine-dawn.json", + "appearance": "light" + } + ] +} diff --git a/assets/themes/src/vscode/rose-pine/rose-pine-dawn.json b/assets/themes/src/vscode/rose-pine/rose-pine-dawn.json new file mode 100644 index 0000000000..39cc251fe9 --- /dev/null +++ b/assets/themes/src/vscode/rose-pine/rose-pine-dawn.json @@ -0,0 +1,680 @@ +{ + "name": "Rosé Pine Dawn", + "type": "light", + "colors": { + "activityBar.activeBorder": "#575279", + "activityBar.background": "#faf4ed", + "activityBar.dropBorder": "#f2e9e1", + "activityBar.foreground": "#575279", + "activityBar.inactiveForeground": "#797593", + "activityBarBadge.background": "#d7827e", + "activityBarBadge.foreground": "#faf4ed", + "badge.background": "#d7827e", + "badge.foreground": "#faf4ed", + "banner.background": "#fffaf3", + "banner.foreground": "#575279", + "banner.iconForeground": "#797593", + "breadcrumb.activeSelectionForeground": "#d7827e", + "breadcrumb.background": "#faf4ed", + "breadcrumb.focusForeground": "#797593", + "breadcrumb.foreground": "#9893a5", + "breadcrumbPicker.background": "#fffaf3", + "button.background": "#d7827e", + "button.foreground": "#faf4ed", + "button.hoverBackground": "#d7827ee6", + "button.secondaryBackground": "#fffaf3", + "button.secondaryForeground": "#575279", + "button.secondaryHoverBackground": "#f2e9e1", + "charts.blue": "#56949f", + "charts.foreground": "#575279", + "charts.green": "#286983", + "charts.lines": "#797593", + "charts.orange": "#d7827e", + "charts.purple": "#907aa9", + "charts.red": "#b4637a", + "charts.yellow": "#ea9d34", + "checkbox.background": "#fffaf3", + "checkbox.border": "#6e6a8614", + "checkbox.foreground": "#575279", + "debugExceptionWidget.background": "#fffaf3", + "debugExceptionWidget.border": "#6e6a8614", + "debugIcon.breakpointCurrentStackframeForeground": "#797593", + "debugIcon.breakpointDisabledForeground": "#797593", + "debugIcon.breakpointForeground": "#797593", + "debugIcon.breakpointStackframeForeground": "#797593", + "debugIcon.breakpointUnverifiedForeground": "#797593", + "debugIcon.continueForeground": "#797593", + "debugIcon.disconnectForeground": "#797593", + "debugIcon.pauseForeground": "#797593", + "debugIcon.restartForeground": "#797593", + "debugIcon.startForeground": "#797593", + "debugIcon.stepBackForeground": "#797593", + "debugIcon.stepIntoForeground": "#797593", + "debugIcon.stepOutForeground": "#797593", + "debugIcon.stepOverForeground": "#797593", + "debugIcon.stopForeground": "#b4637a", + "debugToolBar.background": "#fffaf3", + "debugToolBar.border": "#f2e9e1", + "descriptionForeground": "#797593", + "diffEditor.border": "#f2e9e1", + "diffEditor.diagonalFill": "#6e6a8626", + "diffEditor.insertedLineBackground": "#56949f26", + "diffEditor.insertedTextBackground": "#56949f26", + "diffEditor.removedLineBackground": "#b4637a26", + "diffEditor.removedTextBackground": "#b4637a26", + "diffEditorOverview.insertedForeground": "#56949f80", + "diffEditorOverview.removedForeground": "#b4637a80", + "dropdown.background": "#fffaf3", + "dropdown.border": "#6e6a8614", + "dropdown.foreground": "#575279", + "dropdown.listBackground": "#fffaf3", + "editor.background": "#faf4ed", + "editor.findMatchBackground": "#6e6a8626", + "editor.findMatchHighlightBackground": "#6e6a8626", + "editor.findRangeHighlightBackground": "#6e6a8626", + "editor.findRangeHighlightBorder": "#000000", + "editor.focusedStackFrameHighlightBackground": "#6e6a8614", + "editor.foldBackground": "#fffaf3", + "editor.foreground": "#575279", + "editor.hoverHighlightBackground": "#000000", + "editor.inactiveSelectionBackground": "#6e6a860d", + "editor.inlineValuesBackground": "#000000", + "editor.inlineValuesForeground": "#797593", + "editor.lineHighlightBackground": "#6e6a860d", + "editor.lineHighlightBorder": "#000000", + "editor.linkedEditingBackground": "#fffaf3", + "editor.rangeHighlightBackground": "#6e6a860d", + "editor.selectionBackground": "#6e6a8614", + "editor.selectionForeground": "#575279", + "editor.selectionHighlightBackground": "#6e6a8614", + "editor.selectionHighlightBorder": "#faf4ed", + "editor.snippetFinalTabstopHighlightBackground": "#6e6a8614", + "editor.snippetFinalTabstopHighlightBorder": "#fffaf3", + "editor.snippetTabstopHighlightBackground": "#6e6a8614", + "editor.snippetTabstopHighlightBorder": "#fffaf3", + "editor.stackFrameHighlightBackground": "#6e6a8614", + "editor.symbolHighlightBackground": "#6e6a8614", + "editor.symbolHighlightBorder": "#000000", + "editor.wordHighlightBackground": "#6e6a8614", + "editor.wordHighlightBorder": "#000000", + "editor.wordHighlightStrongBackground": "#6e6a8614", + "editor.wordHighlightStrongBorder": "#6e6a8614", + "editorBracketHighlight.foreground1": "#b4637a80", + "editorBracketHighlight.foreground2": "#28698380", + "editorBracketHighlight.foreground3": "#ea9d3480", + "editorBracketHighlight.foreground4": "#56949f80", + "editorBracketHighlight.foreground5": "#d7827e80", + "editorBracketHighlight.foreground6": "#907aa980", + "editorBracketMatch.background": "#000000", + "editorBracketMatch.border": "#797593", + "editorBracketPairGuide.activeBackground1": "#286983", + "editorBracketPairGuide.activeBackground2": "#d7827e", + "editorBracketPairGuide.activeBackground3": "#907aa9", + "editorBracketPairGuide.activeBackground4": "#56949f", + "editorBracketPairGuide.activeBackground5": "#ea9d34", + "editorBracketPairGuide.activeBackground6": "#b4637a", + "editorBracketPairGuide.background1": "#28698380", + "editorBracketPairGuide.background2": "#d7827e80", + "editorBracketPairGuide.background3": "#907aa980", + "editorBracketPairGuide.background4": "#56949f80", + "editorBracketPairGuide.background5": "#ea9d3480", + "editorBracketPairGuide.background6": "#b4637a80", + "editorCodeLens.foreground": "#d7827e", + "editorCursor.background": "#575279", + "editorCursor.foreground": "#9893a5", + "editorError.border": "#000000", + "editorError.foreground": "#b4637a", + "editorGhostText.foreground": "#797593", + "editorGroup.border": "#000000", + "editorGroup.dropBackground": "#fffaf3", + "editorGroup.emptyBackground": "#000000", + "editorGroup.focusedEmptyBorder": "#000000", + "editorGroupHeader.noTabsBackground": "#000000", + "editorGroupHeader.tabsBackground": "#000000", + "editorGroupHeader.tabsBorder": "#000000", + "editorGutter.addedBackground": "#56949f", + "editorGutter.background": "#faf4ed", + "editorGutter.commentRangeForeground": "#797593", + "editorGutter.deletedBackground": "#b4637a", + "editorGutter.foldingControlForeground": "#907aa9", + "editorGutter.modifiedBackground": "#d7827e", + "editorHint.border": "#000000", + "editorHint.foreground": "#797593", + "editorHoverWidget.background": "#fffaf3", + "editorHoverWidget.border": "#9893a580", + "editorHoverWidget.foreground": "#797593", + "editorHoverWidget.highlightForeground": "#575279", + "editorHoverWidget.statusBarBackground": "#000000", + "editorIndentGuide.activeBackground": "#9893a5", + "editorIndentGuide.background": "#6e6a8626", + "editorInfo.border": "#f2e9e1", + "editorInfo.foreground": "#56949f", + "editorInlayHint.background": "#f2e9e1", + "editorInlayHint.foreground": "#797593", + "editorInlayHint.parameterBackground": "#f2e9e1", + "editorInlayHint.parameterForeground": "#907aa9", + "editorInlayHint.typeBackground": "#f2e9e1", + "editorInlayHint.typeForeground": "#56949f", + "editorLightBulb.foreground": "#286983", + "editorLightBulbAutoFix.foreground": "#d7827e", + "editorLineNumber.activeForeground": "#575279", + "editorLineNumber.foreground": "#797593", + "editorLink.activeForeground": "#d7827e", + "editorMarkerNavigation.background": "#fffaf3", + "editorMarkerNavigationError.background": "#fffaf3", + "editorMarkerNavigationInfo.background": "#fffaf3", + "editorMarkerNavigationWarning.background": "#fffaf3", + "editorOverviewRuler.addedForeground": "#56949f80", + "editorOverviewRuler.background": "#faf4ed", + "editorOverviewRuler.border": "#6e6a8626", + "editorOverviewRuler.bracketMatchForeground": "#797593", + "editorOverviewRuler.commonContentForeground": "#6e6a860d", + "editorOverviewRuler.currentContentForeground": "#6e6a8614", + "editorOverviewRuler.deletedForeground": "#b4637a80", + "editorOverviewRuler.errorForeground": "#b4637a80", + "editorOverviewRuler.findMatchForeground": "#6e6a8626", + "editorOverviewRuler.incomingContentForeground": "#907aa980", + "editorOverviewRuler.infoForeground": "#56949f80", + "editorOverviewRuler.modifiedForeground": "#d7827e80", + "editorOverviewRuler.rangeHighlightForeground": "#6e6a8626", + "editorOverviewRuler.selectionHighlightForeground": "#6e6a8626", + "editorOverviewRuler.warningForeground": "#ea9d3480", + "editorOverviewRuler.wordHighlightForeground": "#6e6a8614", + "editorOverviewRuler.wordHighlightStrongForeground": "#6e6a8626", + "editorPane.background": "#000000", + "editorRuler.foreground": "#6e6a8626", + "editorSuggestWidget.background": "#fffaf3", + "editorSuggestWidget.border": "#000000", + "editorSuggestWidget.focusHighlightForeground": "#d7827e", + "editorSuggestWidget.foreground": "#797593", + "editorSuggestWidget.highlightForeground": "#d7827e", + "editorSuggestWidget.selectedBackground": "#6e6a8614", + "editorSuggestWidget.selectedForeground": "#575279", + "editorSuggestWidget.selectedIconForeground": "#575279", + "editorUnnecessaryCode.border": "#000000", + "editorUnnecessaryCode.opacity": "#57527980", + "editorWarning.border": "#000000", + "editorWarning.foreground": "#ea9d34", + "editorWhitespace.foreground": "#9893a5", + "editorWidget.background": "#fffaf3", + "editorWidget.border": "#f2e9e1", + "editorWidget.foreground": "#797593", + "editorWidget.resizeBorder": "#9893a5", + "errorForeground": "#b4637a", + "extensionBadge.remoteBackground": "#907aa9", + "extensionBadge.remoteForeground": "#faf4ed", + "extensionButton.prominentBackground": "#d7827e", + "extensionButton.prominentForeground": "#faf4ed", + "extensionButton.prominentHoverBackground": "#d7827ee6", + "extensionIcon.preReleaseForeground": "#286983", + "extensionIcon.starForeground": "#d7827e", + "extensionIcon.verifiedForeground": "#907aa9", + "focusBorder": "#6e6a8614", + "foreground": "#575279", + "gitDecoration.addedResourceForeground": "#56949f", + "gitDecoration.conflictingResourceForeground": "#b4637a", + "gitDecoration.deletedResourceForeground": "#797593", + "gitDecoration.ignoredResourceForeground": "#9893a5", + "gitDecoration.modifiedResourceForeground": "#d7827e", + "gitDecoration.renamedResourceForeground": "#286983", + "gitDecoration.stageDeletedResourceForeground": "#b4637a", + "gitDecoration.stageModifiedResourceForeground": "#907aa9", + "gitDecoration.submoduleResourceForeground": "#ea9d34", + "gitDecoration.untrackedResourceForeground": "#ea9d34", + "icon.foreground": "#797593", + "input.background": "#f2e9e180", + "input.border": "#6e6a8614", + "input.foreground": "#575279", + "input.placeholderForeground": "#797593", + "inputOption.activeBackground": "#d7827e26", + "inputOption.activeForeground": "#d7827e", + "inputValidation.errorBackground": "#fffaf3", + "inputValidation.errorBorder": "#6e6a8626", + "inputValidation.errorForeground": "#b4637a", + "inputValidation.infoBackground": "#fffaf3", + "inputValidation.infoBorder": "#6e6a8626", + "inputValidation.infoForeground": "#56949f", + "inputValidation.warningBackground": "#fffaf3", + "inputValidation.warningBorder": "#6e6a8626", + "inputValidation.warningForeground": "#56949f80", + "keybindingLabel.background": "#f2e9e1", + "keybindingLabel.border": "#6e6a8626", + "keybindingLabel.bottomBorder": "#6e6a8626", + "keybindingLabel.foreground": "#907aa9", + "keybindingTable.headerBackground": "#f2e9e1", + "keybindingTable.rowsBackground": "#fffaf3", + "list.activeSelectionBackground": "#6e6a8614", + "list.activeSelectionForeground": "#575279", + "list.deemphasizedForeground": "#797593", + "list.dropBackground": "#fffaf3", + "list.errorForeground": "#b4637a", + "list.filterMatchBackground": "#fffaf3", + "list.filterMatchBorder": "#d7827e", + "list.focusBackground": "#6e6a8626", + "list.focusForeground": "#575279", + "list.focusOutline": "#6e6a8614", + "list.highlightForeground": "#d7827e", + "list.hoverBackground": "#6e6a860d", + "list.hoverForeground": "#575279", + "list.inactiveFocusBackground": "#6e6a860d", + "list.inactiveSelectionBackground": "#fffaf3", + "list.inactiveSelectionForeground": "#575279", + "list.invalidItemForeground": "#b4637a", + "list.warningForeground": "#ea9d34", + "listFilterWidget.background": "#fffaf3", + "listFilterWidget.noMatchesOutline": "#b4637a", + "listFilterWidget.outline": "#f2e9e1", + "menu.background": "#fffaf3", + "menu.border": "#6e6a860d", + "menu.foreground": "#575279", + "menu.selectionBackground": "#6e6a8614", + "menu.selectionBorder": "#f2e9e1", + "menu.selectionForeground": "#575279", + "menu.separatorBackground": "#6e6a8626", + "menubar.selectionBackground": "#6e6a8614", + "menubar.selectionBorder": "#6e6a860d", + "menubar.selectionForeground": "#575279", + "merge.border": "#f2e9e1", + "merge.commonContentBackground": "#6e6a8614", + "merge.commonHeaderBackground": "#6e6a8614", + "merge.currentContentBackground": "#ea9d3480", + "merge.currentHeaderBackground": "#ea9d3480", + "merge.incomingContentBackground": "#56949f80", + "merge.incomingHeaderBackground": "#56949f80", + "minimap.background": "#fffaf3", + "minimap.errorHighlight": "#b4637a80", + "minimap.findMatchHighlight": "#6e6a8614", + "minimap.selectionHighlight": "#6e6a8614", + "minimap.warningHighlight": "#ea9d3480", + "minimapGutter.addedBackground": "#56949f", + "minimapGutter.deletedBackground": "#b4637a", + "minimapGutter.modifiedBackground": "#d7827e", + "minimapSlider.activeBackground": "#6e6a8626", + "minimapSlider.background": "#6e6a8614", + "minimapSlider.hoverBackground": "#6e6a8614", + "notebook.cellBorderColor": "#56949f80", + "notebook.cellEditorBackground": "#fffaf3", + "notebook.cellHoverBackground": "#f2e9e180", + "notebook.focusedCellBackground": "#6e6a860d", + "notebook.focusedCellBorder": "#56949f", + "notebook.outputContainerBackgroundColor": "#6e6a860d", + "notificationCenter.border": "#6e6a8614", + "notificationCenterHeader.background": "#fffaf3", + "notificationCenterHeader.foreground": "#797593", + "notificationLink.foreground": "#907aa9", + "notifications.background": "#fffaf3", + "notifications.border": "#6e6a8614", + "notifications.foreground": "#575279", + "notificationsErrorIcon.foreground": "#b4637a", + "notificationsInfoIcon.foreground": "#56949f", + "notificationsWarningIcon.foreground": "#ea9d34", + "notificationToast.border": "#6e6a8614", + "panel.background": "#fffaf3", + "panel.border": "#000000", + "panel.dropBorder": "#f2e9e1", + "panelInput.border": "#fffaf3", + "panelSection.dropBackground": "#6e6a8614", + "panelSectionHeader.background": "#fffaf3", + "panelSectionHeader.foreground": "#575279", + "panelTitle.activeBorder": "#6e6a8626", + "panelTitle.activeForeground": "#575279", + "panelTitle.inactiveForeground": "#797593", + "peekView.border": "#f2e9e1", + "peekViewEditor.background": "#fffaf3", + "peekViewEditor.matchHighlightBackground": "#6e6a8626", + "peekViewResult.background": "#fffaf3", + "peekViewResult.fileForeground": "#797593", + "peekViewResult.lineForeground": "#797593", + "peekViewResult.matchHighlightBackground": "#6e6a8626", + "peekViewResult.selectionBackground": "#6e6a8614", + "peekViewResult.selectionForeground": "#575279", + "peekViewTitle.background": "#f2e9e1", + "peekViewTitleDescription.foreground": "#797593", + "pickerGroup.border": "#6e6a8626", + "pickerGroup.foreground": "#907aa9", + "ports.iconRunningProcessForeground": "#d7827e", + "problemsErrorIcon.foreground": "#b4637a", + "problemsInfoIcon.foreground": "#56949f", + "problemsWarningIcon.foreground": "#ea9d34", + "progressBar.background": "#d7827e", + "quickInput.background": "#fffaf3", + "quickInput.foreground": "#797593", + "quickInputList.focusBackground": "#6e6a8614", + "quickInputList.focusForeground": "#575279", + "quickInputList.focusIconForeground": "#575279", + "scrollbar.shadow": "#fffaf34d", + "scrollbarSlider.activeBackground": "#28698380", + "scrollbarSlider.background": "#6e6a8614", + "scrollbarSlider.hoverBackground": "#6e6a8626", + "searchEditor.findMatchBackground": "#6e6a8614", + "selection.background": "#6e6a8626", + "settings.focusedRowBackground": "#fffaf3", + "settings.headerForeground": "#575279", + "settings.modifiedItemIndicator": "#d7827e", + "settings.focusedRowBorder": "#6e6a8614", + "settings.rowHoverBackground": "#fffaf3", + "sideBar.background": "#faf4ed", + "sideBar.dropBackground": "#fffaf3", + "sideBar.foreground": "#797593", + "sideBarSectionHeader.background": "#000000", + "sideBarSectionHeader.border": "#6e6a8614", + "statusBar.background": "#faf4ed", + "statusBar.debuggingBackground": "#907aa9", + "statusBar.debuggingForeground": "#faf4ed", + "statusBar.foreground": "#797593", + "statusBar.noFolderBackground": "#faf4ed", + "statusBar.noFolderForeground": "#797593", + "statusBarItem.activeBackground": "#6e6a8626", + "statusBarItem.hoverBackground": "#6e6a8614", + "statusBarItem.prominentBackground": "#f2e9e1", + "statusBarItem.prominentForeground": "#575279", + "statusBarItem.prominentHoverBackground": "#6e6a8614", + "statusBarItem.remoteBackground": "#faf4ed", + "statusBarItem.remoteForeground": "#ea9d34", + "statusBarItem.errorBackground": "#faf4ed", + "statusBarItem.errorForeground": "#b4637a", + "symbolIcon.arrayForeground": "#797593", + "symbolIcon.classForeground": "#797593", + "symbolIcon.colorForeground": "#797593", + "symbolIcon.constantForeground": "#797593", + "symbolIcon.constructorForeground": "#797593", + "symbolIcon.enumeratorForeground": "#797593", + "symbolIcon.enumeratorMemberForeground": "#797593", + "symbolIcon.eventForeground": "#797593", + "symbolIcon.fieldForeground": "#797593", + "symbolIcon.fileForeground": "#797593", + "symbolIcon.folderForeground": "#797593", + "symbolIcon.functionForeground": "#797593", + "symbolIcon.interfaceForeground": "#797593", + "symbolIcon.keyForeground": "#797593", + "symbolIcon.keywordForeground": "#797593", + "symbolIcon.methodForeground": "#797593", + "symbolIcon.moduleForeground": "#797593", + "symbolIcon.namespaceForeground": "#797593", + "symbolIcon.nullForeground": "#797593", + "symbolIcon.numberForeground": "#797593", + "symbolIcon.objectForeground": "#797593", + "symbolIcon.operatorForeground": "#797593", + "symbolIcon.packageForeground": "#797593", + "symbolIcon.propertyForeground": "#797593", + "symbolIcon.referenceForeground": "#797593", + "symbolIcon.snippetForeground": "#797593", + "symbolIcon.stringForeground": "#797593", + "symbolIcon.structForeground": "#797593", + "symbolIcon.textForeground": "#797593", + "symbolIcon.typeParameterForeground": "#797593", + "symbolIcon.unitForeground": "#797593", + "symbolIcon.variableForeground": "#797593", + "tab.activeBackground": "#6e6a860d", + "tab.activeForeground": "#575279", + "tab.activeModifiedBorder": "#56949f", + "tab.border": "#000000", + "tab.hoverBackground": "#6e6a8614", + "tab.inactiveBackground": "#000000", + "tab.inactiveForeground": "#797593", + "tab.inactiveModifiedBorder": "#56949f80", + "tab.lastPinnedBorder": "#9893a5", + "tab.unfocusedActiveBackground": "#000000", + "tab.unfocusedHoverBackground": "#000000", + "tab.unfocusedInactiveBackground": "#000000", + "tab.unfocusedInactiveModifiedBorder": "#56949f80", + "terminal.ansiBlack": "#f2e9e1", + "terminal.ansiBlue": "#56949f", + "terminal.ansiBrightBlack": "#797593", + "terminal.ansiBrightBlue": "#56949f", + "terminal.ansiBrightCyan": "#d7827e", + "terminal.ansiBrightGreen": "#286983", + "terminal.ansiBrightMagenta": "#907aa9", + "terminal.ansiBrightRed": "#b4637a", + "terminal.ansiBrightWhite": "#575279", + "terminal.ansiBrightYellow": "#ea9d34", + "terminal.ansiCyan": "#d7827e", + "terminal.ansiGreen": "#286983", + "terminal.ansiMagenta": "#907aa9", + "terminal.ansiRed": "#b4637a", + "terminal.ansiWhite": "#575279", + "terminal.ansiYellow": "#ea9d34", + "terminal.dropBackground": "#6e6a8614", + "terminal.foreground": "#575279", + "terminal.selectionBackground": "#6e6a8614", + "terminal.tab.activeBorder": "#575279", + "terminalCursor.background": "#575279", + "terminalCursor.foreground": "#9893a5", + "textBlockQuote.background": "#fffaf3", + "textBlockQuote.border": "#6e6a8614", + "textCodeBlock.background": "#fffaf3", + "textLink.activeForeground": "#907aa9e6", + "textLink.foreground": "#907aa9", + "textPreformat.foreground": "#ea9d34", + "textSeparator.foreground": "#797593", + "titleBar.activeBackground": "#faf4ed", + "titleBar.activeForeground": "#797593", + "titleBar.inactiveBackground": "#fffaf3", + "titleBar.inactiveForeground": "#797593", + "toolbar.activeBackground": "#6e6a8626", + "toolbar.hoverBackground": "#6e6a8614", + "tree.indentGuidesStroke": "#797593", + "walkThrough.embeddedEditorBackground": "#faf4ed", + "welcomePage.background": "#faf4ed", + "welcomePage.buttonBackground": "#fffaf3", + "welcomePage.buttonHoverBackground": "#f2e9e1", + "widget.shadow": "#fffaf34d", + "window.activeBorder": "#fffaf3", + "window.inactiveBorder": "#fffaf3" + }, + "tokenColors": [ + { + "scope": ["comment"], + "settings": { + "foreground": "#9893a5", + "fontStyle": "italic" + } + }, + { + "scope": ["constant"], + "settings": { + "foreground": "#286983" + } + }, + { + "scope": ["constant.numeric", "constant.language"], + "settings": { + "foreground": "#d7827e" + } + }, + { + "scope": ["entity.name"], + "settings": { + "foreground": "#d7827e" + } + }, + { + "scope": [ + "entity.name.section", + "entity.name.tag", + "entity.name.namespace", + "entity.name.type" + ], + "settings": { + "foreground": "#56949f" + } + }, + { + "scope": ["entity.other.attribute-name", "entity.other.inherited-class"], + "settings": { + "foreground": "#907aa9", + "fontStyle": "italic" + } + }, + { + "scope": ["invalid"], + "settings": { + "foreground": "#b4637a" + } + }, + { + "scope": ["invalid.deprecated"], + "settings": { + "foreground": "#797593" + } + }, + { + "scope": ["keyword"], + "settings": { + "foreground": "#286983" + } + }, + { + "scope": ["markup.inserted.diff"], + "settings": { + "foreground": "#56949f" + } + }, + { + "scope": ["markup.deleted.diff"], + "settings": { + "foreground": "#b4637a" + } + }, + { + "scope": "markup.heading", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "markup.bold.markdown", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "markup.italic.markdown", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": ["meta.diff.range"], + "settings": { + "foreground": "#907aa9" + } + }, + { + "scope": ["meta.tag", "meta.brace"], + "settings": { + "foreground": "#575279" + } + }, + { + "scope": ["meta.import", "meta.export"], + "settings": { + "foreground": "#286983" + } + }, + { + "scope": "meta.directive.vue", + "settings": { + "foreground": "#907aa9", + "fontStyle": "italic" + } + }, + { + "scope": "meta.property-name.css", + "settings": { + "foreground": "#56949f" + } + }, + { + "scope": "meta.property-value.css", + "settings": { + "foreground": "#ea9d34" + } + }, + { + "scope": "meta.tag.other.html", + "settings": { + "foreground": "#797593" + } + }, + { + "scope": ["punctuation"], + "settings": { + "foreground": "#797593" + } + }, + { + "scope": ["punctuation.accessor"], + "settings": { + "foreground": "#286983" + } + }, + { + "scope": ["punctuation.definition.string"], + "settings": { + "foreground": "#ea9d34" + } + }, + { + "scope": ["punctuation.definition.tag"], + "settings": { + "foreground": "#9893a5" + } + }, + { + "scope": ["storage.type", "storage.modifier"], + "settings": { + "foreground": "#286983" + } + }, + { + "scope": ["string"], + "settings": { + "foreground": "#ea9d34" + } + }, + { + "scope": ["support"], + "settings": { + "foreground": "#56949f" + } + }, + { + "scope": ["support.constant"], + "settings": { + "foreground": "#ea9d34" + } + }, + { + "scope": ["support.function"], + "settings": { + "foreground": "#b4637a", + "fontStyle": "italic" + } + }, + { + "scope": ["variable"], + "settings": { + "foreground": "#d7827e", + "fontStyle": "italic" + } + }, + { + "scope": [ + "variable.other", + "variable.language", + "variable.function", + "variable.argument" + ], + "settings": { + "foreground": "#575279" + } + }, + { + "scope": ["variable.parameter"], + "settings": { + "foreground": "#907aa9" + } + } + ] +} diff --git a/assets/themes/src/vscode/rose-pine/rose-pine-moon.json b/assets/themes/src/vscode/rose-pine/rose-pine-moon.json new file mode 100644 index 0000000000..dbbb757335 --- /dev/null +++ b/assets/themes/src/vscode/rose-pine/rose-pine-moon.json @@ -0,0 +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" + } + } + ] +} diff --git a/assets/themes/src/vscode/rose-pine/rose-pine.json b/assets/themes/src/vscode/rose-pine/rose-pine.json new file mode 100644 index 0000000000..c2a0d23efc --- /dev/null +++ b/assets/themes/src/vscode/rose-pine/rose-pine.json @@ -0,0 +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" + } + } + ] +} diff --git a/assets/themes/src/vscode/solarized/LICENSE b/assets/themes/src/vscode/solarized/LICENSE new file mode 100644 index 0000000000..a6777a9935 --- /dev/null +++ b/assets/themes/src/vscode/solarized/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2011 Ethan Schoonover + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/assets/themes/src/vscode/solarized/dark.json b/assets/themes/src/vscode/solarized/dark.json new file mode 100644 index 0000000000..b7ea4f2b27 --- /dev/null +++ b/assets/themes/src/vscode/solarized/dark.json @@ -0,0 +1,558 @@ +{ + "type": "dark", + "colors": { + "errorForeground": "#ffeaea", + "focusBorder": "#2aa19899", + "selection.background": "#2aa19899", + "input.background": "#003847", + "input.foreground": "#93a1a1", + "inputOption.activeBorder": "#2aa19899", + "input.placeholderForeground": "#93a1a1aa", + "inputValidation.infoBackground": "#052730", + "inputValidation.infoBorder": "#363b5f", + "inputValidation.warningBackground": "#5d5938", + "inputValidation.warningBorder": "#9d8a5e", + "inputValidation.errorBackground": "#571b26", + "inputValidation.errorBorder": "#a92049", + "dropdown.background": "#00212b", + "dropdown.border": "#2aa19899", + "list.focusBackground": "#005a6f", + "list.activeSelectionBackground": "#005a6f", + "list.inactiveSelectionBackground": "#00445488", + "list.hoverBackground": "#004454aa", + "list.dropBackground": "#00445488", + "list.highlightForeground": "#1ebcc5", + "pickerGroup.foreground": "#2aa19899", + "pickerGroup.border": "#2aa19899", + "button.background": "#2aa19899", + "badge.background": "#047aa6", + "progressBar.background": "#047aa6", + "editor.background": "#002b36", + "editorWidget.background": "#00212b", + "editor.selectionBackground": "#073642", + "editor.selectionHighlightBackground": "#005a6faa", + "editorHoverWidget.background": "#004052", + "editor.lineHighlightBackground": "#073642", + "editorCursor.foreground": "#839496", + "editorWhitespace.foreground": "#93a1a180", + "editorLineNumber.foreground": "#566c74", + "editorLineNumber.activeForeground": "#6e8a93", + "editorGutter.background": "#073642", + "editorMarkerNavigationError.background": "#ab395b", + "editorMarkerNavigationWarning.background": "#5b7e7a", + "editor.wordHighlightBackground": "#004454aa", + "editor.wordHighlightStrongBackground": "#005a6faa", + "peekViewTitle.background": "#00212b", + "peekView.border": "#003847", + "peekViewResult.background": "#00212b", + "peekViewEditor.background": "#10192c", + "peekViewEditorGutter.background": "#073642", + "peekViewEditor.matchHighlightBackground": "#7744aa40", + "tab.activeBackground": "#002b37", + "tab.inactiveBackground": "#004052", + "tab.border": "#003847", + "tab.activeForeground": "#d6dbdb", + "tab.inactiveForeground": "#93a1a1", + "editorGroup.background": "#011b23", + "editorGroupHeader.tabsBackground": "#004052", + "editorGroup.border": "#00212b", + "editorGroup.dropBackground": "#2aa19844", + "panel.border": "#003847", + "statusBar.foreground": "#93a1a1", + "statusBar.background": "#00212b", + "statusBar.noFolderBackground": "#00212b", + "statusBarItem.prominentBackground": "#003847", + "statusBarItem.prominentHoverBackground": "#003847", + "activityBar.background": "#003847", + "sideBar.background": "#00212b", + "sideBarTitle.foreground": "#93a1a1", + "titleBar.activeBackground": "#002c39", + "terminal.foreground": "#839496", + "statusBar.debuggingBackground": "#00212b", + "debugExceptionWidget.border": "#ab395b", + "debugExceptionWidget.background": "#00212b", + "debugToolBar.background": "#00212b", + "terminal.ansiBlack": "#073642", + "terminal.ansiRed": "#dc322f", + "terminal.ansiGreen": "#859900", + "terminal.ansiYellow": "#b58900", + "terminal.ansiBlue": "#268bd2", + "terminal.ansiMagenta": "#d33682", + "terminal.ansiCyan": "#2aa198", + "terminal.ansiWhite": "#839496", + "terminal.ansiBrightBlack": "#586e75", + "terminal.ansiBrightRed": "#cb4b16", + "terminal.ansiBrightGreen": "#859900", + "terminal.ansiBrightYellow": "#657b83", + "terminal.ansiBrightBlue": "#839496", + "terminal.ansiBrightMagenta": "#6c71c4", + "terminal.ansiBrightCyan": "#93a1a1", + "terminal.ansiBrightWhite": "#839496", + "editorBracketHighlight.foreground1": "#268bd2", + "editorBracketHighlight.foreground2": "#b58900", + "editorBracketHighlight.foreground3": "#d33682" + }, + "tokenColors": [ + { + "settings": { + "foreground": "#bbbbbbff", + "background": "#002b36ff" + } + }, + { + "scope": ["meta.embedded", "source.groovy.embedded"], + "settings": { + "background": "#002B36", + "foreground": "#93A1A1" + } + }, + { + "name": "Comment", + "scope": "comment", + "settings": { + "fontStyle": "italic", + "foreground": "#657B83" + } + }, + { + "name": "String", + "scope": "string", + "settings": { + "foreground": "#2AA198" + } + }, + { + "name": "Regexp", + "scope": "string.regexp", + "settings": { + "foreground": "#D30102" + } + }, + { + "name": "Number", + "scope": "constant.numeric", + "settings": { + "foreground": "#D33682" + } + }, + { + "name": "Variable", + "scope": ["variable.language", "variable.other"], + "settings": { + "foreground": "#268BD2" + } + }, + { + "name": "Keyword", + "scope": "keyword", + "settings": { + "foreground": "#859900" + } + }, + { + "name": "Storage", + "scope": "storage", + "settings": { + "fontStyle": "bold", + "foreground": "#93A1A1" + } + }, + { + "name": "Class name", + "scope": ["entity.name.class", "entity.name.type"], + "settings": { + "fontStyle": "", + "foreground": "#CB4B16" + } + }, + { + "name": "Function name", + "scope": "entity.name.function", + "settings": { + "foreground": "#268BD2" + } + }, + { + "name": "Variable start", + "scope": "punctuation.definition.variable", + "settings": { + "foreground": "#859900" + } + }, + { + "name": "Embedded code markers", + "scope": [ + "punctuation.section.embedded.begin", + "punctuation.section.embedded.end" + ], + "settings": { + "foreground": "#D30102" + } + }, + { + "name": "Built-in constant", + "scope": ["constant.language", "meta.preprocessor"], + "settings": { + "foreground": "#B58900" + } + }, + { + "name": "Support.construct", + "scope": ["support.function.construct", "keyword.other.new"], + "settings": { + "foreground": "#CB4B16" + } + }, + { + "name": "User-defined constant", + "scope": ["constant.character", "constant.other"], + "settings": { + "foreground": "#CB4B16" + } + }, + { + "name": "Inherited class", + "scope": "entity.other.inherited-class", + "settings": { + "foreground": "#6C71C4" + } + }, + { + "name": "Function argument", + "scope": "variable.parameter", + "settings": {} + }, + { + "name": "Tag name", + "scope": "entity.name.tag", + "settings": { + "foreground": "#268BD2" + } + }, + { + "name": "Tag start/end", + "scope": "punctuation.definition.tag", + "settings": { + "foreground": "#657B83" + } + }, + { + "name": "Tag attribute", + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#93A1A1" + } + }, + { + "name": "Library function", + "scope": "support.function", + "settings": { + "foreground": "#268BD2" + } + }, + { + "name": "Continuation", + "scope": "punctuation.separator.continuation", + "settings": { + "foreground": "#D30102" + } + }, + { + "name": "Library constant", + "scope": "support.constant", + "settings": {} + }, + { + "name": "Library class/type", + "scope": ["support.type", "support.class"], + "settings": { + "foreground": "#859900" + } + }, + { + "name": "Library Exception", + "scope": "support.type.exception", + "settings": { + "foreground": "#CB4B16" + } + }, + { + "name": "Library variable", + "scope": "support.other.variable", + "settings": {} + }, + { + "name": "Invalid", + "scope": "invalid", + "settings": {} + }, + { + "name": "diff: header", + "scope": ["meta.diff", "meta.diff.header"], + "settings": { + "background": "#b58900", + "fontStyle": "italic", + "foreground": "#E0EDDD" + } + }, + { + "name": "diff: deleted", + "scope": "markup.deleted", + "settings": { + "background": "#eee8d5", + "fontStyle": "", + "foreground": "#dc322f" + } + }, + { + "name": "diff: changed", + "scope": "markup.changed", + "settings": { + "background": "#eee8d5", + "fontStyle": "", + "foreground": "#cb4b16" + } + }, + { + "name": "diff: inserted", + "scope": "markup.inserted", + "settings": { + "background": "#eee8d5", + "foreground": "#219186" + } + }, + { + "name": "Markup Quote", + "scope": "markup.quote", + "settings": { + "foreground": "#859900" + } + }, + { + "name": "Markup Lists", + "scope": "markup.list", + "settings": { + "foreground": "#B58900" + } + }, + { + "name": "Markup Styling", + "scope": ["markup.bold", "markup.italic"], + "settings": { + "foreground": "#D33682" + } + }, + { + "name": "Markup Inline", + "scope": "markup.inline.raw", + "settings": { + "fontStyle": "", + "foreground": "#2AA198" + } + }, + { + "name": "Markup Headings", + "scope": "markup.heading", + "settings": { + "foreground": "#268BD2" + } + }, + { + "name": "Markup Setext Header", + "scope": "markup.heading.setext", + "settings": { + "fontStyle": "", + "foreground": "#268BD2" + } + }, + { + "scope": "token.info-token", + "settings": { + "foreground": "#6796e6" + } + }, + { + "scope": "token.warn-token", + "settings": { + "foreground": "#cd9731" + } + }, + { + "scope": "token.error-token", + "settings": { + "foreground": "#f44747" + } + }, + { + "scope": "token.debug-token", + "settings": { + "foreground": "#b267e6" + } + }, + { + "scope": "variable.object.property", + "settings": { + "foreground": "#839496" + } + }, + { + "scope": "variable.parameter", + "settings": { + "foreground": "#839496" + } + }, + { + "scope": "support.type", + "settings": { + "fontStyle": "" + } + }, + { + "scope": "storage.type.function", + "settings": { + "fontStyle": "" + } + }, + { + "scope": "entity.other.inherited-class", + "settings": { + "foreground": "#b58900" + } + }, + { + "scope": "storage.modifier", + "settings": { + "foreground": "#859900ff", + "fontStyle": "" + } + }, + { + "scope": "storage.type", + "settings": { + "foreground": "#859900ff", + "fontStyle": "" + } + }, + { + "scope": "keyword.control.import", + "settings": { + "foreground": "#D33682" + } + }, + { + "scope": "storage.modifier.async", + "settings": { + "foreground": "#859900ff", + "fontStyle": "" + } + }, + { + "scope": "meta.import", + "settings": { + "foreground": "#839496" + } + }, + { + "scope": "source.ts", + "settings": { + "foreground": "#839496" + } + }, + { + "scope": "meta.function-call", + "settings": { + "foreground": "#839496" + } + }, + { + "scope": "entity.name.type", + "settings": { + "foreground": "#b58900" + } + }, + { + "scope": "entity.name.function", + "settings": { + "foreground": "#839496" + } + }, + { + "scope": "variable.other", + "settings": { + "foreground": "#839496" + } + }, + { + "scope": "storage.modifier.tsx", + "settings": { + "foreground": "#859900" + } + }, + { + "scope": "entity.name.type.class.python", + "settings": { + "foreground": "#268BD2" + } + }, + { + "scope": "support.type.python", + "settings": { + "foreground": "#268BD2" + } + }, + { + "scope": "source.python", + "settings": { + "foreground": "#839496" + } + }, + { + "scope": "keyword.control.import", + "settings": { + "foreground": "#cb4b16" + } + }, + { + "scope": "keyword.control.from", + "settings": { + "foreground": "#cb4b16" + } + }, + { + "scope": "constant.language.python", + "settings": { + "foreground": "#268BD2" + } + }, + { + "scope": "entity.name.function.python", + "settings": { + "foreground": "#268BD2" + } + }, + { + "scope": "punctuation.separator.dictionary.key-value.json, punctuation.separator.array.json, punctuation.separator.dictionary.pair.json", + "settings": { + "foreground": "#657B83" + } + }, + { + "scope": "storage.type.ts", + "settings": { + "foreground": "#268BD2" + } + }, + { + "scope": "support.type.primitive", + "settings": { + "foreground": "#b58900" + } + }, + { + "scope": "punctuation.definition.dictionary.begin.json, punctuation.definition.dictionary.end.json, punctuation.definition.array.begin.json, punctuation.definition.array.end.json", + "settings": { + "foreground": "#DC3272" + } + } + ] +} diff --git a/assets/themes/src/vscode/solarized/family.json b/assets/themes/src/vscode/solarized/family.json new file mode 100644 index 0000000000..6c21ce8dcb --- /dev/null +++ b/assets/themes/src/vscode/solarized/family.json @@ -0,0 +1,16 @@ +{ + "name": "Solarized", + "author": "Ethan Schoonover (altercation)", + "themes": [ + { + "name": "Solarized Dark", + "file_name": "dark.json", + "appearance": "dark" + }, + { + "name": "Solarized Light", + "file_name": "light.json", + "appearance": "light" + } + ] +} diff --git a/assets/themes/src/vscode/solarized/light.json b/assets/themes/src/vscode/solarized/light.json new file mode 100644 index 0000000000..74f0ce47e3 --- /dev/null +++ b/assets/themes/src/vscode/solarized/light.json @@ -0,0 +1,591 @@ +{ + "type": "light", + "colors": { + "focusBorder": "#d3af86", + "selection.background": "#ccc4b0", + "input.background": "#ddd6c1", + "input.foreground": "#586e75", + "inputOption.activeBorder": "#d3af86", + "input.placeholderForeground": "#586e75aa", + "dropdown.background": "#eee8d5", + "dropdown.border": "#d3af86", + "list.focusBackground": "#dfca8866", + "list.activeSelectionBackground": "#dfca88", + "list.activeSelectionForeground": "#6c6c6c", + "list.inactiveSelectionBackground": "#d1cbb8", + "list.hoverBackground": "#dfca8844", + "list.highlightForeground": "#b58900", + "pickerGroup.foreground": "#2aa19899", + "pickerGroup.border": "#2aa19899", + "button.background": "#ac9d57", + "badge.background": "#b58900aa", + "progressBar.background": "#b58900", + "editor.background": "#fdf6e3", + "editorWidget.background": "#eee8d5", + "editor.selectionBackground": "#eee8d5", + "editorHoverWidget.background": "#ccc4b0", + "editor.lineHighlightBackground": "#eee8d5", + "editorCursor.foreground": "#657b83", + "editorWhitespace.foreground": "#586e7580", + "editorLineNumber.foreground": "#9ca8a6", + "editorLineNumber.activeForeground": "#6f7776", + "editorGutter.background": "#eee8d5", + "peekViewTitle.background": "#eee8d5", + "peekView.border": "#b58900", + "peekViewResult.background": "#eee8d5", + "peekViewEditor.background": "#fffbf2", + "peekViewEditor.matchHighlightBackground": "#7744aa40", + "tab.activeBackground": "#fdf6e3", + "tab.inactiveBackground": "#d3cbb7", + "tab.border": "#ddd6c1", + "tab.inactiveForeground": "#586e75", + "editorGroup.background": "#fffbf2", + "editorGroupHeader.tabsBackground": "#d9d2c2", + "editorGroup.border": "#ddd6c1", + "editorGroup.dropBackground": "#ddd6c1aa", + "panel.border": "#ddd6c1", + "statusBar.foreground": "#586e75", + "statusBar.background": "#eee8d5", + "statusBar.noFolderBackground": "#eee8d5", + "statusBarItem.prominentBackground": "#ddd6c1", + "statusBarItem.prominentHoverBackground": "#ddd6c199", + "activityBar.background": "#ddd6c1", + "activityBar.foreground": "#584c27", + "activityBar.dropBackground": "#eee8d5", + "activityBarBadge.background": "#b58900", + "sideBar.background": "#eee8d5", + "sideBarTitle.foreground": "#586e75", + "titleBar.activeBackground": "#eee8d5", + "terminal.foreground": "#657b83", + "statusBar.debuggingBackground": "#eee8d5", + "debugExceptionWidget.border": "#ab395b", + "debugExceptionWidget.background": "#ddd6c1", + "debugToolBar.background": "#ddd6c1", + "extensionButton.prominentBackground": "#b58900", + "extensionButton.prominentHoverBackground": "#584c27aa", + "terminal.ansiBlack": "#657b83", + "terminal.ansiRed": "#dc322f", + "terminal.ansiGreen": "#859900", + "terminal.ansiYellow": "#b58900", + "terminal.ansiBlue": "#268bd2", + "terminal.ansiMagenta": "#d33682", + "terminal.ansiCyan": "#2aa198", + "terminal.ansiWhite": "#eee8d5", + "terminal.ansiBrightBlack": "#657b83", + "terminal.ansiBrightRed": "#cb4b16", + "terminal.ansiBrightGreen": "#859900", + "terminal.ansiBrightYellow": "#657b83", + "terminal.ansiBrightBlue": "#839496", + "terminal.ansiBrightMagenta": "#6c71c4", + "terminal.ansiBrightCyan": "#93a1a1", + "terminal.ansiBrightWhite": "#eee8d5", + "editorBracketHighlight.foreground1": "#268bd2", + "editorBracketHighlight.foreground2": "#b58900", + "editorBracketHighlight.foreground3": "#d33682" + }, + "tokenColors": [ + { + "settings": { + "foreground": "#333333ff", + "background": "#fdf6e3ff" + } + }, + { + "scope": [ + "meta.embedded", + "source.groovy.embedded" + ], + "settings": { + "background": "#FDF6E3", + "foreground": "#657B83" + } + }, + { + "name": "Comment", + "scope": "comment", + "settings": { + "fontStyle": "italic", + "foreground": "#93A1A1" + } + }, + { + "name": "String", + "scope": "string", + "settings": { + "foreground": "#2AA198" + } + }, + { + "name": "Regexp", + "scope": "string.regexp", + "settings": { + "foreground": "#D30102" + } + }, + { + "name": "Number", + "scope": "constant.numeric", + "settings": { + "foreground": "#D33682" + } + }, + { + "name": "Variable", + "scope": [ + "variable.language", + "variable.other" + ], + "settings": { + "foreground": "#268BD2" + } + }, + { + "name": "Keyword", + "scope": "keyword", + "settings": { + "foreground": "#859900" + } + }, + { + "name": "Storage", + "scope": "storage", + "settings": { + "fontStyle": "bold", + "foreground": "#073642" + } + }, + { + "name": "Class name", + "scope": [ + "entity.name.class", + "entity.name.type" + ], + "settings": { + "foreground": "#268BD2" + } + }, + { + "name": "Function name", + "scope": "entity.name.function", + "settings": { + "foreground": "#268BD2" + } + }, + { + "name": "Variable start", + "scope": "punctuation.definition.variable", + "settings": { + "foreground": "#859900" + } + }, + { + "name": "Embedded code markers", + "scope": [ + "punctuation.section.embedded.begin", + "punctuation.section.embedded.end" + ], + "settings": { + "foreground": "#D30102" + } + }, + { + "name": "Built-in constant", + "scope": [ + "constant.language", + "meta.preprocessor" + ], + "settings": { + "foreground": "#B58900" + } + }, + { + "name": "Support.construct", + "scope": [ + "support.function.construct", + "keyword.other.new" + ], + "settings": { + "foreground": "#D30102" + } + }, + { + "name": "User-defined constant", + "scope": [ + "constant.character", + "constant.other" + ], + "settings": { + "foreground": "#CB4B16" + } + }, + { + "name": "Inherited class", + "scope": "entity.other.inherited-class", + "settings": {} + }, + { + "name": "Function argument", + "scope": "variable.parameter", + "settings": {} + }, + { + "name": "Tag name", + "scope": "entity.name.tag", + "settings": { + "foreground": "#268BD2" + } + }, + { + "name": "Tag start/end", + "scope": [ + "punctuation.definition.tag.begin", + "punctuation.definition.tag.end" + ], + "settings": { + "foreground": "#93A1A1" + } + }, + { + "name": "Tag attribute", + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#93A1A1" + } + }, + { + "name": "Library function", + "scope": "support.function", + "settings": { + "foreground": "#268BD2" + } + }, + { + "name": "Continuation", + "scope": "punctuation.separator.continuation", + "settings": { + "foreground": "#D30102" + } + }, + { + "name": "Library constant", + "scope": "support.constant", + "settings": {} + }, + { + "name": "Library class/type", + "scope": [ + "support.type", + "support.class" + ], + "settings": { + "foreground": "#859900" + } + }, + { + "name": "Library Exception", + "scope": "support.type.exception", + "settings": { + "foreground": "#CB4B16" + } + }, + { + "name": "Library variable", + "scope": "support.other.variable", + "settings": {} + }, + { + "name": "Invalid", + "scope": "invalid", + "settings": {} + }, + { + "name": "diff: header", + "scope": [ + "meta.diff", + "meta.diff.header" + ], + "settings": { + "background": "#b58900", + "fontStyle": "italic", + "foreground": "#E0EDDD" + } + }, + { + "name": "diff: deleted", + "scope": "markup.deleted", + "settings": { + "background": "#eee8d5", + "fontStyle": "", + "foreground": "#dc322f" + } + }, + { + "name": "diff: changed", + "scope": "markup.changed", + "settings": { + "background": "#eee8d5", + "fontStyle": "", + "foreground": "#cb4b16" + } + }, + { + "name": "diff: inserted", + "scope": "markup.inserted", + "settings": { + "background": "#eee8d5", + "foreground": "#219186" + } + }, + { + "name": "Markup Quote", + "scope": "markup.quote", + "settings": { + "foreground": "#859900" + } + }, + { + "name": "Markup Lists", + "scope": "markup.list", + "settings": { + "foreground": "#B58900" + } + }, + { + "name": "Markup Styling", + "scope": [ + "markup.bold", + "markup.italic" + ], + "settings": { + "foreground": "#D33682" + } + }, + { + "name": "Markup Inline", + "scope": "markup.inline.raw", + "settings": { + "fontStyle": "", + "foreground": "#2AA198" + } + }, + { + "name": "Markup Headings", + "scope": "markup.heading", + "settings": { + "foreground": "#268BD2" + } + }, + { + "name": "Markup Setext Header", + "scope": "markup.heading.setext", + "settings": { + "fontStyle": "", + "foreground": "#268BD2" + } + }, + { + "scope": "token.info-token", + "settings": { + "foreground": "#316bcd" + } + }, + { + "scope": "token.warn-token", + "settings": { + "foreground": "#cd9731" + } + }, + { + "scope": "token.error-token", + "settings": { + "foreground": "#cd3131" + } + }, + { + "scope": "token.debug-token", + "settings": { + "foreground": "#800080" + } + }, + { + "scope": "storage.modifier", + "settings": { + "foreground": "#859900ff", + "fontStyle": "" + } + }, + { + "scope": "storage.type", + "settings": { + "foreground": "#859900ff", + "fontStyle": "" + } + }, + { + "scope": "keyword.control.import", + "settings": { + "foreground": "#D33682" + } + }, + { + "scope": "storage.modifier.async", + "settings": { + "foreground": "#859900ff", + "fontStyle": "" + } + }, + { + "scope": "meta.import", + "settings": { + "foreground": "#657b83" + } + }, + { + "scope": "source.ts", + "settings": { + "foreground": "#657b83" + } + }, + { + "scope": "meta.function-call", + "settings": { + "foreground": "#657b83" + } + }, + { + "scope": "entity.name.type", + "settings": { + "foreground": "#b58900" + } + }, + { + "scope": "entity.name.function", + "settings": { + "foreground": "#657b83" + } + }, + { + "scope": "variable.other", + "settings": { + "foreground": "#657b83" + } + }, + { + "scope": "storage.modifier.tsx", + "settings": { + "foreground": "#859900" + } + }, + { + "scope": "storage.modifier", + "settings": { + "foreground": "#859900ff", + "fontStyle": "" + } + }, + { + "scope": "storage.type", + "settings": { + "foreground": "#859900ff", + "fontStyle": "" + } + }, + { + "scope": "keyword.control.import", + "settings": { + "foreground": "#D33682" + } + }, + { + "scope": "storage.modifier.async", + "settings": { + "foreground": "#859900ff", + "fontStyle": "" + } + }, + { + "scope": "meta.import", + "settings": { + "foreground": "#657b83" + } + }, + { + "scope": "source.ts", + "settings": { + "foreground": "#657b83" + } + }, + { + "scope": "meta.function-call", + "settings": { + "foreground": "#657b83" + } + }, + { + "scope": "entity.name.type", + "settings": { + "foreground": "#b58900" + } + }, + { + "scope": "entity.name.function", + "settings": { + "foreground": "#657b83" + } + }, + { + "scope": "variable.other", + "settings": { + "foreground": "#657b83" + } + }, + { + "scope": "storage.modifier.tsx", + "settings": { + "foreground": "#859900" + } + }, + { + "scope": "punctuation.separator.dictionary.key-value.json, punctuation.separator.array.json, punctuation.separator.dictionary.pair.json", + "settings": { + "foreground": "#657B83" + } + }, + { + "scope": "storage.type", + "settings": { + "foreground": "#268BD2" + } + }, + { + "scope": "punctuation.definition.dictionary.begin.json, punctuation.definition.dictionary.end.json, punctuation.definition.array.begin.json, punctuation.definition.array.end.json", + "settings": { + "foreground": "#DC3272" + } + }, + { + "scope": "support.type.primitive", + "settings": { + "foreground": "#b58900" + } + }, + { + "scope": "keyword.control.import", + "settings": { + "foreground": "#cb4b16" + } + }, + { + "scope": "keyword.control.from", + "settings": { + "foreground": "#cb4b16" + } + }, + { + "scope": "source", + "settings": { + "foreground": "#657b83" + } + } + ] +} diff --git a/assets/themes/src/vscode/synthwave-84/LICENSE b/assets/themes/src/vscode/synthwave-84/LICENSE new file mode 100644 index 0000000000..c3388dbb50 --- /dev/null +++ b/assets/themes/src/vscode/synthwave-84/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 Robb Owen + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/assets/themes/src/vscode/synthwave-84/family.json b/assets/themes/src/vscode/synthwave-84/family.json new file mode 100644 index 0000000000..f8e0f5d9e6 --- /dev/null +++ b/assets/themes/src/vscode/synthwave-84/family.json @@ -0,0 +1,11 @@ +{ + "name": "Synthwave 84", + "author": "Robb Owen (robb0wen)", + "themes": [ + { + "name": "Synthwave 84", + "file_name": "synthwave.json", + "appearance": "dark" + } + ] +} diff --git a/assets/themes/src/vscode/synthwave-84/synthwave.json b/assets/themes/src/vscode/synthwave-84/synthwave.json new file mode 100644 index 0000000000..5b38ef46fa --- /dev/null +++ b/assets/themes/src/vscode/synthwave-84/synthwave.json @@ -0,0 +1,822 @@ +{ + "name": "SynthWave 84", + "type": "dark", + "semanticHighlighting": true, + "colors": { + "focusBorder": "#1f212b", + "foreground": "#ffffff", + "widget.shadow": "#2a2139", + "selection.background": "#ffffff20", + "errorForeground": "#fe4450", + "textLink.activeForeground": "#ff7edb", + "textLink.foreground": "#f97e72", + "button.background": "#614D85", + "dropdown.background": "#232530", + "dropdown.listBackground": "#2a2139", + "input.background": "#2a2139", + "inputOption.activeBorder": "#ff7edb99", + "inputValidation.errorBackground": "#fe445080", + "inputValidation.errorBorder": "#fe445000", + "scrollbar.shadow": "#2a2139", + "scrollbarSlider.activeBackground": "#9d8bca20", + "scrollbarSlider.background": "#9d8bca30", + "scrollbarSlider.hoverBackground": "#9d8bca50", + "badge.foreground": "#ffffff", + "badge.background": "#2a2139", + "progressBar.background": "#f97e72", + "list.activeSelectionBackground": "#ffffff20", + "list.activeSelectionForeground": "#ffffff", + "list.dropBackground": "#34294f66", + "list.focusBackground": "#ffffff20", + "list.focusForeground": "#ffffff", + "list.highlightForeground": "#f97e72", + "list.hoverBackground": "#37294d99", + "list.hoverForeground": "#ffffff", + "list.inactiveSelectionBackground": "#ffffff20", + "list.inactiveSelectionForeground": "#ffffff", + "list.inactiveFocusBackground": "#2a213999", + "list.errorForeground": "#fe4450E6", + "list.warningForeground": "#72f1b8bb", + "activityBar.background": "#171520", + "activityBar.dropBackground": "#34294f66", + "activityBar.foreground": "#ffffffCC", + "activityBarBadge.background": "#f97e72", + "activityBarBadge.foreground": "#2a2139", + "sideBar.background": "#241b2f", + "sideBar.foreground": "#ffffff99", + "sideBar.dropBackground": "#34294f4c", + "sideBarSectionHeader.background": "#241b2f", + "sideBarSectionHeader.foreground": "#ffffffca", + "menu.background": "#463465", + "editorGroup.border": "#495495", + "editorGroup.dropBackground": "#4954954a", + "editorGroupHeader.tabsBackground": "#241b2f", + "tab.border": "#241b2f00", + "tab.activeBorder": "#880088", + "tab.inactiveBackground": "#262335", + "editor.background": "#262335", + "editorLineNumber.foreground": "#ffffff73", + "editorLineNumber.activeForeground": "#ffffffcc", + "editorCursor.background": "#241b2f", + "editorCursor.foreground": "#f97e72", + "editor.selectionBackground": "#ffffff20", + "editor.selectionHighlightBackground": "#ffffff20", + "editor.wordHighlightBackground": "#34294f88", + "editor.wordHighlightStrongBackground": "#34294f88", + "editor.findMatchBackground": "#D18616bb", + "editor.findMatchHighlightBackground": "#D1861655", + "editor.findRangeHighlightBackground": "#34294f1a", + "editor.hoverHighlightBackground": "#463564", + "editor.lineHighlightBorder": "#7059AB66", + "editor.rangeHighlightBackground": "#49549539", + "editorIndentGuide.background": "#444251", + "editorIndentGuide.activeBackground": "#A148AB80", + "editorRuler.foreground": "#A148AB80", + "editorCodeLens.foreground": "#ffffff7c", + "editorBracketMatch.background": "#34294f66", + "editorBracketMatch.border": "#495495", + "editorOverviewRuler.border": "#34294fb3", + "editorOverviewRuler.findMatchForeground": "#D1861699", + "editorOverviewRuler.modifiedForeground": "#b893ce99", + "editorOverviewRuler.addedForeground": "#09f7a099", + "editorOverviewRuler.deletedForeground": "#fe445099", + "editorOverviewRuler.errorForeground": "#fe4450dd", + "editorOverviewRuler.warningForeground": "#72f1b8cc", + "editorError.foreground": "#fe4450", + "editorWarning.foreground": "#72f1b8cc", + "editorGutter.modifiedBackground": "#b893ce8f", + "editorGutter.addedBackground": "#206d4bd6", + "editorGutter.deletedBackground": "#fa2e46a4", + "diffEditor.insertedTextBackground": "#0beb9935", + "diffEditor.removedTextBackground": "#fe445035", + "editorWidget.background": "#171520DC", + "editorWidget.border": "#ffffff22", + "editorWidget.resizeBorder": "#ffffff44", + "editorSuggestWidget.highlightForeground": "#f97e72", + "editorSuggestWidget.selectedBackground": "#ffffff36", + "peekView.border": "#495495", + "peekViewEditor.background": "#232530", + "peekViewEditor.matchHighlightBackground": "#D18616bb", + "peekViewResult.background": "#232530", + "peekViewResult.matchHighlightBackground": "#D1861655", + "peekViewResult.selectionBackground": "#2a213980", + "peekViewTitle.background": "#232530", + "panelTitle.activeBorder": "#f97e72", + "statusBar.background": "#241b2f", + "statusBar.foreground": "#ffffff80", + "statusBar.debuggingBackground": "#f97e72", + "statusBar.debuggingForeground": "#08080f", + "statusBar.noFolderBackground": "#241b2f", + "statusBarItem.prominentBackground": "#2a2139", + "statusBarItem.prominentHoverBackground": "#34294f", + "titleBar.activeBackground": "#241b2f", + "titleBar.inactiveBackground": "#241b2f", + "extensionButton.prominentBackground": "#f97e72", + "extensionButton.prominentHoverBackground": "#ff7edb", + "pickerGroup.foreground": "#f97e72ea", + "terminal.foreground": "#ffffff", + "terminal.ansiBlue": "#03edf9", + "terminal.ansiBrightBlue": "#03edf9", + "terminal.ansiBrightCyan": "#03edf9", + "terminal.ansiBrightGreen": "#72f1b8", + "terminal.ansiBrightMagenta": "#ff7edb", + "terminal.ansiBrightRed": "#fe4450", + "terminal.ansiBrightYellow": "#fede5d", + "terminal.ansiCyan": "#03edf9", + "terminal.ansiGreen": "#72f1b8", + "terminal.ansiMagenta": "#ff7edb", + "terminal.ansiRed": "#fe4450", + "terminal.ansiYellow": "#f3e70f", + "terminal.selectionBackground": "#ffffff20", + "terminalCursor.background": "#ffffff", + "terminalCursor.foreground": "#03edf9", + "debugToolBar.background": "#463465", + "walkThrough.embeddedEditorBackground": "#232530", + "gitDecoration.modifiedResourceForeground": "#b893ceee", + "gitDecoration.deletedResourceForeground": "#fe4450", + "gitDecoration.addedResourceForeground": "#72f1b8cc", + "gitDecoration.untrackedResourceForeground": "#72f1b8", + "gitDecoration.ignoredResourceForeground": "#ffffff59", + "minimapGutter.addedBackground": "#09f7a099", + "minimapGutter.modifiedBackground": "#b893ce", + "minimapGutter.deletedBackground": "#fe4450", + "breadcrumbPicker.background": "#232530" + }, + "tokenColors": [ + { + "name": "Comment", + "scope": [ + "comment", + "string.quoted.docstring.multi.python", + "string.quoted.docstring.multi.python punctuation.definition.string.begin.python", + "string.quoted.docstring.multi.python punctuation.definition.string.end.python" + ], + "settings": { + "foreground": "#848bbd", + "fontStyle": "italic" + } + }, + { + "name": "String", + "scope": ["string.quoted", "string.template", "punctuation.definition.string"], + "settings": { + "foreground": "#ff8b39" + } + }, + { + "name": "Punctuation within templates", + "scope": "string.template meta.embedded.line", + "settings": { + "foreground": "#b6b1b1" + } + }, + { + "name": "Variable", + "scope": ["variable", "entity.name.variable"], + "settings": { + "foreground": "#ff7edb" + } + }, + { + "name": "Language variable", + "scope": "variable.language", + "settings": { + "foreground": "#fe4450", + "fontStyle": "bold" + } + }, + { + "name": "Parameter", + "scope": "variable.parameter", + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "Storage (declaration or modifier keyword)", + "scope": ["storage.type", "storage.modifier"], + "settings": { + "foreground": "#fede5d" + } + }, + { + "name": "Constant", + "scope": "constant", + "settings": { + "foreground": "#f97e72" + } + }, + { + "name": "Regex", + "scope": "string.regexp", + "settings": { + "foreground": "#f97e72" + } + }, + { + "name": "Number", + "scope": "constant.numeric", + "settings": { + "foreground": "#f97e72" + } + }, + { + "name": "Language constant (boolean, null)", + "scope": "constant.language", + "settings": { + "foreground": "#f97e72" + } + }, + { + "name": "Character escape", + "scope": "constant.character.escape", + "settings": { + "foreground": "#36f9f6" + } + }, + { + "name": "Entity", + "scope": "entity.name", + "settings": { + "foreground": "#fe4450" + } + }, + { + "name": "HTML or XML tag", + "scope": "entity.name.tag", + "settings": { + "foreground": "#72f1b8" + } + }, + { + "name": "HTML or XML tag brackets", + "scope": ["punctuation.definition.tag"], + "settings": { + "foreground": "#36f9f6" + } + }, + { + "name": "Tag attribute", + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#fede5d" + } + }, + { + "name": "Tag attribute HTML", + "scope": "entity.other.attribute-name.html", + "settings": { + "foreground": "#fede5d", + "fontStyle": "italic" + } + }, + { + "name": "Class", + "scope": ["entity.name.type", "meta.attribute.class.html"], + "settings": { + "foreground": "#fe4450" + } + }, + { + "name": "Inherited class", + "scope": "entity.other.inherited-class", + "settings": { + "foreground": "#D50" + } + }, + { + "name": "Function", + "scope": ["entity.name.function", "variable.function"], + "settings": { + "foreground": "#36f9f6" + } + }, + { + "name": "JS Export", + "scope": ["keyword.control.export.js", "keyword.control.import.js"], + "settings": { + "foreground": "#72f1b8" + } + }, + { + "name": "JS Numerics", + "scope": ["constant.numeric.decimal.js"], + "settings": { + "foreground": "#2EE2FA" + } + }, + { + "name": "Keyword", + "scope": "keyword", + "settings": { + "foreground": "#fede5d" + } + }, + { + "name": "Control keyword", + "scope": "keyword.control", + "settings": { + "foreground": "#fede5d" + } + }, + { + "name": "Operator", + "scope": "keyword.operator", + "settings": { + "foreground": "#fede5d" + } + }, + { + "name": "Special operator", + "scope": [ + "keyword.operator.new", + "keyword.operator.expression", + "keyword.operator.logical" + ], + "settings": { + "foreground": "#fede5d" + } + }, + { + "name": "Unit", + "scope": "keyword.other.unit", + "settings": { + "foreground": "#f97e72" + } + }, + { + "name": "Support", + "scope": "support", + "settings": { + "foreground": "#fe4450" + } + }, + { + "name": "Support function", + "scope": "support.function", + "settings": { + "foreground": "#36f9f6" + } + }, + { + "name": "Support variable", + "scope": "support.variable", + "settings": { + "foreground": "#ff7edb" + } + }, + { + "name": "Object literal key / property", + "scope": ["meta.object-literal.key", "support.type.property-name"], + "settings": { + "foreground": "#ff7edb" + } + }, + { + "name": "Key-value separator", + "scope": "punctuation.separator.key-value", + "settings": { + "foreground": "#b6b1b1" + } + }, + { + "name": "Embedded punctuation", + "scope": "punctuation.section.embedded", + "settings": { + "foreground": "#fede5d" + } + }, + { + "name": "Template expression", + "scope": [ + "punctuation.definition.template-expression.begin", + "punctuation.definition.template-expression.end" + ], + "settings": { + "foreground": "#72f1b8" + } + }, + { + "name": "CSS property", + "scope": ["support.type.property-name.css", "support.type.property-name.json"], + "settings": { + "foreground": "#72f1b8" + } + }, + { + "name": "JS Switch control", + "scope": "switch-block.expr.js", + "settings": { + "foreground": "#72f1b8" + } + }, + { + "name": "JS object path", + "scope": "variable.other.constant.property.js, variable.other.property.js", + "settings": { + "foreground": "#2ee2fa" + } + }, + { + "name": "Color", + "scope": "constant.other.color", + "settings": { + "foreground": "#f97e72" + } + }, + { + "name": "Font names", + "scope": "support.constant.font-name", + "settings": { + "foreground": "#f97e72" + } + }, + { + "name": "CSS #id", + "scope": "entity.other.attribute-name.id", + "settings": { + "foreground": "#36f9f6" + } + }, + { + "name": "Pseudo CSS", + "scope": [ + "entity.other.attribute-name.pseudo-element", + "entity.other.attribute-name.pseudo-class" + ], + "settings": { + "foreground": "#D50" + } + }, + { + "name": "CSS support functions (rgb)", + "scope": "support.function.misc.css", + "settings": { + "foreground": "#fe4450" + } + }, + { + "name": "Markup heading", + "scope": ["markup.heading", "entity.name.section"], + "settings": { + "foreground": "#ff7edb" + } + }, + { + "name": "Markup text", + "scope": ["text.html", "keyword.operator.assignment"], + "settings": { + "foreground": "#ffffffee" + } + }, + { + "name": "Markup quote", + "scope": "markup.quote", + "settings": { + "foreground": "#b6b1b1cc", + "fontStyle": "italic" + } + }, + { + "name": "Markup list", + "scope": "beginning.punctuation.definition.list", + "settings": { + "foreground": "#ff7edb" + } + }, + { + "name": "Markup link", + "scope": "markup.underline.link", + "settings": { + "foreground": "#D50" + } + }, + { + "name": "Markup link description", + "scope": "string.other.link.description", + "settings": { + "foreground": "#f97e72" + } + }, + { + "name": "Python function call", + "scope": "meta.function-call.generic.python", + "settings": { + "foreground": "#36f9f6" + } + }, + { + "name": "Python variable params", + "scope": "variable.parameter.function-call.python", + "settings": { + "foreground": "#72f1b8" + } + }, + { + "name": "C# storage type", + "scope": "storage.type.cs", + "settings": { + "foreground": "#fe4450" + } + }, + { + "name": "C# local variable", + "scope": "entity.name.variable.local.cs", + "settings": { + "foreground": "#ff7edb" + } + }, + { + "name": "C# properties and fields", + "scope": ["entity.name.variable.field.cs", "entity.name.variable.property.cs"], + "settings": { + "foreground": "#ff7edb" + } + }, + { + "name": "C placeholder", + "scope": "constant.other.placeholder.c", + "settings": { + "foreground": "#72f1b8", + "fontStyle": "italic" + } + }, + { + "name": "C preprocessors", + "scope": ["keyword.control.directive.include.c", "keyword.control.directive.define.c"], + "settings": { + "foreground": "#72f1b8" + } + }, + { + "name": "C storage modifier", + "scope": "storage.modifier.c", + "settings": { + "foreground": "#fe4450" + } + }, + { + "name": "C++ operators", + "scope": "source.cpp keyword.operator", + "settings": { + "foreground": "#fede5d" + } + }, + { + "name": "C++ placeholder", + "scope": "constant.other.placeholder.cpp", + "settings": { + "foreground": "#72f1b8", + "fontStyle": "italic" + } + }, + { + "name": "C++ include", + "scope": [ + "keyword.control.directive.include.cpp", + "keyword.control.directive.define.cpp" + ], + "settings": { + "foreground": "#72f1b8" + } + }, + { + "name": "C++ constant modifier", + "scope": "storage.modifier.specifier.const.cpp", + "settings": { + "foreground": "#fe4450" + } + }, + { + "name": "Elixir Classes", + "scope": [ + "source.elixir support.type.elixir", + "source.elixir meta.module.elixir entity.name.class.elixir" + ], + "settings": { + "foreground": "#36f9f6" + } + }, + { + "name": "Elixir Functions", + "scope": "source.elixir entity.name.function", + "settings": { + "foreground": "#72f1b8" + } + }, + { + "name": "Elixir Constants", + "scope": [ + "source.elixir constant.other.symbol.elixir", + "source.elixir constant.other.keywords.elixir" + ], + "settings": { + "foreground": "#36f9f6" + } + }, + { + "name": "Elixir String Punctuation", + "scope": "source.elixir punctuation.definition.string", + "settings": { + "foreground": "#72f1b8" + } + }, + { + "name": "Elixir", + "scope": [ + "source.elixir variable.other.readwrite.module.elixir", + "source.elixir variable.other.readwrite.module.elixir punctuation.definition.variable.elixir" + ], + "settings": { + "foreground": "#72f1b8" + } + }, + { + "name": "Elixir Binary Punctuation", + "scope": "source.elixir .punctuation.binary.elixir", + "settings": { + "foreground": "#ff7edb", + "fontStyle": "italic" + } + }, + { + "name": "Clojure Globals", + "scope": ["entity.global.clojure"], + "settings": { + "foreground": "#36f9f6", + "fontStyle": "bold" + } + }, + { + "name": "Clojure Storage", + "scope": ["storage.control.clojure"], + "settings": { + "foreground": "#36f9f6", + "fontStyle": "italic" + } + }, + { + "name": "Clojure Metadata", + "scope": ["meta.metadata.simple.clojure", "meta.metadata.map.clojure"], + "settings": { + "foreground": "#fe4450", + "fontStyle": "italic" + } + }, + { + "name": "Clojure Macros, Quoted", + "scope": ["meta.quoted-expression.clojure"], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "Clojure Symbols", + "scope": ["meta.symbol.clojure"], + "settings": { + "foreground": "#ff7edbff" + } + }, + { + "name": "Go basic", + "scope": "source.go", + "settings": { + "foreground": "#ff7edbff" + } + }, + { + "name": "Go Function Calls", + "scope": "source.go meta.function-call.go", + "settings": { + "foreground": "#36f9f6" + } + }, + { + "name": "Go Keywords", + "scope": [ + "source.go keyword.package.go", + "source.go keyword.import.go", + "source.go keyword.function.go", + "source.go keyword.type.go", + "source.go keyword.const.go", + "source.go keyword.var.go", + "source.go keyword.map.go", + "source.go keyword.channel.go", + "source.go keyword.control.go" + ], + "settings": { + "foreground": "#fede5d" + } + }, + { + "name": "Go interfaces", + "scope": [ + "source.go storage.type", + "source.go keyword.struct.go", + "source.go keyword.interface.go" + ], + "settings": { + "foreground": "#72f1b8" + } + }, + { + "name": "Go Constants e.g. nil, string format (%s, %d, etc.)", + "scope": [ + "source.go constant.language.go", + "source.go constant.other.placeholder.go", + "source.go variable" + ], + "settings": { + "foreground": "#2EE2FA" + } + }, + { + "name": "Markdown links and image paths", + "scope": ["markup.underline.link.markdown", "markup.inline.raw.string.markdown"], + "settings": { + "foreground": "#72f1b8", + "fontStyle": "italic" + } + }, + { + "name": "Markdown links and image paths", + "scope": ["string.other.link.title.markdown"], + "settings": { + "foreground": "#fede5d" + } + }, + { + "name": "Markdown headings", + "scope": ["markup.heading.markdown", "entity.name.section.markdown"], + "settings": { + "foreground": "#ff7edb", + "fontStyle": "bold" + } + }, + { + "name": "Markdown italic", + "scope": ["markup.italic.markdown"], + "settings": { + "foreground": "#2EE2FA", + "fontStyle": "italic" + } + }, + { + "name": "Markdown bold", + "scope": ["markup.bold.markdown"], + "settings": { + "foreground": "#2EE2FA", + "fontStyle": "bold" + } + }, + { + "name": "Markdown quotes", + "scope": ["punctuation.definition.quote.begin.markdown", "markup.quote.markdown"], + "settings": { + "foreground": "#72f1b8" + } + }, + { + "name": "Basic source colours", + "scope": ["source.dart", "source.python", "source.scala"], + "settings": { + "foreground": "#ff7edbff" + } + }, + { + "name": "Dart strings", + "scope": ["string.interpolated.single.dart"], + "settings": { + "foreground": "#f97e72" + } + }, + { + "name": "Dart variable params", + "scope": ["variable.parameter.dart"], + "settings": { + "foreground": "#72f1b8" + } + }, + { + "name": "Dart numerics", + "scope": ["constant.numeric.dart"], + "settings": { + "foreground": "#2EE2FA" + } + }, + { + "name": "Scala variable params", + "scope": ["variable.parameter.scala"], + "settings": { + "foreground": "#2EE2FA" + } + }, + { + "name": "Scala", + "scope": ["meta.template.expression.scala"], + "settings": { + "foreground": "#72f1b8" + } + } + ] +} diff --git a/crates/theme2/src/themes/andromeda.rs b/crates/theme2/src/themes/andromeda.rs index e9bbbc48b4..46e14a99ad 100644 --- a/crates/theme2/src/themes/andromeda.rs +++ b/crates/theme2/src/themes/andromeda.rs @@ -7,12 +7,12 @@ use crate::{ pub fn andromeda() -> ThemeFamily { ThemeFamily { - id: "0d2fdd0e-de6d-44b2-8f16-f4da10a78f2e".into(), + id: "192bb9a2-a028-4c9a-b713-4c92330b3fab".into(), name: "Andromeda".into(), author: "Eliver Lara (EliverLara)".into(), themes: vec![ ThemeVariant { - id: "8a4e3be2-0ea0-4a0c-9fee-bc63123205ba".into(), + id: "a3aaa73f-f225-41bd-8d52-77ca1df0b7f7".into(), name: "Andromeda".into(), appearance: Appearance::Dark, styles: ThemeStyles { @@ -170,7 +170,7 @@ pub fn andromeda() -> ThemeFamily { }, }, ThemeVariant { - id: "812f0805-5f84-4f3f-97d3-b38b44307132".into(), + id: "91a17b19-1e74-487e-b0a0-56e2e5360ab8".into(), name: "Andromeda Bordered".into(), appearance: Appearance::Dark, styles: ThemeStyles { diff --git a/crates/theme2/src/themes/ayu.rs b/crates/theme2/src/themes/ayu.rs index 14e316e400..40fdb7ac15 100644 --- a/crates/theme2/src/themes/ayu.rs +++ b/crates/theme2/src/themes/ayu.rs @@ -7,12 +7,12 @@ use crate::{ pub fn ayu() -> ThemeFamily { ThemeFamily { - id: "769923cd-f2b6-4675-96b8-8a2953fc635b".into(), + id: "5ace5bd5-0231-4f26-a69f-40a96dd4163e".into(), name: "Ayu".into(), author: "dempfi (Ike Ku)".into(), themes: vec![ ThemeVariant { - id: "f6ae55e2-a844-47ba-a720-ca88dd7b2a12".into(), + id: "7781d65c-4575-421d-af3c-061ab0b0478a".into(), name: "Ayu Light".into(), appearance: Appearance::Light, styles: ThemeStyles { @@ -170,7 +170,7 @@ pub fn ayu() -> ThemeFamily { }, }, ThemeVariant { - id: "440f604c-3a70-4bac-901a-2dc92c7a241a".into(), + id: "68066666-5e56-4937-9434-510ffd0fe05f".into(), name: "Ayu Mirage".into(), appearance: Appearance::Dark, styles: ThemeStyles { @@ -328,7 +328,7 @@ pub fn ayu() -> ThemeFamily { }, }, ThemeVariant { - id: "0135d1f0-1331-4e5a-9634-73e8f72356d0".into(), + id: "d4f949b8-e5b9-4337-a52e-2ed1752a6c4f".into(), name: "Ayu Dark".into(), appearance: Appearance::Dark, styles: ThemeStyles { diff --git a/crates/theme2/src/themes/dracula.rs b/crates/theme2/src/themes/dracula.rs index 0f8de4996f..2fae1b04f6 100644 --- a/crates/theme2/src/themes/dracula.rs +++ b/crates/theme2/src/themes/dracula.rs @@ -7,11 +7,11 @@ use crate::{ pub fn dracula() -> ThemeFamily { ThemeFamily { - id: "690e6a78-4aa6-471e-a342-4d0e0ee14952".into(), + id: "20b9a8c0-0b74-483b-bed2-be7a053e1321".into(), name: "Dracula".into(), author: "Zeno Rocha".into(), themes: vec![ThemeVariant { - id: "b4d04bac-514f-4a38-bf03-df54bb135d82".into(), + id: "02f5624f-9b0a-48e0-8897-4557adc8f104".into(), name: "Dracula".into(), appearance: Appearance::Dark, styles: ThemeStyles { diff --git a/crates/theme2/src/themes/gruvbox.rs b/crates/theme2/src/themes/gruvbox.rs index baf0df3341..db58497187 100644 --- a/crates/theme2/src/themes/gruvbox.rs +++ b/crates/theme2/src/themes/gruvbox.rs @@ -7,12 +7,12 @@ use crate::{ pub fn gruvbox() -> ThemeFamily { ThemeFamily { - id: "c3d8b05f-5538-4b73-9ce9-30a31f73f5f2".into(), + id: "c0b7f0e7-f261-4a33-a2bf-baf2e140aac4".into(), name: "Gruvbox".into(), author: "morhetz".into(), themes: vec![ ThemeVariant { - id: "014ce751-7184-44a0-b977-001d88e94d75".into(), + id: "fb9f8f64-372b-4fda-8dbd-d610c97a9691".into(), name: "Gruvbox Dark Hard".into(), appearance: Appearance::Dark, styles: ThemeStyles { @@ -170,7 +170,7 @@ pub fn gruvbox() -> ThemeFamily { }, }, ThemeVariant { - id: "abf0dd62-cc6a-464b-bd63-75c28eabb1c0".into(), + id: "72f0ea45-33bc-49d8-9f52-87540f858fb4".into(), name: "Gruvbox Dark Medium".into(), appearance: Appearance::Dark, styles: ThemeStyles { @@ -328,7 +328,7 @@ pub fn gruvbox() -> ThemeFamily { }, }, ThemeVariant { - id: "03a2ee16-8076-449b-9bb2-16fd02fbf21d".into(), + id: "5ea1cdf8-6ed0-4e54-b44a-14c6634701cf".into(), name: "Gruvbox Dark Soft".into(), appearance: Appearance::Dark, styles: ThemeStyles { @@ -486,7 +486,7 @@ pub fn gruvbox() -> ThemeFamily { }, }, ThemeVariant { - id: "7bbc0a0b-5b57-4731-bfae-02b4ff7ee821".into(), + id: "b0c9082f-00c8-4a02-a4de-9fd7af97c7f2".into(), name: "Gruvbox Light Hard".into(), appearance: Appearance::Light, styles: ThemeStyles { @@ -644,7 +644,7 @@ pub fn gruvbox() -> ThemeFamily { }, }, ThemeVariant { - id: "3319ee0f-2d7f-4efc-84ae-132b30126bb1".into(), + id: "172c281c-ff0a-496e-8794-880e2fc3aa49".into(), name: "Gruvbox Light Medium".into(), appearance: Appearance::Light, styles: ThemeStyles { @@ -802,7 +802,7 @@ pub fn gruvbox() -> ThemeFamily { }, }, ThemeVariant { - id: "d455f416-a0a5-4ef6-a808-64aafeb7aaae".into(), + id: "b94f3305-b755-44f2-948c-cfd8c9d3158f".into(), name: "Gruvbox Light Soft".into(), appearance: Appearance::Light, styles: ThemeStyles { diff --git a/crates/theme2/src/themes/mod.rs b/crates/theme2/src/themes/mod.rs index bb60ec8294..2a00b49785 100644 --- a/crates/theme2/src/themes/mod.rs +++ b/crates/theme2/src/themes/mod.rs @@ -2,18 +2,40 @@ mod andromeda; mod ayu; mod dracula; mod gruvbox; +mod night_owl; mod nord; mod notctis; +mod palenight; +mod rose_pine; +mod solarized; +mod synthwave_84; pub use andromeda::*; pub use ayu::*; pub use dracula::*; pub use gruvbox::*; +pub use night_owl::*; pub use nord::*; pub use notctis::*; +pub use palenight::*; +pub use rose_pine::*; +pub use solarized::*; +pub use synthwave_84::*; use crate::ThemeFamily; pub(crate) fn all_imported_themes() -> Vec { - vec![andromeda(), dracula(), nord(), notctis(), ayu(), gruvbox()] + vec![ + rose_pine(), + night_owl(), + andromeda(), + synthwave_84(), + palenight(), + dracula(), + solarized(), + nord(), + notctis(), + ayu(), + gruvbox(), + ] } diff --git a/crates/theme2/src/themes/night_owl.rs b/crates/theme2/src/themes/night_owl.rs new file mode 100644 index 0000000000..d4418ac3dc --- /dev/null +++ b/crates/theme2/src/themes/night_owl.rs @@ -0,0 +1,333 @@ +use gpui::rgba; + +use crate::{ + default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, + SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, +}; + +pub fn night_owl() -> ThemeFamily { + ThemeFamily { + id: "b6469599-df68-4604-be9d-44f63d877d53".into(), + name: "Night Owl".into(), + author: "Sarah Drasner (sdras)".into(), + themes: vec![ + ThemeVariant { + id: "2a04e5fa-e266-475b-b965-3d92efe77ad9".into(), + name: "Night Owl".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x5f7e97ff).into(), + border_variant: rgba(0x5f7e97ff).into(), + border_focused: rgba(0x5f7e97ff).into(), + border_disabled: rgba(0x5f7e97ff).into(), + border_selected: rgba(0x5f7e97ff).into(), + border_transparent: rgba(0x5f7e97ff).into(), + elevated_surface_background: rgba(0x011526ff).into(), + surface_background: rgba(0x011526ff).into(), + background: rgba(0x011526ff).into(), + element_background: rgba(0x7d56c1cc).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xd6deebff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x01101cff).into(), + tab_active_background: rgba(0x0a2842ff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x111113ff).into(), + terminal_ansi_bright_black: rgba(0x575656ff).into(), + terminal_ansi_bright_red: rgba(0xef524fff).into(), + terminal_ansi_bright_green: rgba(0x21da6eff).into(), + terminal_ansi_bright_yellow: rgba(0xffeb95ff).into(), + terminal_ansi_bright_blue: rgba(0x82aaffff).into(), + terminal_ansi_bright_magenta: rgba(0xc792eaff).into(), + terminal_ansi_bright_cyan: rgba(0x7fdbcaff).into(), + terminal_ansi_bright_white: rgba(0xffffffff).into(), + terminal_ansi_black: rgba(0x011526ff).into(), + terminal_ansi_red: rgba(0xef524fff).into(), + terminal_ansi_green: rgba(0x21da6eff).into(), + terminal_ansi_yellow: rgba(0xc5e478ff).into(), + terminal_ansi_blue: rgba(0x82aaffff).into(), + terminal_ansi_magenta: rgba(0xc792eaff).into(), + terminal_ansi_cyan: rgba(0x20c7a7ff).into(), + terminal_ansi_white: rgba(0xffffffff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "91901d29-1c1f-49ef-ac69-c25639425f7c".into(), + name: "Night Owl Light".into(), + appearance: Appearance::Light, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0xd9d9d9ff).into(), + border_variant: rgba(0xd9d9d9ff).into(), + border_focused: rgba(0xd9d9d9ff).into(), + border_disabled: rgba(0xd9d9d9ff).into(), + border_selected: rgba(0xd9d9d9ff).into(), + border_transparent: rgba(0xd9d9d9ff).into(), + elevated_surface_background: rgba(0xf0f0f0ff).into(), + surface_background: rgba(0xf0f0f0ff).into(), + background: rgba(0xfbfbfbff).into(), + element_background: rgba(0x29a298ff).into(), + element_hover: rgba(0xe8e8ecff).into(), + element_active: rgba(0xe0e1e6ff).into(), + element_selected: rgba(0xe0e1e6ff).into(), + element_disabled: rgba(0x0000320f).into(), + element_placeholder: rgba(0x60646cff).into(), + element_drop_target: rgba(0x008bff0b).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0xe8e8ecff).into(), + ghost_element_active: rgba(0xe0e1e6ff).into(), + ghost_element_selected: rgba(0xe0e1e6ff).into(), + ghost_element_disabled: rgba(0x0000320f).into(), + text: rgba(0x403f53ff).into(), + text_muted: rgba(0x60646cff).into(), + text_placeholder: rgba(0x80838dff).into(), + text_disabled: rgba(0x8b8d98ff).into(), + text_accent: rgba(0x0c73ceff).into(), + icon: rgba(0x60646cff).into(), + icon_muted: rgba(0x80838dff).into(), + icon_disabled: rgba(0x8b8d98ff).into(), + icon_placeholder: rgba(0x80838dff).into(), + icon_accent: rgba(0x0c73ceff).into(), + status_bar_background: rgba(0xf9f9fbff).into(), + title_bar_background: rgba(0xf9f9fbff).into(), + toolbar_background: rgba(0xfcfcfdff).into(), + tab_bar_background: rgba(0xf9f9fbff).into(), + tab_inactive_background: rgba(0xf0f0f0ff).into(), + tab_active_background: rgba(0xf6f6f6ff).into(), + editor_background: rgba(0xfcfcfdff).into(), + editor_subheader_background: rgba(0xf9f9fbff).into(), + editor_active_line: rgba(0x0000320f).into(), + terminal_background: rgba(0xf6f6f6ff).into(), + terminal_ansi_bright_black: rgba(0x403f53ff).into(), + terminal_ansi_bright_red: rgba(0xde3c3aff).into(), + terminal_ansi_bright_green: rgba(0x07916aff).into(), + terminal_ansi_bright_yellow: rgba(0xdaa900ff).into(), + terminal_ansi_bright_blue: rgba(0x278dd7ff).into(), + terminal_ansi_bright_magenta: rgba(0xd64289ff).into(), + terminal_ansi_bright_cyan: rgba(0x29a298ff).into(), + terminal_ansi_bright_white: rgba(0xf0f0f0ff).into(), + terminal_ansi_black: rgba(0x403f53ff).into(), + terminal_ansi_red: rgba(0xde3c3aff).into(), + terminal_ansi_green: rgba(0x07916aff).into(), + terminal_ansi_yellow: rgba(0xe0ae01ff).into(), + terminal_ansi_blue: rgba(0x278dd7ff).into(), + terminal_ansi_magenta: rgba(0xd64289ff).into(), + terminal_ansi_cyan: rgba(0x29a298ff).into(), + terminal_ansi_white: rgba(0xf0f0f0ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ], + scales: default_color_scales(), + } +} diff --git a/crates/theme2/src/themes/nord.rs b/crates/theme2/src/themes/nord.rs index f5db8a9be6..953ee1d0da 100644 --- a/crates/theme2/src/themes/nord.rs +++ b/crates/theme2/src/themes/nord.rs @@ -7,11 +7,11 @@ use crate::{ pub fn nord() -> ThemeFamily { ThemeFamily { - id: "63407887-c052-4dd4-b781-e6194ddcbead".into(), + id: "dcd03133-f540-47e7-9360-91bb1c94d16e".into(), name: "Nord".into(), author: "Sven Greb (svengreb)".into(), themes: vec![ThemeVariant { - id: "27d48816-e82b-4285-a615-7a970d51b4a0".into(), + id: "ed7e8c08-321a-41f0-bd22-ca92c0b42e0e".into(), name: "Nord".into(), appearance: Appearance::Dark, styles: ThemeStyles { diff --git a/crates/theme2/src/themes/notctis.rs b/crates/theme2/src/themes/notctis.rs index 7f68cf1da4..d11463ea42 100644 --- a/crates/theme2/src/themes/notctis.rs +++ b/crates/theme2/src/themes/notctis.rs @@ -7,12 +7,12 @@ use crate::{ pub fn notctis() -> ThemeFamily { ThemeFamily { - id: "7cd79bb0-ffd7-48b5-b104-a6c171161a1b".into(), + id: "077650e4-c11f-4cb5-96ec-73bc74923e95".into(), name: "Notctis".into(), author: "Liviu Schera (liviuschera)".into(), themes: vec![ ThemeVariant { - id: "66251405-0342-4f10-849c-b81fe33009aa".into(), + id: "47135df9-e9b5-480c-a71b-c85052b8ff93".into(), name: "Noctis Azureus".into(), appearance: Appearance::Dark, styles: ThemeStyles { @@ -170,7 +170,7 @@ pub fn notctis() -> ThemeFamily { }, }, ThemeVariant { - id: "3717c8d5-deb9-4551-ac9b-12cf37c5af11".into(), + id: "5a3842b1-2273-47ce-ab82-4179842362b1".into(), name: "Noctis Bordo".into(), appearance: Appearance::Dark, styles: ThemeStyles { @@ -328,7 +328,7 @@ pub fn notctis() -> ThemeFamily { }, }, ThemeVariant { - id: "9143cedc-71a4-4005-9b4d-ed23c4ac83fc".into(), + id: "a83c02b3-23f3-496b-8644-57df3314601e".into(), name: "Noctus Hibernus".into(), appearance: Appearance::Light, styles: ThemeStyles { @@ -486,7 +486,7 @@ pub fn notctis() -> ThemeFamily { }, }, ThemeVariant { - id: "82f6e468-a5de-4e3a-ba13-4ced22ac819b".into(), + id: "bda85aea-2260-455a-959a-c03b0a62b8f4".into(), name: "Noctis Lilac".into(), appearance: Appearance::Dark, styles: ThemeStyles { @@ -644,7 +644,7 @@ pub fn notctis() -> ThemeFamily { }, }, ThemeVariant { - id: "655fe060-e62c-4582-a9d2-87ab9f8f21b7".into(), + id: "7720f487-6b09-4bb6-9add-272b030c013f".into(), name: "Noctis Lux".into(), appearance: Appearance::Light, styles: ThemeStyles { @@ -802,7 +802,7 @@ pub fn notctis() -> ThemeFamily { }, }, ThemeVariant { - id: "b8540210-1aff-4d72-bb65-040b2c575e35".into(), + id: "51dfe842-b4e2-4d95-a306-8e579a3bb51c".into(), name: "Noctis Minimus".into(), appearance: Appearance::Dark, styles: ThemeStyles { @@ -960,7 +960,7 @@ pub fn notctis() -> ThemeFamily { }, }, ThemeVariant { - id: "70577f71-a351-43c6-9b64-7a5f95ef0ad2".into(), + id: "75a67a53-afbe-4073-a7c0-85a40b56c2cc".into(), name: "Noctis".into(), appearance: Appearance::Dark, styles: ThemeStyles { @@ -1118,7 +1118,7 @@ pub fn notctis() -> ThemeFamily { }, }, ThemeVariant { - id: "abcd25b0-8740-430f-a7e0-0b193ef1c271".into(), + id: "0202afff-5703-473b-b6b6-e86ac3a70718".into(), name: "Noctis Obscuro".into(), appearance: Appearance::Dark, styles: ThemeStyles { @@ -1276,7 +1276,7 @@ pub fn notctis() -> ThemeFamily { }, }, ThemeVariant { - id: "86b6a2b4-69b9-40d5-b078-3feb93d0786d".into(), + id: "213fd750-27ad-4762-8891-08282ed316c7".into(), name: "Noctis Sereno".into(), appearance: Appearance::Dark, styles: ThemeStyles { @@ -1434,7 +1434,7 @@ pub fn notctis() -> ThemeFamily { }, }, ThemeVariant { - id: "aa50141c-1c64-4773-980f-e4bf062f893f".into(), + id: "0cc2c841-1c01-40a7-8396-1234dd077ede".into(), name: "Noctis Uva".into(), appearance: Appearance::Dark, styles: ThemeStyles { @@ -1592,7 +1592,7 @@ pub fn notctis() -> ThemeFamily { }, }, ThemeVariant { - id: "ce4ba03d-5a76-4e6c-9b45-f7c2c2fa3b41".into(), + id: "090a97c7-ad25-4a35-96e6-2fce5e471e6b".into(), name: "Noctis Viola".into(), appearance: Appearance::Dark, styles: ThemeStyles { diff --git a/crates/theme2/src/themes/palenight.rs b/crates/theme2/src/themes/palenight.rs new file mode 100644 index 0000000000..836ec680cd --- /dev/null +++ b/crates/theme2/src/themes/palenight.rs @@ -0,0 +1,491 @@ +use gpui::rgba; + +use crate::{ + default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, + SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, +}; + +pub fn palenight() -> ThemeFamily { + ThemeFamily { + id: "3187cd2f-29da-4bde-9621-83016df3b393".into(), + name: "Palenight".into(), + author: "Olaolu Olawuyi (whizkydee)".into(), + themes: vec![ + ThemeVariant { + id: "0eaa3098-3aa2-4b8e-b1df-92d9ebd9a0b8".into(), + name: "Palenight".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x282b3bff).into(), + border_variant: rgba(0x282b3bff).into(), + border_focused: rgba(0x282b3bff).into(), + border_disabled: rgba(0x282b3bff).into(), + border_selected: rgba(0x282b3bff).into(), + border_transparent: rgba(0x282b3bff).into(), + elevated_surface_background: rgba(0x292c3eff).into(), + surface_background: rgba(0x292c3eff).into(), + background: rgba(0x292c3eff).into(), + element_background: rgba(0x7d56c1cc).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xffffffff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x31364aff).into(), + tab_active_background: rgba(0x292c3eff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x111113ff).into(), + terminal_ansi_bright_black: rgba(0x676e95ff).into(), + terminal_ansi_bright_red: rgba(0xff5571ff).into(), + terminal_ansi_bright_green: rgba(0xc3e88dff).into(), + terminal_ansi_bright_yellow: rgba(0xffcb6bff).into(), + terminal_ansi_bright_blue: rgba(0x82aaffff).into(), + terminal_ansi_bright_magenta: rgba(0xc792eaff).into(), + terminal_ansi_bright_cyan: rgba(0x89ddffff).into(), + terminal_ansi_bright_white: rgba(0xffffffff).into(), + terminal_ansi_black: rgba(0x676e95ff).into(), + terminal_ansi_red: rgba(0xff5571ff).into(), + terminal_ansi_green: rgba(0xa9c77dff).into(), + terminal_ansi_yellow: rgba(0xffcb6bff).into(), + terminal_ansi_blue: rgba(0x82aaffff).into(), + terminal_ansi_magenta: rgba(0xc792eaff).into(), + terminal_ansi_cyan: rgba(0x89ddffff).into(), + terminal_ansi_white: rgba(0xffffffff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "b6a27c72-c5b1-431b-8bfe-29e33dbcb337".into(), + name: "Palenight Operator".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x282b3bff).into(), + border_variant: rgba(0x282b3bff).into(), + border_focused: rgba(0x282b3bff).into(), + border_disabled: rgba(0x282b3bff).into(), + border_selected: rgba(0x282b3bff).into(), + border_transparent: rgba(0x282b3bff).into(), + elevated_surface_background: rgba(0x292c3eff).into(), + surface_background: rgba(0x292c3eff).into(), + background: rgba(0x292c3eff).into(), + element_background: rgba(0x7d56c1cc).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xffffffff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x31364aff).into(), + tab_active_background: rgba(0x292c3eff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x111113ff).into(), + terminal_ansi_bright_black: rgba(0x676e95ff).into(), + terminal_ansi_bright_red: rgba(0xff5571ff).into(), + terminal_ansi_bright_green: rgba(0xc3e88dff).into(), + terminal_ansi_bright_yellow: rgba(0xffcb6bff).into(), + terminal_ansi_bright_blue: rgba(0x82aaffff).into(), + terminal_ansi_bright_magenta: rgba(0xc792eaff).into(), + terminal_ansi_bright_cyan: rgba(0x89ddffff).into(), + terminal_ansi_bright_white: rgba(0xffffffff).into(), + terminal_ansi_black: rgba(0x676e95ff).into(), + terminal_ansi_red: rgba(0xff5571ff).into(), + terminal_ansi_green: rgba(0xa9c77dff).into(), + terminal_ansi_yellow: rgba(0xffcb6bff).into(), + terminal_ansi_blue: rgba(0x82aaffff).into(), + terminal_ansi_magenta: rgba(0xc792eaff).into(), + terminal_ansi_cyan: rgba(0x89ddffff).into(), + terminal_ansi_white: rgba(0xffffffff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "4015bf85-061c-45ff-81ba-a31f017aac83".into(), + name: "Palenight (Mild Contrast)".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x2c2f40ff).into(), + border_variant: rgba(0x2c2f40ff).into(), + border_focused: rgba(0x2c2f40ff).into(), + border_disabled: rgba(0x2c2f40ff).into(), + border_selected: rgba(0x2c2f40ff).into(), + border_transparent: rgba(0x2c2f40ff).into(), + elevated_surface_background: rgba(0x25283aff).into(), + surface_background: rgba(0x25283aff).into(), + background: rgba(0x292c3eff).into(), + element_background: rgba(0x7d56c1cc).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xffffffff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x31364aff).into(), + tab_active_background: rgba(0x25283aff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x111113ff).into(), + terminal_ansi_bright_black: rgba(0x676e95ff).into(), + terminal_ansi_bright_red: rgba(0xff5571ff).into(), + terminal_ansi_bright_green: rgba(0xc3e88dff).into(), + terminal_ansi_bright_yellow: rgba(0xffcb6bff).into(), + terminal_ansi_bright_blue: rgba(0x82aaffff).into(), + terminal_ansi_bright_magenta: rgba(0xc792eaff).into(), + terminal_ansi_bright_cyan: rgba(0x89ddffff).into(), + terminal_ansi_bright_white: rgba(0xffffffff).into(), + terminal_ansi_black: rgba(0x676e95ff).into(), + terminal_ansi_red: rgba(0xff5571ff).into(), + terminal_ansi_green: rgba(0xa9c77dff).into(), + terminal_ansi_yellow: rgba(0xffcb6bff).into(), + terminal_ansi_blue: rgba(0x82aaffff).into(), + terminal_ansi_magenta: rgba(0xc792eaff).into(), + terminal_ansi_cyan: rgba(0x89ddffff).into(), + terminal_ansi_white: rgba(0xffffffff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ], + scales: default_color_scales(), + } +} diff --git a/crates/theme2/src/themes/rose_pine.rs b/crates/theme2/src/themes/rose_pine.rs new file mode 100644 index 0000000000..b367d6196b --- /dev/null +++ b/crates/theme2/src/themes/rose_pine.rs @@ -0,0 +1,491 @@ +use gpui::rgba; + +use crate::{ + default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, + SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, +}; + +pub fn rose_pine() -> ThemeFamily { + ThemeFamily { + id: "48c308b9-7dbe-4a52-b935-0b44d9dac00d".into(), + name: "Rose Pine".into(), + author: "Rosé Pine".into(), + themes: vec![ + ThemeVariant { + id: "c2832e85-20cb-4a13-924f-026e68123068".into(), + name: "Rose Pine".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x000000ff).into(), + border_variant: rgba(0x000000ff).into(), + border_focused: rgba(0x000000ff).into(), + border_disabled: rgba(0x000000ff).into(), + border_selected: rgba(0x000000ff).into(), + border_transparent: rgba(0x000000ff).into(), + elevated_surface_background: rgba(0x1f1d2eff).into(), + surface_background: rgba(0x1f1d2eff).into(), + background: rgba(0x191724ff).into(), + element_background: rgba(0xebbcbaff).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xe0def4ff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x000000ff).into(), + tab_active_background: rgba(0x6e6a861a).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x111113ff).into(), + terminal_ansi_bright_black: rgba(0x908caaff).into(), + terminal_ansi_bright_red: rgba(0xeb6f92ff).into(), + terminal_ansi_bright_green: rgba(0x30738fff).into(), + terminal_ansi_bright_yellow: rgba(0xf5c177ff).into(), + terminal_ansi_bright_blue: rgba(0x9ccfd8ff).into(), + terminal_ansi_bright_magenta: rgba(0xc4a7e7ff).into(), + terminal_ansi_bright_cyan: rgba(0xebbcbaff).into(), + terminal_ansi_bright_white: rgba(0xe0def4ff).into(), + terminal_ansi_black: rgba(0x26233aff).into(), + terminal_ansi_red: rgba(0xeb6f92ff).into(), + terminal_ansi_green: rgba(0x30738fff).into(), + terminal_ansi_yellow: rgba(0xf5c177ff).into(), + terminal_ansi_blue: rgba(0x9ccfd8ff).into(), + terminal_ansi_magenta: rgba(0xc4a7e7ff).into(), + terminal_ansi_cyan: rgba(0xebbcbaff).into(), + terminal_ansi_white: rgba(0xe0def4ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "3f6c3263-86f4-4a0e-92a6-144984aa2d38".into(), + name: "Rose Moon".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x000000ff).into(), + border_variant: rgba(0x000000ff).into(), + border_focused: rgba(0x000000ff).into(), + border_disabled: rgba(0x000000ff).into(), + border_selected: rgba(0x000000ff).into(), + border_transparent: rgba(0x000000ff).into(), + elevated_surface_background: rgba(0x2a273eff).into(), + surface_background: rgba(0x2a273eff).into(), + background: rgba(0x232136ff).into(), + element_background: rgba(0xea9a97ff).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xe0def4ff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x000000ff).into(), + tab_active_background: rgba(0x817c9c14).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x111113ff).into(), + terminal_ansi_bright_black: rgba(0x908caaff).into(), + terminal_ansi_bright_red: rgba(0xeb6f92ff).into(), + terminal_ansi_bright_green: rgba(0x3d8fb0ff).into(), + terminal_ansi_bright_yellow: rgba(0xf5c177ff).into(), + terminal_ansi_bright_blue: rgba(0x9ccfd8ff).into(), + terminal_ansi_bright_magenta: rgba(0xc4a7e7ff).into(), + terminal_ansi_bright_cyan: rgba(0xea9a97ff).into(), + terminal_ansi_bright_white: rgba(0xe0def4ff).into(), + terminal_ansi_black: rgba(0x393552ff).into(), + terminal_ansi_red: rgba(0xeb6f92ff).into(), + terminal_ansi_green: rgba(0x3d8fb0ff).into(), + terminal_ansi_yellow: rgba(0xf5c177ff).into(), + terminal_ansi_blue: rgba(0x9ccfd8ff).into(), + terminal_ansi_magenta: rgba(0xc4a7e7ff).into(), + terminal_ansi_cyan: rgba(0xea9a97ff).into(), + terminal_ansi_white: rgba(0xe0def4ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "d171cda6-de3b-4528-8559-cd8fb71b2e7c".into(), + name: "Rose Pine Dawn".into(), + appearance: Appearance::Light, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x000000ff).into(), + border_variant: rgba(0x000000ff).into(), + border_focused: rgba(0x000000ff).into(), + border_disabled: rgba(0x000000ff).into(), + border_selected: rgba(0x000000ff).into(), + border_transparent: rgba(0x000000ff).into(), + elevated_surface_background: rgba(0xfffaf3ff).into(), + surface_background: rgba(0xfffaf3ff).into(), + background: rgba(0xfaf4edff).into(), + element_background: rgba(0xd7827dff).into(), + element_hover: rgba(0xe8e8ecff).into(), + element_active: rgba(0xe0e1e6ff).into(), + element_selected: rgba(0xe0e1e6ff).into(), + element_disabled: rgba(0x0000320f).into(), + element_placeholder: rgba(0x60646cff).into(), + element_drop_target: rgba(0x008bff0b).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0xe8e8ecff).into(), + ghost_element_active: rgba(0xe0e1e6ff).into(), + ghost_element_selected: rgba(0xe0e1e6ff).into(), + ghost_element_disabled: rgba(0x0000320f).into(), + text: rgba(0x575279ff).into(), + text_muted: rgba(0x60646cff).into(), + text_placeholder: rgba(0x80838dff).into(), + text_disabled: rgba(0x8b8d98ff).into(), + text_accent: rgba(0x0c73ceff).into(), + icon: rgba(0x60646cff).into(), + icon_muted: rgba(0x80838dff).into(), + icon_disabled: rgba(0x8b8d98ff).into(), + icon_placeholder: rgba(0x80838dff).into(), + icon_accent: rgba(0x0c73ceff).into(), + status_bar_background: rgba(0xf9f9fbff).into(), + title_bar_background: rgba(0xf9f9fbff).into(), + toolbar_background: rgba(0xfcfcfdff).into(), + tab_bar_background: rgba(0xf9f9fbff).into(), + tab_inactive_background: rgba(0x000000ff).into(), + tab_active_background: rgba(0x6e6a860d).into(), + editor_background: rgba(0xfcfcfdff).into(), + editor_subheader_background: rgba(0xf9f9fbff).into(), + editor_active_line: rgba(0x0000320f).into(), + terminal_background: rgba(0xfcfcfdff).into(), + terminal_ansi_bright_black: rgba(0x797593ff).into(), + terminal_ansi_bright_red: rgba(0xb3627aff).into(), + terminal_ansi_bright_green: rgba(0x276983ff).into(), + terminal_ansi_bright_yellow: rgba(0xea9d34ff).into(), + terminal_ansi_bright_blue: rgba(0x55949fff).into(), + terminal_ansi_bright_magenta: rgba(0x9079a9ff).into(), + terminal_ansi_bright_cyan: rgba(0xd7827dff).into(), + terminal_ansi_bright_white: rgba(0x575279ff).into(), + terminal_ansi_black: rgba(0xf2e9e1ff).into(), + terminal_ansi_red: rgba(0xb3627aff).into(), + terminal_ansi_green: rgba(0x276983ff).into(), + terminal_ansi_yellow: rgba(0xea9d34ff).into(), + terminal_ansi_blue: rgba(0x55949fff).into(), + terminal_ansi_magenta: rgba(0x9079a9ff).into(), + terminal_ansi_cyan: rgba(0xd7827dff).into(), + terminal_ansi_white: rgba(0x575279ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ], + scales: default_color_scales(), + } +} diff --git a/crates/theme2/src/themes/solarized.rs b/crates/theme2/src/themes/solarized.rs new file mode 100644 index 0000000000..d160cfa652 --- /dev/null +++ b/crates/theme2/src/themes/solarized.rs @@ -0,0 +1,333 @@ +use gpui::rgba; + +use crate::{ + default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, + SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, +}; + +pub fn solarized() -> ThemeFamily { + ThemeFamily { + id: "9a6f18c9-520f-46ec-9bfb-a7ee73508139".into(), + name: "Solarized".into(), + author: "Ethan Schoonover (altercation)".into(), + themes: vec![ + ThemeVariant { + id: "74003db2-7f9a-4d26-8815-020c796bb551".into(), + name: "Solarized Dark".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x003847ff).into(), + border_variant: rgba(0x003847ff).into(), + border_focused: rgba(0x003847ff).into(), + border_disabled: rgba(0x003847ff).into(), + border_selected: rgba(0x003847ff).into(), + border_transparent: rgba(0x003847ff).into(), + elevated_surface_background: rgba(0x18191bff).into(), + surface_background: rgba(0x18191bff).into(), + background: rgba(0x002a35ff).into(), + element_background: rgba(0x29a19899).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xedeef0ff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x003f51ff).into(), + tab_active_background: rgba(0x002a36ff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x111113ff).into(), + terminal_ansi_bright_black: rgba(0x586e75ff).into(), + terminal_ansi_bright_red: rgba(0xcb4b15ff).into(), + terminal_ansi_bright_green: rgba(0x859900ff).into(), + terminal_ansi_bright_yellow: rgba(0x657b83ff).into(), + terminal_ansi_bright_blue: rgba(0x839496ff).into(), + terminal_ansi_bright_magenta: rgba(0x6c71c4ff).into(), + terminal_ansi_bright_cyan: rgba(0x93a1a1ff).into(), + terminal_ansi_bright_white: rgba(0x839496ff).into(), + terminal_ansi_black: rgba(0x063642ff).into(), + terminal_ansi_red: rgba(0xdc312eff).into(), + terminal_ansi_green: rgba(0x859900ff).into(), + terminal_ansi_yellow: rgba(0xb58800ff).into(), + terminal_ansi_blue: rgba(0x258ad2ff).into(), + terminal_ansi_magenta: rgba(0xd33582ff).into(), + terminal_ansi_cyan: rgba(0x29a198ff).into(), + terminal_ansi_white: rgba(0x839496ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ThemeVariant { + id: "43be149b-2604-4eb2-a9ce-c8f902ab3bb3".into(), + name: "Solarized Light".into(), + appearance: Appearance::Light, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0xddd6c1ff).into(), + border_variant: rgba(0xddd6c1ff).into(), + border_focused: rgba(0xddd6c1ff).into(), + border_disabled: rgba(0xddd6c1ff).into(), + border_selected: rgba(0xddd6c1ff).into(), + border_transparent: rgba(0xddd6c1ff).into(), + elevated_surface_background: rgba(0xf9f9fbff).into(), + surface_background: rgba(0xf9f9fbff).into(), + background: rgba(0xfdf6e3ff).into(), + element_background: rgba(0xab9d56ff).into(), + element_hover: rgba(0xe8e8ecff).into(), + element_active: rgba(0xe0e1e6ff).into(), + element_selected: rgba(0xe0e1e6ff).into(), + element_disabled: rgba(0x0000320f).into(), + element_placeholder: rgba(0x60646cff).into(), + element_drop_target: rgba(0x008bff0b).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0xe8e8ecff).into(), + ghost_element_active: rgba(0xe0e1e6ff).into(), + ghost_element_selected: rgba(0xe0e1e6ff).into(), + ghost_element_disabled: rgba(0x0000320f).into(), + text: rgba(0x1c2024ff).into(), + text_muted: rgba(0x60646cff).into(), + text_placeholder: rgba(0x80838dff).into(), + text_disabled: rgba(0x8b8d98ff).into(), + text_accent: rgba(0x0c73ceff).into(), + icon: rgba(0x60646cff).into(), + icon_muted: rgba(0x80838dff).into(), + icon_disabled: rgba(0x8b8d98ff).into(), + icon_placeholder: rgba(0x80838dff).into(), + icon_accent: rgba(0x0c73ceff).into(), + status_bar_background: rgba(0xf9f9fbff).into(), + title_bar_background: rgba(0xf9f9fbff).into(), + toolbar_background: rgba(0xfcfcfdff).into(), + tab_bar_background: rgba(0xf9f9fbff).into(), + tab_inactive_background: rgba(0xd3cbb7ff).into(), + tab_active_background: rgba(0xfdf6e3ff).into(), + editor_background: rgba(0xfcfcfdff).into(), + editor_subheader_background: rgba(0xf9f9fbff).into(), + editor_active_line: rgba(0x0000320f).into(), + terminal_background: rgba(0xfcfcfdff).into(), + terminal_ansi_bright_black: rgba(0x657b83ff).into(), + terminal_ansi_bright_red: rgba(0xcb4b15ff).into(), + terminal_ansi_bright_green: rgba(0x859900ff).into(), + terminal_ansi_bright_yellow: rgba(0x657b83ff).into(), + terminal_ansi_bright_blue: rgba(0x839496ff).into(), + terminal_ansi_bright_magenta: rgba(0x6c71c4ff).into(), + terminal_ansi_bright_cyan: rgba(0x93a1a1ff).into(), + terminal_ansi_bright_white: rgba(0xeee8d5ff).into(), + terminal_ansi_black: rgba(0x657b83ff).into(), + terminal_ansi_red: rgba(0xdc312eff).into(), + terminal_ansi_green: rgba(0x859900ff).into(), + terminal_ansi_yellow: rgba(0xb58800ff).into(), + terminal_ansi_blue: rgba(0x258ad2ff).into(), + terminal_ansi_magenta: rgba(0xd33582ff).into(), + terminal_ansi_cyan: rgba(0x29a198ff).into(), + terminal_ansi_white: rgba(0xeee8d5ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }, + ], + scales: default_color_scales(), + } +} diff --git a/crates/theme2/src/themes/synthwave_84.rs b/crates/theme2/src/themes/synthwave_84.rs new file mode 100644 index 0000000000..cfe81bef42 --- /dev/null +++ b/crates/theme2/src/themes/synthwave_84.rs @@ -0,0 +1,173 @@ +use gpui::rgba; + +use crate::{ + default_color_scales, Appearance, GitStatusColors, PlayerColor, PlayerColors, StatusColors, + SyntaxTheme, SystemColors, ThemeColors, ThemeFamily, ThemeStyles, ThemeVariant, +}; + +pub fn synthwave_84() -> ThemeFamily { + ThemeFamily { + id: "5e0f0cd5-5522-45cf-a652-caeb140eb3de".into(), + name: "Synthwave 84".into(), + author: "Robb Owen (robb0wen)".into(), + themes: vec![ThemeVariant { + id: "83110d9e-dbf0-4f36-9a4c-6b396ce9a5a4".into(), + name: "Synthwave 84".into(), + appearance: Appearance::Dark, + styles: ThemeStyles { + system: SystemColors { + transparent: rgba(0x00000000).into(), + mac_os_traffic_light_red: rgba(0xec6b5fff).into(), + mac_os_traffic_light_yellow: rgba(0xf3bf4dff).into(), + mac_os_traffic_light_green: rgba(0x61c454ff).into(), + }, + colors: ThemeColors { + border: rgba(0x363a3fff).into(), + border_variant: rgba(0x2e3135ff).into(), + border_focused: rgba(0x004073ff).into(), + border_disabled: rgba(0x212225ff).into(), + border_selected: rgba(0x004073ff).into(), + border_transparent: rgba(0x00000000).into(), + elevated_surface_background: rgba(0x18191bff).into(), + surface_background: rgba(0x18191bff).into(), + background: rgba(0x252334ff).into(), + element_background: rgba(0x614d85ff).into(), + element_hover: rgba(0x272a2dff).into(), + element_active: rgba(0x2e3135ff).into(), + element_selected: rgba(0x2e3135ff).into(), + element_disabled: rgba(0xddeaf814).into(), + element_placeholder: rgba(0xb0b4baff).into(), + element_drop_target: rgba(0x1166fb18).into(), + ghost_element_background: rgba(0x00000000).into(), + ghost_element_hover: rgba(0x272a2dff).into(), + ghost_element_active: rgba(0x2e3135ff).into(), + ghost_element_selected: rgba(0x2e3135ff).into(), + ghost_element_disabled: rgba(0xddeaf814).into(), + text: rgba(0xffffffff).into(), + text_muted: rgba(0xb0b4baff).into(), + text_placeholder: rgba(0x767a83ff).into(), + text_disabled: rgba(0x696e77ff).into(), + text_accent: rgba(0x6fb8ffff).into(), + icon: rgba(0xb0b4baff).into(), + icon_muted: rgba(0x767a83ff).into(), + icon_disabled: rgba(0x696e77ff).into(), + icon_placeholder: rgba(0x767a83ff).into(), + icon_accent: rgba(0x6fb8ffff).into(), + status_bar_background: rgba(0x18191bff).into(), + title_bar_background: rgba(0x18191bff).into(), + toolbar_background: rgba(0x111113ff).into(), + tab_bar_background: rgba(0x18191bff).into(), + tab_inactive_background: rgba(0x252334ff).into(), + tab_active_background: rgba(0x111113ff).into(), + editor_background: rgba(0x111113ff).into(), + editor_subheader_background: rgba(0x18191bff).into(), + editor_active_line: rgba(0xddeaf814).into(), + terminal_background: rgba(0x111113ff).into(), + terminal_ansi_bright_black: rgba(0x000000e6).into(), + terminal_ansi_bright_red: rgba(0xfe444fff).into(), + terminal_ansi_bright_green: rgba(0x71f1b7ff).into(), + terminal_ansi_bright_yellow: rgba(0xfede5cff).into(), + terminal_ansi_bright_blue: rgba(0x02edf9ff).into(), + terminal_ansi_bright_magenta: rgba(0xff7ddaff).into(), + terminal_ansi_bright_cyan: rgba(0x02edf9ff).into(), + terminal_ansi_bright_white: rgba(0xb0b4baff).into(), + terminal_ansi_black: rgba(0x000000f2).into(), + terminal_ansi_red: rgba(0xfe444fff).into(), + terminal_ansi_green: rgba(0x71f1b7ff).into(), + terminal_ansi_yellow: rgba(0xf3e70fff).into(), + terminal_ansi_blue: rgba(0x02edf9ff).into(), + terminal_ansi_magenta: rgba(0xff7ddaff).into(), + terminal_ansi_cyan: rgba(0x02edf9ff).into(), + terminal_ansi_white: rgba(0xedeef0ff).into(), + }, + status: StatusColors { + conflict: rgba(0xff9592ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + error: rgba(0xff9592ff).into(), + hidden: rgba(0xb0b4baff).into(), + ignored: rgba(0xb0b4baff).into(), + info: rgba(0x6fb8ffff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + success: rgba(0x70cf82ff).into(), + warning: rgba(0xf5e147ff).into(), + }, + git: GitStatusColors { + conflict: rgba(0xffa057ff).into(), + created: rgba(0x70cf82ff).into(), + deleted: rgba(0xff9592ff).into(), + ignored: rgba(0xb0b4baff).into(), + modified: rgba(0xf5e147ff).into(), + renamed: rgba(0x6fb8ffff).into(), + }, + player: PlayerColors(vec![ + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + PlayerColor { + cursor: rgba(0x00000000).into(), + background: rgba(0x00000000).into(), + selection: rgba(0x00000000).into(), + }, + ]), + syntax: SyntaxTheme { + highlights: vec![ + ("attribute".into(), rgba(0x4ccce6ff).into()), + ("boolean".into(), rgba(0xff977dff).into()), + ("comment".into(), rgba(0xb0b4baff).into()), + ("comment.doc".into(), rgba(0xe0dffeff).into()), + ("constant".into(), rgba(0x8c323aff).into()), + ("constructor".into(), rgba(0x8c323aff).into()), + ("embedded".into(), rgba(0x8c323aff).into()), + ("emphasis".into(), rgba(0x8c323aff).into()), + ("emphasis.strong".into(), rgba(0x8c323aff).into()), + ("enum".into(), rgba(0x8c323aff).into()), + ("function".into(), rgba(0x8c323aff).into()), + ("hint".into(), rgba(0x8c323aff).into()), + ("keyword".into(), rgba(0xffa057ff).into()), + ("label".into(), rgba(0x8c323aff).into()), + ("link_text".into(), rgba(0x8c323aff).into()), + ("link_uri".into(), rgba(0x8c323aff).into()), + ("number".into(), rgba(0x8c323aff).into()), + ("operator".into(), rgba(0x8c323aff).into()), + ("predictive".into(), rgba(0x8c323aff).into()), + ("preproc".into(), rgba(0x8c323aff).into()), + ("primary".into(), rgba(0x8c323aff).into()), + ("property".into(), rgba(0x8c323aff).into()), + ("punctuation".into(), rgba(0xb0b4baff).into()), + ("punctuation.bracket".into(), rgba(0xb0b4baff).into()), + ("punctuation.delimiter".into(), rgba(0xb0b4baff).into()), + ("punctuation.list_marker".into(), rgba(0x6fb8ffff).into()), + ("punctuation.special".into(), rgba(0x8c323aff).into()), + ("string".into(), rgba(0x1ed8a3ff).into()), + ("string.escape".into(), rgba(0x8c323aff).into()), + ("string.regex".into(), rgba(0xff977dff).into()), + ("string.special".into(), rgba(0x8c323aff).into()), + ("string.special.symbol".into(), rgba(0x8c323aff).into()), + ("tag".into(), rgba(0x8c323aff).into()), + ("text.literal".into(), rgba(0x8c323aff).into()), + ("title".into(), rgba(0x8c323aff).into()), + ("type".into(), rgba(0x8c323aff).into()), + ("variable".into(), rgba(0x8c323aff).into()), + ("variable.special".into(), rgba(0x8c323aff).into()), + ("variant".into(), rgba(0x8c323aff).into()), + ], + }, + }, + }], + scales: default_color_scales(), + } +} diff --git a/crates/theme_importer/src/main.rs b/crates/theme_importer/src/main.rs index 3fd2b71ac0..bd264bcb55 100644 --- a/crates/theme_importer/src/main.rs +++ b/crates/theme_importer/src/main.rs @@ -55,22 +55,6 @@ fn main() -> Result<()> { SimpleLogger::init(LevelFilter::Info, Default::default()).expect("could not initialize logger"); - let themes_output_path = PathBuf::from_str(OUT_PATH)?; - - if !themes_output_path.exists() { - println!("Creating directory: {:?}", themes_output_path); - fs::create_dir_all(&themes_output_path)?; - } - - // We create mod.rs at the beginning to prevent `mod themes;`/`pub use themes::*;` from being - // invalid in the theme crate root. - println!( - "Creating file: {:?}", - themes_output_path.join(format!("mod.rs")) - ); - - let mut mod_rs_file = File::create(themes_output_path.join(format!("mod.rs")))?; - println!("Loading themes source..."); let vscode_themes_path = PathBuf::from_str(SOURCE_PATH)?; if !vscode_themes_path.exists() { @@ -147,6 +131,15 @@ fn main() -> Result<()> { theme_families.push(theme_family); } + let themes_output_path = PathBuf::from_str(OUT_PATH)?; + + if !themes_output_path.exists() { + println!("Creating directory: {:?}", themes_output_path); + fs::create_dir_all(&themes_output_path)?; + } + + let mut mod_rs_file = File::create(themes_output_path.join(format!("mod.rs")))?; + let mut theme_modules = Vec::new(); for theme_family in theme_families { From 2931d32499875a90c5de7bb59321adb19c98cd0c Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Mon, 6 Nov 2023 16:00:57 -0500 Subject: [PATCH 75/76] Add a README for `theme_importer` --- crates/theme_importer/README.md | 124 ++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 crates/theme_importer/README.md diff --git a/crates/theme_importer/README.md b/crates/theme_importer/README.md new file mode 100644 index 0000000000..a610d694d7 --- /dev/null +++ b/crates/theme_importer/README.md @@ -0,0 +1,124 @@ +# Zed Theme Importer + +--- + +## Usage + +- `cargo run -p theme_importer` - Import the context of `assets/themes/src` + +--- + +## Troubleshooting + +As the importer generates rust files, you may need to manually do some cleanup in `registry.rs` and `themes/mod.rs` if you remove themes or delete the `themes` folder in the theme crate. + +--- + +## Required Structure + +To import a theme or series of themes 3 things are required: + +- `family.json`: A JSON file containing the theme family metadata and list of theme variants +- `{theme_name}.json`: One theme json for each theme variant +- `LICENSE`: A license file for the theme family + +### `family.json` + +#### `name` + +The name of the theme family. Avoid special characters. + +This will be used for the theme family directory name (lowercased) and the theme family name in the Zed UI. + +Good: + +- `Rose Pine` +- `Synthwave 84` +- `Monokai Solarized` + +Bad: + +- `Rosé Pine` +- `Synthwave '84` +- `Monokai (Solarized)` + +#### `author` + +The author of the theme family. This can be a name or a username. + +This will be used for the theme family author in the Zed UI. + +#### `themes` + +A list of theme variants. + +`appearance` can be either `light` or `dark`. This will impact which default fallback colors are used, and where the theme shows up in the Zed UI. + +### `{theme_name}.json` + +Each theme added to the family must have a corresponding JSON file. This JSON file can be obtained from the VSCode extensions folder (once you have installed it.) This is usually located at `~/.vscode/extensions` (on macOS). + +You can use `open ~/.vscode/extensions` to open the folder in Finder directly. + +Copy that json file into the theme family directory and tidy up the filenames as needed. + +### `LICENSE` + +A LICENSE file is required to import a theme family. Failing to provide a complete text license will cause it to be skipped when the import is run. + +If the theme only provices a license code (e.g. MIT, Apache 2.0, etc.) then put that code into the LICENSE file. + +If no license is provided, either contact the theme creator or don't add the theme. + +--- + +### Complete Example: + +An example family with multiple variants: + +```json +{ + "name": "Ayu", + // When both name and username are available + // prefer the `username (name)` format + "author": "dempfi (Ike Ku)", + "themes": [ + { + "name": "Ayu Light", + "file_name": "ayu-light.json", + "appearance": "light" + }, + { + "name": "Ayu Mirage", + "file_name": "ayu-mirage.json", + "appearance": "dark" + }, + { + "name": "Ayu Dark", + "file_name": "ayu-dark.json", + "appearance": "dark" + } + ] +} +``` + +An example single variant family: + +```json +{ + "name": "Andromeda", + "author": "Eliver Lara (EliverLara)", + "themes": [ + { + "name": "Andromeda", + "file_name": "andromeda.json", + "appearance": "dark" + }, + { + "name": "Andromeda Bordered", + "file_name": "andromeda-bordered.json", + "appearance": "dark" + } + ] +} +``` From eac7c3cea91fef3c0811751ba019ad89dc3b5474 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Mon, 6 Nov 2023 16:02:21 -0500 Subject: [PATCH 76/76] Update Cargo.toml --- crates/theme_importer/Cargo.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/crates/theme_importer/Cargo.toml b/crates/theme_importer/Cargo.toml index 443cc2e50b..1c86349e96 100644 --- a/crates/theme_importer/Cargo.toml +++ b/crates/theme_importer/Cargo.toml @@ -2,6 +2,7 @@ name = "theme_importer" version = "0.1.0" edition = "2021" +publish = false # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html