diff --git a/crates/theme2/src/themes/ayu.rs b/crates/theme2/src/themes/ayu.rs index 79aed9e1b5..9c977234b9 100644 --- a/crates/theme2/src/themes/ayu.rs +++ b/crates/theme2/src/themes/ayu.rs @@ -70,6 +70,7 @@ pub fn ayu() -> UserThemeFamily { terminal_ansi_magenta: Some(rgba(0x9e75c7ff).into()), terminal_ansi_cyan: Some(rgba(0x46ba94ff).into()), terminal_ansi_white: Some(rgba(0xc7c7c7ff).into()), + link_text_hover: Some(rgba(0xffaa33ff).into()), ..Default::default() }, status: StatusColorsRefinement { @@ -379,6 +380,7 @@ pub fn ayu() -> UserThemeFamily { terminal_ansi_magenta: Some(rgba(0xdabafaff).into()), terminal_ansi_cyan: Some(rgba(0x90e1c6ff).into()), terminal_ansi_white: Some(rgba(0xc7c7c7ff).into()), + link_text_hover: Some(rgba(0xffcc66ff).into()), ..Default::default() }, status: StatusColorsRefinement { @@ -688,6 +690,7 @@ pub fn ayu() -> UserThemeFamily { terminal_ansi_magenta: Some(rgba(0xcda1faff).into()), terminal_ansi_cyan: Some(rgba(0x90e1c6ff).into()), terminal_ansi_white: Some(rgba(0xc7c7c7ff).into()), + link_text_hover: Some(rgba(0xe6b450ff).into()), ..Default::default() }, status: StatusColorsRefinement { diff --git a/crates/theme2/src/themes/gruvbox.rs b/crates/theme2/src/themes/gruvbox.rs index 35f5b31aa2..abce861f91 100644 --- a/crates/theme2/src/themes/gruvbox.rs +++ b/crates/theme2/src/themes/gruvbox.rs @@ -70,6 +70,7 @@ pub fn gruvbox() -> UserThemeFamily { terminal_ansi_magenta: Some(rgba(0xb16286ff).into()), terminal_ansi_cyan: Some(rgba(0x689d6aff).into()), terminal_ansi_white: Some(rgba(0xa89984ff).into()), + link_text_hover: Some(rgba(0x458588ff).into()), ..Default::default() }, status: StatusColorsRefinement { @@ -365,6 +366,7 @@ pub fn gruvbox() -> UserThemeFamily { terminal_ansi_magenta: Some(rgba(0xb16286ff).into()), terminal_ansi_cyan: Some(rgba(0x689d6aff).into()), terminal_ansi_white: Some(rgba(0xa89984ff).into()), + link_text_hover: Some(rgba(0x458588ff).into()), ..Default::default() }, status: StatusColorsRefinement { @@ -660,6 +662,7 @@ pub fn gruvbox() -> UserThemeFamily { terminal_ansi_magenta: Some(rgba(0xb16286ff).into()), terminal_ansi_cyan: Some(rgba(0x689d6aff).into()), terminal_ansi_white: Some(rgba(0xa89984ff).into()), + link_text_hover: Some(rgba(0x458588ff).into()), ..Default::default() }, status: StatusColorsRefinement { @@ -955,6 +958,7 @@ pub fn gruvbox() -> UserThemeFamily { terminal_ansi_magenta: Some(rgba(0xb16286ff).into()), terminal_ansi_cyan: Some(rgba(0x689d6aff).into()), terminal_ansi_white: Some(rgba(0x7c6f64ff).into()), + link_text_hover: Some(rgba(0x458588ff).into()), ..Default::default() }, status: StatusColorsRefinement { @@ -1250,6 +1254,7 @@ pub fn gruvbox() -> UserThemeFamily { terminal_ansi_magenta: Some(rgba(0xb16286ff).into()), terminal_ansi_cyan: Some(rgba(0x689d6aff).into()), terminal_ansi_white: Some(rgba(0x7c6f64ff).into()), + link_text_hover: Some(rgba(0x458588ff).into()), ..Default::default() }, status: StatusColorsRefinement { @@ -1545,6 +1550,7 @@ pub fn gruvbox() -> UserThemeFamily { terminal_ansi_magenta: Some(rgba(0xb16286ff).into()), terminal_ansi_cyan: Some(rgba(0x689d6aff).into()), terminal_ansi_white: Some(rgba(0x7c6f64ff).into()), + link_text_hover: Some(rgba(0x458588ff).into()), ..Default::default() }, status: StatusColorsRefinement { diff --git a/crates/theme2/src/themes/noctis.rs b/crates/theme2/src/themes/noctis.rs index 273b52a34a..ca1601df99 100644 --- a/crates/theme2/src/themes/noctis.rs +++ b/crates/theme2/src/themes/noctis.rs @@ -71,6 +71,7 @@ pub fn noctis() -> UserThemeFamily { terminal_ansi_magenta: Some(rgba(0xdf769bff).into()), terminal_ansi_cyan: Some(rgba(0x49d6e9ff).into()), terminal_ansi_white: Some(rgba(0xaec3d0ff).into()), + link_text_hover: Some(rgba(0x49ace9ff).into()), ..Default::default() }, status: StatusColorsRefinement { @@ -351,6 +352,7 @@ pub fn noctis() -> UserThemeFamily { terminal_ansi_magenta: Some(rgba(0xdf769bff).into()), terminal_ansi_cyan: Some(rgba(0x49d6e9ff).into()), terminal_ansi_white: Some(rgba(0xb9acb0ff).into()), + link_text_hover: Some(rgba(0xf18eb0ff).into()), ..Default::default() }, status: StatusColorsRefinement { @@ -631,6 +633,7 @@ pub fn noctis() -> UserThemeFamily { terminal_ansi_magenta: Some(rgba(0xff5792ff).into()), terminal_ansi_cyan: Some(rgba(0x00bdd6ff).into()), terminal_ansi_white: Some(rgba(0x8ca6a6ff).into()), + link_text_hover: Some(rgba(0x00c6e0ff).into()), ..Default::default() }, status: StatusColorsRefinement { @@ -911,6 +914,7 @@ pub fn noctis() -> UserThemeFamily { terminal_ansi_magenta: Some(rgba(0xff5792ff).into()), terminal_ansi_cyan: Some(rgba(0x00bdd6ff).into()), terminal_ansi_white: Some(rgba(0x8ca6a6ff).into()), + link_text_hover: Some(rgba(0x00c6e0ff).into()), ..Default::default() }, status: StatusColorsRefinement { @@ -1191,6 +1195,7 @@ pub fn noctis() -> UserThemeFamily { terminal_ansi_magenta: Some(rgba(0xff5792ff).into()), terminal_ansi_cyan: Some(rgba(0x00bdd6ff).into()), terminal_ansi_white: Some(rgba(0x8ca6a6ff).into()), + link_text_hover: Some(rgba(0x00c6e0ff).into()), ..Default::default() }, status: StatusColorsRefinement { @@ -1471,6 +1476,7 @@ pub fn noctis() -> UserThemeFamily { terminal_ansi_magenta: Some(rgba(0xc28097ff).into()), terminal_ansi_cyan: Some(rgba(0x72b7c0ff).into()), terminal_ansi_white: Some(rgba(0xc5cdd3ff).into()), + link_text_hover: Some(rgba(0x5998c0ff).into()), ..Default::default() }, status: StatusColorsRefinement { @@ -1751,6 +1757,7 @@ pub fn noctis() -> UserThemeFamily { terminal_ansi_magenta: Some(rgba(0xdf769bff).into()), terminal_ansi_cyan: Some(rgba(0x49d6e9ff).into()), terminal_ansi_white: Some(rgba(0xb2cacdff).into()), + link_text_hover: Some(rgba(0x40d4e7ff).into()), ..Default::default() }, status: StatusColorsRefinement { @@ -2031,6 +2038,7 @@ pub fn noctis() -> UserThemeFamily { terminal_ansi_magenta: Some(rgba(0xdf769bff).into()), terminal_ansi_cyan: Some(rgba(0x49d6e9ff).into()), terminal_ansi_white: Some(rgba(0xb2cacdff).into()), + link_text_hover: Some(rgba(0x40d4e7ff).into()), ..Default::default() }, status: StatusColorsRefinement { @@ -2311,6 +2319,7 @@ pub fn noctis() -> UserThemeFamily { terminal_ansi_magenta: Some(rgba(0xdf769bff).into()), terminal_ansi_cyan: Some(rgba(0x49d6e9ff).into()), terminal_ansi_white: Some(rgba(0xb2cacdff).into()), + link_text_hover: Some(rgba(0x40d4e7ff).into()), ..Default::default() }, status: StatusColorsRefinement { @@ -2591,6 +2600,7 @@ pub fn noctis() -> UserThemeFamily { terminal_ansi_magenta: Some(rgba(0xdf769bff).into()), terminal_ansi_cyan: Some(rgba(0x49d6e9ff).into()), terminal_ansi_white: Some(rgba(0xb6b3ccff).into()), + link_text_hover: Some(rgba(0x998ef1ff).into()), ..Default::default() }, status: StatusColorsRefinement { @@ -2871,6 +2881,7 @@ pub fn noctis() -> UserThemeFamily { terminal_ansi_magenta: Some(rgba(0xdf769bff).into()), terminal_ansi_cyan: Some(rgba(0x49d6e9ff).into()), terminal_ansi_white: Some(rgba(0xbfafcfff).into()), + link_text_hover: Some(rgba(0xbf8ef1ff).into()), ..Default::default() }, status: StatusColorsRefinement { diff --git a/crates/theme2/src/themes/nord.rs b/crates/theme2/src/themes/nord.rs index 83fafa7a87..c44076c1f8 100644 --- a/crates/theme2/src/themes/nord.rs +++ b/crates/theme2/src/themes/nord.rs @@ -70,6 +70,7 @@ pub fn nord() -> UserThemeFamily { terminal_ansi_magenta: Some(rgba(0xb48eadff).into()), terminal_ansi_cyan: Some(rgba(0x88c0d0ff).into()), terminal_ansi_white: Some(rgba(0xe5e9f0ff).into()), + link_text_hover: Some(rgba(0x88c0d0ff).into()), ..Default::default() }, status: StatusColorsRefinement { diff --git a/crates/theme2/src/themes/rose_pine.rs b/crates/theme2/src/themes/rose_pine.rs index 51e3a2451c..828838530f 100644 --- a/crates/theme2/src/themes/rose_pine.rs +++ b/crates/theme2/src/themes/rose_pine.rs @@ -70,6 +70,7 @@ pub fn rose_pine() -> UserThemeFamily { terminal_ansi_magenta: Some(rgba(0xc4a7e7ff).into()), terminal_ansi_cyan: Some(rgba(0xebbcbaff).into()), terminal_ansi_white: Some(rgba(0xe0def4ff).into()), + link_text_hover: Some(rgba(0xc4a7e7e6).into()), ..Default::default() }, status: StatusColorsRefinement { @@ -332,6 +333,7 @@ pub fn rose_pine() -> UserThemeFamily { terminal_ansi_magenta: Some(rgba(0xc4a7e7ff).into()), terminal_ansi_cyan: Some(rgba(0xea9a97ff).into()), terminal_ansi_white: Some(rgba(0xe0def4ff).into()), + link_text_hover: Some(rgba(0xc4a7e7e6).into()), ..Default::default() }, status: StatusColorsRefinement { @@ -594,6 +596,7 @@ pub fn rose_pine() -> UserThemeFamily { terminal_ansi_magenta: Some(rgba(0x907aa9ff).into()), terminal_ansi_cyan: Some(rgba(0xd7827eff).into()), terminal_ansi_white: Some(rgba(0x575279ff).into()), + link_text_hover: Some(rgba(0x907aa9e6).into()), ..Default::default() }, status: StatusColorsRefinement { diff --git a/crates/theme2/src/themes/synthwave_84.rs b/crates/theme2/src/themes/synthwave_84.rs index 4f62732d7f..d7a0ef41a0 100644 --- a/crates/theme2/src/themes/synthwave_84.rs +++ b/crates/theme2/src/themes/synthwave_84.rs @@ -54,6 +54,7 @@ pub fn synthwave_84() -> UserThemeFamily { terminal_ansi_blue: Some(rgba(0x03edf9ff).into()), terminal_ansi_magenta: Some(rgba(0xff7edbff).into()), terminal_ansi_cyan: Some(rgba(0x03edf9ff).into()), + link_text_hover: Some(rgba(0xff7edbff).into()), ..Default::default() }, status: StatusColorsRefinement { diff --git a/crates/theme_importer/src/theme_printer.rs b/crates/theme_importer/src/theme_printer.rs index 13123d854f..eb304ff90d 100644 --- a/crates/theme_importer/src/theme_printer.rs +++ b/crates/theme_importer/src/theme_printer.rs @@ -270,6 +270,16 @@ impl<'a> Debug for ThemeColorsRefinementPrinter<'a> { ("terminal_ansi_magenta", self.0.terminal_ansi_magenta), ("terminal_ansi_cyan", self.0.terminal_ansi_cyan), ("terminal_ansi_white", self.0.terminal_ansi_white), + ("headline", self.0.headline), + ("paragraph", self.0.paragraph), + ("link_text", self.0.link_text), + ("link_text_hover", self.0.link_text_hover), + ("link_uri", self.0.link_uri), + ("inline_code_background", self.0.inline_code_background), + ("inline_code_border", self.0.inline_code_border), + ("code_block_background", self.0.code_block_background), + ("code_block_border", self.0.code_block_border), + ("emphasis", self.0.emphasis), ]; f.write_str("ThemeColorsRefinement {")?; diff --git a/crates/theme_importer/src/vscode/converter.rs b/crates/theme_importer/src/vscode/converter.rs index f5a606b329..8ade493731 100644 --- a/crates/theme_importer/src/vscode/converter.rs +++ b/crates/theme_importer/src/vscode/converter.rs @@ -217,6 +217,10 @@ impl VsCodeThemeConverter { .tab_inactive_foreground .as_ref() .traverse(|color| try_parse_color(&color))?, + link_text_hover: vscode_colors + .text_link_active_foreground + .as_ref() + .traverse(|color| try_parse_color(&color))?, tab_bar_background: vscode_colors .editor_group_header_tabs_background .as_ref() diff --git a/crates/theme_importer/src/vscode/theme.rs b/crates/theme_importer/src/vscode/theme.rs index f8e2c98da5..0c59a04c48 100644 --- a/crates/theme_importer/src/vscode/theme.rs +++ b/crates/theme_importer/src/vscode/theme.rs @@ -154,6 +154,13 @@ pub struct VsCodeColors { )] pub terminal_ansi_white: Option, + #[serde( + default, + rename = "textLink.activeForeground", + deserialize_with = "empty_string_as_none" + )] + pub text_link_active_foreground: Option, + #[serde( default, rename = "focusBorder",