Pull hint colors from VS Code themes (#3543)

This PR updates the `theme_importer` to pull hint colors from VS Code
themes.

Release Notes:

- N/A
This commit is contained in:
Marshall Bowers 2023-12-07 16:11:56 -05:00 committed by GitHub
commit d23bba5b18
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 183 additions and 177 deletions

View file

@ -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 {

View file

@ -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 {

View file

@ -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()
},

View file

@ -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 {

View file

@ -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()
},

View file

@ -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()
},

View file

@ -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()
},

View file

@ -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 {

View file

@ -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()
},

View file

@ -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 {

View file

@ -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()
},

View file

@ -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),
];

View file

@ -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<StatusColorsRefinement> {
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<IndexMap<String, UserHighlightStyle>> {
// 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)
// }
}
}

View file

@ -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![],
}
}

View file

@ -163,6 +163,18 @@ pub struct VsCodeColors {
pub editor_foreground: Option<String>,
#[serde(rename = "editor.background")]
pub editor_background: Option<String>,
#[serde(rename = "editorInlayHint.foreground")]
pub editor_inlay_hint_foreground: Option<String>,
#[serde(rename = "editorInlayHint.background")]
pub editor_inlay_hint_background: Option<String>,
#[serde(rename = "editorInlayHint.parameterForeground")]
pub editor_inlay_hint_parameter_foreground: Option<String>,
#[serde(rename = "editorInlayHint.parameterBackground")]
pub editor_inlay_hint_parameter_background: Option<String>,
#[serde(rename = "editorInlayHint.typForeground")]
pub editor_inlay_hint_typ_foreground: Option<String>,
#[serde(rename = "editorInlayHint.typBackground")]
pub editor_inlay_hint_typ_background: Option<String>,
#[serde(rename = "editorLineNumber.foreground")]
pub editor_line_number_foreground: Option<String>,
#[serde(rename = "editor.selectionBackground")]