WIP – Add Syntax themes to importer

Nate Butler and Marshall Bowers created

Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>

Change summary

crates/theme2/src/registry.rs              |   2 
crates/theme2/src/theme2.rs                |   4 
crates/theme2/src/themes/andromeda.rs      |  22 
crates/theme2/src/themes/ayu.rs            |  51 +
crates/theme2/src/themes/dracula.rs        |  77 --
crates/theme2/src/themes/gruvbox.rs        | 331 ------------
crates/theme2/src/themes/mod.rs            |  56 -
crates/theme2/src/themes/night_owl.rs      | 130 ----
crates/theme2/src/themes/nord.rs           |  77 --
crates/theme2/src/themes/notctis.rs        | 619 -----------------------
crates/theme2/src/themes/palenight.rs      | 181 ------
crates/theme2/src/themes/rose_pine.rs      | 184 ------
crates/theme2/src/themes/solarized.rs      | 118 ----
crates/theme2/src/themes/synthwave_84.rs   |  62 -
crates/theme2/src/user_theme.rs            |  18 
crates/theme_importer/src/main.rs          |   1 
crates/theme_importer/src/theme_printer.rs |  31 +
crates/theme_importer/src/vscode.rs        |  21 
crates/theme_importer/src/vscode_syntax.rs | 261 ++++++++++
19 files changed, 524 insertions(+), 1,722 deletions(-)

Detailed changes

crates/theme2/src/registry.rs πŸ”—

@@ -83,7 +83,7 @@ impl Default for ThemeRegistry {
         };
 
         this.insert_theme_families([zed_pro_family()]);
-        this.insert_user_theme_familes(crate::all_user_themes());
+        // this.insert_user_theme_familes(crate::all_user_themes());
 
         this
     }

crates/theme2/src/theme2.rs πŸ”—

@@ -6,7 +6,7 @@ mod registry;
 mod scale;
 mod settings;
 mod syntax;
-mod themes;
+// mod themes;
 mod user_theme;
 
 use std::sync::Arc;
@@ -20,7 +20,7 @@ pub use registry::*;
 pub use scale::*;
 pub use settings::*;
 pub use syntax::*;
-pub use themes::*;
+// pub use themes::*;
 pub use user_theme::*;
 
 use gpui::{AppContext, Hsla, SharedString};

crates/theme2/src/themes/andromeda.rs πŸ”—

@@ -59,6 +59,17 @@ pub fn andromeda() -> UserThemeFamily {
                         hidden: Some(rgba(0x746f77ff).into()),
                         ..Default::default()
                     },
+                    syntax: Some(UserSyntaxTheme {
+                        highlights: vec![
+                            ("comment".into(), rgba(0x9fa0a6cc).into()),
+                            ("something".into(), rgba(0x00e8c6ff).into()),
+                            ("punctuation".into(), rgba(0xf92571ff).into()),
+                            ("something".into(), rgba(0xc64dedff).into()),
+                            ("something".into(), rgba(0xee5d42ff).into()),
+                            ("something".into(), rgba(0x95e072ff).into()),
+                            ("punctuation".into(), rgba(0x95e072ff).into()),
+                        ],
+                    }),
                 },
             },
             UserTheme {
@@ -107,6 +118,17 @@ pub fn andromeda() -> UserThemeFamily {
                         hidden: Some(rgba(0x746f77ff).into()),
                         ..Default::default()
                     },
+                    syntax: Some(UserSyntaxTheme {
+                        highlights: vec![
+                            ("comment".into(), rgba(0x9fa0a6cc).into()),
+                            ("something".into(), rgba(0x00e8c6ff).into()),
+                            ("punctuation".into(), rgba(0xf92571ff).into()),
+                            ("something".into(), rgba(0xc64dedff).into()),
+                            ("something".into(), rgba(0xee5d42ff).into()),
+                            ("something".into(), rgba(0x95e072ff).into()),
+                            ("punctuation".into(), rgba(0x95e072ff).into()),
+                        ],
+                    }),
                 },
             },
         ],

crates/theme2/src/themes/ayu.rs πŸ”—

@@ -63,6 +63,23 @@ pub fn ayu() -> UserThemeFamily {
                         hidden: Some(rgba(0x8a9199ff).into()),
                         ..Default::default()
                     },
+                    syntax: Some(UserSyntaxTheme {
+                        highlights: vec![
+                            ("comment".into(), rgba(0x787b8099).into()),
+                            ("something".into(), rgba(0x86b300ff).into()),
+                            ("something".into(), rgba(0x5c6166ff).into()),
+                            ("something".into(), rgba(0xfa8d3eff).into()),
+                            ("punctuation".into(), rgba(0x5c6166b3).into()),
+                            ("punctuation".into(), rgba(0x5c6166ff).into()),
+                            ("punctuation".into(), rgba(0xed9365ff).into()),
+                            ("punctuation".into(), rgba(0xfa8d3eff).into()),
+                            ("punctuation".into(), rgba(0xfa8d3eff).into()),
+                            ("punctuation".into(), rgba(0x55b4d380).into()),
+                            ("punctuation".into(), rgba(0x55b4d380).into()),
+                            ("punctuation".into(), rgba(0x55b4d380).into()),
+                            ("punctuation".into(), rgba(0x787b8099).into()),
+                        ],
+                    }),
                 },
             },
             UserTheme {
@@ -115,6 +132,23 @@ pub fn ayu() -> UserThemeFamily {
                         hidden: Some(rgba(0x707a8cff).into()),
                         ..Default::default()
                     },
+                    syntax: Some(UserSyntaxTheme {
+                        highlights: vec![
+                            ("comment".into(), rgba(0xb8cfe680).into()),
+                            ("something".into(), rgba(0xd4fe7fff).into()),
+                            ("something".into(), rgba(0xcccac2ff).into()),
+                            ("something".into(), rgba(0xffad65ff).into()),
+                            ("punctuation".into(), rgba(0xcccac2b3).into()),
+                            ("punctuation".into(), rgba(0xcccac2ff).into()),
+                            ("punctuation".into(), rgba(0xf29e74ff).into()),
+                            ("punctuation".into(), rgba(0xffad65ff).into()),
+                            ("punctuation".into(), rgba(0xffad65ff).into()),
+                            ("punctuation".into(), rgba(0x5ccfe680).into()),
+                            ("punctuation".into(), rgba(0x5ccfe680).into()),
+                            ("punctuation".into(), rgba(0x5ccfe680).into()),
+                            ("punctuation".into(), rgba(0xb8cfe680).into()),
+                        ],
+                    }),
                 },
             },
             UserTheme {
@@ -167,6 +201,23 @@ pub fn ayu() -> UserThemeFamily {
                         hidden: Some(rgba(0x565b66ff).into()),
                         ..Default::default()
                     },
+                    syntax: Some(UserSyntaxTheme {
+                        highlights: vec![
+                            ("comment".into(), rgba(0xabb5be8c).into()),
+                            ("something".into(), rgba(0xa9d94bff).into()),
+                            ("something".into(), rgba(0xbfbdb6ff).into()),
+                            ("something".into(), rgba(0xff8f3fff).into()),
+                            ("punctuation".into(), rgba(0xbfbdb6b3).into()),
+                            ("punctuation".into(), rgba(0xbfbdb6ff).into()),
+                            ("punctuation".into(), rgba(0xf29668ff).into()),
+                            ("punctuation".into(), rgba(0xff8f3fff).into()),
+                            ("punctuation".into(), rgba(0xff8f3fff).into()),
+                            ("punctuation".into(), rgba(0x38b9e680).into()),
+                            ("punctuation".into(), rgba(0x38b9e680).into()),
+                            ("punctuation".into(), rgba(0x38b9e680).into()),
+                            ("punctuation".into(), rgba(0xabb5be8c).into()),
+                        ],
+                    }),
                 },
             },
         ],

crates/theme2/src/themes/dracula.rs πŸ”—

@@ -1,70 +1,18 @@
-// This file was generated by the `theme_importer`.
-// Be careful when modifying it by hand.
 
-use gpui::rgba;
+            // This file was generated by the `theme_importer`.
+            // Be careful when modifying it by hand.
 
-use crate::{
-    Appearance, StatusColorsRefinement, ThemeColorsRefinement, UserTheme, UserThemeFamily,
-    UserThemeStylesRefinement,
-};
+            use gpui::rgba;
 
-pub fn dracula() -> UserThemeFamily {
-    UserThemeFamily {
-        name: "Dracula".into(),
-        author: "Zeno Rocha".into(),
-        themes: vec![UserTheme {
-            name: "Dracula".into(),
-            appearance: Appearance::Dark,
-            styles: UserThemeStylesRefinement {
-                colors: ThemeColorsRefinement {
-                    border: Some(rgba(0xbd93f9ff).into()),
-                    border_variant: Some(rgba(0xbd93f9ff).into()),
-                    border_focused: Some(rgba(0x6272a4ff).into()),
-                    border_selected: Some(rgba(0xbd93f9ff).into()),
-                    border_transparent: Some(rgba(0xbd93f9ff).into()),
-                    border_disabled: Some(rgba(0xbd93f9ff).into()),
-                    elevated_surface_background: Some(rgba(0x282a35ff).into()),
-                    surface_background: Some(rgba(0x282a35ff).into()),
-                    background: Some(rgba(0x282a35ff).into()),
-                    element_background: Some(rgba(0x44475aff).into()),
-                    element_hover: Some(rgba(0x44475a75).into()),
-                    element_selected: Some(rgba(0x44475aff).into()),
-                    drop_target_background: Some(rgba(0x44475aff).into()),
-                    ghost_element_hover: Some(rgba(0x44475a75).into()),
-                    text: Some(rgba(0xf8f8f2ff).into()),
-                    tab_inactive_background: Some(rgba(0x21222cff).into()),
-                    tab_active_background: Some(rgba(0x282a35ff).into()),
-                    editor_background: Some(rgba(0x282a35ff).into()),
-                    editor_gutter_background: Some(rgba(0x282a35ff).into()),
-                    editor_line_number: Some(rgba(0x6272a4ff).into()),
-                    editor_active_line_number: Some(rgba(0xf8f8f2ff).into()),
-                    terminal_background: Some(rgba(0x282a35ff).into()),
-                    terminal_ansi_bright_black: Some(rgba(0x6272a4ff).into()),
-                    terminal_ansi_bright_red: Some(rgba(0xff6d6dff).into()),
-                    terminal_ansi_bright_green: Some(rgba(0x69ff94ff).into()),
-                    terminal_ansi_bright_yellow: Some(rgba(0xffffa5ff).into()),
-                    terminal_ansi_bright_blue: Some(rgba(0xd6abfeff).into()),
-                    terminal_ansi_bright_magenta: Some(rgba(0xff92dfff).into()),
-                    terminal_ansi_bright_cyan: Some(rgba(0xa3fefeff).into()),
-                    terminal_ansi_bright_white: Some(rgba(0xffffffff).into()),
-                    terminal_ansi_black: Some(rgba(0x21222cff).into()),
-                    terminal_ansi_red: Some(rgba(0xff5555ff).into()),
-                    terminal_ansi_green: Some(rgba(0x50fa7bff).into()),
-                    terminal_ansi_yellow: Some(rgba(0xf1fa8cff).into()),
-                    terminal_ansi_blue: Some(rgba(0xbd93f9ff).into()),
-                    terminal_ansi_magenta: Some(rgba(0xff79c6ff).into()),
-                    terminal_ansi_cyan: Some(rgba(0x8be9fdff).into()),
-                    terminal_ansi_white: Some(rgba(0xf8f8f2ff).into()),
-                    ..Default::default()
-                },
-                status: StatusColorsRefinement {
-                    deleted: Some(rgba(0xff5555ff).into()),
-                    error: Some(rgba(0xff5555ff).into()),
-                    hidden: Some(rgba(0x6272a4ff).into()),
-                    warning: Some(rgba(0xffb76bff).into()),
-                    ..Default::default()
-                },
-            },
-        }],
-    }
+            use crate::{
+                Appearance, ThemeColorsRefinement, StatusColorsRefinement, UserTheme, UserThemeFamily, UserThemeStylesRefinement,
+            };
+
+            pub fn dracula() -> UserThemeFamily {
+                UserThemeFamily {
+    name: "Dracula".into(),
+    author: "Zeno Rocha".into(),

crates/theme2/src/themes/gruvbox.rs πŸ”—

@@ -1,324 +1,18 @@
-// This file was generated by the `theme_importer`.
-// Be careful when modifying it by hand.
 
-use gpui::rgba;
+            // This file was generated by the `theme_importer`.
+            // Be careful when modifying it by hand.
 
-use crate::{
-    Appearance, StatusColorsRefinement, ThemeColorsRefinement, UserTheme, UserThemeFamily,
-    UserThemeStylesRefinement,
-};
+            use gpui::rgba;
 
-pub fn gruvbox() -> UserThemeFamily {
-    UserThemeFamily {
-        name: "Gruvbox".into(),
-        author: "morhetz".into(),
-        themes: vec![
-            UserTheme {
-                name: "Gruvbox Dark Hard".into(),
-                appearance: Appearance::Dark,
-                styles: UserThemeStylesRefinement {
-                    colors: ThemeColorsRefinement {
-                        border: Some(rgba(0x3c3836ff).into()),
-                        border_variant: Some(rgba(0x3c3836ff).into()),
-                        border_focused: Some(rgba(0x3c3836ff).into()),
-                        border_selected: Some(rgba(0x3c3836ff).into()),
-                        border_transparent: Some(rgba(0x3c3836ff).into()),
-                        border_disabled: Some(rgba(0x3c3836ff).into()),
-                        background: Some(rgba(0x1d2021ff).into()),
-                        element_background: Some(rgba(0x44858780).into()),
-                        element_hover: Some(rgba(0x3c383680).into()),
-                        element_selected: Some(rgba(0x3c383680).into()),
-                        drop_target_background: Some(rgba(0x3c3836ff).into()),
-                        ghost_element_hover: Some(rgba(0x3c383680).into()),
-                        text: Some(rgba(0xebdbb2ff).into()),
-                        tab_inactive_background: Some(rgba(0x1d2021ff).into()),
-                        tab_active_background: Some(rgba(0x32302fff).into()),
-                        editor_background: Some(rgba(0x1d2021ff).into()),
-                        editor_gutter_background: Some(rgba(0x1d2021ff).into()),
-                        editor_line_number: Some(rgba(0x665c54ff).into()),
-                        editor_active_line_number: Some(rgba(0xebdbb2ff).into()),
-                        terminal_background: Some(rgba(0x1d2021ff).into()),
-                        terminal_ansi_bright_black: Some(rgba(0x928374ff).into()),
-                        terminal_ansi_bright_red: Some(rgba(0xfb4833ff).into()),
-                        terminal_ansi_bright_green: Some(rgba(0xb8bb25ff).into()),
-                        terminal_ansi_bright_yellow: Some(rgba(0xfabd2eff).into()),
-                        terminal_ansi_bright_blue: Some(rgba(0x83a598ff).into()),
-                        terminal_ansi_bright_magenta: Some(rgba(0xd3869bff).into()),
-                        terminal_ansi_bright_cyan: Some(rgba(0x8ec07cff).into()),
-                        terminal_ansi_bright_white: Some(rgba(0xebdbb2ff).into()),
-                        terminal_ansi_black: Some(rgba(0x3c3836ff).into()),
-                        terminal_ansi_red: Some(rgba(0xcc241cff).into()),
-                        terminal_ansi_green: Some(rgba(0x989719ff).into()),
-                        terminal_ansi_yellow: Some(rgba(0xd79920ff).into()),
-                        terminal_ansi_blue: Some(rgba(0x448587ff).into()),
-                        terminal_ansi_magenta: Some(rgba(0xb16185ff).into()),
-                        terminal_ansi_cyan: Some(rgba(0x679d6aff).into()),
-                        terminal_ansi_white: Some(rgba(0xa89984ff).into()),
-                        ..Default::default()
-                    },
-                    status: StatusColorsRefinement {
-                        deleted: Some(rgba(0xfb4833ff).into()),
-                        error: Some(rgba(0xfb4833ff).into()),
-                        hidden: Some(rgba(0xa89984ff).into()),
-                        ..Default::default()
-                    },
-                },
-            },
-            UserTheme {
-                name: "Gruvbox Dark Medium".into(),
-                appearance: Appearance::Dark,
-                styles: UserThemeStylesRefinement {
-                    colors: ThemeColorsRefinement {
-                        border: Some(rgba(0x3c3836ff).into()),
-                        border_variant: Some(rgba(0x3c3836ff).into()),
-                        border_focused: Some(rgba(0x3c3836ff).into()),
-                        border_selected: Some(rgba(0x3c3836ff).into()),
-                        border_transparent: Some(rgba(0x3c3836ff).into()),
-                        border_disabled: Some(rgba(0x3c3836ff).into()),
-                        background: Some(rgba(0x282828ff).into()),
-                        element_background: Some(rgba(0x44858780).into()),
-                        element_hover: Some(rgba(0x3c383680).into()),
-                        element_selected: Some(rgba(0x3c383680).into()),
-                        drop_target_background: Some(rgba(0x3c3836ff).into()),
-                        ghost_element_hover: Some(rgba(0x3c383680).into()),
-                        text: Some(rgba(0xebdbb2ff).into()),
-                        tab_inactive_background: Some(rgba(0x282828ff).into()),
-                        tab_active_background: Some(rgba(0x3c3836ff).into()),
-                        editor_background: Some(rgba(0x282828ff).into()),
-                        editor_gutter_background: Some(rgba(0x282828ff).into()),
-                        editor_line_number: Some(rgba(0x665c54ff).into()),
-                        editor_active_line_number: Some(rgba(0xebdbb2ff).into()),
-                        terminal_background: Some(rgba(0x282828ff).into()),
-                        terminal_ansi_bright_black: Some(rgba(0x928374ff).into()),
-                        terminal_ansi_bright_red: Some(rgba(0xfb4833ff).into()),
-                        terminal_ansi_bright_green: Some(rgba(0xb8bb25ff).into()),
-                        terminal_ansi_bright_yellow: Some(rgba(0xfabd2eff).into()),
-                        terminal_ansi_bright_blue: Some(rgba(0x83a598ff).into()),
-                        terminal_ansi_bright_magenta: Some(rgba(0xd3869bff).into()),
-                        terminal_ansi_bright_cyan: Some(rgba(0x8ec07cff).into()),
-                        terminal_ansi_bright_white: Some(rgba(0xebdbb2ff).into()),
-                        terminal_ansi_black: Some(rgba(0x3c3836ff).into()),
-                        terminal_ansi_red: Some(rgba(0xcc241cff).into()),
-                        terminal_ansi_green: Some(rgba(0x989719ff).into()),
-                        terminal_ansi_yellow: Some(rgba(0xd79920ff).into()),
-                        terminal_ansi_blue: Some(rgba(0x448587ff).into()),
-                        terminal_ansi_magenta: Some(rgba(0xb16185ff).into()),
-                        terminal_ansi_cyan: Some(rgba(0x679d6aff).into()),
-                        terminal_ansi_white: Some(rgba(0xa89984ff).into()),
-                        ..Default::default()
-                    },
-                    status: StatusColorsRefinement {
-                        deleted: Some(rgba(0xfb4833ff).into()),
-                        error: Some(rgba(0xfb4833ff).into()),
-                        hidden: Some(rgba(0xa89984ff).into()),
-                        ..Default::default()
-                    },
-                },
-            },
-            UserTheme {
-                name: "Gruvbox Dark Soft".into(),
-                appearance: Appearance::Dark,
-                styles: UserThemeStylesRefinement {
-                    colors: ThemeColorsRefinement {
-                        border: Some(rgba(0x3c3836ff).into()),
-                        border_variant: Some(rgba(0x3c3836ff).into()),
-                        border_focused: Some(rgba(0x3c3836ff).into()),
-                        border_selected: Some(rgba(0x3c3836ff).into()),
-                        border_transparent: Some(rgba(0x3c3836ff).into()),
-                        border_disabled: Some(rgba(0x3c3836ff).into()),
-                        background: Some(rgba(0x32302fff).into()),
-                        element_background: Some(rgba(0x44858780).into()),
-                        element_hover: Some(rgba(0x3c383680).into()),
-                        element_selected: Some(rgba(0x3c383680).into()),
-                        drop_target_background: Some(rgba(0x3c3836ff).into()),
-                        ghost_element_hover: Some(rgba(0x3c383680).into()),
-                        text: Some(rgba(0xebdbb2ff).into()),
-                        tab_inactive_background: Some(rgba(0x32302fff).into()),
-                        tab_active_background: Some(rgba(0x504945ff).into()),
-                        editor_background: Some(rgba(0x32302fff).into()),
-                        editor_gutter_background: Some(rgba(0x32302fff).into()),
-                        editor_line_number: Some(rgba(0x665c54ff).into()),
-                        editor_active_line_number: Some(rgba(0xebdbb2ff).into()),
-                        terminal_background: Some(rgba(0x32302fff).into()),
-                        terminal_ansi_bright_black: Some(rgba(0x928374ff).into()),
-                        terminal_ansi_bright_red: Some(rgba(0xfb4833ff).into()),
-                        terminal_ansi_bright_green: Some(rgba(0xb8bb25ff).into()),
-                        terminal_ansi_bright_yellow: Some(rgba(0xfabd2eff).into()),
-                        terminal_ansi_bright_blue: Some(rgba(0x83a598ff).into()),
-                        terminal_ansi_bright_magenta: Some(rgba(0xd3869bff).into()),
-                        terminal_ansi_bright_cyan: Some(rgba(0x8ec07cff).into()),
-                        terminal_ansi_bright_white: Some(rgba(0xebdbb2ff).into()),
-                        terminal_ansi_black: Some(rgba(0x3c3836ff).into()),
-                        terminal_ansi_red: Some(rgba(0xcc241cff).into()),
-                        terminal_ansi_green: Some(rgba(0x989719ff).into()),
-                        terminal_ansi_yellow: Some(rgba(0xd79920ff).into()),
-                        terminal_ansi_blue: Some(rgba(0x448587ff).into()),
-                        terminal_ansi_magenta: Some(rgba(0xb16185ff).into()),
-                        terminal_ansi_cyan: Some(rgba(0x679d6aff).into()),
-                        terminal_ansi_white: Some(rgba(0xa89984ff).into()),
-                        ..Default::default()
-                    },
-                    status: StatusColorsRefinement {
-                        deleted: Some(rgba(0xfb4833ff).into()),
-                        error: Some(rgba(0xfb4833ff).into()),
-                        hidden: Some(rgba(0xa89984ff).into()),
-                        ..Default::default()
-                    },
-                },
-            },
-            UserTheme {
-                name: "Gruvbox Light Hard".into(),
-                appearance: Appearance::Light,
-                styles: UserThemeStylesRefinement {
-                    colors: ThemeColorsRefinement {
-                        border: Some(rgba(0xebdbb2ff).into()),
-                        border_variant: Some(rgba(0xebdbb2ff).into()),
-                        border_focused: Some(rgba(0xebdbb2ff).into()),
-                        border_selected: Some(rgba(0xebdbb2ff).into()),
-                        border_transparent: Some(rgba(0xebdbb2ff).into()),
-                        border_disabled: Some(rgba(0xebdbb2ff).into()),
-                        background: Some(rgba(0xf9f5d7ff).into()),
-                        element_background: Some(rgba(0x44858780).into()),
-                        element_hover: Some(rgba(0xebdbb280).into()),
-                        element_selected: Some(rgba(0xebdbb280).into()),
-                        drop_target_background: Some(rgba(0xebdbb2ff).into()),
-                        ghost_element_hover: Some(rgba(0xebdbb280).into()),
-                        text: Some(rgba(0x3c3836ff).into()),
-                        tab_inactive_background: Some(rgba(0xf9f5d7ff).into()),
-                        tab_active_background: Some(rgba(0xf2e5bcff).into()),
-                        editor_background: Some(rgba(0xf9f5d7ff).into()),
-                        editor_gutter_background: Some(rgba(0xf9f5d7ff).into()),
-                        editor_line_number: Some(rgba(0xbdae93ff).into()),
-                        editor_active_line_number: Some(rgba(0x3c3836ff).into()),
-                        terminal_background: Some(rgba(0xf9f5d7ff).into()),
-                        terminal_ansi_bright_black: Some(rgba(0x928374ff).into()),
-                        terminal_ansi_bright_red: Some(rgba(0x9d0006ff).into()),
-                        terminal_ansi_bright_green: Some(rgba(0x79740eff).into()),
-                        terminal_ansi_bright_yellow: Some(rgba(0xb57613ff).into()),
-                        terminal_ansi_bright_blue: Some(rgba(0x066578ff).into()),
-                        terminal_ansi_bright_magenta: Some(rgba(0x8f3e71ff).into()),
-                        terminal_ansi_bright_cyan: Some(rgba(0x427b58ff).into()),
-                        terminal_ansi_bright_white: Some(rgba(0x3c3836ff).into()),
-                        terminal_ansi_black: Some(rgba(0xebdbb2ff).into()),
-                        terminal_ansi_red: Some(rgba(0xcc241cff).into()),
-                        terminal_ansi_green: Some(rgba(0x989719ff).into()),
-                        terminal_ansi_yellow: Some(rgba(0xd79920ff).into()),
-                        terminal_ansi_blue: Some(rgba(0x448587ff).into()),
-                        terminal_ansi_magenta: Some(rgba(0xb16185ff).into()),
-                        terminal_ansi_cyan: Some(rgba(0x679d6aff).into()),
-                        terminal_ansi_white: Some(rgba(0x7c6f64ff).into()),
-                        ..Default::default()
-                    },
-                    status: StatusColorsRefinement {
-                        deleted: Some(rgba(0x9d0006ff).into()),
-                        error: Some(rgba(0x9d0006ff).into()),
-                        hidden: Some(rgba(0x7c6f64ff).into()),
-                        ..Default::default()
-                    },
-                },
-            },
-            UserTheme {
-                name: "Gruvbox Light Medium".into(),
-                appearance: Appearance::Light,
-                styles: UserThemeStylesRefinement {
-                    colors: ThemeColorsRefinement {
-                        border: Some(rgba(0xebdbb2ff).into()),
-                        border_variant: Some(rgba(0xebdbb2ff).into()),
-                        border_focused: Some(rgba(0xebdbb2ff).into()),
-                        border_selected: Some(rgba(0xebdbb2ff).into()),
-                        border_transparent: Some(rgba(0xebdbb2ff).into()),
-                        border_disabled: Some(rgba(0xebdbb2ff).into()),
-                        background: Some(rgba(0xfbf1c7ff).into()),
-                        element_background: Some(rgba(0x44858780).into()),
-                        element_hover: Some(rgba(0xebdbb280).into()),
-                        element_selected: Some(rgba(0xebdbb280).into()),
-                        drop_target_background: Some(rgba(0xebdbb2ff).into()),
-                        ghost_element_hover: Some(rgba(0xebdbb280).into()),
-                        text: Some(rgba(0x3c3836ff).into()),
-                        tab_inactive_background: Some(rgba(0xfbf1c7ff).into()),
-                        tab_active_background: Some(rgba(0xebdbb2ff).into()),
-                        editor_background: Some(rgba(0xfbf1c7ff).into()),
-                        editor_gutter_background: Some(rgba(0xfbf1c7ff).into()),
-                        editor_line_number: Some(rgba(0xbdae93ff).into()),
-                        editor_active_line_number: Some(rgba(0x3c3836ff).into()),
-                        terminal_background: Some(rgba(0xfbf1c7ff).into()),
-                        terminal_ansi_bright_black: Some(rgba(0x928374ff).into()),
-                        terminal_ansi_bright_red: Some(rgba(0x9d0006ff).into()),
-                        terminal_ansi_bright_green: Some(rgba(0x79740eff).into()),
-                        terminal_ansi_bright_yellow: Some(rgba(0xb57613ff).into()),
-                        terminal_ansi_bright_blue: Some(rgba(0x066578ff).into()),
-                        terminal_ansi_bright_magenta: Some(rgba(0x8f3e71ff).into()),
-                        terminal_ansi_bright_cyan: Some(rgba(0x427b58ff).into()),
-                        terminal_ansi_bright_white: Some(rgba(0x3c3836ff).into()),
-                        terminal_ansi_black: Some(rgba(0xebdbb2ff).into()),
-                        terminal_ansi_red: Some(rgba(0xcc241cff).into()),
-                        terminal_ansi_green: Some(rgba(0x989719ff).into()),
-                        terminal_ansi_yellow: Some(rgba(0xd79920ff).into()),
-                        terminal_ansi_blue: Some(rgba(0x448587ff).into()),
-                        terminal_ansi_magenta: Some(rgba(0xb16185ff).into()),
-                        terminal_ansi_cyan: Some(rgba(0x679d6aff).into()),
-                        terminal_ansi_white: Some(rgba(0x7c6f64ff).into()),
-                        ..Default::default()
-                    },
-                    status: StatusColorsRefinement {
-                        deleted: Some(rgba(0x9d0006ff).into()),
-                        error: Some(rgba(0x9d0006ff).into()),
-                        hidden: Some(rgba(0x7c6f64ff).into()),
-                        ..Default::default()
-                    },
-                },
-            },
-            UserTheme {
-                name: "Gruvbox Light Soft".into(),
-                appearance: Appearance::Light,
-                styles: UserThemeStylesRefinement {
-                    colors: ThemeColorsRefinement {
-                        border: Some(rgba(0xebdbb2ff).into()),
-                        border_variant: Some(rgba(0xebdbb2ff).into()),
-                        border_focused: Some(rgba(0xebdbb2ff).into()),
-                        border_selected: Some(rgba(0xebdbb2ff).into()),
-                        border_transparent: Some(rgba(0xebdbb2ff).into()),
-                        border_disabled: Some(rgba(0xebdbb2ff).into()),
-                        background: Some(rgba(0xf2e5bcff).into()),
-                        element_background: Some(rgba(0x44858780).into()),
-                        element_hover: Some(rgba(0xebdbb280).into()),
-                        element_selected: Some(rgba(0xebdbb280).into()),
-                        drop_target_background: Some(rgba(0xebdbb2ff).into()),
-                        ghost_element_hover: Some(rgba(0xebdbb280).into()),
-                        text: Some(rgba(0x3c3836ff).into()),
-                        tab_inactive_background: Some(rgba(0xf2e5bcff).into()),
-                        tab_active_background: Some(rgba(0xd5c4a1ff).into()),
-                        editor_background: Some(rgba(0xf2e5bcff).into()),
-                        editor_gutter_background: Some(rgba(0xf2e5bcff).into()),
-                        editor_line_number: Some(rgba(0xbdae93ff).into()),
-                        editor_active_line_number: Some(rgba(0x3c3836ff).into()),
-                        terminal_background: Some(rgba(0xf2e5bcff).into()),
-                        terminal_ansi_bright_black: Some(rgba(0x928374ff).into()),
-                        terminal_ansi_bright_red: Some(rgba(0x9d0006ff).into()),
-                        terminal_ansi_bright_green: Some(rgba(0x79740eff).into()),
-                        terminal_ansi_bright_yellow: Some(rgba(0xb57613ff).into()),
-                        terminal_ansi_bright_blue: Some(rgba(0x066578ff).into()),
-                        terminal_ansi_bright_magenta: Some(rgba(0x8f3e71ff).into()),
-                        terminal_ansi_bright_cyan: Some(rgba(0x427b58ff).into()),
-                        terminal_ansi_bright_white: Some(rgba(0x3c3836ff).into()),
-                        terminal_ansi_black: Some(rgba(0xebdbb2ff).into()),
-                        terminal_ansi_red: Some(rgba(0xcc241cff).into()),
-                        terminal_ansi_green: Some(rgba(0x989719ff).into()),
-                        terminal_ansi_yellow: Some(rgba(0xd79920ff).into()),
-                        terminal_ansi_blue: Some(rgba(0x448587ff).into()),
-                        terminal_ansi_magenta: Some(rgba(0xb16185ff).into()),
-                        terminal_ansi_cyan: Some(rgba(0x679d6aff).into()),
-                        terminal_ansi_white: Some(rgba(0x7c6f64ff).into()),
-                        ..Default::default()
-                    },
-                    status: StatusColorsRefinement {
-                        deleted: Some(rgba(0x9d0006ff).into()),
-                        error: Some(rgba(0x9d0006ff).into()),
-                        hidden: Some(rgba(0x7c6f64ff).into()),
-                        ..Default::default()
-                    },
-                },
-            },
-        ],
-    }
+            use crate::{
+                Appearance, ThemeColorsRefinement, StatusColorsRefinement, UserTheme, UserThemeFamily, UserThemeStylesRefinement,
+            };
+
+            pub fn gruvbox() -> UserThemeFamily {
+                UserThemeFamily {
+    name: "Gruvbox".into(),
+    author: "morhetz".into(),

crates/theme2/src/themes/mod.rs πŸ”—

@@ -1,44 +1,36 @@
-// This file was generated by the `theme_importer`.
-// Be careful when modifying it by hand.
 
+        // This file was generated by the `theme_importer`.
+        // Be careful when modifying it by hand.
+
+        mod rose_pine;
+mod night_owl;
 mod andromeda;
-mod ayu;
+mod synthwave_84;
+mod palenight;
 mod dracula;
-mod gruvbox;
-mod night_owl;
+mod solarized;
 mod nord;
 mod notctis;
-mod palenight;
-mod rose_pine;
-mod solarized;
-mod synthwave_84;
+mod ayu;
+mod gruvbox;
 
+        pub use rose_pine::*;
+pub use night_owl::*;
 pub use andromeda::*;
-pub use ayu::*;
+pub use synthwave_84::*;
+pub use palenight::*;
 pub use dracula::*;
-pub use gruvbox::*;
-pub use night_owl::*;
+pub use solarized::*;
 pub use nord::*;
 pub use notctis::*;
-pub use palenight::*;
-pub use rose_pine::*;
-pub use solarized::*;
-pub use synthwave_84::*;
+pub use ayu::*;
+pub use gruvbox::*;
 
-use crate::UserThemeFamily;
+        
+        use crate::UserThemeFamily;
 
-pub(crate) fn all_user_themes() -> Vec<UserThemeFamily> {
-    vec![
-        rose_pine(),
-        night_owl(),
-        andromeda(),
-        synthwave_84(),
-        palenight(),
-        dracula(),
-        solarized(),
-        nord(),
-        notctis(),
-        ayu(),
-        gruvbox(),
-    ]
-}
+        pub(crate) fn all_user_themes() -> Vec<UserThemeFamily> {
+            vec![rose_pine(), night_owl(), andromeda(), synthwave_84(), palenight(), dracula(), solarized(), nord(), notctis(), ayu(), gruvbox()]
+        }
+        
+        

crates/theme2/src/themes/night_owl.rs πŸ”—

@@ -1,123 +1,18 @@
-// This file was generated by the `theme_importer`.
-// Be careful when modifying it by hand.
 
-use gpui::rgba;
+            // This file was generated by the `theme_importer`.
+            // Be careful when modifying it by hand.
 
-use crate::{
-    Appearance, StatusColorsRefinement, ThemeColorsRefinement, UserTheme, UserThemeFamily,
-    UserThemeStylesRefinement,
-};
+            use gpui::rgba;
 
-pub fn night_owl() -> UserThemeFamily {
-    UserThemeFamily {
-        name: "Night Owl".into(),
-        author: "Sarah Drasner (sdras)".into(),
-        themes: vec![
-            UserTheme {
-                name: "Night Owl".into(),
-                appearance: Appearance::Dark,
-                styles: UserThemeStylesRefinement {
-                    colors: ThemeColorsRefinement {
-                        border: Some(rgba(0x5f7e97ff).into()),
-                        border_variant: Some(rgba(0x5f7e97ff).into()),
-                        border_focused: Some(rgba(0x122d42ff).into()),
-                        border_selected: Some(rgba(0x5f7e97ff).into()),
-                        border_transparent: Some(rgba(0x5f7e97ff).into()),
-                        border_disabled: Some(rgba(0x5f7e97ff).into()),
-                        elevated_surface_background: Some(rgba(0x011526ff).into()),
-                        surface_background: Some(rgba(0x011526ff).into()),
-                        background: Some(rgba(0x011526ff).into()),
-                        element_background: Some(rgba(0x7d56c1cc).into()),
-                        element_hover: Some(rgba(0x011526ff).into()),
-                        element_selected: Some(rgba(0x234c708c).into()),
-                        drop_target_background: Some(rgba(0x011526ff).into()),
-                        ghost_element_hover: Some(rgba(0x011526ff).into()),
-                        text: Some(rgba(0xd6deebff).into()),
-                        tab_inactive_background: Some(rgba(0x01101cff).into()),
-                        tab_active_background: Some(rgba(0x0a2842ff).into()),
-                        editor_background: Some(rgba(0x011526ff).into()),
-                        editor_gutter_background: Some(rgba(0x011526ff).into()),
-                        editor_line_number: Some(rgba(0x4b6479ff).into()),
-                        editor_active_line_number: Some(rgba(0xd6deebff).into()),
-                        terminal_ansi_bright_black: Some(rgba(0x575656ff).into()),
-                        terminal_ansi_bright_red: Some(rgba(0xef524fff).into()),
-                        terminal_ansi_bright_green: Some(rgba(0x21da6eff).into()),
-                        terminal_ansi_bright_yellow: Some(rgba(0xffeb95ff).into()),
-                        terminal_ansi_bright_blue: Some(rgba(0x82aaffff).into()),
-                        terminal_ansi_bright_magenta: Some(rgba(0xc792eaff).into()),
-                        terminal_ansi_bright_cyan: Some(rgba(0x7fdbcaff).into()),
-                        terminal_ansi_bright_white: Some(rgba(0xffffffff).into()),
-                        terminal_ansi_black: Some(rgba(0x011526ff).into()),
-                        terminal_ansi_red: Some(rgba(0xef524fff).into()),
-                        terminal_ansi_green: Some(rgba(0x21da6eff).into()),
-                        terminal_ansi_yellow: Some(rgba(0xc5e478ff).into()),
-                        terminal_ansi_blue: Some(rgba(0x82aaffff).into()),
-                        terminal_ansi_magenta: Some(rgba(0xc792eaff).into()),
-                        terminal_ansi_cyan: Some(rgba(0x20c7a7ff).into()),
-                        terminal_ansi_white: Some(rgba(0xffffffff).into()),
-                        ..Default::default()
-                    },
-                    status: StatusColorsRefinement {
-                        deleted: Some(rgba(0xef524fff).into()),
-                        error: Some(rgba(0xef524fff).into()),
-                        hidden: Some(rgba(0x5f7e97ff).into()),
-                        ..Default::default()
-                    },
-                },
-            },
-            UserTheme {
-                name: "Night Owl Light".into(),
-                appearance: Appearance::Light,
-                styles: UserThemeStylesRefinement {
-                    colors: ThemeColorsRefinement {
-                        border: Some(rgba(0xd9d9d9ff).into()),
-                        border_variant: Some(rgba(0xd9d9d9ff).into()),
-                        border_focused: Some(rgba(0x93a1a1ff).into()),
-                        border_selected: Some(rgba(0xd9d9d9ff).into()),
-                        border_transparent: Some(rgba(0xd9d9d9ff).into()),
-                        border_disabled: Some(rgba(0xd9d9d9ff).into()),
-                        elevated_surface_background: Some(rgba(0xf0f0f0ff).into()),
-                        surface_background: Some(rgba(0xf0f0f0ff).into()),
-                        background: Some(rgba(0xfbfbfbff).into()),
-                        element_background: Some(rgba(0x29a298ff).into()),
-                        element_hover: Some(rgba(0xd3e7f8ff).into()),
-                        element_selected: Some(rgba(0xd3e7f8ff).into()),
-                        ghost_element_hover: Some(rgba(0xd3e7f8ff).into()),
-                        text: Some(rgba(0x403f53ff).into()),
-                        tab_inactive_background: Some(rgba(0xf0f0f0ff).into()),
-                        tab_active_background: Some(rgba(0xf6f6f6ff).into()),
-                        editor_background: Some(rgba(0xfbfbfbff).into()),
-                        editor_gutter_background: Some(rgba(0xfbfbfbff).into()),
-                        editor_line_number: Some(rgba(0x90a7b2ff).into()),
-                        editor_active_line_number: Some(rgba(0x403f53ff).into()),
-                        terminal_background: Some(rgba(0xf6f6f6ff).into()),
-                        terminal_ansi_bright_black: Some(rgba(0x403f53ff).into()),
-                        terminal_ansi_bright_red: Some(rgba(0xde3c3aff).into()),
-                        terminal_ansi_bright_green: Some(rgba(0x07916aff).into()),
-                        terminal_ansi_bright_yellow: Some(rgba(0xdaa900ff).into()),
-                        terminal_ansi_bright_blue: Some(rgba(0x278dd7ff).into()),
-                        terminal_ansi_bright_magenta: Some(rgba(0xd64289ff).into()),
-                        terminal_ansi_bright_cyan: Some(rgba(0x29a298ff).into()),
-                        terminal_ansi_bright_white: Some(rgba(0xf0f0f0ff).into()),
-                        terminal_ansi_black: Some(rgba(0x403f53ff).into()),
-                        terminal_ansi_red: Some(rgba(0xde3c3aff).into()),
-                        terminal_ansi_green: Some(rgba(0x07916aff).into()),
-                        terminal_ansi_yellow: Some(rgba(0xe0ae01ff).into()),
-                        terminal_ansi_blue: Some(rgba(0x278dd7ff).into()),
-                        terminal_ansi_magenta: Some(rgba(0xd64289ff).into()),
-                        terminal_ansi_cyan: Some(rgba(0x29a298ff).into()),
-                        terminal_ansi_white: Some(rgba(0xf0f0f0ff).into()),
-                        ..Default::default()
-                    },
-                    status: StatusColorsRefinement {
-                        deleted: Some(rgba(0x403f53ff).into()),
-                        error: Some(rgba(0x403f53ff).into()),
-                        hidden: Some(rgba(0x403f53ff).into()),
-                        warning: Some(rgba(0xdaa900ff).into()),
-                        ..Default::default()
-                    },
-                },
-            },
-        ],
-    }
+            use crate::{
+                Appearance, ThemeColorsRefinement, StatusColorsRefinement, UserTheme, UserThemeFamily, UserThemeStylesRefinement,
+            };
+
+            pub fn night_owl() -> UserThemeFamily {
+                UserThemeFamily {
+    name: "Night Owl".into(),
+    author: "Sarah Drasner (sdras)".into(),

crates/theme2/src/themes/nord.rs πŸ”—

@@ -1,70 +1,18 @@
-// This file was generated by the `theme_importer`.
-// Be careful when modifying it by hand.
 
-use gpui::rgba;
+            // This file was generated by the `theme_importer`.
+            // Be careful when modifying it by hand.
 
-use crate::{
-    Appearance, StatusColorsRefinement, ThemeColorsRefinement, UserTheme, UserThemeFamily,
-    UserThemeStylesRefinement,
-};
+            use gpui::rgba;
 
-pub fn nord() -> UserThemeFamily {
-    UserThemeFamily {
-        name: "Nord".into(),
-        author: "Sven Greb (svengreb)".into(),
-        themes: vec![UserTheme {
-            name: "Nord".into(),
-            appearance: Appearance::Dark,
-            styles: UserThemeStylesRefinement {
-                colors: ThemeColorsRefinement {
-                    border: Some(rgba(0x3b4252ff).into()),
-                    border_variant: Some(rgba(0x3b4252ff).into()),
-                    border_focused: Some(rgba(0x3b4252ff).into()),
-                    border_selected: Some(rgba(0x3b4252ff).into()),
-                    border_transparent: Some(rgba(0x3b4252ff).into()),
-                    border_disabled: Some(rgba(0x3b4252ff).into()),
-                    elevated_surface_background: Some(rgba(0x2e3440ff).into()),
-                    surface_background: Some(rgba(0x2e3440ff).into()),
-                    background: Some(rgba(0x2e3440ff).into()),
-                    element_background: Some(rgba(0x88bfd0ee).into()),
-                    element_hover: Some(rgba(0x3b4252ff).into()),
-                    element_selected: Some(rgba(0x88bfd0ff).into()),
-                    drop_target_background: Some(rgba(0x88bfd099).into()),
-                    ghost_element_hover: Some(rgba(0x3b4252ff).into()),
-                    text: Some(rgba(0xd8dee9ff).into()),
-                    tab_inactive_background: Some(rgba(0x2e3440ff).into()),
-                    tab_active_background: Some(rgba(0x3b4252ff).into()),
-                    editor_background: Some(rgba(0x2e3440ff).into()),
-                    editor_gutter_background: Some(rgba(0x2e3440ff).into()),
-                    editor_line_number: Some(rgba(0x4c566aff).into()),
-                    editor_active_line_number: Some(rgba(0xd8dee9ff).into()),
-                    terminal_background: Some(rgba(0x2e3440ff).into()),
-                    terminal_ansi_bright_black: Some(rgba(0x4c566aff).into()),
-                    terminal_ansi_bright_red: Some(rgba(0xbf616aff).into()),
-                    terminal_ansi_bright_green: Some(rgba(0xa3be8cff).into()),
-                    terminal_ansi_bright_yellow: Some(rgba(0xebcb8bff).into()),
-                    terminal_ansi_bright_blue: Some(rgba(0x81a1c1ff).into()),
-                    terminal_ansi_bright_magenta: Some(rgba(0xb48eacff).into()),
-                    terminal_ansi_bright_cyan: Some(rgba(0x8fbcbbff).into()),
-                    terminal_ansi_bright_white: Some(rgba(0xeceff4ff).into()),
-                    terminal_ansi_black: Some(rgba(0x3b4252ff).into()),
-                    terminal_ansi_red: Some(rgba(0xbf616aff).into()),
-                    terminal_ansi_green: Some(rgba(0xa3be8cff).into()),
-                    terminal_ansi_yellow: Some(rgba(0xebcb8bff).into()),
-                    terminal_ansi_blue: Some(rgba(0x81a1c1ff).into()),
-                    terminal_ansi_magenta: Some(rgba(0xb48eacff).into()),
-                    terminal_ansi_cyan: Some(rgba(0x88bfd0ff).into()),
-                    terminal_ansi_white: Some(rgba(0xe5e9f0ff).into()),
-                    ..Default::default()
-                },
-                status: StatusColorsRefinement {
-                    deleted: Some(rgba(0xbf616aff).into()),
-                    error: Some(rgba(0xbf616aff).into()),
-                    hidden: Some(rgba(0xd8dee966).into()),
-                    warning: Some(rgba(0xebcb8bff).into()),
-                    ..Default::default()
-                },
-            },
-        }],
-    }
+            use crate::{
+                Appearance, ThemeColorsRefinement, StatusColorsRefinement, UserTheme, UserThemeFamily, UserThemeStylesRefinement,
+            };
+
+            pub fn nord() -> UserThemeFamily {
+                UserThemeFamily {
+    name: "Nord".into(),
+    author: "Sven Greb (svengreb)".into(),

crates/theme2/src/themes/notctis.rs πŸ”—

@@ -1,612 +1,18 @@
-// This file was generated by the `theme_importer`.
-// Be careful when modifying it by hand.
 
-use gpui::rgba;
+            // This file was generated by the `theme_importer`.
+            // Be careful when modifying it by hand.
 
-use crate::{
-    Appearance, StatusColorsRefinement, ThemeColorsRefinement, UserTheme, UserThemeFamily,
-    UserThemeStylesRefinement,
-};
+            use gpui::rgba;
 
-pub fn notctis() -> UserThemeFamily {
-    UserThemeFamily {
-        name: "Notctis".into(),
-        author: "Liviu Schera (liviuschera)".into(),
-        themes: vec![
-            UserTheme {
-                name: "Noctis Azureus".into(),
-                appearance: Appearance::Dark,
-                styles: UserThemeStylesRefinement {
-                    colors: ThemeColorsRefinement {
-                        border: Some(rgba(0x1579b6ff).into()),
-                        border_variant: Some(rgba(0x1579b6ff).into()),
-                        border_focused: Some(rgba(0x08324eff).into()),
-                        border_selected: Some(rgba(0x1579b6ff).into()),
-                        border_transparent: Some(rgba(0x1579b6ff).into()),
-                        border_disabled: Some(rgba(0x1579b6ff).into()),
-                        elevated_surface_background: Some(rgba(0x051b28ff).into()),
-                        surface_background: Some(rgba(0x051b28ff).into()),
-                        background: Some(rgba(0x07263aff).into()),
-                        element_background: Some(rgba(0x007e99ff).into()),
-                        element_hover: Some(rgba(0x00558a65).into()),
-                        element_selected: Some(rgba(0x0b3f5fff).into()),
-                        drop_target_background: Some(rgba(0x00294dff).into()),
-                        ghost_element_hover: Some(rgba(0x00558a65).into()),
-                        text: Some(rgba(0xbecfdaff).into()),
-                        tab_inactive_background: Some(rgba(0x08324eff).into()),
-                        tab_active_background: Some(rgba(0x07263aff).into()),
-                        editor_background: Some(rgba(0x07263aff).into()),
-                        editor_gutter_background: Some(rgba(0x07263aff).into()),
-                        editor_line_number: Some(rgba(0x4c6b7fff).into()),
-                        editor_active_line_number: Some(rgba(0xbecfdaff).into()),
-                        terminal_background: Some(rgba(0x051b28ff).into()),
-                        terminal_ansi_bright_black: Some(rgba(0x475e6cff).into()),
-                        terminal_ansi_bright_red: Some(rgba(0xe97749ff).into()),
-                        terminal_ansi_bright_green: Some(rgba(0x5febb1ff).into()),
-                        terminal_ansi_bright_yellow: Some(rgba(0xe69532ff).into()),
-                        terminal_ansi_bright_blue: Some(rgba(0x5fb5ebff).into()),
-                        terminal_ansi_bright_magenta: Some(rgba(0xe697b2ff).into()),
-                        terminal_ansi_bright_cyan: Some(rgba(0x5fdaebff).into()),
-                        terminal_ansi_bright_white: Some(rgba(0xbecfdaff).into()),
-                        terminal_ansi_black: Some(rgba(0x28343dff).into()),
-                        terminal_ansi_red: Some(rgba(0xe66432ff).into()),
-                        terminal_ansi_green: Some(rgba(0x49e9a6ff).into()),
-                        terminal_ansi_yellow: Some(rgba(0xe4b781ff).into()),
-                        terminal_ansi_blue: Some(rgba(0x49ace9ff).into()),
-                        terminal_ansi_magenta: Some(rgba(0xdf759aff).into()),
-                        terminal_ansi_cyan: Some(rgba(0x49d5e9ff).into()),
-                        terminal_ansi_white: Some(rgba(0xaec3d0ff).into()),
-                        ..Default::default()
-                    },
-                    status: StatusColorsRefinement {
-                        deleted: Some(rgba(0xe34d1bff).into()),
-                        error: Some(rgba(0xe34d1bff).into()),
-                        hidden: Some(rgba(0x9fb6c6ff).into()),
-                        warning: Some(rgba(0xffa857ff).into()),
-                        ..Default::default()
-                    },
-                },
-            },
-            UserTheme {
-                name: "Noctis Bordo".into(),
-                appearance: Appearance::Dark,
-                styles: UserThemeStylesRefinement {
-                    colors: ThemeColorsRefinement {
-                        border: Some(rgba(0x997582ff).into()),
-                        border_variant: Some(rgba(0x997582ff).into()),
-                        border_focused: Some(rgba(0x413036ff).into()),
-                        border_selected: Some(rgba(0x997582ff).into()),
-                        border_transparent: Some(rgba(0x997582ff).into()),
-                        border_disabled: Some(rgba(0x997582ff).into()),
-                        elevated_surface_background: Some(rgba(0x272022ff).into()),
-                        surface_background: Some(rgba(0x272022ff).into()),
-                        background: Some(rgba(0x322a2dff).into()),
-                        element_background: Some(rgba(0x007e99ff).into()),
-                        element_hover: Some(rgba(0x533641ff).into()),
-                        element_selected: Some(rgba(0x5c2e3e99).into()),
-                        drop_target_background: Some(rgba(0x38292eff).into()),
-                        ghost_element_hover: Some(rgba(0x533641ff).into()),
-                        text: Some(rgba(0xcbbec2ff).into()),
-                        tab_inactive_background: Some(rgba(0x413036ff).into()),
-                        tab_active_background: Some(rgba(0x322a2dff).into()),
-                        editor_background: Some(rgba(0x322a2dff).into()),
-                        editor_gutter_background: Some(rgba(0x322a2dff).into()),
-                        editor_line_number: Some(rgba(0x715b63ff).into()),
-                        editor_active_line_number: Some(rgba(0xcbbec2ff).into()),
-                        terminal_background: Some(rgba(0x272022ff).into()),
-                        terminal_ansi_bright_black: Some(rgba(0x69545bff).into()),
-                        terminal_ansi_bright_red: Some(rgba(0xe97749ff).into()),
-                        terminal_ansi_bright_green: Some(rgba(0x5febb1ff).into()),
-                        terminal_ansi_bright_yellow: Some(rgba(0xe69532ff).into()),
-                        terminal_ansi_bright_blue: Some(rgba(0x5fb5ebff).into()),
-                        terminal_ansi_bright_magenta: Some(rgba(0xe697b2ff).into()),
-                        terminal_ansi_bright_cyan: Some(rgba(0x5fdaebff).into()),
-                        terminal_ansi_bright_white: Some(rgba(0xcbbec2ff).into()),
-                        terminal_ansi_black: Some(rgba(0x47393eff).into()),
-                        terminal_ansi_red: Some(rgba(0xe66432ff).into()),
-                        terminal_ansi_green: Some(rgba(0x49e9a6ff).into()),
-                        terminal_ansi_yellow: Some(rgba(0xe4b781ff).into()),
-                        terminal_ansi_blue: Some(rgba(0x49ace9ff).into()),
-                        terminal_ansi_magenta: Some(rgba(0xdf759aff).into()),
-                        terminal_ansi_cyan: Some(rgba(0x49d5e9ff).into()),
-                        terminal_ansi_white: Some(rgba(0xb9acb0ff).into()),
-                        ..Default::default()
-                    },
-                    status: StatusColorsRefinement {
-                        deleted: Some(rgba(0xe34d1bff).into()),
-                        error: Some(rgba(0xe34d1bff).into()),
-                        hidden: Some(rgba(0xbbaab0ff).into()),
-                        warning: Some(rgba(0xffa857ff).into()),
-                        ..Default::default()
-                    },
-                },
-            },
-            UserTheme {
-                name: "Noctus Hibernus".into(),
-                appearance: Appearance::Light,
-                styles: UserThemeStylesRefinement {
-                    colors: ThemeColorsRefinement {
-                        border: Some(rgba(0x00c6e0ff).into()),
-                        border_variant: Some(rgba(0x00c6e0ff).into()),
-                        border_focused: Some(rgba(0xe0eff1ff).into()),
-                        border_selected: Some(rgba(0x00c6e0ff).into()),
-                        border_transparent: Some(rgba(0x00c6e0ff).into()),
-                        border_disabled: Some(rgba(0x00c6e0ff).into()),
-                        elevated_surface_background: Some(rgba(0xe1eeefff).into()),
-                        surface_background: Some(rgba(0xe1eeefff).into()),
-                        background: Some(rgba(0xf4f6f6ff).into()),
-                        element_background: Some(rgba(0x089099ff).into()),
-                        element_hover: Some(rgba(0xd1eafaff).into()),
-                        element_selected: Some(rgba(0xb6e1e7ff).into()),
-                        drop_target_background: Some(rgba(0xb1c9ccff).into()),
-                        ghost_element_hover: Some(rgba(0xd1eafaff).into()),
-                        text: Some(rgba(0x005661ff).into()),
-                        tab_inactive_background: Some(rgba(0xcaedf2ff).into()),
-                        tab_active_background: Some(rgba(0xf4f6f6ff).into()),
-                        editor_background: Some(rgba(0xf4f6f6ff).into()),
-                        editor_gutter_background: Some(rgba(0xf4f6f6ff).into()),
-                        editor_line_number: Some(rgba(0xa0abacff).into()),
-                        editor_active_line_number: Some(rgba(0x005661ff).into()),
-                        terminal_background: Some(rgba(0xe1eeefff).into()),
-                        terminal_ansi_bright_black: Some(rgba(0x004d57ff).into()),
-                        terminal_ansi_bright_red: Some(rgba(0xff3f00ff).into()),
-                        terminal_ansi_bright_green: Some(rgba(0x00d17aff).into()),
-                        terminal_ansi_bright_yellow: Some(rgba(0xff8c00ff).into()),
-                        terminal_ansi_bright_blue: Some(rgba(0x0ea3ffff).into()),
-                        terminal_ansi_bright_magenta: Some(rgba(0xff6b9eff).into()),
-                        terminal_ansi_bright_cyan: Some(rgba(0x00cae6ff).into()),
-                        terminal_ansi_bright_white: Some(rgba(0xbbc3c4ff).into()),
-                        terminal_ansi_black: Some(rgba(0x003b41ff).into()),
-                        terminal_ansi_red: Some(rgba(0xe34d1bff).into()),
-                        terminal_ansi_green: Some(rgba(0x00b368ff).into()),
-                        terminal_ansi_yellow: Some(rgba(0xf49724ff).into()),
-                        terminal_ansi_blue: Some(rgba(0x0094f0ff).into()),
-                        terminal_ansi_magenta: Some(rgba(0xff5792ff).into()),
-                        terminal_ansi_cyan: Some(rgba(0x00bdd6ff).into()),
-                        terminal_ansi_white: Some(rgba(0x8ca6a6ff).into()),
-                        ..Default::default()
-                    },
-                    status: StatusColorsRefinement {
-                        deleted: Some(rgba(0xff3f00ff).into()),
-                        error: Some(rgba(0xff3f00ff).into()),
-                        hidden: Some(rgba(0x70838dff).into()),
-                        warning: Some(rgba(0xe07a52ff).into()),
-                        ..Default::default()
-                    },
-                },
-            },
-            UserTheme {
-                name: "Noctis Lilac".into(),
-                appearance: Appearance::Dark,
-                styles: UserThemeStylesRefinement {
-                    colors: ThemeColorsRefinement {
-                        border: Some(rgba(0xaea4f4ff).into()),
-                        border_variant: Some(rgba(0xaea4f4ff).into()),
-                        border_focused: Some(rgba(0xdedbf5ff).into()),
-                        border_selected: Some(rgba(0xaea4f4ff).into()),
-                        border_transparent: Some(rgba(0xaea4f4ff).into()),
-                        border_disabled: Some(rgba(0xaea4f4ff).into()),
-                        elevated_surface_background: Some(rgba(0xe9e7f3ff).into()),
-                        surface_background: Some(rgba(0xe9e7f3ff).into()),
-                        background: Some(rgba(0xf2f1f8ff).into()),
-                        element_background: Some(rgba(0x8d7ffeff).into()),
-                        element_hover: Some(rgba(0xd1cbfeff).into()),
-                        element_selected: Some(rgba(0xbcb6e7ff).into()),
-                        drop_target_background: Some(rgba(0xafaad4aa).into()),
-                        ghost_element_hover: Some(rgba(0xd1cbfeff).into()),
-                        text: Some(rgba(0x0c006bff).into()),
-                        tab_inactive_background: Some(rgba(0xe2dff6ff).into()),
-                        tab_active_background: Some(rgba(0xf2f1f8ff).into()),
-                        editor_background: Some(rgba(0xf2f1f8ff).into()),
-                        editor_gutter_background: Some(rgba(0xf2f1f8ff).into()),
-                        editor_line_number: Some(rgba(0x9c99b0ff).into()),
-                        editor_active_line_number: Some(rgba(0x0c006bff).into()),
-                        terminal_background: Some(rgba(0xe9e7f3ff).into()),
-                        terminal_ansi_bright_black: Some(rgba(0x0f0080ff).into()),
-                        terminal_ansi_bright_red: Some(rgba(0xff3f00ff).into()),
-                        terminal_ansi_bright_green: Some(rgba(0x00d17aff).into()),
-                        terminal_ansi_bright_yellow: Some(rgba(0xff8c00ff).into()),
-                        terminal_ansi_bright_blue: Some(rgba(0x0ea3ffff).into()),
-                        terminal_ansi_bright_magenta: Some(rgba(0xff6b9eff).into()),
-                        terminal_ansi_bright_cyan: Some(rgba(0x00cae6ff).into()),
-                        terminal_ansi_bright_white: Some(rgba(0xbbc3c4ff).into()),
-                        terminal_ansi_black: Some(rgba(0x0c006bff).into()),
-                        terminal_ansi_red: Some(rgba(0xe34d1bff).into()),
-                        terminal_ansi_green: Some(rgba(0x00b368ff).into()),
-                        terminal_ansi_yellow: Some(rgba(0xf49724ff).into()),
-                        terminal_ansi_blue: Some(rgba(0x0094f0ff).into()),
-                        terminal_ansi_magenta: Some(rgba(0xff5792ff).into()),
-                        terminal_ansi_cyan: Some(rgba(0x00bdd6ff).into()),
-                        terminal_ansi_white: Some(rgba(0x8ca6a6ff).into()),
-                        ..Default::default()
-                    },
-                    status: StatusColorsRefinement {
-                        deleted: Some(rgba(0xff3f00ff).into()),
-                        error: Some(rgba(0xff3f00ff).into()),
-                        hidden: Some(rgba(0x74708dff).into()),
-                        warning: Some(rgba(0xe07a52ff).into()),
-                        ..Default::default()
-                    },
-                },
-            },
-            UserTheme {
-                name: "Noctis Lux".into(),
-                appearance: Appearance::Light,
-                styles: UserThemeStylesRefinement {
-                    colors: ThemeColorsRefinement {
-                        border: Some(rgba(0x00c6e0ff).into()),
-                        border_variant: Some(rgba(0x00c6e0ff).into()),
-                        border_focused: Some(rgba(0xf2eddeff).into()),
-                        border_selected: Some(rgba(0x00c6e0ff).into()),
-                        border_transparent: Some(rgba(0x00c6e0ff).into()),
-                        border_disabled: Some(rgba(0x00c6e0ff).into()),
-                        elevated_surface_background: Some(rgba(0xf6eddaff).into()),
-                        surface_background: Some(rgba(0xf6eddaff).into()),
-                        background: Some(rgba(0xfef8ecff).into()),
-                        element_background: Some(rgba(0x089099ff).into()),
-                        element_hover: Some(rgba(0xd1f2f8ff).into()),
-                        element_selected: Some(rgba(0xb6e1e7ff).into()),
-                        drop_target_background: Some(rgba(0xcccab1ff).into()),
-                        ghost_element_hover: Some(rgba(0xd1f2f8ff).into()),
-                        text: Some(rgba(0x005661ff).into()),
-                        tab_inactive_background: Some(rgba(0xf0e9d6ff).into()),
-                        tab_active_background: Some(rgba(0xfef8ecff).into()),
-                        editor_background: Some(rgba(0xfef8ecff).into()),
-                        editor_gutter_background: Some(rgba(0xfef8ecff).into()),
-                        editor_line_number: Some(rgba(0xa0abacff).into()),
-                        editor_active_line_number: Some(rgba(0x005661ff).into()),
-                        terminal_background: Some(rgba(0xf6eddaff).into()),
-                        terminal_ansi_bright_black: Some(rgba(0x004d57ff).into()),
-                        terminal_ansi_bright_red: Some(rgba(0xff3f00ff).into()),
-                        terminal_ansi_bright_green: Some(rgba(0x00d17aff).into()),
-                        terminal_ansi_bright_yellow: Some(rgba(0xff8c00ff).into()),
-                        terminal_ansi_bright_blue: Some(rgba(0x0ea3ffff).into()),
-                        terminal_ansi_bright_magenta: Some(rgba(0xff6b9eff).into()),
-                        terminal_ansi_bright_cyan: Some(rgba(0x00cae6ff).into()),
-                        terminal_ansi_bright_white: Some(rgba(0xbbc3c4ff).into()),
-                        terminal_ansi_black: Some(rgba(0x003b41ff).into()),
-                        terminal_ansi_red: Some(rgba(0xe34d1bff).into()),
-                        terminal_ansi_green: Some(rgba(0x00b368ff).into()),
-                        terminal_ansi_yellow: Some(rgba(0xf49724ff).into()),
-                        terminal_ansi_blue: Some(rgba(0x0094f0ff).into()),
-                        terminal_ansi_magenta: Some(rgba(0xff5792ff).into()),
-                        terminal_ansi_cyan: Some(rgba(0x00bdd6ff).into()),
-                        terminal_ansi_white: Some(rgba(0x8ca6a6ff).into()),
-                        ..Default::default()
-                    },
-                    status: StatusColorsRefinement {
-                        deleted: Some(rgba(0xff3f00ff).into()),
-                        error: Some(rgba(0xff3f00ff).into()),
-                        hidden: Some(rgba(0x878476ff).into()),
-                        warning: Some(rgba(0xe07a52ff).into()),
-                        ..Default::default()
-                    },
-                },
-            },
-            UserTheme {
-                name: "Noctis Minimus".into(),
-                appearance: Appearance::Dark,
-                styles: UserThemeStylesRefinement {
-                    colors: ThemeColorsRefinement {
-                        border: Some(rgba(0x496c83ff).into()),
-                        border_variant: Some(rgba(0x496c83ff).into()),
-                        border_focused: Some(rgba(0x202d37ff).into()),
-                        border_selected: Some(rgba(0x496c83ff).into()),
-                        border_transparent: Some(rgba(0x496c83ff).into()),
-                        border_disabled: Some(rgba(0x496c83ff).into()),
-                        elevated_surface_background: Some(rgba(0x0e1920ff).into()),
-                        surface_background: Some(rgba(0x0e1920ff).into()),
-                        background: Some(rgba(0x1b2932ff).into()),
-                        element_background: Some(rgba(0x2e616bff).into()),
-                        element_hover: Some(rgba(0x00558aff).into()),
-                        element_selected: Some(rgba(0x2c414eff).into()),
-                        drop_target_background: Some(rgba(0x152836ff).into()),
-                        ghost_element_hover: Some(rgba(0x00558aff).into()),
-                        text: Some(rgba(0xc5cdd3ff).into()),
-                        tab_inactive_background: Some(rgba(0x202d37ff).into()),
-                        tab_active_background: Some(rgba(0x1b2932ff).into()),
-                        editor_background: Some(rgba(0x1b2932ff).into()),
-                        editor_gutter_background: Some(rgba(0x1b2932ff).into()),
-                        editor_line_number: Some(rgba(0x5d6e79ff).into()),
-                        editor_active_line_number: Some(rgba(0xc5cdd3ff).into()),
-                        terminal_background: Some(rgba(0x0e1920ff).into()),
-                        terminal_ansi_bright_black: Some(rgba(0x425866ff).into()),
-                        terminal_ansi_bright_red: Some(rgba(0xca8468ff).into()),
-                        terminal_ansi_bright_green: Some(rgba(0x84c8abff).into()),
-                        terminal_ansi_bright_yellow: Some(rgba(0xd1aa7bff).into()),
-                        terminal_ansi_bright_blue: Some(rgba(0x68a4caff).into()),
-                        terminal_ansi_bright_magenta: Some(rgba(0xc88da2ff).into()),
-                        terminal_ansi_bright_cyan: Some(rgba(0x84bfc8ff).into()),
-                        terminal_ansi_bright_white: Some(rgba(0xc5d1d3ff).into()),
-                        terminal_ansi_black: Some(rgba(0x182935ff).into()),
-                        terminal_ansi_red: Some(rgba(0xc08872ff).into()),
-                        terminal_ansi_green: Some(rgba(0x72c09fff).into()),
-                        terminal_ansi_yellow: Some(rgba(0xc8a984ff).into()),
-                        terminal_ansi_blue: Some(rgba(0x6095b7ff).into()),
-                        terminal_ansi_magenta: Some(rgba(0xc28097ff).into()),
-                        terminal_ansi_cyan: Some(rgba(0x72b7c0ff).into()),
-                        terminal_ansi_white: Some(rgba(0xc5cdd3ff).into()),
-                        ..Default::default()
-                    },
-                    status: StatusColorsRefinement {
-                        deleted: Some(rgba(0xb96245ff).into()),
-                        error: Some(rgba(0xb96245ff).into()),
-                        hidden: Some(rgba(0x96a8b6ff).into()),
-                        warning: Some(rgba(0xffa857ff).into()),
-                        ..Default::default()
-                    },
-                },
-            },
-            UserTheme {
-                name: "Noctis".into(),
-                appearance: Appearance::Dark,
-                styles: UserThemeStylesRefinement {
-                    colors: ThemeColorsRefinement {
-                        border: Some(rgba(0x0d6571ff).into()),
-                        border_variant: Some(rgba(0x0d6571ff).into()),
-                        border_focused: Some(rgba(0x063940ff).into()),
-                        border_selected: Some(rgba(0x0d6571ff).into()),
-                        border_transparent: Some(rgba(0x0d6571ff).into()),
-                        border_disabled: Some(rgba(0x0d6571ff).into()),
-                        elevated_surface_background: Some(rgba(0x03181aff).into()),
-                        surface_background: Some(rgba(0x03181aff).into()),
-                        background: Some(rgba(0x052428ff).into()),
-                        element_background: Some(rgba(0x089099ff).into()),
-                        element_hover: Some(rgba(0x0b505aff).into()),
-                        element_selected: Some(rgba(0x0d6571ff).into()),
-                        drop_target_background: Some(rgba(0x00404dff).into()),
-                        ghost_element_hover: Some(rgba(0x0b505aff).into()),
-                        text: Some(rgba(0xb1c9ccff).into()),
-                        tab_inactive_background: Some(rgba(0x052e32ff).into()),
-                        tab_active_background: Some(rgba(0x052428ff).into()),
-                        editor_background: Some(rgba(0x052428ff).into()),
-                        editor_gutter_background: Some(rgba(0x052428ff).into()),
-                        editor_line_number: Some(rgba(0x4e6b6eff).into()),
-                        editor_active_line_number: Some(rgba(0xb1c9ccff).into()),
-                        terminal_background: Some(rgba(0x03181aff).into()),
-                        terminal_ansi_bright_black: Some(rgba(0x47686cff).into()),
-                        terminal_ansi_bright_red: Some(rgba(0xe97749ff).into()),
-                        terminal_ansi_bright_green: Some(rgba(0x5febb1ff).into()),
-                        terminal_ansi_bright_yellow: Some(rgba(0xe69532ff).into()),
-                        terminal_ansi_bright_blue: Some(rgba(0x5fb5ebff).into()),
-                        terminal_ansi_bright_magenta: Some(rgba(0xe697b2ff).into()),
-                        terminal_ansi_bright_cyan: Some(rgba(0x5fdaebff).into()),
-                        terminal_ansi_bright_white: Some(rgba(0xc1d4d7ff).into()),
-                        terminal_ansi_black: Some(rgba(0x324a4dff).into()),
-                        terminal_ansi_red: Some(rgba(0xe66432ff).into()),
-                        terminal_ansi_green: Some(rgba(0x49e9a6ff).into()),
-                        terminal_ansi_yellow: Some(rgba(0xe4b781ff).into()),
-                        terminal_ansi_blue: Some(rgba(0x49ace9ff).into()),
-                        terminal_ansi_magenta: Some(rgba(0xdf759aff).into()),
-                        terminal_ansi_cyan: Some(rgba(0x49d5e9ff).into()),
-                        terminal_ansi_white: Some(rgba(0xb1c9ccff).into()),
-                        ..Default::default()
-                    },
-                    status: StatusColorsRefinement {
-                        deleted: Some(rgba(0xe34d1bff).into()),
-                        error: Some(rgba(0xe34d1bff).into()),
-                        hidden: Some(rgba(0x87a7abff).into()),
-                        warning: Some(rgba(0xffa487ff).into()),
-                        ..Default::default()
-                    },
-                },
-            },
-            UserTheme {
-                name: "Noctis Obscuro".into(),
-                appearance: Appearance::Dark,
-                styles: UserThemeStylesRefinement {
-                    colors: ThemeColorsRefinement {
-                        border: Some(rgba(0x0d6571ff).into()),
-                        border_variant: Some(rgba(0x0d6571ff).into()),
-                        border_focused: Some(rgba(0x052e32ff).into()),
-                        border_selected: Some(rgba(0x0d6571ff).into()),
-                        border_transparent: Some(rgba(0x0d6571ff).into()),
-                        border_disabled: Some(rgba(0x0d6571ff).into()),
-                        elevated_surface_background: Some(rgba(0x020c0eff).into()),
-                        surface_background: Some(rgba(0x020c0eff).into()),
-                        background: Some(rgba(0x031316ff).into()),
-                        element_background: Some(rgba(0x089099ff).into()),
-                        element_hover: Some(rgba(0x0b505aff).into()),
-                        element_selected: Some(rgba(0x0d6571ff).into()),
-                        drop_target_background: Some(rgba(0x00404dff).into()),
-                        ghost_element_hover: Some(rgba(0x0b505aff).into()),
-                        text: Some(rgba(0xb1c9ccff).into()),
-                        tab_inactive_background: Some(rgba(0x052e32ff).into()),
-                        tab_active_background: Some(rgba(0x031316ff).into()),
-                        editor_background: Some(rgba(0x031316ff).into()),
-                        editor_gutter_background: Some(rgba(0x031316ff).into()),
-                        editor_line_number: Some(rgba(0x4e6b6eff).into()),
-                        editor_active_line_number: Some(rgba(0xb1c9ccff).into()),
-                        terminal_background: Some(rgba(0x020c0eff).into()),
-                        terminal_ansi_bright_black: Some(rgba(0x47686cff).into()),
-                        terminal_ansi_bright_red: Some(rgba(0xe97749ff).into()),
-                        terminal_ansi_bright_green: Some(rgba(0x5febb1ff).into()),
-                        terminal_ansi_bright_yellow: Some(rgba(0xe69532ff).into()),
-                        terminal_ansi_bright_blue: Some(rgba(0x5fb5ebff).into()),
-                        terminal_ansi_bright_magenta: Some(rgba(0xe697b2ff).into()),
-                        terminal_ansi_bright_cyan: Some(rgba(0x5fdaebff).into()),
-                        terminal_ansi_bright_white: Some(rgba(0xc1d4d7ff).into()),
-                        terminal_ansi_black: Some(rgba(0x324a4dff).into()),
-                        terminal_ansi_red: Some(rgba(0xe66432ff).into()),
-                        terminal_ansi_green: Some(rgba(0x49e9a6ff).into()),
-                        terminal_ansi_yellow: Some(rgba(0xe4b781ff).into()),
-                        terminal_ansi_blue: Some(rgba(0x49ace9ff).into()),
-                        terminal_ansi_magenta: Some(rgba(0xdf759aff).into()),
-                        terminal_ansi_cyan: Some(rgba(0x49d5e9ff).into()),
-                        terminal_ansi_white: Some(rgba(0xb1c9ccff).into()),
-                        ..Default::default()
-                    },
-                    status: StatusColorsRefinement {
-                        deleted: Some(rgba(0xe34d1bff).into()),
-                        error: Some(rgba(0xe34d1bff).into()),
-                        hidden: Some(rgba(0x87a7abff).into()),
-                        warning: Some(rgba(0xffa487ff).into()),
-                        ..Default::default()
-                    },
-                },
-            },
-            UserTheme {
-                name: "Noctis Sereno".into(),
-                appearance: Appearance::Dark,
-                styles: UserThemeStylesRefinement {
-                    colors: ThemeColorsRefinement {
-                        border: Some(rgba(0x0d6571ff).into()),
-                        border_variant: Some(rgba(0x0d6571ff).into()),
-                        border_focused: Some(rgba(0x052e32ff).into()),
-                        border_selected: Some(rgba(0x0d6571ff).into()),
-                        border_transparent: Some(rgba(0x0d6571ff).into()),
-                        border_disabled: Some(rgba(0x0d6571ff).into()),
-                        elevated_surface_background: Some(rgba(0x020c0eff).into()),
-                        surface_background: Some(rgba(0x020c0eff).into()),
-                        background: Some(rgba(0x031316ff).into()),
-                        element_background: Some(rgba(0x089099ff).into()),
-                        element_hover: Some(rgba(0x0b505aff).into()),
-                        element_selected: Some(rgba(0x0d6571ff).into()),
-                        drop_target_background: Some(rgba(0x00404dff).into()),
-                        ghost_element_hover: Some(rgba(0x0b505aff).into()),
-                        text: Some(rgba(0xb1c9ccff).into()),
-                        tab_inactive_background: Some(rgba(0x052e32ff).into()),
-                        tab_active_background: Some(rgba(0x031316ff).into()),
-                        editor_background: Some(rgba(0x031316ff).into()),
-                        editor_gutter_background: Some(rgba(0x031316ff).into()),
-                        editor_line_number: Some(rgba(0x4e6b6eff).into()),
-                        editor_active_line_number: Some(rgba(0xb1c9ccff).into()),
-                        terminal_background: Some(rgba(0x020c0eff).into()),
-                        terminal_ansi_bright_black: Some(rgba(0x47686cff).into()),
-                        terminal_ansi_bright_red: Some(rgba(0xe97749ff).into()),
-                        terminal_ansi_bright_green: Some(rgba(0x5febb1ff).into()),
-                        terminal_ansi_bright_yellow: Some(rgba(0xe69532ff).into()),
-                        terminal_ansi_bright_blue: Some(rgba(0x5fb5ebff).into()),
-                        terminal_ansi_bright_magenta: Some(rgba(0xe697b2ff).into()),
-                        terminal_ansi_bright_cyan: Some(rgba(0x5fdaebff).into()),
-                        terminal_ansi_bright_white: Some(rgba(0xc1d4d7ff).into()),
-                        terminal_ansi_black: Some(rgba(0x324a4dff).into()),
-                        terminal_ansi_red: Some(rgba(0xe66432ff).into()),
-                        terminal_ansi_green: Some(rgba(0x49e9a6ff).into()),
-                        terminal_ansi_yellow: Some(rgba(0xe4b781ff).into()),
-                        terminal_ansi_blue: Some(rgba(0x49ace9ff).into()),
-                        terminal_ansi_magenta: Some(rgba(0xdf759aff).into()),
-                        terminal_ansi_cyan: Some(rgba(0x49d5e9ff).into()),
-                        terminal_ansi_white: Some(rgba(0xb1c9ccff).into()),
-                        ..Default::default()
-                    },
-                    status: StatusColorsRefinement {
-                        deleted: Some(rgba(0xe34d1bff).into()),
-                        error: Some(rgba(0xe34d1bff).into()),
-                        hidden: Some(rgba(0x87a7abff).into()),
-                        warning: Some(rgba(0xffa487ff).into()),
-                        ..Default::default()
-                    },
-                },
-            },
-            UserTheme {
-                name: "Noctis Uva".into(),
-                appearance: Appearance::Dark,
-                styles: UserThemeStylesRefinement {
-                    colors: ThemeColorsRefinement {
-                        border: Some(rgba(0x6d66a7ff).into()),
-                        border_variant: Some(rgba(0x6d66a7ff).into()),
-                        border_focused: Some(rgba(0x2f2c49ff).into()),
-                        border_selected: Some(rgba(0x6d66a7ff).into()),
-                        border_transparent: Some(rgba(0x6d66a7ff).into()),
-                        border_disabled: Some(rgba(0x6d66a7ff).into()),
-                        elevated_surface_background: Some(rgba(0x1f1d30ff).into()),
-                        surface_background: Some(rgba(0x1f1d30ff).into()),
-                        background: Some(rgba(0x292640ff).into()),
-                        element_background: Some(rgba(0x007e99ff).into()),
-                        element_hover: Some(rgba(0x383866ff).into()),
-                        element_selected: Some(rgba(0x322e5cff).into()),
-                        drop_target_background: Some(rgba(0x202040ff).into()),
-                        ghost_element_hover: Some(rgba(0x383866ff).into()),
-                        text: Some(rgba(0xc5c2d6ff).into()),
-                        tab_inactive_background: Some(rgba(0x2f2c49ff).into()),
-                        tab_active_background: Some(rgba(0x292640ff).into()),
-                        editor_background: Some(rgba(0x292640ff).into()),
-                        editor_gutter_background: Some(rgba(0x292640ff).into()),
-                        editor_line_number: Some(rgba(0x5c5973ff).into()),
-                        editor_active_line_number: Some(rgba(0xc5c2d6ff).into()),
-                        terminal_background: Some(rgba(0x1f1d30ff).into()),
-                        terminal_ansi_bright_black: Some(rgba(0x504e65ff).into()),
-                        terminal_ansi_bright_red: Some(rgba(0xe97749ff).into()),
-                        terminal_ansi_bright_green: Some(rgba(0x5febb1ff).into()),
-                        terminal_ansi_bright_yellow: Some(rgba(0xe69532ff).into()),
-                        terminal_ansi_bright_blue: Some(rgba(0x5fb5ebff).into()),
-                        terminal_ansi_bright_magenta: Some(rgba(0xe697b2ff).into()),
-                        terminal_ansi_bright_cyan: Some(rgba(0x5fdaebff).into()),
-                        terminal_ansi_bright_white: Some(rgba(0xc5c2d6ff).into()),
-                        terminal_ansi_black: Some(rgba(0x302f3dff).into()),
-                        terminal_ansi_red: Some(rgba(0xe66432ff).into()),
-                        terminal_ansi_green: Some(rgba(0x49e9a6ff).into()),
-                        terminal_ansi_yellow: Some(rgba(0xe4b781ff).into()),
-                        terminal_ansi_blue: Some(rgba(0x49ace9ff).into()),
-                        terminal_ansi_magenta: Some(rgba(0xdf759aff).into()),
-                        terminal_ansi_cyan: Some(rgba(0x49d5e9ff).into()),
-                        terminal_ansi_white: Some(rgba(0xb6b3ccff).into()),
-                        ..Default::default()
-                    },
-                    status: StatusColorsRefinement {
-                        deleted: Some(rgba(0xe34d1bff).into()),
-                        error: Some(rgba(0xe34d1bff).into()),
-                        hidden: Some(rgba(0xa9a5c0ff).into()),
-                        warning: Some(rgba(0xffa857ff).into()),
-                        ..Default::default()
-                    },
-                },
-            },
-            UserTheme {
-                name: "Noctis Viola".into(),
-                appearance: Appearance::Dark,
-                styles: UserThemeStylesRefinement {
-                    colors: ThemeColorsRefinement {
-                        border: Some(rgba(0x8666a7ff).into()),
-                        border_variant: Some(rgba(0x8666a7ff).into()),
-                        border_focused: Some(rgba(0x3d2e4dff).into()),
-                        border_selected: Some(rgba(0x8666a7ff).into()),
-                        border_transparent: Some(rgba(0x8666a7ff).into()),
-                        border_disabled: Some(rgba(0x8666a7ff).into()),
-                        elevated_surface_background: Some(rgba(0x291d35ff).into()),
-                        surface_background: Some(rgba(0x291d35ff).into()),
-                        background: Some(rgba(0x30243dff).into()),
-                        element_background: Some(rgba(0x007e99ff).into()),
-                        element_hover: Some(rgba(0x69438dff).into()),
-                        element_selected: Some(rgba(0x472e60ff).into()),
-                        drop_target_background: Some(rgba(0x302040ff).into()),
-                        ghost_element_hover: Some(rgba(0x69438dff).into()),
-                        text: Some(rgba(0xccbfd9ff).into()),
-                        tab_inactive_background: Some(rgba(0x3d2e4dff).into()),
-                        tab_active_background: Some(rgba(0x30243dff).into()),
-                        editor_background: Some(rgba(0x30243dff).into()),
-                        editor_gutter_background: Some(rgba(0x30243dff).into()),
-                        editor_line_number: Some(rgba(0x665973ff).into()),
-                        editor_active_line_number: Some(rgba(0xccbfd9ff).into()),
-                        terminal_background: Some(rgba(0x291d35ff).into()),
-                        terminal_ansi_bright_black: Some(rgba(0x594e65ff).into()),
-                        terminal_ansi_bright_red: Some(rgba(0xe97749ff).into()),
-                        terminal_ansi_bright_green: Some(rgba(0x5febb1ff).into()),
-                        terminal_ansi_bright_yellow: Some(rgba(0xe69532ff).into()),
-                        terminal_ansi_bright_blue: Some(rgba(0x5fb5ebff).into()),
-                        terminal_ansi_bright_magenta: Some(rgba(0xe697b2ff).into()),
-                        terminal_ansi_bright_cyan: Some(rgba(0x5fdaebff).into()),
-                        terminal_ansi_bright_white: Some(rgba(0xccbfd9ff).into()),
-                        terminal_ansi_black: Some(rgba(0x362f3dff).into()),
-                        terminal_ansi_red: Some(rgba(0xe66432ff).into()),
-                        terminal_ansi_green: Some(rgba(0x49e9a6ff).into()),
-                        terminal_ansi_yellow: Some(rgba(0xe4b781ff).into()),
-                        terminal_ansi_blue: Some(rgba(0x49ace9ff).into()),
-                        terminal_ansi_magenta: Some(rgba(0xdf759aff).into()),
-                        terminal_ansi_cyan: Some(rgba(0x49d5e9ff).into()),
-                        terminal_ansi_white: Some(rgba(0xbfafcfff).into()),
-                        ..Default::default()
-                    },
-                    status: StatusColorsRefinement {
-                        deleted: Some(rgba(0xe34d1bff).into()),
-                        error: Some(rgba(0xe34d1bff).into()),
-                        hidden: Some(rgba(0xb3a5c0ff).into()),
-                        warning: Some(rgba(0xffa857ff).into()),
-                        ..Default::default()
-                    },
-                },
-            },
-        ],
-    }
+            use crate::{
+                Appearance, ThemeColorsRefinement, StatusColorsRefinement, UserTheme, UserThemeFamily, UserThemeStylesRefinement,
+            };
+
+            pub fn notctis() -> UserThemeFamily {
+                UserThemeFamily {
+    name: "Notctis".into(),
+    author: "Liviu Schera (liviuschera)".into(),

crates/theme2/src/themes/palenight.rs πŸ”—

@@ -1,174 +1,18 @@
-// This file was generated by the `theme_importer`.
-// Be careful when modifying it by hand.
 
-use gpui::rgba;
+            // This file was generated by the `theme_importer`.
+            // Be careful when modifying it by hand.
 
-use crate::{
-    Appearance, StatusColorsRefinement, ThemeColorsRefinement, UserTheme, UserThemeFamily,
-    UserThemeStylesRefinement,
-};
+            use gpui::rgba;
 
-pub fn palenight() -> UserThemeFamily {
-    UserThemeFamily {
-        name: "Palenight".into(),
-        author: "Olaolu Olawuyi (whizkydee)".into(),
-        themes: vec![
-            UserTheme {
-                name: "Palenight".into(),
-                appearance: Appearance::Dark,
-                styles: UserThemeStylesRefinement {
-                    colors: ThemeColorsRefinement {
-                        border: Some(rgba(0x282b3bff).into()),
-                        border_variant: Some(rgba(0x282b3bff).into()),
-                        border_focused: Some(rgba(0x282b3bff).into()),
-                        border_selected: Some(rgba(0x282b3bff).into()),
-                        border_transparent: Some(rgba(0x282b3bff).into()),
-                        border_disabled: Some(rgba(0x282b3bff).into()),
-                        elevated_surface_background: Some(rgba(0x292c3eff).into()),
-                        surface_background: Some(rgba(0x292c3eff).into()),
-                        background: Some(rgba(0x292c3eff).into()),
-                        element_background: Some(rgba(0x7d56c1cc).into()),
-                        element_hover: Some(rgba(0x0000001a).into()),
-                        element_selected: Some(rgba(0x7d56c1ff).into()),
-                        drop_target_background: Some(rgba(0x2e3245ff).into()),
-                        ghost_element_hover: Some(rgba(0x0000001a).into()),
-                        text: Some(rgba(0xffffffff).into()),
-                        tab_inactive_background: Some(rgba(0x31364aff).into()),
-                        tab_active_background: Some(rgba(0x292c3eff).into()),
-                        editor_background: Some(rgba(0x292c3eff).into()),
-                        editor_gutter_background: Some(rgba(0x292c3eff).into()),
-                        editor_line_number: Some(rgba(0x4c5374ff).into()),
-                        editor_active_line_number: Some(rgba(0xbfc7d5ff).into()),
-                        terminal_ansi_bright_black: Some(rgba(0x676e95ff).into()),
-                        terminal_ansi_bright_red: Some(rgba(0xff5571ff).into()),
-                        terminal_ansi_bright_green: Some(rgba(0xc3e88dff).into()),
-                        terminal_ansi_bright_yellow: Some(rgba(0xffcb6bff).into()),
-                        terminal_ansi_bright_blue: Some(rgba(0x82aaffff).into()),
-                        terminal_ansi_bright_magenta: Some(rgba(0xc792eaff).into()),
-                        terminal_ansi_bright_cyan: Some(rgba(0x89ddffff).into()),
-                        terminal_ansi_bright_white: Some(rgba(0xffffffff).into()),
-                        terminal_ansi_black: Some(rgba(0x676e95ff).into()),
-                        terminal_ansi_red: Some(rgba(0xff5571ff).into()),
-                        terminal_ansi_green: Some(rgba(0xa9c77dff).into()),
-                        terminal_ansi_yellow: Some(rgba(0xffcb6bff).into()),
-                        terminal_ansi_blue: Some(rgba(0x82aaffff).into()),
-                        terminal_ansi_magenta: Some(rgba(0xc792eaff).into()),
-                        terminal_ansi_cyan: Some(rgba(0x89ddffff).into()),
-                        terminal_ansi_white: Some(rgba(0xffffffff).into()),
-                        ..Default::default()
-                    },
-                    status: StatusColorsRefinement {
-                        deleted: Some(rgba(0xef524fff).into()),
-                        error: Some(rgba(0xef524fff).into()),
-                        hidden: Some(rgba(0x9199c8ff).into()),
-                        ..Default::default()
-                    },
-                },
-            },
-            UserTheme {
-                name: "Palenight Operator".into(),
-                appearance: Appearance::Dark,
-                styles: UserThemeStylesRefinement {
-                    colors: ThemeColorsRefinement {
-                        border: Some(rgba(0x282b3bff).into()),
-                        border_variant: Some(rgba(0x282b3bff).into()),
-                        border_focused: Some(rgba(0x282b3bff).into()),
-                        border_selected: Some(rgba(0x282b3bff).into()),
-                        border_transparent: Some(rgba(0x282b3bff).into()),
-                        border_disabled: Some(rgba(0x282b3bff).into()),
-                        elevated_surface_background: Some(rgba(0x292c3eff).into()),
-                        surface_background: Some(rgba(0x292c3eff).into()),
-                        background: Some(rgba(0x292c3eff).into()),
-                        element_background: Some(rgba(0x7d56c1cc).into()),
-                        element_hover: Some(rgba(0x0000001a).into()),
-                        element_selected: Some(rgba(0x7d56c1ff).into()),
-                        drop_target_background: Some(rgba(0x2e3245ff).into()),
-                        ghost_element_hover: Some(rgba(0x0000001a).into()),
-                        text: Some(rgba(0xffffffff).into()),
-                        tab_inactive_background: Some(rgba(0x31364aff).into()),
-                        tab_active_background: Some(rgba(0x292c3eff).into()),
-                        editor_background: Some(rgba(0x292c3eff).into()),
-                        editor_gutter_background: Some(rgba(0x292c3eff).into()),
-                        editor_line_number: Some(rgba(0x4c5374ff).into()),
-                        editor_active_line_number: Some(rgba(0xbfc7d5ff).into()),
-                        terminal_ansi_bright_black: Some(rgba(0x676e95ff).into()),
-                        terminal_ansi_bright_red: Some(rgba(0xff5571ff).into()),
-                        terminal_ansi_bright_green: Some(rgba(0xc3e88dff).into()),
-                        terminal_ansi_bright_yellow: Some(rgba(0xffcb6bff).into()),
-                        terminal_ansi_bright_blue: Some(rgba(0x82aaffff).into()),
-                        terminal_ansi_bright_magenta: Some(rgba(0xc792eaff).into()),
-                        terminal_ansi_bright_cyan: Some(rgba(0x89ddffff).into()),
-                        terminal_ansi_bright_white: Some(rgba(0xffffffff).into()),
-                        terminal_ansi_black: Some(rgba(0x676e95ff).into()),
-                        terminal_ansi_red: Some(rgba(0xff5571ff).into()),
-                        terminal_ansi_green: Some(rgba(0xa9c77dff).into()),
-                        terminal_ansi_yellow: Some(rgba(0xffcb6bff).into()),
-                        terminal_ansi_blue: Some(rgba(0x82aaffff).into()),
-                        terminal_ansi_magenta: Some(rgba(0xc792eaff).into()),
-                        terminal_ansi_cyan: Some(rgba(0x89ddffff).into()),
-                        terminal_ansi_white: Some(rgba(0xffffffff).into()),
-                        ..Default::default()
-                    },
-                    status: StatusColorsRefinement {
-                        deleted: Some(rgba(0xef524fff).into()),
-                        error: Some(rgba(0xef524fff).into()),
-                        hidden: Some(rgba(0x9199c8ff).into()),
-                        ..Default::default()
-                    },
-                },
-            },
-            UserTheme {
-                name: "Palenight (Mild Contrast)".into(),
-                appearance: Appearance::Dark,
-                styles: UserThemeStylesRefinement {
-                    colors: ThemeColorsRefinement {
-                        border: Some(rgba(0x2c2f40ff).into()),
-                        border_variant: Some(rgba(0x2c2f40ff).into()),
-                        border_focused: Some(rgba(0x2c2f40ff).into()),
-                        border_selected: Some(rgba(0x2c2f40ff).into()),
-                        border_transparent: Some(rgba(0x2c2f40ff).into()),
-                        border_disabled: Some(rgba(0x2c2f40ff).into()),
-                        elevated_surface_background: Some(rgba(0x25283aff).into()),
-                        surface_background: Some(rgba(0x25283aff).into()),
-                        background: Some(rgba(0x292c3eff).into()),
-                        element_background: Some(rgba(0x7d56c1cc).into()),
-                        element_hover: Some(rgba(0x0000001a).into()),
-                        element_selected: Some(rgba(0x7d56c1ff).into()),
-                        drop_target_background: Some(rgba(0x2e3245ff).into()),
-                        ghost_element_hover: Some(rgba(0x0000001a).into()),
-                        text: Some(rgba(0xffffffff).into()),
-                        tab_inactive_background: Some(rgba(0x31364aff).into()),
-                        tab_active_background: Some(rgba(0x25283aff).into()),
-                        editor_background: Some(rgba(0x292c3eff).into()),
-                        editor_gutter_background: Some(rgba(0x292c3eff).into()),
-                        editor_line_number: Some(rgba(0x4c5374ff).into()),
-                        editor_active_line_number: Some(rgba(0xbfc7d5ff).into()),
-                        terminal_ansi_bright_black: Some(rgba(0x676e95ff).into()),
-                        terminal_ansi_bright_red: Some(rgba(0xff5571ff).into()),
-                        terminal_ansi_bright_green: Some(rgba(0xc3e88dff).into()),
-                        terminal_ansi_bright_yellow: Some(rgba(0xffcb6bff).into()),
-                        terminal_ansi_bright_blue: Some(rgba(0x82aaffff).into()),
-                        terminal_ansi_bright_magenta: Some(rgba(0xc792eaff).into()),
-                        terminal_ansi_bright_cyan: Some(rgba(0x89ddffff).into()),
-                        terminal_ansi_bright_white: Some(rgba(0xffffffff).into()),
-                        terminal_ansi_black: Some(rgba(0x676e95ff).into()),
-                        terminal_ansi_red: Some(rgba(0xff5571ff).into()),
-                        terminal_ansi_green: Some(rgba(0xa9c77dff).into()),
-                        terminal_ansi_yellow: Some(rgba(0xffcb6bff).into()),
-                        terminal_ansi_blue: Some(rgba(0x82aaffff).into()),
-                        terminal_ansi_magenta: Some(rgba(0xc792eaff).into()),
-                        terminal_ansi_cyan: Some(rgba(0x89ddffff).into()),
-                        terminal_ansi_white: Some(rgba(0xffffffff).into()),
-                        ..Default::default()
-                    },
-                    status: StatusColorsRefinement {
-                        deleted: Some(rgba(0xef524fff).into()),
-                        error: Some(rgba(0xef524fff).into()),
-                        hidden: Some(rgba(0x9199c8ff).into()),
-                        ..Default::default()
-                    },
-                },
-            },
-        ],
-    }
+            use crate::{
+                Appearance, ThemeColorsRefinement, StatusColorsRefinement, UserTheme, UserThemeFamily, UserThemeStylesRefinement,
+            };
+
+            pub fn palenight() -> UserThemeFamily {
+                UserThemeFamily {
+    name: "Palenight".into(),
+    author: "Olaolu Olawuyi (whizkydee)".into(),

crates/theme2/src/themes/rose_pine.rs πŸ”—

@@ -1,177 +1,18 @@
-// This file was generated by the `theme_importer`.
-// Be careful when modifying it by hand.
 
-use gpui::rgba;
+            // This file was generated by the `theme_importer`.
+            // Be careful when modifying it by hand.
 
-use crate::{
-    Appearance, StatusColorsRefinement, ThemeColorsRefinement, UserTheme, UserThemeFamily,
-    UserThemeStylesRefinement,
-};
+            use gpui::rgba;
 
-pub fn rose_pine() -> UserThemeFamily {
-    UserThemeFamily {
-        name: "Rose Pine".into(),
-        author: "RosΓ© Pine".into(),
-        themes: vec![
-            UserTheme {
-                name: "Rose Pine".into(),
-                appearance: Appearance::Dark,
-                styles: UserThemeStylesRefinement {
-                    colors: ThemeColorsRefinement {
-                        border: Some(rgba(0x000000ff).into()),
-                        border_variant: Some(rgba(0x000000ff).into()),
-                        border_focused: Some(rgba(0x6e6a8633).into()),
-                        border_selected: Some(rgba(0x000000ff).into()),
-                        border_transparent: Some(rgba(0x000000ff).into()),
-                        border_disabled: Some(rgba(0x000000ff).into()),
-                        elevated_surface_background: Some(rgba(0x1f1d2eff).into()),
-                        surface_background: Some(rgba(0x1f1d2eff).into()),
-                        background: Some(rgba(0x191724ff).into()),
-                        element_background: Some(rgba(0xebbcbaff).into()),
-                        element_hover: Some(rgba(0x6e6a861a).into()),
-                        element_selected: Some(rgba(0x6e6a8633).into()),
-                        drop_target_background: Some(rgba(0x1f1d2eff).into()),
-                        ghost_element_hover: Some(rgba(0x6e6a861a).into()),
-                        text: Some(rgba(0xe0def4ff).into()),
-                        tab_inactive_background: Some(rgba(0x000000ff).into()),
-                        tab_active_background: Some(rgba(0x6e6a861a).into()),
-                        editor_background: Some(rgba(0x191724ff).into()),
-                        editor_gutter_background: Some(rgba(0x191724ff).into()),
-                        editor_line_number: Some(rgba(0x908caaff).into()),
-                        editor_active_line_number: Some(rgba(0xe0def4ff).into()),
-                        terminal_ansi_bright_black: Some(rgba(0x908caaff).into()),
-                        terminal_ansi_bright_red: Some(rgba(0xeb6f92ff).into()),
-                        terminal_ansi_bright_green: Some(rgba(0x30738fff).into()),
-                        terminal_ansi_bright_yellow: Some(rgba(0xf5c177ff).into()),
-                        terminal_ansi_bright_blue: Some(rgba(0x9ccfd8ff).into()),
-                        terminal_ansi_bright_magenta: Some(rgba(0xc4a7e7ff).into()),
-                        terminal_ansi_bright_cyan: Some(rgba(0xebbcbaff).into()),
-                        terminal_ansi_bright_white: Some(rgba(0xe0def4ff).into()),
-                        terminal_ansi_black: Some(rgba(0x26233aff).into()),
-                        terminal_ansi_red: Some(rgba(0xeb6f92ff).into()),
-                        terminal_ansi_green: Some(rgba(0x30738fff).into()),
-                        terminal_ansi_yellow: Some(rgba(0xf5c177ff).into()),
-                        terminal_ansi_blue: Some(rgba(0x9ccfd8ff).into()),
-                        terminal_ansi_magenta: Some(rgba(0xc4a7e7ff).into()),
-                        terminal_ansi_cyan: Some(rgba(0xebbcbaff).into()),
-                        terminal_ansi_white: Some(rgba(0xe0def4ff).into()),
-                        ..Default::default()
-                    },
-                    status: StatusColorsRefinement {
-                        deleted: Some(rgba(0xeb6f92ff).into()),
-                        error: Some(rgba(0xeb6f92ff).into()),
-                        hidden: Some(rgba(0x908caaff).into()),
-                        warning: Some(rgba(0xf5c177ff).into()),
-                        ..Default::default()
-                    },
-                },
-            },
-            UserTheme {
-                name: "Rose Moon".into(),
-                appearance: Appearance::Dark,
-                styles: UserThemeStylesRefinement {
-                    colors: ThemeColorsRefinement {
-                        border: Some(rgba(0x000000ff).into()),
-                        border_variant: Some(rgba(0x000000ff).into()),
-                        border_focused: Some(rgba(0x817c9c26).into()),
-                        border_selected: Some(rgba(0x000000ff).into()),
-                        border_transparent: Some(rgba(0x000000ff).into()),
-                        border_disabled: Some(rgba(0x000000ff).into()),
-                        elevated_surface_background: Some(rgba(0x2a273eff).into()),
-                        surface_background: Some(rgba(0x2a273eff).into()),
-                        background: Some(rgba(0x232136ff).into()),
-                        element_background: Some(rgba(0xea9a97ff).into()),
-                        element_hover: Some(rgba(0x817c9c14).into()),
-                        element_selected: Some(rgba(0x817c9c26).into()),
-                        drop_target_background: Some(rgba(0x2a273eff).into()),
-                        ghost_element_hover: Some(rgba(0x817c9c14).into()),
-                        text: Some(rgba(0xe0def4ff).into()),
-                        tab_inactive_background: Some(rgba(0x000000ff).into()),
-                        tab_active_background: Some(rgba(0x817c9c14).into()),
-                        editor_background: Some(rgba(0x232136ff).into()),
-                        editor_gutter_background: Some(rgba(0x232136ff).into()),
-                        editor_line_number: Some(rgba(0x908caaff).into()),
-                        editor_active_line_number: Some(rgba(0xe0def4ff).into()),
-                        terminal_ansi_bright_black: Some(rgba(0x908caaff).into()),
-                        terminal_ansi_bright_red: Some(rgba(0xeb6f92ff).into()),
-                        terminal_ansi_bright_green: Some(rgba(0x3d8fb0ff).into()),
-                        terminal_ansi_bright_yellow: Some(rgba(0xf5c177ff).into()),
-                        terminal_ansi_bright_blue: Some(rgba(0x9ccfd8ff).into()),
-                        terminal_ansi_bright_magenta: Some(rgba(0xc4a7e7ff).into()),
-                        terminal_ansi_bright_cyan: Some(rgba(0xea9a97ff).into()),
-                        terminal_ansi_bright_white: Some(rgba(0xe0def4ff).into()),
-                        terminal_ansi_black: Some(rgba(0x393552ff).into()),
-                        terminal_ansi_red: Some(rgba(0xeb6f92ff).into()),
-                        terminal_ansi_green: Some(rgba(0x3d8fb0ff).into()),
-                        terminal_ansi_yellow: Some(rgba(0xf5c177ff).into()),
-                        terminal_ansi_blue: Some(rgba(0x9ccfd8ff).into()),
-                        terminal_ansi_magenta: Some(rgba(0xc4a7e7ff).into()),
-                        terminal_ansi_cyan: Some(rgba(0xea9a97ff).into()),
-                        terminal_ansi_white: Some(rgba(0xe0def4ff).into()),
-                        ..Default::default()
-                    },
-                    status: StatusColorsRefinement {
-                        deleted: Some(rgba(0xeb6f92ff).into()),
-                        error: Some(rgba(0xeb6f92ff).into()),
-                        hidden: Some(rgba(0x908caaff).into()),
-                        warning: Some(rgba(0xf5c177ff).into()),
-                        ..Default::default()
-                    },
-                },
-            },
-            UserTheme {
-                name: "Rose Pine Dawn".into(),
-                appearance: Appearance::Light,
-                styles: UserThemeStylesRefinement {
-                    colors: ThemeColorsRefinement {
-                        border: Some(rgba(0x000000ff).into()),
-                        border_variant: Some(rgba(0x000000ff).into()),
-                        border_focused: Some(rgba(0x6e6a8614).into()),
-                        border_selected: Some(rgba(0x000000ff).into()),
-                        border_transparent: Some(rgba(0x000000ff).into()),
-                        border_disabled: Some(rgba(0x000000ff).into()),
-                        elevated_surface_background: Some(rgba(0xfffaf3ff).into()),
-                        surface_background: Some(rgba(0xfffaf3ff).into()),
-                        background: Some(rgba(0xfaf4edff).into()),
-                        element_background: Some(rgba(0xd7827dff).into()),
-                        element_hover: Some(rgba(0x6e6a860d).into()),
-                        element_selected: Some(rgba(0x6e6a8614).into()),
-                        drop_target_background: Some(rgba(0xfffaf3ff).into()),
-                        ghost_element_hover: Some(rgba(0x6e6a860d).into()),
-                        text: Some(rgba(0x575279ff).into()),
-                        tab_inactive_background: Some(rgba(0x000000ff).into()),
-                        tab_active_background: Some(rgba(0x6e6a860d).into()),
-                        editor_background: Some(rgba(0xfaf4edff).into()),
-                        editor_gutter_background: Some(rgba(0xfaf4edff).into()),
-                        editor_line_number: Some(rgba(0x797593ff).into()),
-                        editor_active_line_number: Some(rgba(0x575279ff).into()),
-                        terminal_ansi_bright_black: Some(rgba(0x797593ff).into()),
-                        terminal_ansi_bright_red: Some(rgba(0xb3627aff).into()),
-                        terminal_ansi_bright_green: Some(rgba(0x276983ff).into()),
-                        terminal_ansi_bright_yellow: Some(rgba(0xea9d34ff).into()),
-                        terminal_ansi_bright_blue: Some(rgba(0x55949fff).into()),
-                        terminal_ansi_bright_magenta: Some(rgba(0x9079a9ff).into()),
-                        terminal_ansi_bright_cyan: Some(rgba(0xd7827dff).into()),
-                        terminal_ansi_bright_white: Some(rgba(0x575279ff).into()),
-                        terminal_ansi_black: Some(rgba(0xf2e9e1ff).into()),
-                        terminal_ansi_red: Some(rgba(0xb3627aff).into()),
-                        terminal_ansi_green: Some(rgba(0x276983ff).into()),
-                        terminal_ansi_yellow: Some(rgba(0xea9d34ff).into()),
-                        terminal_ansi_blue: Some(rgba(0x55949fff).into()),
-                        terminal_ansi_magenta: Some(rgba(0x9079a9ff).into()),
-                        terminal_ansi_cyan: Some(rgba(0xd7827dff).into()),
-                        terminal_ansi_white: Some(rgba(0x575279ff).into()),
-                        ..Default::default()
-                    },
-                    status: StatusColorsRefinement {
-                        deleted: Some(rgba(0xb3627aff).into()),
-                        error: Some(rgba(0xb3627aff).into()),
-                        hidden: Some(rgba(0x797593ff).into()),
-                        warning: Some(rgba(0xea9d34ff).into()),
-                        ..Default::default()
-                    },
-                },
-            },
-        ],
-    }
+            use crate::{
+                Appearance, ThemeColorsRefinement, StatusColorsRefinement, UserTheme, UserThemeFamily, UserThemeStylesRefinement,
+            };
+
+            pub fn rose_pine() -> UserThemeFamily {
+                UserThemeFamily {
+    name: "Rose Pine".into(),
+    author: "RosΓ© Pine".into(),

crates/theme2/src/themes/solarized.rs πŸ”—

@@ -1,111 +1,18 @@
-// This file was generated by the `theme_importer`.
-// Be careful when modifying it by hand.
 
-use gpui::rgba;
+            // This file was generated by the `theme_importer`.
+            // Be careful when modifying it by hand.
 
-use crate::{
-    Appearance, StatusColorsRefinement, ThemeColorsRefinement, UserTheme, UserThemeFamily,
-    UserThemeStylesRefinement,
-};
+            use gpui::rgba;
 
-pub fn solarized() -> UserThemeFamily {
-    UserThemeFamily {
-        name: "Solarized".into(),
-        author: "Ethan Schoonover (altercation)".into(),
-        themes: vec![
-            UserTheme {
-                name: "Solarized Dark".into(),
-                appearance: Appearance::Dark,
-                styles: UserThemeStylesRefinement {
-                    colors: ThemeColorsRefinement {
-                        border: Some(rgba(0x003847ff).into()),
-                        border_variant: Some(rgba(0x003847ff).into()),
-                        border_focused: Some(rgba(0x29a19899).into()),
-                        border_selected: Some(rgba(0x003847ff).into()),
-                        border_transparent: Some(rgba(0x003847ff).into()),
-                        border_disabled: Some(rgba(0x003847ff).into()),
-                        background: Some(rgba(0x002a35ff).into()),
-                        element_background: Some(rgba(0x29a19899).into()),
-                        element_hover: Some(rgba(0x004353aa).into()),
-                        element_selected: Some(rgba(0x005a6fff).into()),
-                        drop_target_background: Some(rgba(0x00435388).into()),
-                        ghost_element_hover: Some(rgba(0x004353aa).into()),
-                        tab_inactive_background: Some(rgba(0x003f51ff).into()),
-                        tab_active_background: Some(rgba(0x002a36ff).into()),
-                        editor_background: Some(rgba(0x002a35ff).into()),
-                        editor_gutter_background: Some(rgba(0x002a35ff).into()),
-                        editor_line_number: Some(rgba(0x566c74ff).into()),
-                        terminal_ansi_bright_black: Some(rgba(0x586e75ff).into()),
-                        terminal_ansi_bright_red: Some(rgba(0xcb4b15ff).into()),
-                        terminal_ansi_bright_green: Some(rgba(0x859900ff).into()),
-                        terminal_ansi_bright_yellow: Some(rgba(0x657b83ff).into()),
-                        terminal_ansi_bright_blue: Some(rgba(0x839496ff).into()),
-                        terminal_ansi_bright_magenta: Some(rgba(0x6c71c4ff).into()),
-                        terminal_ansi_bright_cyan: Some(rgba(0x93a1a1ff).into()),
-                        terminal_ansi_bright_white: Some(rgba(0x839496ff).into()),
-                        terminal_ansi_black: Some(rgba(0x063642ff).into()),
-                        terminal_ansi_red: Some(rgba(0xdc312eff).into()),
-                        terminal_ansi_green: Some(rgba(0x859900ff).into()),
-                        terminal_ansi_yellow: Some(rgba(0xb58800ff).into()),
-                        terminal_ansi_blue: Some(rgba(0x258ad2ff).into()),
-                        terminal_ansi_magenta: Some(rgba(0xd33582ff).into()),
-                        terminal_ansi_cyan: Some(rgba(0x29a198ff).into()),
-                        terminal_ansi_white: Some(rgba(0x839496ff).into()),
-                        ..Default::default()
-                    },
-                    status: StatusColorsRefinement {
-                        deleted: Some(rgba(0xffeaeaff).into()),
-                        error: Some(rgba(0xffeaeaff).into()),
-                        hidden: Some(rgba(0x93a1a1ff).into()),
-                        ..Default::default()
-                    },
-                },
-            },
-            UserTheme {
-                name: "Solarized Light".into(),
-                appearance: Appearance::Light,
-                styles: UserThemeStylesRefinement {
-                    colors: ThemeColorsRefinement {
-                        border: Some(rgba(0xddd6c1ff).into()),
-                        border_variant: Some(rgba(0xddd6c1ff).into()),
-                        border_focused: Some(rgba(0xd3af86ff).into()),
-                        border_selected: Some(rgba(0xddd6c1ff).into()),
-                        border_transparent: Some(rgba(0xddd6c1ff).into()),
-                        border_disabled: Some(rgba(0xddd6c1ff).into()),
-                        background: Some(rgba(0xfdf6e3ff).into()),
-                        element_background: Some(rgba(0xab9d56ff).into()),
-                        element_hover: Some(rgba(0xdec98744).into()),
-                        element_selected: Some(rgba(0xdec987ff).into()),
-                        ghost_element_hover: Some(rgba(0xdec98744).into()),
-                        tab_inactive_background: Some(rgba(0xd3cbb7ff).into()),
-                        tab_active_background: Some(rgba(0xfdf6e3ff).into()),
-                        editor_background: Some(rgba(0xfdf6e3ff).into()),
-                        editor_gutter_background: Some(rgba(0xfdf6e3ff).into()),
-                        editor_line_number: Some(rgba(0x9ca8a6ff).into()),
-                        terminal_ansi_bright_black: Some(rgba(0x657b83ff).into()),
-                        terminal_ansi_bright_red: Some(rgba(0xcb4b15ff).into()),
-                        terminal_ansi_bright_green: Some(rgba(0x859900ff).into()),
-                        terminal_ansi_bright_yellow: Some(rgba(0x657b83ff).into()),
-                        terminal_ansi_bright_blue: Some(rgba(0x839496ff).into()),
-                        terminal_ansi_bright_magenta: Some(rgba(0x6c71c4ff).into()),
-                        terminal_ansi_bright_cyan: Some(rgba(0x93a1a1ff).into()),
-                        terminal_ansi_bright_white: Some(rgba(0xeee8d5ff).into()),
-                        terminal_ansi_black: Some(rgba(0x657b83ff).into()),
-                        terminal_ansi_red: Some(rgba(0xdc312eff).into()),
-                        terminal_ansi_green: Some(rgba(0x859900ff).into()),
-                        terminal_ansi_yellow: Some(rgba(0xb58800ff).into()),
-                        terminal_ansi_blue: Some(rgba(0x258ad2ff).into()),
-                        terminal_ansi_magenta: Some(rgba(0xd33582ff).into()),
-                        terminal_ansi_cyan: Some(rgba(0x29a198ff).into()),
-                        terminal_ansi_white: Some(rgba(0xeee8d5ff).into()),
-                        ..Default::default()
-                    },
-                    status: StatusColorsRefinement {
-                        hidden: Some(rgba(0x586e75ff).into()),
-                        ..Default::default()
-                    },
-                },
-            },
-        ],
-    }
+            use crate::{
+                Appearance, ThemeColorsRefinement, StatusColorsRefinement, UserTheme, UserThemeFamily, UserThemeStylesRefinement,
+            };
+
+            pub fn solarized() -> UserThemeFamily {
+                UserThemeFamily {
+    name: "Solarized".into(),
+    author: "Ethan Schoonover (altercation)".into(),

crates/theme2/src/themes/synthwave_84.rs πŸ”—

@@ -1,55 +1,18 @@
-// This file was generated by the `theme_importer`.
-// Be careful when modifying it by hand.
 
-use gpui::rgba;
+            // This file was generated by the `theme_importer`.
+            // Be careful when modifying it by hand.
 
-use crate::{
-    Appearance, StatusColorsRefinement, ThemeColorsRefinement, UserTheme, UserThemeFamily,
-    UserThemeStylesRefinement,
-};
+            use gpui::rgba;
 
-pub fn synthwave_84() -> UserThemeFamily {
-    UserThemeFamily {
-        name: "Synthwave 84".into(),
-        author: "Robb Owen (robb0wen)".into(),
-        themes: vec![UserTheme {
-            name: "Synthwave 84".into(),
-            appearance: Appearance::Dark,
-            styles: UserThemeStylesRefinement {
-                colors: ThemeColorsRefinement {
-                    border_focused: Some(rgba(0x1f212bff).into()),
-                    background: Some(rgba(0x252334ff).into()),
-                    element_background: Some(rgba(0x614d85ff).into()),
-                    element_hover: Some(rgba(0x37294d99).into()),
-                    element_selected: Some(rgba(0xffffff20).into()),
-                    drop_target_background: Some(rgba(0x34294f66).into()),
-                    ghost_element_hover: Some(rgba(0x37294d99).into()),
-                    text: Some(rgba(0xffffffff).into()),
-                    tab_inactive_background: Some(rgba(0x252334ff).into()),
-                    editor_background: Some(rgba(0x252334ff).into()),
-                    editor_gutter_background: Some(rgba(0x252334ff).into()),
-                    editor_line_number: Some(rgba(0xffffff73).into()),
-                    terminal_ansi_bright_red: Some(rgba(0xfe444fff).into()),
-                    terminal_ansi_bright_green: Some(rgba(0x71f1b7ff).into()),
-                    terminal_ansi_bright_yellow: Some(rgba(0xfede5cff).into()),
-                    terminal_ansi_bright_blue: Some(rgba(0x02edf9ff).into()),
-                    terminal_ansi_bright_magenta: Some(rgba(0xff7ddaff).into()),
-                    terminal_ansi_bright_cyan: Some(rgba(0x02edf9ff).into()),
-                    terminal_ansi_red: Some(rgba(0xfe444fff).into()),
-                    terminal_ansi_green: Some(rgba(0x71f1b7ff).into()),
-                    terminal_ansi_yellow: Some(rgba(0xf3e70fff).into()),
-                    terminal_ansi_blue: Some(rgba(0x02edf9ff).into()),
-                    terminal_ansi_magenta: Some(rgba(0xff7ddaff).into()),
-                    terminal_ansi_cyan: Some(rgba(0x02edf9ff).into()),
-                    ..Default::default()
-                },
-                status: StatusColorsRefinement {
-                    deleted: Some(rgba(0xfe444fff).into()),
-                    error: Some(rgba(0xfe444fff).into()),
-                    warning: Some(rgba(0x71f1b7bb).into()),
-                    ..Default::default()
-                },
-            },
-        }],
-    }
+            use crate::{
+                Appearance, ThemeColorsRefinement, StatusColorsRefinement, UserTheme, UserThemeFamily, UserThemeStylesRefinement,
+            };
+
+            pub fn synthwave_84() -> UserThemeFamily {
+                UserThemeFamily {
+    name: "Synthwave 84".into(),
+    author: "Robb Owen (robb0wen)".into(),

crates/theme2/src/user_theme.rs πŸ”—

@@ -1,3 +1,4 @@
+use gpui::Hsla;
 use refineable::Refineable;
 use serde::Deserialize;
 
@@ -24,4 +25,21 @@ pub struct UserThemeStyles {
     pub colors: ThemeColors,
     #[refineable]
     pub status: StatusColors,
+    pub syntax: UserSyntaxTheme,
+}
+
+#[derive(Clone, Default, Deserialize)]
+pub struct UserSyntaxTheme {
+    pub highlights: Vec<(String, UserHighlightStyle)>,
+}
+
+#[derive(Clone, Default, Deserialize)]
+pub struct UserHighlightStyle {
+    pub color: Option<Hsla>,
+}
+
+impl UserHighlightStyle {
+    pub fn is_empty(&self) -> bool {
+        self.color.is_none()
+    }
 }

crates/theme_importer/src/theme_printer.rs πŸ”—

@@ -2,8 +2,8 @@ use std::fmt::{self, Debug};
 
 use gpui::{Hsla, Rgba};
 use theme::{
-    Appearance, PlayerColor, PlayerColors, StatusColors, StatusColorsRefinement, SyntaxTheme,
-    SystemColors, ThemeColorsRefinement, UserTheme, UserThemeFamily, UserThemeStylesRefinement,
+    Appearance, PlayerColor, PlayerColors, StatusColorsRefinement, SystemColors,
+    ThemeColorsRefinement, UserSyntaxTheme, UserTheme, UserThemeFamily, UserThemeStylesRefinement,
 };
 
 struct RawSyntaxPrinter<'a>(&'a str);
@@ -30,6 +30,17 @@ impl<'a, D: Debug> Debug for IntoPrinter<'a, D> {
     }
 }
 
+pub struct OptionPrinter<'a, T>(&'a Option<T>);
+
+impl<'a, T: Debug> Debug for OptionPrinter<'a, T> {
+    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+        match self.0 {
+            Some(value) => write!(f, "Some({:?})", value),
+            None => write!(f, "None"),
+        }
+    }
+}
+
 pub struct VecPrinter<'a, T>(&'a Vec<T>);
 
 impl<'a, T: Debug> Debug for VecPrinter<'a, T> {
@@ -93,6 +104,16 @@ impl<'a> Debug for UserThemeStylesRefinementPrinter<'a> {
         f.debug_struct("UserThemeStylesRefinement")
             .field("colors", &ThemeColorsRefinementPrinter(&self.0.colors))
             .field("status", &StatusColorsRefinementPrinter(&self.0.status))
+            .field(
+                "syntax",
+                &OptionPrinter(
+                    &self
+                        .0
+                        .syntax
+                        .as_ref()
+                        .map(|syntax| UserSyntaxThemePrinter(syntax)),
+                ),
+            )
             .finish()
     }
 }
@@ -316,11 +337,11 @@ impl<'a> Debug for PlayerColorPrinter<'a> {
     }
 }
 
-pub struct SyntaxThemePrinter<'a>(&'a SyntaxTheme);
+pub struct UserSyntaxThemePrinter<'a>(&'a UserSyntaxTheme);
 
-impl<'a> Debug for SyntaxThemePrinter<'a> {
+impl<'a> Debug for UserSyntaxThemePrinter<'a> {
     fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
-        f.debug_struct("SyntaxTheme")
+        f.debug_struct("UserSyntaxTheme")
             .field(
                 "highlights",
                 &VecPrinter(

crates/theme_importer/src/vscode.rs πŸ”—

@@ -1,9 +1,13 @@
 use anyhow::Result;
 use gpui::{Hsla, Rgba};
 use serde::Deserialize;
-use theme::{StatusColorsRefinement, ThemeColorsRefinement, UserTheme, UserThemeStylesRefinement};
+use theme::{
+    StatusColorsRefinement, ThemeColorsRefinement, UserSyntaxTheme, UserTheme,
+    UserThemeStylesRefinement,
+};
 
 use crate::util::Traverse;
+use crate::vscode_syntax::VsCodeTokenColor;
 use crate::ThemeMetadata;
 
 #[derive(Deserialize, Debug)]
@@ -18,6 +22,8 @@ pub struct VsCodeTheme {
     #[serde(rename = "semanticHighlighting")]
     pub semantic_highlighting: Option<bool>,
     pub colors: VsCodeColors,
+    #[serde(rename = "tokenColors")]
+    pub token_colors: Vec<VsCodeTokenColor>,
 }
 
 #[derive(Debug, Deserialize)]
@@ -413,7 +419,7 @@ pub struct VsCodeColors {
     pub list_filter_widget_no_matches_outline: Option<String>,
 }
 
-fn try_parse_color(color: &str) -> Result<Hsla> {
+pub(crate) fn try_parse_color(color: &str) -> Result<Hsla> {
     Ok(Rgba::try_from(color)?.into())
 }
 
@@ -618,12 +624,23 @@ impl VsCodeThemeConverter {
             ..Default::default()
         };
 
+        let mut highlight_styles = Vec::new();
+
+        for token_color in self.theme.token_colors {
+            highlight_styles.extend(token_color.highlight_styles()?);
+        }
+
+        let syntax_theme = UserSyntaxTheme {
+            highlights: highlight_styles,
+        };
+
         Ok(UserTheme {
             name: self.theme_metadata.name.into(),
             appearance,
             styles: UserThemeStylesRefinement {
                 colors: theme_colors_refinements,
                 status: status_color_refinements,
+                syntax: Some(syntax_theme),
             },
         })
     }

crates/theme_importer/src/vscode_syntax.rs πŸ”—

@@ -0,0 +1,261 @@
+// Create ThemeSyntaxRefinement
+// Map tokenColors style to HighlightStyle (fontStyle, foreground, background)
+// Take in the scopes from the tokenColors and try to match each to our HighlightStyles
+
+use anyhow::Result;
+use serde::Deserialize;
+use theme::UserHighlightStyle;
+
+use crate::{util::Traverse, vscode::try_parse_color};
+
+#[derive(Debug, Deserialize)]
+#[serde(untagged)]
+pub enum VsCodeTokenScope {
+    One(String),
+    Many(Vec<String>),
+}
+
+#[derive(Debug, Deserialize)]
+pub struct VsCodeTokenColor {
+    pub scope: Option<VsCodeTokenScope>,
+    pub settings: VsCodeTokenColorSettings,
+}
+
+#[derive(Debug, Deserialize)]
+pub struct VsCodeTokenColorSettings {
+    pub foreground: Option<String>,
+    pub background: Option<String>,
+    #[serde(rename = "fontStyle")]
+    pub font_style: Option<String>,
+}
+
+impl VsCodeTokenColor {
+    pub fn highlight_styles(&self) -> Result<Vec<(String, UserHighlightStyle)>> {
+        let mut highlight_styles = Vec::new();
+
+        let scope = match self.scope {
+            Some(VsCodeTokenScope::One(ref scope)) => vec![scope.clone()],
+            Some(VsCodeTokenScope::Many(ref scopes)) => scopes.clone(),
+            None => return Ok(Vec::new()),
+        };
+
+        for scope in &scope {
+            let Some(syntax_token) = Self::to_zed_token(&scope) else {
+                continue;
+            };
+
+            let highlight_style = UserHighlightStyle {
+                color: self
+                    .settings
+                    .foreground
+                    .as_ref()
+                    .traverse(|color| try_parse_color(&color))?,
+            };
+
+            if highlight_style.is_empty() {
+                continue;
+            }
+
+            highlight_styles.push((syntax_token, highlight_style));
+        }
+
+        Ok(highlight_styles)
+    }
+
+    fn to_zed_token(scope: &str) -> Option<String> {
+        match scope {
+            "attribute" => Some("attribute".to_string()),
+            "boolean" => Some("boolean".to_string()),
+            "comment" => Some("comment".to_string()),
+            "comment.doc" => Some("comment.doc".to_string()),
+            "punctuation"
+            | "punctuation.accessor"
+            | "punctuation.definition.array.begin.json"
+            | "punctuation.definition.array.end.json"
+            | "punctuation.definition.dictionary.begin.json"
+            | "punctuation.definition.dictionary.end.json"
+            | "punctuation.definition.markdown"
+            | "punctuation.definition.tag"
+            | "punctuation.definition.tag.begin"
+            | "punctuation.definition.tag.end"
+            | "punctuation.definition.template-expression"
+            | "punctuation.definition.variable"
+            | "punctuation.section"
+            | "punctuation.section.embedded"
+            | "punctuation.section.embedded.begin"
+            | "punctuation.section.embedded.end"
+            | "punctuation.separator"
+            | "punctuation.separator.array.json"
+            | "punctuation.separator.dictionary.key-value.json"
+            | "punctuation.separator.dictionary.pair.json" => Some("punctuation".to_string()),
+
+            // ---
+            "constant" | "character" | "language" | "language.python" | "numeric" | "other"
+            | "other.symbol" => Some("something".to_string()),
+
+            "entity"
+            | "name"
+            | "name.class"
+            | "name.filename.find-in-files"
+            | "name.function"
+            | "name.function.python"
+            | "name.import"
+            | "name.package"
+            | "name.tag"
+            | "name.type"
+            | "name.type.class.python"
+            | "other.attribute-name"
+            | "other.inherited-class" => Some("something".to_string()),
+
+            "markup" | "bold" | "changed" | "deleted" | "heading" | "heading.setext"
+            | "inline.raw" | "italic" | "list" | "quote" | "raw" | "raw.inline" | "strike"
+            | "table" | "underline.link" => Some("something".to_string()),
+
+            "source" => Some("something".to_string()),
+            "storage" => Some("something".to_string()),
+            "string" => Some("something".to_string()),
+            "support" => Some("something".to_string()),
+            "text" => Some("something".to_string()),
+            "token" => Some("something".to_string()),
+            "variable" => Some("something".to_string()),
+            _ => None,
+        }
+    }
+}
+
+// "comment" => ""
+// "constant.character" => ""
+// "constant.language" => ""
+// "constant.language.python" => ""
+// "constant.numeric" => ""
+// "constant.numeric.line-number.find-in-files - match" => ""
+// "constant.numeric.line-number.match" => ""
+// "constant.other" => ""
+// "constant.other.symbol" => ""
+// "entity.name" => ""
+// "entity.name.class" => ""
+// "entity.name.filename.find-in-files" => ""
+// "entity.name.function" => ""
+// "entity.name.function.python" => ""
+// "entity.name.import" => ""
+// "entity.name.package" => ""
+// "entity.name.tag" => ""
+// "entity.name.type" => ""
+// "entity.name.type.class.python" => ""
+// "entity.other.attribute-name" => ""
+// "entity.other.inherited-class" => ""
+// "invalid" => ""
+// "keyword" => ""
+// "keyword.control.from" => ""
+// "keyword.control.import" => ""
+// "keyword.operator" => ""
+// "keyword.other.new" => ""
+// "markup.bold markup.italic" => ""
+// "markup.bold" => ""
+// "markup.changed" => ""
+// "markup.deleted" => ""
+// "markup.heading entity.name" => ""
+// "markup.heading" => ""
+// "markup.heading.setext" => ""
+// "markup.inline.raw" => ""
+// "markup.inserted" => ""
+// "markup.inserted" => ""
+// "markup.italic markup.bold" => ""
+// "markup.italic" => ""
+// "markup.list punctuation.definition.list.begin" => ""
+// "markup.list" => ""
+// "markup.quote" => ""
+// "markup.raw" => ""
+// "markup.raw.inline" => ""
+// "markup.strike" => ""
+// "markup.table" => ""
+// "markup.underline.link" => ""
+// "message.error" => ""
+// "meta.decorator punctuation.decorator" => ""
+// "meta.decorator variable.other" => ""
+// "meta.diff" => ""
+// "meta.diff.header" => ""
+// "meta.embedded" => ""
+// "meta.function-call" => ""
+// "meta.function-call.generic" => ""
+// "meta.import" => ""
+// "meta.parameter" => ""
+// "meta.preprocessor" => ""
+// "meta.separator" => ""
+// "meta.tag.sgml" => ""
+// "punctuation.accessor" => ""
+// "punctuation.definition.array.begin.json" => ""
+// "punctuation.definition.array.end.json" => ""
+// "punctuation.definition.dictionary.begin.json" => ""
+// "punctuation.definition.dictionary.end.json" => ""
+// "punctuation.definition.markdown" => ""
+// "punctuation.definition.tag" => ""
+// "punctuation.definition.tag.begin" => ""
+// "punctuation.definition.tag.end" => ""
+// "punctuation.definition.template-expression" => ""
+// "punctuation.definition.variable" => ""
+// "punctuation.section" => ""
+// "punctuation.section.embedded" => ""
+// "punctuation.section.embedded.begin" => ""
+// "punctuation.section.embedded.end" => ""
+// "punctuation.separator" => ""
+// "punctuation.separator.array.json" => ""
+// "punctuation.separator.dictionary.key-value.json" => ""
+// "punctuation.separator.dictionary.pair.json" => ""
+// "punctuation.terminator" => ""
+// "source.c storage.type" => ""
+// "source.css entity.name.tag" => ""
+// "source.css support.type" => ""
+// "source.go storage.type" => ""
+// "source.groovy.embedded" => ""
+// "source.haskell storage.type" => ""
+// "source.java storage.type" => ""
+// "source.java storage.type.primitive" => ""
+// "source.less entity.name.tag" => ""
+// "source.less support.type" => ""
+// "source.python" => ""
+// "source.ruby variable.other.readwrite" => ""
+// "source.sass entity.name.tag" => ""
+// "source.sass support.type" => ""
+// "source.scss entity.name.tag" => ""
+// "source.scss support.type" => ""
+// "source.stylus entity.name.tag" => ""
+// "source.stylus support.type" => ""
+// "source.ts" => ""
+// "storage" => ""
+// "storage.modifier" => ""
+// "storage.modifier.async" => ""
+// "storage.modifier.tsx" => ""
+// "storage.type.annotation" => ""
+// "storage.type.function" => ""
+// "string" => ""
+// "string.other.link" => ""
+// "string.regexp" => ""
+// "support.class" => ""
+// "support.class.component" => ""
+// "support.constant" => ""
+// "support.function" => ""
+// "support.function.construct" => ""
+// "support.function.go" => ""
+// "support.macro" => ""
+// "support.other.variable" => ""
+// "support.type" => ""
+// "support.type.exception" => ""
+// "support.type.primitive" => ""
+// "support.type.property-name" => ""
+// "support.type.python" => ""
+// "text.html.markdown markup.inline.raw" => ""
+// "text.html.markdown meta.dummy.line-break" => ""
+// "token.debug-token" => ""
+// "token.error-token" => ""
+// "token.info-token" => ""
+// "token.warn-token" => ""
+// "variable" => ""
+// "variable.annotation" => ""
+// "variable.function" => ""
+// "variable.language" => ""
+// "variable.member" => ""
+// "variable.object.property" => ""
+// "variable.other" => ""
+// "variable.parameter" => ""
+// "variable.parameter.function-call" => ""