diff --git a/crates/theme2/src/themes/andromeda.rs b/crates/theme2/src/themes/andromeda.rs index 2a3c67c4b5..16b2fa9632 100644 --- a/crates/theme2/src/themes/andromeda.rs +++ b/crates/theme2/src/themes/andromeda.rs @@ -58,6 +58,7 @@ pub fn andromeda() -> UserThemeFamily { deleted: Some(rgba(0xfc634cff).into()), error: Some(rgba(0xfc634cff).into()), hidden: Some(rgba(0x746f77ff).into()), + hint: Some(rgba(0x969696ff).into()), ..Default::default() }, syntax: Some(UserSyntaxTheme { @@ -201,6 +202,7 @@ pub fn andromeda() -> UserThemeFamily { deleted: Some(rgba(0xfc634cff).into()), error: Some(rgba(0xfc634cff).into()), hidden: Some(rgba(0x746f77ff).into()), + hint: Some(rgba(0x969696ff).into()), ..Default::default() }, syntax: Some(UserSyntaxTheme { diff --git a/crates/theme2/src/themes/ayu.rs b/crates/theme2/src/themes/ayu.rs index e83abc97a5..8651ee2028 100644 --- a/crates/theme2/src/themes/ayu.rs +++ b/crates/theme2/src/themes/ayu.rs @@ -62,6 +62,7 @@ pub fn ayu() -> UserThemeFamily { deleted: Some(rgba(0xe65050ff).into()), error: Some(rgba(0xe65050ff).into()), hidden: Some(rgba(0x8a9199ff).into()), + hint: Some(rgba(0x969696ff).into()), ..Default::default() }, syntax: Some(UserSyntaxTheme { @@ -324,6 +325,7 @@ pub fn ayu() -> UserThemeFamily { deleted: Some(rgba(0xff6565ff).into()), error: Some(rgba(0xff6565ff).into()), hidden: Some(rgba(0x707a8cff).into()), + hint: Some(rgba(0x969696ff).into()), ..Default::default() }, syntax: Some(UserSyntaxTheme { @@ -586,6 +588,7 @@ pub fn ayu() -> UserThemeFamily { deleted: Some(rgba(0xd95757ff).into()), error: Some(rgba(0xd95757ff).into()), hidden: Some(rgba(0x565b66ff).into()), + hint: Some(rgba(0x969696ff).into()), ..Default::default() }, syntax: Some(UserSyntaxTheme { diff --git a/crates/theme2/src/themes/dracula.rs b/crates/theme2/src/themes/dracula.rs index 7ff1250e49..b5cf0e879f 100644 --- a/crates/theme2/src/themes/dracula.rs +++ b/crates/theme2/src/themes/dracula.rs @@ -62,6 +62,7 @@ pub fn dracula() -> UserThemeFamily { deleted: Some(rgba(0xff5555ff).into()), error: Some(rgba(0xff5555ff).into()), hidden: Some(rgba(0x6272a4ff).into()), + hint: Some(rgba(0x969696ff).into()), warning: Some(rgba(0xffb76bff).into()), ..Default::default() }, diff --git a/crates/theme2/src/themes/gruvbox.rs b/crates/theme2/src/themes/gruvbox.rs index c538e7c840..16957b3597 100644 --- a/crates/theme2/src/themes/gruvbox.rs +++ b/crates/theme2/src/themes/gruvbox.rs @@ -61,6 +61,7 @@ pub fn gruvbox() -> UserThemeFamily { deleted: Some(rgba(0xfb4833ff).into()), error: Some(rgba(0xfb4833ff).into()), hidden: Some(rgba(0xa89984ff).into()), + hint: Some(rgba(0x969696ff).into()), ..Default::default() }, syntax: Some(UserSyntaxTheme { @@ -251,6 +252,7 @@ pub fn gruvbox() -> UserThemeFamily { deleted: Some(rgba(0xfb4833ff).into()), error: Some(rgba(0xfb4833ff).into()), hidden: Some(rgba(0xa89984ff).into()), + hint: Some(rgba(0x969696ff).into()), ..Default::default() }, syntax: Some(UserSyntaxTheme { @@ -441,6 +443,7 @@ pub fn gruvbox() -> UserThemeFamily { deleted: Some(rgba(0xfb4833ff).into()), error: Some(rgba(0xfb4833ff).into()), hidden: Some(rgba(0xa89984ff).into()), + hint: Some(rgba(0x969696ff).into()), ..Default::default() }, syntax: Some(UserSyntaxTheme { @@ -631,6 +634,7 @@ pub fn gruvbox() -> UserThemeFamily { deleted: Some(rgba(0x9d0006ff).into()), error: Some(rgba(0x9d0006ff).into()), hidden: Some(rgba(0x7c6f64ff).into()), + hint: Some(rgba(0x969696ff).into()), ..Default::default() }, syntax: Some(UserSyntaxTheme { @@ -821,6 +825,7 @@ pub fn gruvbox() -> UserThemeFamily { deleted: Some(rgba(0x9d0006ff).into()), error: Some(rgba(0x9d0006ff).into()), hidden: Some(rgba(0x7c6f64ff).into()), + hint: Some(rgba(0x969696ff).into()), ..Default::default() }, syntax: Some(UserSyntaxTheme { @@ -1011,6 +1016,7 @@ pub fn gruvbox() -> UserThemeFamily { deleted: Some(rgba(0x9d0006ff).into()), error: Some(rgba(0x9d0006ff).into()), hidden: Some(rgba(0x7c6f64ff).into()), + hint: Some(rgba(0x969696ff).into()), ..Default::default() }, syntax: Some(UserSyntaxTheme { diff --git a/crates/theme2/src/themes/night_owl.rs b/crates/theme2/src/themes/night_owl.rs index 8a737cd282..c84ea7ed09 100644 --- a/crates/theme2/src/themes/night_owl.rs +++ b/crates/theme2/src/themes/night_owl.rs @@ -62,6 +62,7 @@ pub fn night_owl() -> UserThemeFamily { deleted: Some(rgba(0xef524fff).into()), error: Some(rgba(0xef524fff).into()), hidden: Some(rgba(0x5f7e97ff).into()), + hint: Some(rgba(0x969696ff).into()), ..Default::default() }, syntax: Some(UserSyntaxTheme { @@ -242,6 +243,7 @@ pub fn night_owl() -> UserThemeFamily { deleted: Some(rgba(0x403f53ff).into()), error: Some(rgba(0x403f53ff).into()), hidden: Some(rgba(0x403f53ff).into()), + hint: Some(rgba(0x969696ff).into()), warning: Some(rgba(0xdaa900ff).into()), ..Default::default() }, diff --git a/crates/theme2/src/themes/noctis.rs b/crates/theme2/src/themes/noctis.rs index 442c86ad55..416907c305 100644 --- a/crates/theme2/src/themes/noctis.rs +++ b/crates/theme2/src/themes/noctis.rs @@ -63,6 +63,7 @@ pub fn noctis() -> UserThemeFamily { deleted: Some(rgba(0xe34d1bff).into()), error: Some(rgba(0xe34d1bff).into()), hidden: Some(rgba(0x9fb6c6ff).into()), + hint: Some(rgba(0x969696ff).into()), warning: Some(rgba(0xffa857ff).into()), ..Default::default() }, @@ -282,6 +283,7 @@ pub fn noctis() -> UserThemeFamily { deleted: Some(rgba(0xe34d1bff).into()), error: Some(rgba(0xe34d1bff).into()), hidden: Some(rgba(0xbbaab0ff).into()), + hint: Some(rgba(0x969696ff).into()), warning: Some(rgba(0xffa857ff).into()), ..Default::default() }, @@ -501,6 +503,7 @@ pub fn noctis() -> UserThemeFamily { deleted: Some(rgba(0xff3f00ff).into()), error: Some(rgba(0xff3f00ff).into()), hidden: Some(rgba(0x70838dff).into()), + hint: Some(rgba(0x969696ff).into()), warning: Some(rgba(0xe07a52ff).into()), ..Default::default() }, @@ -720,6 +723,7 @@ pub fn noctis() -> UserThemeFamily { deleted: Some(rgba(0xff3f00ff).into()), error: Some(rgba(0xff3f00ff).into()), hidden: Some(rgba(0x74708dff).into()), + hint: Some(rgba(0x969696ff).into()), warning: Some(rgba(0xe07a52ff).into()), ..Default::default() }, @@ -939,6 +943,7 @@ pub fn noctis() -> UserThemeFamily { deleted: Some(rgba(0xff3f00ff).into()), error: Some(rgba(0xff3f00ff).into()), hidden: Some(rgba(0x878476ff).into()), + hint: Some(rgba(0x969696ff).into()), warning: Some(rgba(0xe07a52ff).into()), ..Default::default() }, @@ -1158,6 +1163,7 @@ pub fn noctis() -> UserThemeFamily { deleted: Some(rgba(0xb96245ff).into()), error: Some(rgba(0xb96245ff).into()), hidden: Some(rgba(0x96a8b6ff).into()), + hint: Some(rgba(0x969696ff).into()), warning: Some(rgba(0xffa857ff).into()), ..Default::default() }, @@ -1377,6 +1383,7 @@ pub fn noctis() -> UserThemeFamily { deleted: Some(rgba(0xe34d1bff).into()), error: Some(rgba(0xe34d1bff).into()), hidden: Some(rgba(0x87a7abff).into()), + hint: Some(rgba(0x969696ff).into()), warning: Some(rgba(0xffa487ff).into()), ..Default::default() }, @@ -1596,6 +1603,7 @@ pub fn noctis() -> UserThemeFamily { deleted: Some(rgba(0xe34d1bff).into()), error: Some(rgba(0xe34d1bff).into()), hidden: Some(rgba(0x87a7abff).into()), + hint: Some(rgba(0x969696ff).into()), warning: Some(rgba(0xffa487ff).into()), ..Default::default() }, @@ -1815,6 +1823,7 @@ pub fn noctis() -> UserThemeFamily { deleted: Some(rgba(0xe34d1bff).into()), error: Some(rgba(0xe34d1bff).into()), hidden: Some(rgba(0x87a7abff).into()), + hint: Some(rgba(0x969696ff).into()), warning: Some(rgba(0xffa487ff).into()), ..Default::default() }, @@ -2034,6 +2043,7 @@ pub fn noctis() -> UserThemeFamily { deleted: Some(rgba(0xe34d1bff).into()), error: Some(rgba(0xe34d1bff).into()), hidden: Some(rgba(0xa9a5c0ff).into()), + hint: Some(rgba(0x969696ff).into()), warning: Some(rgba(0xffa857ff).into()), ..Default::default() }, @@ -2253,6 +2263,7 @@ pub fn noctis() -> UserThemeFamily { deleted: Some(rgba(0xe34d1bff).into()), error: Some(rgba(0xe34d1bff).into()), hidden: Some(rgba(0xb3a5c0ff).into()), + hint: Some(rgba(0x969696ff).into()), warning: Some(rgba(0xffa857ff).into()), ..Default::default() }, diff --git a/crates/theme2/src/themes/nord.rs b/crates/theme2/src/themes/nord.rs index 093456b029..0c40275617 100644 --- a/crates/theme2/src/themes/nord.rs +++ b/crates/theme2/src/themes/nord.rs @@ -62,6 +62,7 @@ pub fn nord() -> UserThemeFamily { deleted: Some(rgba(0xbf616aff).into()), error: Some(rgba(0xbf616aff).into()), hidden: Some(rgba(0xd8dee966).into()), + hint: Some(rgba(0xd8dee9ff).into()), warning: Some(rgba(0xebcb8bff).into()), ..Default::default() }, diff --git a/crates/theme2/src/themes/palenight.rs b/crates/theme2/src/themes/palenight.rs index 49428cd367..f0f8e4f170 100644 --- a/crates/theme2/src/themes/palenight.rs +++ b/crates/theme2/src/themes/palenight.rs @@ -62,6 +62,7 @@ pub fn palenight() -> UserThemeFamily { deleted: Some(rgba(0xef524fff).into()), error: Some(rgba(0xef524fff).into()), hidden: Some(rgba(0x9199c8ff).into()), + hint: Some(rgba(0x969696ff).into()), ..Default::default() }, syntax: Some(UserSyntaxTheme { @@ -268,6 +269,7 @@ pub fn palenight() -> UserThemeFamily { deleted: Some(rgba(0xef524fff).into()), error: Some(rgba(0xef524fff).into()), hidden: Some(rgba(0x9199c8ff).into()), + hint: Some(rgba(0x969696ff).into()), ..Default::default() }, syntax: Some(UserSyntaxTheme { @@ -474,6 +476,7 @@ pub fn palenight() -> UserThemeFamily { deleted: Some(rgba(0xef524fff).into()), error: Some(rgba(0xef524fff).into()), hidden: Some(rgba(0x9199c8ff).into()), + hint: Some(rgba(0x969696ff).into()), ..Default::default() }, syntax: Some(UserSyntaxTheme { diff --git a/crates/theme2/src/themes/rose_pine.rs b/crates/theme2/src/themes/rose_pine.rs index 6898246d09..42f0b50524 100644 --- a/crates/theme2/src/themes/rose_pine.rs +++ b/crates/theme2/src/themes/rose_pine.rs @@ -62,6 +62,7 @@ pub fn rose_pine() -> UserThemeFamily { deleted: Some(rgba(0xeb6f92ff).into()), error: Some(rgba(0xeb6f92ff).into()), hidden: Some(rgba(0x908caaff).into()), + hint: Some(rgba(0x908caaff).into()), warning: Some(rgba(0xf5c177ff).into()), ..Default::default() }, @@ -228,6 +229,7 @@ pub fn rose_pine() -> UserThemeFamily { deleted: Some(rgba(0xeb6f92ff).into()), error: Some(rgba(0xeb6f92ff).into()), hidden: Some(rgba(0x908caaff).into()), + hint: Some(rgba(0x908caaff).into()), warning: Some(rgba(0xf5c177ff).into()), ..Default::default() }, @@ -394,6 +396,7 @@ pub fn rose_pine() -> UserThemeFamily { deleted: Some(rgba(0xb3627aff).into()), error: Some(rgba(0xb3627aff).into()), hidden: Some(rgba(0x797593ff).into()), + hint: Some(rgba(0x797593ff).into()), warning: Some(rgba(0xea9d34ff).into()), ..Default::default() }, diff --git a/crates/theme2/src/themes/solarized.rs b/crates/theme2/src/themes/solarized.rs index 65411dbe20..87221b4a85 100644 --- a/crates/theme2/src/themes/solarized.rs +++ b/crates/theme2/src/themes/solarized.rs @@ -59,6 +59,7 @@ pub fn solarized() -> UserThemeFamily { deleted: Some(rgba(0xffeaeaff).into()), error: Some(rgba(0xffeaeaff).into()), hidden: Some(rgba(0x93a1a1ff).into()), + hint: Some(rgba(0x969696ff).into()), ..Default::default() }, syntax: Some(UserSyntaxTheme { @@ -243,6 +244,7 @@ pub fn solarized() -> UserThemeFamily { }, status: StatusColorsRefinement { hidden: Some(rgba(0x586e75ff).into()), + hint: Some(rgba(0x969696ff).into()), ..Default::default() }, syntax: Some(UserSyntaxTheme { diff --git a/crates/theme2/src/themes/synthwave_84.rs b/crates/theme2/src/themes/synthwave_84.rs index 0751e9466d..fc006a7c5a 100644 --- a/crates/theme2/src/themes/synthwave_84.rs +++ b/crates/theme2/src/themes/synthwave_84.rs @@ -47,6 +47,7 @@ pub fn synthwave_84() -> UserThemeFamily { status: StatusColorsRefinement { deleted: Some(rgba(0xfe444fff).into()), error: Some(rgba(0xfe444fff).into()), + hint: Some(rgba(0x969696ff).into()), warning: Some(rgba(0x71f1b7bb).into()), ..Default::default() }, diff --git a/crates/theme_importer/src/theme_printer.rs b/crates/theme_importer/src/theme_printer.rs index 9664d843dc..dae98d313c 100644 --- a/crates/theme_importer/src/theme_printer.rs +++ b/crates/theme_importer/src/theme_printer.rs @@ -283,11 +283,14 @@ impl<'a> Debug for StatusColorsRefinementPrinter<'a> { ("deleted", self.0.deleted), ("error", self.0.error), ("hidden", self.0.hidden), + ("hint", self.0.hint), ("ignored", self.0.ignored), ("info", self.0.info), ("modified", self.0.modified), + ("predictive", self.0.predictive), ("renamed", self.0.renamed), ("success", self.0.success), + ("unreachable", self.0.unreachable), ("warning", self.0.warning), ]; diff --git a/crates/theme_importer/src/vscode/converter.rs b/crates/theme_importer/src/vscode/converter.rs index 96bf07bb71..83558b874a 100644 --- a/crates/theme_importer/src/vscode/converter.rs +++ b/crates/theme_importer/src/vscode/converter.rs @@ -1,5 +1,5 @@ use anyhow::Result; -use gpui::{Hsla, Rgba}; +use gpui::{rgba, Hsla, Rgba}; use indexmap::IndexMap; use strum::IntoEnumIterator; use theme::{ @@ -66,6 +66,11 @@ impl VsCodeThemeConverter { fn convert_status_colors(&self) -> Result { let vscode_colors = &self.theme.colors; + let vscode_base_status_colors = StatusColorsRefinement { + hint: Some(rgba(0x969696ff).into()), + ..Default::default() + }; + Ok(StatusColorsRefinement { // conflict: None, // created: None, @@ -81,6 +86,11 @@ impl VsCodeThemeConverter { .tab_inactive_foreground .as_ref() .traverse(|color| try_parse_color(&color))?, + hint: vscode_colors + .editor_inlay_hint_foreground + .as_ref() + .traverse(|color| try_parse_color(&color))? + .or(vscode_base_status_colors.hint), // ignored: None, // info: None, // modified: None, @@ -310,63 +320,5 @@ impl VsCodeThemeConverter { Ok(UserSyntaxTheme { highlights: highlight_styles.into_iter().collect(), }) - - // let mut highlight_styles = IndexMap::new(); - - // for token_color in self.theme.token_colors { - // highlight_styles.extend(token_color.highlight_styles()?); - // } - - // let syntax_theme = UserSyntaxTheme { - // highlights: highlight_styles.into_iter().collect(), - // }; - - // pub fn highlight_styles(&self) -> Result> { - // let mut highlight_styles = IndexMap::new(); - - // for syntax_token in ZedSyntaxToken::iter() { - // let scope = syntax_token.to_scope(); - - // // let token_color = - // } - - // let scope = match self.scope { - // Some(VsCodeTokenScope::One(ref scope)) => vec![scope.clone()], - // Some(VsCodeTokenScope::Many(ref scopes)) => scopes.clone(), - // None => return Ok(IndexMap::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))?, - // font_style: self - // .settings - // .font_style - // .as_ref() - // .and_then(|style| try_parse_font_style(&style)), - // font_weight: self - // .settings - // .font_style - // .as_ref() - // .and_then(|style| try_parse_font_weight(&style)), - // }; - - // if highlight_style.is_empty() { - // continue; - // } - - // highlight_styles.insert(syntax_token, highlight_style); - // } - - // Ok(highlight_styles) - // } } } diff --git a/crates/theme_importer/src/vscode/syntax.rs b/crates/theme_importer/src/vscode/syntax.rs index e6633132c4..7f93925ee8 100644 --- a/crates/theme_importer/src/vscode/syntax.rs +++ b/crates/theme_importer/src/vscode/syntax.rs @@ -35,94 +35,92 @@ pub struct VsCodeTokenColorSettings { #[derive(Debug, PartialEq, Copy, Clone, EnumIter)] pub enum ZedSyntaxToken { - SyntaxAttribute, - SyntaxBoolean, - SyntaxComment, - SyntaxCommentDoc, - SyntaxConstant, - SyntaxConstructor, - SyntaxEmbedded, - SyntaxEmphasis, - SyntaxEmphasisStrong, - SyntaxEnum, - SyntaxFunction, - SyntaxHint, - SyntaxKeyword, - SyntaxLabel, - SyntaxLinkText, - SyntaxLinkUri, - SyntaxNumber, - SyntaxOperator, - SyntaxPredictive, - SyntaxPreproc, - SyntaxPrimary, - SyntaxProperty, - SyntaxPunctuation, - SyntaxPunctuationBracket, - SyntaxPunctuationDelimiter, - SyntaxPunctuationListMarker, - SyntaxPunctuationSpecial, - SyntaxString, - SyntaxStringEscape, - SyntaxStringRegex, - SyntaxStringSpecial, - SyntaxStringSpecialSymbol, - SyntaxTag, - SyntaxTextLiteral, - SyntaxTitle, - SyntaxType, - SyntaxVariable, - SyntaxVariableSpecial, - SyntaxVariant, + Attribute, + Boolean, + Comment, + CommentDoc, + Constant, + Constructor, + Embedded, + Emphasis, + EmphasisStrong, + Enum, + Function, + Hint, + Keyword, + Label, + LinkText, + LinkUri, + Number, + Operator, + Predictive, + Preproc, + Primary, + Property, + Punctuation, + PunctuationBracket, + PunctuationDelimiter, + PunctuationListMarker, + PunctuationSpecial, + String, + StringEscape, + StringRegex, + StringSpecial, + StringSpecialSymbol, + Tag, + TextLiteral, + Title, + Type, + Variable, + VariableSpecial, + Variant, } impl std::fmt::Display for ZedSyntaxToken { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - use ZedSyntaxToken::*; - write!( f, "{}", match self { - SyntaxAttribute => "attribute", - SyntaxBoolean => "boolean", - SyntaxComment => "comment", - SyntaxCommentDoc => "comment.doc", - SyntaxConstant => "constant", - SyntaxConstructor => "constructor", - SyntaxEmbedded => "embedded", - SyntaxEmphasis => "emphasis", - SyntaxEmphasisStrong => "emphasis.strong", - SyntaxEnum => "enum", - SyntaxFunction => "function", - SyntaxHint => "hint", - SyntaxKeyword => "keyword", - SyntaxLabel => "label", - SyntaxLinkText => "link_text", - SyntaxLinkUri => "link_uri", - SyntaxNumber => "number", - SyntaxOperator => "operator", - SyntaxPredictive => "predictive", - SyntaxPreproc => "preproc", - SyntaxPrimary => "primary", - SyntaxProperty => "property", - SyntaxPunctuation => "punctuation", - SyntaxPunctuationBracket => "punctuation.bracket", - SyntaxPunctuationDelimiter => "punctuation.delimiter", - SyntaxPunctuationListMarker => "punctuation.list_marker", - SyntaxPunctuationSpecial => "punctuation.special", - SyntaxString => "string", - SyntaxStringEscape => "string.escape", - SyntaxStringRegex => "string.regex", - SyntaxStringSpecial => "string.special", - SyntaxStringSpecialSymbol => "string.special.symbol", - SyntaxTag => "tag", - SyntaxTextLiteral => "text.literal", - SyntaxTitle => "title", - SyntaxType => "type", - SyntaxVariable => "variable", - SyntaxVariableSpecial => "variable.special", - SyntaxVariant => "variant", + ZedSyntaxToken::Attribute => "attribute", + ZedSyntaxToken::Boolean => "boolean", + ZedSyntaxToken::Comment => "comment", + ZedSyntaxToken::CommentDoc => "comment.doc", + ZedSyntaxToken::Constant => "constant", + ZedSyntaxToken::Constructor => "constructor", + ZedSyntaxToken::Embedded => "embedded", + ZedSyntaxToken::Emphasis => "emphasis", + ZedSyntaxToken::EmphasisStrong => "emphasis.strong", + ZedSyntaxToken::Enum => "enum", + ZedSyntaxToken::Function => "function", + ZedSyntaxToken::Hint => "hint", + ZedSyntaxToken::Keyword => "keyword", + ZedSyntaxToken::Label => "label", + ZedSyntaxToken::LinkText => "link_text", + ZedSyntaxToken::LinkUri => "link_uri", + ZedSyntaxToken::Number => "number", + ZedSyntaxToken::Operator => "operator", + ZedSyntaxToken::Predictive => "predictive", + ZedSyntaxToken::Preproc => "preproc", + ZedSyntaxToken::Primary => "primary", + ZedSyntaxToken::Property => "property", + ZedSyntaxToken::Punctuation => "punctuation", + ZedSyntaxToken::PunctuationBracket => "punctuation.bracket", + ZedSyntaxToken::PunctuationDelimiter => "punctuation.delimiter", + ZedSyntaxToken::PunctuationListMarker => "punctuation.list_marker", + ZedSyntaxToken::PunctuationSpecial => "punctuation.special", + ZedSyntaxToken::String => "string", + ZedSyntaxToken::StringEscape => "string.escape", + ZedSyntaxToken::StringRegex => "string.regex", + ZedSyntaxToken::StringSpecial => "string.special", + ZedSyntaxToken::StringSpecialSymbol => "string.special.symbol", + ZedSyntaxToken::Tag => "tag", + ZedSyntaxToken::TextLiteral => "text.literal", + ZedSyntaxToken::Title => "title", + ZedSyntaxToken::Type => "type", + ZedSyntaxToken::Variable => "variable", + ZedSyntaxToken::VariableSpecial => "variable.special", + ZedSyntaxToken::Variant => "variant", } ) } @@ -130,47 +128,47 @@ impl std::fmt::Display for ZedSyntaxToken { impl ZedSyntaxToken { pub fn to_vscode(&self) -> Vec<&'static str> { - use ZedSyntaxToken::*; - match self { - SyntaxAttribute => vec!["entity.other.attribute-name"], - SyntaxBoolean => vec!["constant.language"], - SyntaxComment => vec!["comment"], - SyntaxCommentDoc => vec!["comment.block.documentation"], - SyntaxConstant => vec!["constant.character"], - SyntaxConstructor => vec!["entity.name.function.definition.special.constructor"], - SyntaxEmbedded => vec!["meta.embedded"], - SyntaxEmphasis => vec!["markup.italic"], - SyntaxEmphasisStrong => vec![ + ZedSyntaxToken::Attribute => vec!["entity.other.attribute-name"], + ZedSyntaxToken::Boolean => vec!["constant.language"], + ZedSyntaxToken::Comment => vec!["comment"], + ZedSyntaxToken::CommentDoc => vec!["comment.block.documentation"], + ZedSyntaxToken::Constant => vec!["constant.character"], + ZedSyntaxToken::Constructor => { + vec!["entity.name.function.definition.special.constructor"] + } + ZedSyntaxToken::Embedded => vec!["meta.embedded"], + ZedSyntaxToken::Emphasis => vec!["markup.italic"], + ZedSyntaxToken::EmphasisStrong => vec![ "markup.bold", "markup.italic markup.bold", "markup.bold markup.italic", ], - SyntaxEnum => vec!["support.type.enum"], - SyntaxFunction => vec![ + ZedSyntaxToken::Enum => vec!["support.type.enum"], + ZedSyntaxToken::Function => vec![ "entity.name.function", "variable.function", "support.function", ], - SyntaxKeyword => vec!["keyword"], - SyntaxLabel => vec![ + ZedSyntaxToken::Keyword => vec!["keyword"], + ZedSyntaxToken::Label => vec![ "label", "entity.name", "entity.name.import", "entity.name.package", ], - SyntaxLinkText => vec!["markup.underline.link", "string.other.link"], - SyntaxLinkUri => vec!["markup.underline.link", "string.other.link"], - SyntaxNumber => vec!["constant.numeric", "number"], - SyntaxOperator => vec!["operator", "keyword.operator"], - SyntaxPreproc => vec!["preproc"], - SyntaxProperty => vec![ + ZedSyntaxToken::LinkText => vec!["markup.underline.link", "string.other.link"], + ZedSyntaxToken::LinkUri => vec!["markup.underline.link", "string.other.link"], + ZedSyntaxToken::Number => vec!["constant.numeric", "number"], + ZedSyntaxToken::Operator => vec!["operator", "keyword.operator"], + ZedSyntaxToken::Preproc => vec!["preproc"], + ZedSyntaxToken::Property => vec![ "variable.member", "support.type.property-name", "variable.object.property", "variable.other.field", ], - SyntaxPunctuation => vec![ + ZedSyntaxToken::Punctuation => vec![ "punctuation", "punctuation.section", "punctuation.accessor", @@ -178,40 +176,46 @@ impl ZedSyntaxToken { "punctuation.terminator", "punctuation.definition.tag", ], - SyntaxPunctuationBracket => vec![ + ZedSyntaxToken::PunctuationBracket => vec![ "punctuation.bracket", "punctuation.definition.tag.begin", "punctuation.definition.tag.end", ], - SyntaxPunctuationDelimiter => vec![ + ZedSyntaxToken::PunctuationDelimiter => vec![ "punctuation.delimiter", "punctuation.separator", "punctuation.terminator", ], - SyntaxPunctuationListMarker => vec!["markup.list punctuation.definition.list.begin"], - SyntaxPunctuationSpecial => vec!["punctuation.special"], - SyntaxString => vec!["string"], - SyntaxStringEscape => vec!["string.escape", "constant.character", "constant.other"], - SyntaxStringRegex => vec!["string.regex"], - SyntaxStringSpecial => vec!["string.special", "constant.other.symbol"], - SyntaxStringSpecialSymbol => vec!["string.special.symbol", "constant.other.symbol"], - SyntaxTag => vec!["tag", "entity.name.tag", "meta.tag.sgml"], - SyntaxTextLiteral => vec!["text.literal", "string"], - SyntaxTitle => vec!["title", "entity.name"], - SyntaxType => vec!["entity.name.type", "support.type", "support.class"], - SyntaxVariable => vec![ + ZedSyntaxToken::PunctuationListMarker => { + vec!["markup.list punctuation.definition.list.begin"] + } + ZedSyntaxToken::PunctuationSpecial => vec!["punctuation.special"], + ZedSyntaxToken::String => vec!["string"], + ZedSyntaxToken::StringEscape => { + vec!["string.escape", "constant.character", "constant.other"] + } + ZedSyntaxToken::StringRegex => vec!["string.regex"], + ZedSyntaxToken::StringSpecial => vec!["string.special", "constant.other.symbol"], + ZedSyntaxToken::StringSpecialSymbol => { + vec!["string.special.symbol", "constant.other.symbol"] + } + ZedSyntaxToken::Tag => vec!["tag", "entity.name.tag", "meta.tag.sgml"], + ZedSyntaxToken::TextLiteral => vec!["text.literal", "string"], + ZedSyntaxToken::Title => vec!["title", "entity.name"], + ZedSyntaxToken::Type => vec!["entity.name.type", "support.type", "support.class"], + ZedSyntaxToken::Variable => vec![ "variable", "variable.language", "variable.member", "variable.parameter.function-call", ], - SyntaxVariableSpecial => vec![ + ZedSyntaxToken::VariableSpecial => vec![ "variable.special", "variable.member", "variable.annotation", "variable.language", ], - SyntaxVariant => vec!["variant"], + ZedSyntaxToken::Variant => vec!["variant"], _ => vec![], } } diff --git a/crates/theme_importer/src/vscode/theme.rs b/crates/theme_importer/src/vscode/theme.rs index 76e3c02b34..d2c1136d7b 100644 --- a/crates/theme_importer/src/vscode/theme.rs +++ b/crates/theme_importer/src/vscode/theme.rs @@ -163,6 +163,18 @@ pub struct VsCodeColors { pub editor_foreground: Option, #[serde(rename = "editor.background")] pub editor_background: Option, + #[serde(rename = "editorInlayHint.foreground")] + pub editor_inlay_hint_foreground: Option, + #[serde(rename = "editorInlayHint.background")] + pub editor_inlay_hint_background: Option, + #[serde(rename = "editorInlayHint.parameterForeground")] + pub editor_inlay_hint_parameter_foreground: Option, + #[serde(rename = "editorInlayHint.parameterBackground")] + pub editor_inlay_hint_parameter_background: Option, + #[serde(rename = "editorInlayHint.typForeground")] + pub editor_inlay_hint_typ_foreground: Option, + #[serde(rename = "editorInlayHint.typBackground")] + pub editor_inlay_hint_typ_background: Option, #[serde(rename = "editorLineNumber.foreground")] pub editor_line_number_foreground: Option, #[serde(rename = "editor.selectionBackground")]