Extend theme converter to allow multimatching against vscode colors (#3294)

[[PR Description]]

Adds the ability to specify a vec of VScode syntax scopes to match
against for a given syntax style.

Example:

```rust
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![
                "markup.bold",
                "markup.italic markup.bold",
                "markup.bold markup.italic",
            ],
            SyntaxEnum => vec!["support.type.enum"],
            SyntaxFunction => vec![
                "entity.name.function",
                "variable.function",
                "support.function",
            ],
            SyntaxKeyword => vec!["keyword"],
            SyntaxLabel => vec![
                "label",
                "entity.name",
                "entity.name.import",
                "entity.name.package",
            ],
            // .. more styles
}}
```

Useful `settings.json` for testing themes:

```json5
{
  // --- Dark Themes ---
  "theme": "Ayu Dark"
  // "theme": "Ayu Mirage"
  // "theme": "Dracula"
  // "theme": "Gruvbox Dark Hard"
  // "theme": "Gruvbox Dark Medium"
  // "theme": "Gruvbox Dark Soft"
  // "theme": "Night Owl"
  // "theme": "Noctis Obscuro"
  // "theme": "Noctis"
  // "theme": "Nord"
  // "theme": "Palenight (Mild Contrast)"
  // "theme": "Palenight Operator"
  // "theme": "Palenight"
  // "theme": "Rose Pine Moon"
  // "theme": "Rose Pine"
  // "theme": "Solarized Dark"
  // "theme": "Synthwave 84"
  // --- Light Themes ---
  // "theme": "Ayu Light"
  // "theme": "Gruvbox Light Hard"
  // "theme": "Gruvbox Light Medium"
  // "theme": "Gruvbox Light Soft"
  // "theme": "Noctis Lux"
  // "theme": "Rose Pine Dawn"
  // "theme": "Solarized Light"
}
```

Release Notes:

- N/A
This commit is contained in:
Nate Butler 2023-11-09 17:40:10 -05:00 committed by GitHub
commit 2347576fb5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
21 changed files with 4127 additions and 948 deletions

View file

@ -76,6 +76,20 @@ pub fn andromeda() -> UserThemeFamily {
..Default::default()
},
),
(
"emphasis".into(),
UserHighlightStyle {
color: Some(rgba(0xc64dedff).into()),
..Default::default()
},
),
(
"emphasis.strong".into(),
UserHighlightStyle {
color: Some(rgba(0xf39c11ff).into()),
..Default::default()
},
),
(
"function".into(),
UserHighlightStyle {
@ -90,6 +104,20 @@ pub fn andromeda() -> UserThemeFamily {
..Default::default()
},
),
(
"number".into(),
UserHighlightStyle {
color: Some(rgba(0xf39c11ff).into()),
..Default::default()
},
),
(
"operator".into(),
UserHighlightStyle {
color: Some(rgba(0xee5d42ff).into()),
..Default::default()
},
),
(
"string".into(),
UserHighlightStyle {
@ -97,6 +125,20 @@ pub fn andromeda() -> UserThemeFamily {
..Default::default()
},
),
(
"tag".into(),
UserHighlightStyle {
color: Some(rgba(0xf92571ff).into()),
..Default::default()
},
),
(
"text.literal".into(),
UserHighlightStyle {
color: Some(rgba(0x95e072ff).into()),
..Default::default()
},
),
(
"type".into(),
UserHighlightStyle {
@ -104,6 +146,13 @@ pub fn andromeda() -> UserThemeFamily {
..Default::default()
},
),
(
"variable".into(),
UserHighlightStyle {
color: Some(rgba(0x00e8c6ff).into()),
..Default::default()
},
),
],
}),
},
@ -170,6 +219,20 @@ pub fn andromeda() -> UserThemeFamily {
..Default::default()
},
),
(
"emphasis".into(),
UserHighlightStyle {
color: Some(rgba(0xc64dedff).into()),
..Default::default()
},
),
(
"emphasis.strong".into(),
UserHighlightStyle {
color: Some(rgba(0xf39c11ff).into()),
..Default::default()
},
),
(
"function".into(),
UserHighlightStyle {
@ -184,6 +247,20 @@ pub fn andromeda() -> UserThemeFamily {
..Default::default()
},
),
(
"number".into(),
UserHighlightStyle {
color: Some(rgba(0xf39c11ff).into()),
..Default::default()
},
),
(
"operator".into(),
UserHighlightStyle {
color: Some(rgba(0xee5d42ff).into()),
..Default::default()
},
),
(
"string".into(),
UserHighlightStyle {
@ -191,6 +268,20 @@ pub fn andromeda() -> UserThemeFamily {
..Default::default()
},
),
(
"tag".into(),
UserHighlightStyle {
color: Some(rgba(0xf92571ff).into()),
..Default::default()
},
),
(
"text.literal".into(),
UserHighlightStyle {
color: Some(rgba(0x95e072ff).into()),
..Default::default()
},
),
(
"type".into(),
UserHighlightStyle {
@ -198,6 +289,13 @@ pub fn andromeda() -> UserThemeFamily {
..Default::default()
},
),
(
"variable".into(),
UserHighlightStyle {
color: Some(rgba(0x00e8c6ff).into()),
..Default::default()
},
),
],
}),
},

View file

@ -95,6 +95,29 @@ pub fn ayu() -> UserThemeFamily {
..Default::default()
},
),
(
"embedded".into(),
UserHighlightStyle {
color: Some(rgba(0x5c6166ff).into()),
..Default::default()
},
),
(
"emphasis".into(),
UserHighlightStyle {
color: Some(rgba(0xef7070ff).into()),
font_style: Some(UserFontStyle::Italic),
..Default::default()
},
),
(
"emphasis.strong".into(),
UserHighlightStyle {
color: Some(rgba(0xef7070ff).into()),
font_weight: Some(UserFontWeight(700.0)),
..Default::default()
},
),
(
"function".into(),
UserHighlightStyle {
@ -109,6 +132,76 @@ pub fn ayu() -> UserThemeFamily {
..Default::default()
},
),
(
"label".into(),
UserHighlightStyle {
color: Some(rgba(0x86b300ff).into()),
..Default::default()
},
),
(
"link_text".into(),
UserHighlightStyle {
color: Some(rgba(0x55b4d3ff).into()),
..Default::default()
},
),
(
"link_uri".into(),
UserHighlightStyle {
color: Some(rgba(0x55b4d3ff).into()),
..Default::default()
},
),
(
"number".into(),
UserHighlightStyle {
color: Some(rgba(0xa37accff).into()),
..Default::default()
},
),
(
"operator".into(),
UserHighlightStyle {
color: Some(rgba(0xed9365ff).into()),
..Default::default()
},
),
(
"property".into(),
UserHighlightStyle {
color: Some(rgba(0xef7070ff).into()),
..Default::default()
},
),
(
"punctuation".into(),
UserHighlightStyle {
color: Some(rgba(0x5c6166b3).into()),
..Default::default()
},
),
(
"punctuation.bracket".into(),
UserHighlightStyle {
color: Some(rgba(0x55b4d380).into()),
..Default::default()
},
),
(
"punctuation.delimiter".into(),
UserHighlightStyle {
color: Some(rgba(0x5c6166b3).into()),
..Default::default()
},
),
(
"punctuation.list_marker".into(),
UserHighlightStyle {
color: Some(rgba(0xf2ad48ff).into()),
..Default::default()
},
),
(
"string".into(),
UserHighlightStyle {
@ -117,10 +210,65 @@ pub fn ayu() -> UserThemeFamily {
},
),
(
"variable".into(),
"string.escape".into(),
UserHighlightStyle {
color: Some(rgba(0x4bbf98ff).into()),
..Default::default()
},
),
(
"string.special".into(),
UserHighlightStyle {
color: Some(rgba(0x86b300ff).into()),
..Default::default()
},
),
(
"string.special.symbol".into(),
UserHighlightStyle {
color: Some(rgba(0x86b300ff).into()),
..Default::default()
},
),
(
"tag".into(),
UserHighlightStyle {
color: Some(rgba(0x55b4d3ff).into()),
font_style: Some(UserFontStyle::Italic),
..Default::default()
},
),
(
"text.literal".into(),
UserHighlightStyle {
color: Some(rgba(0x86b300ff).into()),
..Default::default()
},
),
(
"title".into(),
UserHighlightStyle {
color: Some(rgba(0x389ee6ff).into()),
..Default::default()
},
),
(
"type".into(),
UserHighlightStyle {
color: Some(rgba(0x55b4d3ff).into()),
..Default::default()
},
),
(
"variable".into(),
UserHighlightStyle {
color: Some(rgba(0x5c6166ff).into()),
..Default::default()
},
),
(
"variable.special".into(),
UserHighlightStyle {
color: Some(rgba(0xef7070ff).into()),
..Default::default()
},
),
@ -209,6 +357,29 @@ pub fn ayu() -> UserThemeFamily {
..Default::default()
},
),
(
"embedded".into(),
UserHighlightStyle {
color: Some(rgba(0xcccac2ff).into()),
..Default::default()
},
),
(
"emphasis".into(),
UserHighlightStyle {
color: Some(rgba(0xf18678ff).into()),
font_style: Some(UserFontStyle::Italic),
..Default::default()
},
),
(
"emphasis.strong".into(),
UserHighlightStyle {
color: Some(rgba(0xf18678ff).into()),
font_weight: Some(UserFontWeight(700.0)),
..Default::default()
},
),
(
"function".into(),
UserHighlightStyle {
@ -223,6 +394,76 @@ pub fn ayu() -> UserThemeFamily {
..Default::default()
},
),
(
"label".into(),
UserHighlightStyle {
color: Some(rgba(0xd4fe7fff).into()),
..Default::default()
},
),
(
"link_text".into(),
UserHighlightStyle {
color: Some(rgba(0x5ccfe6ff).into()),
..Default::default()
},
),
(
"link_uri".into(),
UserHighlightStyle {
color: Some(rgba(0x5ccfe6ff).into()),
..Default::default()
},
),
(
"number".into(),
UserHighlightStyle {
color: Some(rgba(0xdfbfffff).into()),
..Default::default()
},
),
(
"operator".into(),
UserHighlightStyle {
color: Some(rgba(0xf29e74ff).into()),
..Default::default()
},
),
(
"property".into(),
UserHighlightStyle {
color: Some(rgba(0xf18678ff).into()),
..Default::default()
},
),
(
"punctuation".into(),
UserHighlightStyle {
color: Some(rgba(0xcccac2b3).into()),
..Default::default()
},
),
(
"punctuation.bracket".into(),
UserHighlightStyle {
color: Some(rgba(0x5ccfe680).into()),
..Default::default()
},
),
(
"punctuation.delimiter".into(),
UserHighlightStyle {
color: Some(rgba(0xcccac2b3).into()),
..Default::default()
},
),
(
"punctuation.list_marker".into(),
UserHighlightStyle {
color: Some(rgba(0xffd173ff).into()),
..Default::default()
},
),
(
"string".into(),
UserHighlightStyle {
@ -231,10 +472,65 @@ pub fn ayu() -> UserThemeFamily {
},
),
(
"variable".into(),
"string.escape".into(),
UserHighlightStyle {
color: Some(rgba(0x95e6cbff).into()),
..Default::default()
},
),
(
"string.special".into(),
UserHighlightStyle {
color: Some(rgba(0xd4fe7fff).into()),
..Default::default()
},
),
(
"string.special.symbol".into(),
UserHighlightStyle {
color: Some(rgba(0xd4fe7fff).into()),
..Default::default()
},
),
(
"tag".into(),
UserHighlightStyle {
color: Some(rgba(0x5ccfe6ff).into()),
font_style: Some(UserFontStyle::Italic),
..Default::default()
},
),
(
"text.literal".into(),
UserHighlightStyle {
color: Some(rgba(0xd4fe7fff).into()),
..Default::default()
},
),
(
"title".into(),
UserHighlightStyle {
color: Some(rgba(0x73cfffff).into()),
..Default::default()
},
),
(
"type".into(),
UserHighlightStyle {
color: Some(rgba(0x5ccfe6ff).into()),
..Default::default()
},
),
(
"variable".into(),
UserHighlightStyle {
color: Some(rgba(0xcccac2ff).into()),
..Default::default()
},
),
(
"variable.special".into(),
UserHighlightStyle {
color: Some(rgba(0xf18678ff).into()),
..Default::default()
},
),
@ -323,6 +619,29 @@ pub fn ayu() -> UserThemeFamily {
..Default::default()
},
),
(
"embedded".into(),
UserHighlightStyle {
color: Some(rgba(0xbfbdb6ff).into()),
..Default::default()
},
),
(
"emphasis".into(),
UserHighlightStyle {
color: Some(rgba(0xef7077ff).into()),
font_style: Some(UserFontStyle::Italic),
..Default::default()
},
),
(
"emphasis.strong".into(),
UserHighlightStyle {
color: Some(rgba(0xef7077ff).into()),
font_weight: Some(UserFontWeight(700.0)),
..Default::default()
},
),
(
"function".into(),
UserHighlightStyle {
@ -337,6 +656,76 @@ pub fn ayu() -> UserThemeFamily {
..Default::default()
},
),
(
"label".into(),
UserHighlightStyle {
color: Some(rgba(0xa9d94bff).into()),
..Default::default()
},
),
(
"link_text".into(),
UserHighlightStyle {
color: Some(rgba(0x38b9e6ff).into()),
..Default::default()
},
),
(
"link_uri".into(),
UserHighlightStyle {
color: Some(rgba(0x38b9e6ff).into()),
..Default::default()
},
),
(
"number".into(),
UserHighlightStyle {
color: Some(rgba(0xd2a6ffff).into()),
..Default::default()
},
),
(
"operator".into(),
UserHighlightStyle {
color: Some(rgba(0xf29668ff).into()),
..Default::default()
},
),
(
"property".into(),
UserHighlightStyle {
color: Some(rgba(0xef7077ff).into()),
..Default::default()
},
),
(
"punctuation".into(),
UserHighlightStyle {
color: Some(rgba(0xbfbdb6b3).into()),
..Default::default()
},
),
(
"punctuation.bracket".into(),
UserHighlightStyle {
color: Some(rgba(0x38b9e680).into()),
..Default::default()
},
),
(
"punctuation.delimiter".into(),
UserHighlightStyle {
color: Some(rgba(0xbfbdb6b3).into()),
..Default::default()
},
),
(
"punctuation.list_marker".into(),
UserHighlightStyle {
color: Some(rgba(0xffb353ff).into()),
..Default::default()
},
),
(
"string".into(),
UserHighlightStyle {
@ -345,10 +734,65 @@ pub fn ayu() -> UserThemeFamily {
},
),
(
"variable".into(),
"string.escape".into(),
UserHighlightStyle {
color: Some(rgba(0x95e6cbff).into()),
..Default::default()
},
),
(
"string.special".into(),
UserHighlightStyle {
color: Some(rgba(0xa9d94bff).into()),
..Default::default()
},
),
(
"string.special.symbol".into(),
UserHighlightStyle {
color: Some(rgba(0xa9d94bff).into()),
..Default::default()
},
),
(
"tag".into(),
UserHighlightStyle {
color: Some(rgba(0x38b9e6ff).into()),
font_style: Some(UserFontStyle::Italic),
..Default::default()
},
),
(
"text.literal".into(),
UserHighlightStyle {
color: Some(rgba(0xa9d94bff).into()),
..Default::default()
},
),
(
"title".into(),
UserHighlightStyle {
color: Some(rgba(0x59c2ffff).into()),
..Default::default()
},
),
(
"type".into(),
UserHighlightStyle {
color: Some(rgba(0x38b9e6ff).into()),
..Default::default()
},
),
(
"variable".into(),
UserHighlightStyle {
color: Some(rgba(0xbfbdb6ff).into()),
..Default::default()
},
),
(
"variable.special".into(),
UserHighlightStyle {
color: Some(rgba(0xef7077ff).into()),
..Default::default()
},
),

View file

@ -85,10 +85,19 @@ pub fn dracula() -> UserThemeFamily {
(
"emphasis".into(),
UserHighlightStyle {
color: Some(rgba(0xf1fa8cff).into()),
font_style: Some(UserFontStyle::Italic),
..Default::default()
},
),
(
"emphasis.strong".into(),
UserHighlightStyle {
color: Some(rgba(0xffb76bff).into()),
font_weight: Some(UserFontWeight(700.0)),
..Default::default()
},
),
(
"function".into(),
UserHighlightStyle {
@ -103,6 +112,20 @@ pub fn dracula() -> UserThemeFamily {
..Default::default()
},
),
(
"link_text".into(),
UserHighlightStyle {
color: Some(rgba(0x8be9fdff).into()),
..Default::default()
},
),
(
"link_uri".into(),
UserHighlightStyle {
color: Some(rgba(0x8be9fdff).into()),
..Default::default()
},
),
(
"string".into(),
UserHighlightStyle {
@ -110,6 +133,20 @@ pub fn dracula() -> UserThemeFamily {
..Default::default()
},
),
(
"tag".into(),
UserHighlightStyle {
color: Some(rgba(0xff79c6ff).into()),
..Default::default()
},
),
(
"text.literal".into(),
UserHighlightStyle {
color: Some(rgba(0xf1fa8cff).into()),
..Default::default()
},
),
(
"type".into(),
UserHighlightStyle {
@ -126,6 +163,14 @@ pub fn dracula() -> UserThemeFamily {
..Default::default()
},
),
(
"variable.special".into(),
UserHighlightStyle {
color: Some(rgba(0xbd93f9ff).into()),
font_style: Some(UserFontStyle::Italic),
..Default::default()
},
),
],
}),
},

View file

@ -87,6 +87,14 @@ pub fn gruvbox() -> UserThemeFamily {
..Default::default()
},
),
(
"emphasis.strong".into(),
UserHighlightStyle {
color: Some(rgba(0xfe7f18ff).into()),
font_weight: Some(UserFontWeight(700.0)),
..Default::default()
},
),
(
"function".into(),
UserHighlightStyle {
@ -101,6 +109,41 @@ pub fn gruvbox() -> UserThemeFamily {
..Default::default()
},
),
(
"label".into(),
UserHighlightStyle {
color: Some(rgba(0xfabd2eff).into()),
..Default::default()
},
),
(
"link_text".into(),
UserHighlightStyle {
color: Some(rgba(0xd3869bff).into()),
..Default::default()
},
),
(
"link_uri".into(),
UserHighlightStyle {
color: Some(rgba(0xd3869bff).into()),
..Default::default()
},
),
(
"operator".into(),
UserHighlightStyle {
color: Some(rgba(0x8ec07cff).into()),
..Default::default()
},
),
(
"property".into(),
UserHighlightStyle {
color: Some(rgba(0x679d6aff).into()),
..Default::default()
},
),
(
"punctuation".into(),
UserHighlightStyle {
@ -122,6 +165,27 @@ pub fn gruvbox() -> UserThemeFamily {
..Default::default()
},
),
(
"tag".into(),
UserHighlightStyle {
color: Some(rgba(0x8ec07cff).into()),
..Default::default()
},
),
(
"text.literal".into(),
UserHighlightStyle {
color: Some(rgba(0xb8bb25ff).into()),
..Default::default()
},
),
(
"title".into(),
UserHighlightStyle {
color: Some(rgba(0xfabd2eff).into()),
..Default::default()
},
),
(
"type".into(),
UserHighlightStyle {
@ -129,6 +193,13 @@ pub fn gruvbox() -> UserThemeFamily {
..Default::default()
},
),
(
"variable".into(),
UserHighlightStyle {
color: Some(rgba(0x83a598ff).into()),
..Default::default()
},
),
],
}),
},
@ -206,6 +277,14 @@ pub fn gruvbox() -> UserThemeFamily {
..Default::default()
},
),
(
"emphasis.strong".into(),
UserHighlightStyle {
color: Some(rgba(0xfe7f18ff).into()),
font_weight: Some(UserFontWeight(700.0)),
..Default::default()
},
),
(
"function".into(),
UserHighlightStyle {
@ -220,6 +299,41 @@ pub fn gruvbox() -> UserThemeFamily {
..Default::default()
},
),
(
"label".into(),
UserHighlightStyle {
color: Some(rgba(0xfabd2eff).into()),
..Default::default()
},
),
(
"link_text".into(),
UserHighlightStyle {
color: Some(rgba(0xd3869bff).into()),
..Default::default()
},
),
(
"link_uri".into(),
UserHighlightStyle {
color: Some(rgba(0xd3869bff).into()),
..Default::default()
},
),
(
"operator".into(),
UserHighlightStyle {
color: Some(rgba(0x8ec07cff).into()),
..Default::default()
},
),
(
"property".into(),
UserHighlightStyle {
color: Some(rgba(0x679d6aff).into()),
..Default::default()
},
),
(
"punctuation".into(),
UserHighlightStyle {
@ -241,6 +355,27 @@ pub fn gruvbox() -> UserThemeFamily {
..Default::default()
},
),
(
"tag".into(),
UserHighlightStyle {
color: Some(rgba(0x8ec07cff).into()),
..Default::default()
},
),
(
"text.literal".into(),
UserHighlightStyle {
color: Some(rgba(0xb8bb25ff).into()),
..Default::default()
},
),
(
"title".into(),
UserHighlightStyle {
color: Some(rgba(0xfabd2eff).into()),
..Default::default()
},
),
(
"type".into(),
UserHighlightStyle {
@ -248,6 +383,13 @@ pub fn gruvbox() -> UserThemeFamily {
..Default::default()
},
),
(
"variable".into(),
UserHighlightStyle {
color: Some(rgba(0x83a598ff).into()),
..Default::default()
},
),
],
}),
},
@ -325,6 +467,14 @@ pub fn gruvbox() -> UserThemeFamily {
..Default::default()
},
),
(
"emphasis.strong".into(),
UserHighlightStyle {
color: Some(rgba(0xfe7f18ff).into()),
font_weight: Some(UserFontWeight(700.0)),
..Default::default()
},
),
(
"function".into(),
UserHighlightStyle {
@ -339,6 +489,41 @@ pub fn gruvbox() -> UserThemeFamily {
..Default::default()
},
),
(
"label".into(),
UserHighlightStyle {
color: Some(rgba(0xfabd2eff).into()),
..Default::default()
},
),
(
"link_text".into(),
UserHighlightStyle {
color: Some(rgba(0xd3869bff).into()),
..Default::default()
},
),
(
"link_uri".into(),
UserHighlightStyle {
color: Some(rgba(0xd3869bff).into()),
..Default::default()
},
),
(
"operator".into(),
UserHighlightStyle {
color: Some(rgba(0x8ec07cff).into()),
..Default::default()
},
),
(
"property".into(),
UserHighlightStyle {
color: Some(rgba(0x679d6aff).into()),
..Default::default()
},
),
(
"punctuation".into(),
UserHighlightStyle {
@ -360,6 +545,27 @@ pub fn gruvbox() -> UserThemeFamily {
..Default::default()
},
),
(
"tag".into(),
UserHighlightStyle {
color: Some(rgba(0x8ec07cff).into()),
..Default::default()
},
),
(
"text.literal".into(),
UserHighlightStyle {
color: Some(rgba(0xb8bb25ff).into()),
..Default::default()
},
),
(
"title".into(),
UserHighlightStyle {
color: Some(rgba(0xfabd2eff).into()),
..Default::default()
},
),
(
"type".into(),
UserHighlightStyle {
@ -367,6 +573,13 @@ pub fn gruvbox() -> UserThemeFamily {
..Default::default()
},
),
(
"variable".into(),
UserHighlightStyle {
color: Some(rgba(0x83a598ff).into()),
..Default::default()
},
),
],
}),
},
@ -444,6 +657,14 @@ pub fn gruvbox() -> UserThemeFamily {
..Default::default()
},
),
(
"emphasis.strong".into(),
UserHighlightStyle {
color: Some(rgba(0xaf3a02ff).into()),
font_weight: Some(UserFontWeight(700.0)),
..Default::default()
},
),
(
"function".into(),
UserHighlightStyle {
@ -458,6 +679,41 @@ pub fn gruvbox() -> UserThemeFamily {
..Default::default()
},
),
(
"label".into(),
UserHighlightStyle {
color: Some(rgba(0xb57613ff).into()),
..Default::default()
},
),
(
"link_text".into(),
UserHighlightStyle {
color: Some(rgba(0x8f3e71ff).into()),
..Default::default()
},
),
(
"link_uri".into(),
UserHighlightStyle {
color: Some(rgba(0x8f3e71ff).into()),
..Default::default()
},
),
(
"operator".into(),
UserHighlightStyle {
color: Some(rgba(0x427b58ff).into()),
..Default::default()
},
),
(
"property".into(),
UserHighlightStyle {
color: Some(rgba(0x679d6aff).into()),
..Default::default()
},
),
(
"punctuation".into(),
UserHighlightStyle {
@ -479,6 +735,27 @@ pub fn gruvbox() -> UserThemeFamily {
..Default::default()
},
),
(
"tag".into(),
UserHighlightStyle {
color: Some(rgba(0x427b58ff).into()),
..Default::default()
},
),
(
"text.literal".into(),
UserHighlightStyle {
color: Some(rgba(0x79740eff).into()),
..Default::default()
},
),
(
"title".into(),
UserHighlightStyle {
color: Some(rgba(0xb57613ff).into()),
..Default::default()
},
),
(
"type".into(),
UserHighlightStyle {
@ -486,6 +763,13 @@ pub fn gruvbox() -> UserThemeFamily {
..Default::default()
},
),
(
"variable".into(),
UserHighlightStyle {
color: Some(rgba(0x066578ff).into()),
..Default::default()
},
),
],
}),
},
@ -563,6 +847,14 @@ pub fn gruvbox() -> UserThemeFamily {
..Default::default()
},
),
(
"emphasis.strong".into(),
UserHighlightStyle {
color: Some(rgba(0xaf3a02ff).into()),
font_weight: Some(UserFontWeight(700.0)),
..Default::default()
},
),
(
"function".into(),
UserHighlightStyle {
@ -577,6 +869,41 @@ pub fn gruvbox() -> UserThemeFamily {
..Default::default()
},
),
(
"label".into(),
UserHighlightStyle {
color: Some(rgba(0xb57613ff).into()),
..Default::default()
},
),
(
"link_text".into(),
UserHighlightStyle {
color: Some(rgba(0x8f3e71ff).into()),
..Default::default()
},
),
(
"link_uri".into(),
UserHighlightStyle {
color: Some(rgba(0x8f3e71ff).into()),
..Default::default()
},
),
(
"operator".into(),
UserHighlightStyle {
color: Some(rgba(0x427b58ff).into()),
..Default::default()
},
),
(
"property".into(),
UserHighlightStyle {
color: Some(rgba(0x679d6aff).into()),
..Default::default()
},
),
(
"punctuation".into(),
UserHighlightStyle {
@ -598,6 +925,27 @@ pub fn gruvbox() -> UserThemeFamily {
..Default::default()
},
),
(
"tag".into(),
UserHighlightStyle {
color: Some(rgba(0x427b58ff).into()),
..Default::default()
},
),
(
"text.literal".into(),
UserHighlightStyle {
color: Some(rgba(0x79740eff).into()),
..Default::default()
},
),
(
"title".into(),
UserHighlightStyle {
color: Some(rgba(0xb57613ff).into()),
..Default::default()
},
),
(
"type".into(),
UserHighlightStyle {
@ -605,6 +953,13 @@ pub fn gruvbox() -> UserThemeFamily {
..Default::default()
},
),
(
"variable".into(),
UserHighlightStyle {
color: Some(rgba(0x066578ff).into()),
..Default::default()
},
),
],
}),
},
@ -682,6 +1037,14 @@ pub fn gruvbox() -> UserThemeFamily {
..Default::default()
},
),
(
"emphasis.strong".into(),
UserHighlightStyle {
color: Some(rgba(0xaf3a02ff).into()),
font_weight: Some(UserFontWeight(700.0)),
..Default::default()
},
),
(
"function".into(),
UserHighlightStyle {
@ -696,6 +1059,41 @@ pub fn gruvbox() -> UserThemeFamily {
..Default::default()
},
),
(
"label".into(),
UserHighlightStyle {
color: Some(rgba(0xb57613ff).into()),
..Default::default()
},
),
(
"link_text".into(),
UserHighlightStyle {
color: Some(rgba(0x8f3e71ff).into()),
..Default::default()
},
),
(
"link_uri".into(),
UserHighlightStyle {
color: Some(rgba(0x8f3e71ff).into()),
..Default::default()
},
),
(
"operator".into(),
UserHighlightStyle {
color: Some(rgba(0x427b58ff).into()),
..Default::default()
},
),
(
"property".into(),
UserHighlightStyle {
color: Some(rgba(0x679d6aff).into()),
..Default::default()
},
),
(
"punctuation".into(),
UserHighlightStyle {
@ -717,6 +1115,27 @@ pub fn gruvbox() -> UserThemeFamily {
..Default::default()
},
),
(
"tag".into(),
UserHighlightStyle {
color: Some(rgba(0x427b58ff).into()),
..Default::default()
},
),
(
"text.literal".into(),
UserHighlightStyle {
color: Some(rgba(0x79740eff).into()),
..Default::default()
},
),
(
"title".into(),
UserHighlightStyle {
color: Some(rgba(0xb57613ff).into()),
..Default::default()
},
),
(
"type".into(),
UserHighlightStyle {
@ -724,6 +1143,13 @@ pub fn gruvbox() -> UserThemeFamily {
..Default::default()
},
),
(
"variable".into(),
UserHighlightStyle {
color: Some(rgba(0x066578ff).into()),
..Default::default()
},
),
],
}),
},

View file

@ -112,6 +112,35 @@ pub fn night_owl() -> UserThemeFamily {
..Default::default()
},
),
(
"number".into(),
UserHighlightStyle {
color: Some(rgba(0xf78b6bff).into()),
..Default::default()
},
),
(
"operator".into(),
UserHighlightStyle {
color: Some(rgba(0x7fdbcaff).into()),
..Default::default()
},
),
(
"property".into(),
UserHighlightStyle {
color: Some(rgba(0x7fcac3ff).into()),
..Default::default()
},
),
(
"punctuation".into(),
UserHighlightStyle {
color: Some(rgba(0xc792eaff).into()),
font_style: Some(UserFontStyle::Italic),
..Default::default()
},
),
(
"string".into(),
UserHighlightStyle {
@ -119,8 +148,43 @@ pub fn night_owl() -> UserThemeFamily {
..Default::default()
},
),
(
"string.escape".into(),
UserHighlightStyle {
color: Some(rgba(0x82aaffff).into()),
..Default::default()
},
),
(
"tag".into(),
UserHighlightStyle {
color: Some(rgba(0xcaece6ff).into()),
..Default::default()
},
),
(
"text.literal".into(),
UserHighlightStyle {
color: Some(rgba(0xecc48dff).into()),
..Default::default()
},
),
(
"type".into(),
UserHighlightStyle {
color: Some(rgba(0xc5e478ff).into()),
..Default::default()
},
),
(
"variable".into(),
UserHighlightStyle {
color: Some(rgba(0xc5e478ff).into()),
..Default::default()
},
),
(
"variable.special".into(),
UserHighlightStyle {
color: Some(rgba(0x7fdbcaff).into()),
..Default::default()
@ -229,6 +293,35 @@ pub fn night_owl() -> UserThemeFamily {
..Default::default()
},
),
(
"number".into(),
UserHighlightStyle {
color: Some(rgba(0xaa0881ff).into()),
..Default::default()
},
),
(
"operator".into(),
UserHighlightStyle {
color: Some(rgba(0x0b969bff).into()),
..Default::default()
},
),
(
"property".into(),
UserHighlightStyle {
color: Some(rgba(0x0b969bff).into()),
..Default::default()
},
),
(
"punctuation".into(),
UserHighlightStyle {
color: Some(rgba(0x994bc3ff).into()),
font_style: Some(UserFontStyle::Italic),
..Default::default()
},
),
(
"string".into(),
UserHighlightStyle {
@ -236,8 +329,43 @@ pub fn night_owl() -> UserThemeFamily {
..Default::default()
},
),
(
"string.escape".into(),
UserHighlightStyle {
color: Some(rgba(0x4876d6ff).into()),
..Default::default()
},
),
(
"tag".into(),
UserHighlightStyle {
color: Some(rgba(0x994bc3ff).into()),
..Default::default()
},
),
(
"text.literal".into(),
UserHighlightStyle {
color: Some(rgba(0x4876d6ff).into()),
..Default::default()
},
),
(
"type".into(),
UserHighlightStyle {
color: Some(rgba(0x4876d6ff).into()),
..Default::default()
},
),
(
"variable".into(),
UserHighlightStyle {
color: Some(rgba(0x4876d6ff).into()),
..Default::default()
},
),
(
"variable.special".into(),
UserHighlightStyle {
color: Some(rgba(0x0b969bff).into()),
..Default::default()

File diff suppressed because it is too large Load diff

View file

@ -96,9 +96,9 @@ pub fn nord() -> UserThemeFamily {
},
),
(
"emphasis".into(),
"emphasis.strong".into(),
UserHighlightStyle {
font_style: Some(UserFontStyle::Italic),
font_weight: Some(UserFontWeight(700.0)),
..Default::default()
},
),
@ -116,6 +116,20 @@ pub fn nord() -> UserThemeFamily {
..Default::default()
},
),
(
"number".into(),
UserHighlightStyle {
color: Some(rgba(0xb48eacff).into()),
..Default::default()
},
),
(
"operator".into(),
UserHighlightStyle {
color: Some(rgba(0x81a1c1ff).into()),
..Default::default()
},
),
(
"punctuation".into(),
UserHighlightStyle {
@ -123,6 +137,13 @@ pub fn nord() -> UserThemeFamily {
..Default::default()
},
),
(
"punctuation.delimiter".into(),
UserHighlightStyle {
color: Some(rgba(0x81a1c1ff).into()),
..Default::default()
},
),
(
"string".into(),
UserHighlightStyle {
@ -130,6 +151,34 @@ pub fn nord() -> UserThemeFamily {
..Default::default()
},
),
(
"string.escape".into(),
UserHighlightStyle {
color: Some(rgba(0xebcb8bff).into()),
..Default::default()
},
),
(
"tag".into(),
UserHighlightStyle {
color: Some(rgba(0x81a1c1ff).into()),
..Default::default()
},
),
(
"text.literal".into(),
UserHighlightStyle {
color: Some(rgba(0xa3be8cff).into()),
..Default::default()
},
),
(
"type".into(),
UserHighlightStyle {
color: Some(rgba(0x8fbcbbff).into()),
..Default::default()
},
),
(
"variable".into(),
UserHighlightStyle {
@ -137,6 +186,13 @@ pub fn nord() -> UserThemeFamily {
..Default::default()
},
),
(
"variable.special".into(),
UserHighlightStyle {
color: Some(rgba(0x81a1c1ff).into()),
..Default::default()
},
),
],
}),
},

View file

@ -95,6 +95,22 @@ pub fn palenight() -> UserThemeFamily {
..Default::default()
},
),
(
"emphasis".into(),
UserHighlightStyle {
color: Some(rgba(0xc792eaff).into()),
font_style: Some(UserFontStyle::Italic),
..Default::default()
},
),
(
"emphasis.strong".into(),
UserHighlightStyle {
color: Some(rgba(0xffcb6bff).into()),
font_weight: Some(UserFontWeight(700.0)),
..Default::default()
},
),
(
"function".into(),
UserHighlightStyle {
@ -109,6 +125,48 @@ pub fn palenight() -> UserThemeFamily {
..Default::default()
},
),
(
"link_text".into(),
UserHighlightStyle {
color: Some(rgba(0xff869aff).into()),
..Default::default()
},
),
(
"link_uri".into(),
UserHighlightStyle {
color: Some(rgba(0xff869aff).into()),
..Default::default()
},
),
(
"number".into(),
UserHighlightStyle {
color: Some(rgba(0xf78b6bff).into()),
..Default::default()
},
),
(
"operator".into(),
UserHighlightStyle {
color: Some(rgba(0x89ddffff).into()),
..Default::default()
},
),
(
"property".into(),
UserHighlightStyle {
color: Some(rgba(0x7fcac3ff).into()),
..Default::default()
},
),
(
"punctuation".into(),
UserHighlightStyle {
color: Some(rgba(0xc792eaff).into()),
..Default::default()
},
),
(
"string".into(),
UserHighlightStyle {
@ -116,8 +174,43 @@ pub fn palenight() -> UserThemeFamily {
..Default::default()
},
),
(
"string.escape".into(),
UserHighlightStyle {
color: Some(rgba(0x82aaffff).into()),
..Default::default()
},
),
(
"tag".into(),
UserHighlightStyle {
color: Some(rgba(0xff5571ff).into()),
..Default::default()
},
),
(
"text.literal".into(),
UserHighlightStyle {
color: Some(rgba(0xc3e88dff).into()),
..Default::default()
},
),
(
"type".into(),
UserHighlightStyle {
color: Some(rgba(0xffcb6bff).into()),
..Default::default()
},
),
(
"variable".into(),
UserHighlightStyle {
color: Some(rgba(0xffcb6bff).into()),
..Default::default()
},
),
(
"variable.special".into(),
UserHighlightStyle {
color: Some(rgba(0xff5571ff).into()),
..Default::default()
@ -208,6 +301,22 @@ pub fn palenight() -> UserThemeFamily {
..Default::default()
},
),
(
"emphasis".into(),
UserHighlightStyle {
color: Some(rgba(0xc792eaff).into()),
font_style: Some(UserFontStyle::Italic),
..Default::default()
},
),
(
"emphasis.strong".into(),
UserHighlightStyle {
color: Some(rgba(0xffcb6bff).into()),
font_weight: Some(UserFontWeight(700.0)),
..Default::default()
},
),
(
"function".into(),
UserHighlightStyle {
@ -222,6 +331,48 @@ pub fn palenight() -> UserThemeFamily {
..Default::default()
},
),
(
"link_text".into(),
UserHighlightStyle {
color: Some(rgba(0xff869aff).into()),
..Default::default()
},
),
(
"link_uri".into(),
UserHighlightStyle {
color: Some(rgba(0xff869aff).into()),
..Default::default()
},
),
(
"number".into(),
UserHighlightStyle {
color: Some(rgba(0xf78b6bff).into()),
..Default::default()
},
),
(
"operator".into(),
UserHighlightStyle {
color: Some(rgba(0x89ddffff).into()),
..Default::default()
},
),
(
"property".into(),
UserHighlightStyle {
color: Some(rgba(0x7fcac3ff).into()),
..Default::default()
},
),
(
"punctuation".into(),
UserHighlightStyle {
color: Some(rgba(0xc792eaff).into()),
..Default::default()
},
),
(
"string".into(),
UserHighlightStyle {
@ -229,8 +380,43 @@ pub fn palenight() -> UserThemeFamily {
..Default::default()
},
),
(
"string.escape".into(),
UserHighlightStyle {
color: Some(rgba(0x82aaffff).into()),
..Default::default()
},
),
(
"tag".into(),
UserHighlightStyle {
color: Some(rgba(0xff5571ff).into()),
..Default::default()
},
),
(
"text.literal".into(),
UserHighlightStyle {
color: Some(rgba(0xc3e88dff).into()),
..Default::default()
},
),
(
"type".into(),
UserHighlightStyle {
color: Some(rgba(0xffcb6bff).into()),
..Default::default()
},
),
(
"variable".into(),
UserHighlightStyle {
color: Some(rgba(0xffcb6bff).into()),
..Default::default()
},
),
(
"variable.special".into(),
UserHighlightStyle {
color: Some(rgba(0xff5571ff).into()),
..Default::default()
@ -321,6 +507,22 @@ pub fn palenight() -> UserThemeFamily {
..Default::default()
},
),
(
"emphasis".into(),
UserHighlightStyle {
color: Some(rgba(0xc792eaff).into()),
font_style: Some(UserFontStyle::Italic),
..Default::default()
},
),
(
"emphasis.strong".into(),
UserHighlightStyle {
color: Some(rgba(0xffcb6bff).into()),
font_weight: Some(UserFontWeight(700.0)),
..Default::default()
},
),
(
"function".into(),
UserHighlightStyle {
@ -335,6 +537,48 @@ pub fn palenight() -> UserThemeFamily {
..Default::default()
},
),
(
"link_text".into(),
UserHighlightStyle {
color: Some(rgba(0xff869aff).into()),
..Default::default()
},
),
(
"link_uri".into(),
UserHighlightStyle {
color: Some(rgba(0xff869aff).into()),
..Default::default()
},
),
(
"number".into(),
UserHighlightStyle {
color: Some(rgba(0xf78b6bff).into()),
..Default::default()
},
),
(
"operator".into(),
UserHighlightStyle {
color: Some(rgba(0x89ddffff).into()),
..Default::default()
},
),
(
"property".into(),
UserHighlightStyle {
color: Some(rgba(0x7fcac3ff).into()),
..Default::default()
},
),
(
"punctuation".into(),
UserHighlightStyle {
color: Some(rgba(0xc792eaff).into()),
..Default::default()
},
),
(
"string".into(),
UserHighlightStyle {
@ -342,8 +586,43 @@ pub fn palenight() -> UserThemeFamily {
..Default::default()
},
),
(
"string.escape".into(),
UserHighlightStyle {
color: Some(rgba(0x82aaffff).into()),
..Default::default()
},
),
(
"tag".into(),
UserHighlightStyle {
color: Some(rgba(0xff5571ff).into()),
..Default::default()
},
),
(
"text.literal".into(),
UserHighlightStyle {
color: Some(rgba(0xc3e88dff).into()),
..Default::default()
},
),
(
"type".into(),
UserHighlightStyle {
color: Some(rgba(0xffcb6bff).into()),
..Default::default()
},
),
(
"variable".into(),
UserHighlightStyle {
color: Some(rgba(0xffcb6bff).into()),
..Default::default()
},
),
(
"variable.special".into(),
UserHighlightStyle {
color: Some(rgba(0xff5571ff).into()),
..Default::default()

View file

@ -90,6 +90,14 @@ pub fn rose_pine() -> UserThemeFamily {
..Default::default()
},
),
(
"function".into(),
UserHighlightStyle {
color: Some(rgba(0xeb6f92ff).into()),
font_style: Some(UserFontStyle::Italic),
..Default::default()
},
),
(
"keyword".into(),
UserHighlightStyle {
@ -97,6 +105,20 @@ pub fn rose_pine() -> UserThemeFamily {
..Default::default()
},
),
(
"label".into(),
UserHighlightStyle {
color: Some(rgba(0xebbcbaff).into()),
..Default::default()
},
),
(
"number".into(),
UserHighlightStyle {
color: Some(rgba(0xebbcbaff).into()),
..Default::default()
},
),
(
"punctuation".into(),
UserHighlightStyle {
@ -111,6 +133,27 @@ pub fn rose_pine() -> UserThemeFamily {
..Default::default()
},
),
(
"tag".into(),
UserHighlightStyle {
color: Some(rgba(0x9ccfd8ff).into()),
..Default::default()
},
),
(
"text.literal".into(),
UserHighlightStyle {
color: Some(rgba(0xf5c177ff).into()),
..Default::default()
},
),
(
"title".into(),
UserHighlightStyle {
color: Some(rgba(0xebbcbaff).into()),
..Default::default()
},
),
(
"type".into(),
UserHighlightStyle {
@ -120,6 +163,14 @@ pub fn rose_pine() -> UserThemeFamily {
),
(
"variable".into(),
UserHighlightStyle {
color: Some(rgba(0xebbcbaff).into()),
font_style: Some(UserFontStyle::Italic),
..Default::default()
},
),
(
"variable.special".into(),
UserHighlightStyle {
color: Some(rgba(0xe0def4ff).into()),
..Default::default()
@ -130,7 +181,7 @@ pub fn rose_pine() -> UserThemeFamily {
},
},
UserTheme {
name: "Rose Moon".into(),
name: "Rose Pine Moon".into(),
appearance: Appearance::Dark,
styles: UserThemeStylesRefinement {
colors: ThemeColorsRefinement {
@ -205,6 +256,14 @@ pub fn rose_pine() -> UserThemeFamily {
..Default::default()
},
),
(
"function".into(),
UserHighlightStyle {
color: Some(rgba(0xeb6f92ff).into()),
font_style: Some(UserFontStyle::Italic),
..Default::default()
},
),
(
"keyword".into(),
UserHighlightStyle {
@ -212,6 +271,20 @@ pub fn rose_pine() -> UserThemeFamily {
..Default::default()
},
),
(
"label".into(),
UserHighlightStyle {
color: Some(rgba(0xea9a97ff).into()),
..Default::default()
},
),
(
"number".into(),
UserHighlightStyle {
color: Some(rgba(0xea9a97ff).into()),
..Default::default()
},
),
(
"punctuation".into(),
UserHighlightStyle {
@ -226,6 +299,27 @@ pub fn rose_pine() -> UserThemeFamily {
..Default::default()
},
),
(
"tag".into(),
UserHighlightStyle {
color: Some(rgba(0x9ccfd8ff).into()),
..Default::default()
},
),
(
"text.literal".into(),
UserHighlightStyle {
color: Some(rgba(0xf5c177ff).into()),
..Default::default()
},
),
(
"title".into(),
UserHighlightStyle {
color: Some(rgba(0xea9a97ff).into()),
..Default::default()
},
),
(
"type".into(),
UserHighlightStyle {
@ -235,6 +329,14 @@ pub fn rose_pine() -> UserThemeFamily {
),
(
"variable".into(),
UserHighlightStyle {
color: Some(rgba(0xea9a97ff).into()),
font_style: Some(UserFontStyle::Italic),
..Default::default()
},
),
(
"variable.special".into(),
UserHighlightStyle {
color: Some(rgba(0xe0def4ff).into()),
..Default::default()
@ -320,6 +422,14 @@ pub fn rose_pine() -> UserThemeFamily {
..Default::default()
},
),
(
"function".into(),
UserHighlightStyle {
color: Some(rgba(0xb3627aff).into()),
font_style: Some(UserFontStyle::Italic),
..Default::default()
},
),
(
"keyword".into(),
UserHighlightStyle {
@ -327,6 +437,20 @@ pub fn rose_pine() -> UserThemeFamily {
..Default::default()
},
),
(
"label".into(),
UserHighlightStyle {
color: Some(rgba(0xd7827dff).into()),
..Default::default()
},
),
(
"number".into(),
UserHighlightStyle {
color: Some(rgba(0xd7827dff).into()),
..Default::default()
},
),
(
"punctuation".into(),
UserHighlightStyle {
@ -341,6 +465,27 @@ pub fn rose_pine() -> UserThemeFamily {
..Default::default()
},
),
(
"tag".into(),
UserHighlightStyle {
color: Some(rgba(0x55949fff).into()),
..Default::default()
},
),
(
"text.literal".into(),
UserHighlightStyle {
color: Some(rgba(0xea9d34ff).into()),
..Default::default()
},
),
(
"title".into(),
UserHighlightStyle {
color: Some(rgba(0xd7827dff).into()),
..Default::default()
},
),
(
"type".into(),
UserHighlightStyle {
@ -350,6 +495,14 @@ pub fn rose_pine() -> UserThemeFamily {
),
(
"variable".into(),
UserHighlightStyle {
color: Some(rgba(0xd7827dff).into()),
font_style: Some(UserFontStyle::Italic),
..Default::default()
},
),
(
"variable.special".into(),
UserHighlightStyle {
color: Some(rgba(0x575279ff).into()),
..Default::default()

View file

@ -92,6 +92,27 @@ pub fn solarized() -> UserThemeFamily {
..Default::default()
},
),
(
"embedded".into(),
UserHighlightStyle {
color: Some(rgba(0x93a1a1ff).into()),
..Default::default()
},
),
(
"emphasis".into(),
UserHighlightStyle {
color: Some(rgba(0xd33582ff).into()),
..Default::default()
},
),
(
"emphasis.strong".into(),
UserHighlightStyle {
color: Some(rgba(0xd33582ff).into()),
..Default::default()
},
),
(
"function".into(),
UserHighlightStyle {
@ -106,6 +127,13 @@ pub fn solarized() -> UserThemeFamily {
..Default::default()
},
),
(
"number".into(),
UserHighlightStyle {
color: Some(rgba(0xd33582ff).into()),
..Default::default()
},
),
(
"property".into(),
UserHighlightStyle {
@ -113,6 +141,13 @@ pub fn solarized() -> UserThemeFamily {
..Default::default()
},
),
(
"punctuation".into(),
UserHighlightStyle {
color: Some(rgba(0x657b83ff).into()),
..Default::default()
},
),
(
"string".into(),
UserHighlightStyle {
@ -120,6 +155,27 @@ pub fn solarized() -> UserThemeFamily {
..Default::default()
},
),
(
"string.escape".into(),
UserHighlightStyle {
color: Some(rgba(0xcb4b15ff).into()),
..Default::default()
},
),
(
"tag".into(),
UserHighlightStyle {
color: Some(rgba(0x258ad2ff).into()),
..Default::default()
},
),
(
"text.literal".into(),
UserHighlightStyle {
color: Some(rgba(0x29a198ff).into()),
..Default::default()
},
),
(
"type".into(),
UserHighlightStyle {
@ -134,6 +190,13 @@ pub fn solarized() -> UserThemeFamily {
..Default::default()
},
),
(
"variable.special".into(),
UserHighlightStyle {
color: Some(rgba(0x258ad2ff).into()),
..Default::default()
},
),
],
}),
},
@ -213,6 +276,27 @@ pub fn solarized() -> UserThemeFamily {
..Default::default()
},
),
(
"embedded".into(),
UserHighlightStyle {
color: Some(rgba(0x657b83ff).into()),
..Default::default()
},
),
(
"emphasis".into(),
UserHighlightStyle {
color: Some(rgba(0xd33582ff).into()),
..Default::default()
},
),
(
"emphasis.strong".into(),
UserHighlightStyle {
color: Some(rgba(0xd33582ff).into()),
..Default::default()
},
),
(
"function".into(),
UserHighlightStyle {
@ -227,6 +311,20 @@ pub fn solarized() -> UserThemeFamily {
..Default::default()
},
),
(
"number".into(),
UserHighlightStyle {
color: Some(rgba(0xd33582ff).into()),
..Default::default()
},
),
(
"punctuation.bracket".into(),
UserHighlightStyle {
color: Some(rgba(0x93a1a1ff).into()),
..Default::default()
},
),
(
"string".into(),
UserHighlightStyle {
@ -234,6 +332,27 @@ pub fn solarized() -> UserThemeFamily {
..Default::default()
},
),
(
"string.escape".into(),
UserHighlightStyle {
color: Some(rgba(0xcb4b15ff).into()),
..Default::default()
},
),
(
"tag".into(),
UserHighlightStyle {
color: Some(rgba(0x258ad2ff).into()),
..Default::default()
},
),
(
"text.literal".into(),
UserHighlightStyle {
color: Some(rgba(0x29a198ff).into()),
..Default::default()
},
),
(
"type".into(),
UserHighlightStyle {
@ -248,6 +367,13 @@ pub fn solarized() -> UserThemeFamily {
..Default::default()
},
),
(
"variable.special".into(),
UserHighlightStyle {
color: Some(rgba(0x258ad2ff).into()),
..Default::default()
},
),
],
}),
},

View file

@ -88,6 +88,69 @@ pub fn synthwave_84() -> UserThemeFamily {
..Default::default()
},
),
(
"label".into(),
UserHighlightStyle {
color: Some(rgba(0xfe444fff).into()),
..Default::default()
},
),
(
"link_text".into(),
UserHighlightStyle {
color: Some(rgba(0xd50c50ff).into()),
..Default::default()
},
),
(
"link_uri".into(),
UserHighlightStyle {
color: Some(rgba(0xd50c50ff).into()),
..Default::default()
},
),
(
"number".into(),
UserHighlightStyle {
color: Some(rgba(0xf97d71ff).into()),
..Default::default()
},
),
(
"operator".into(),
UserHighlightStyle {
color: Some(rgba(0xfede5cff).into()),
..Default::default()
},
),
(
"property".into(),
UserHighlightStyle {
color: Some(rgba(0xff7ddaff).into()),
..Default::default()
},
),
(
"punctuation".into(),
UserHighlightStyle {
color: Some(rgba(0x35f9f5ff).into()),
..Default::default()
},
),
(
"tag".into(),
UserHighlightStyle {
color: Some(rgba(0x71f1b7ff).into()),
..Default::default()
},
),
(
"title".into(),
UserHighlightStyle {
color: Some(rgba(0xfe444fff).into()),
..Default::default()
},
),
(
"type".into(),
UserHighlightStyle {
@ -97,6 +160,13 @@ pub fn synthwave_84() -> UserThemeFamily {
),
(
"variable".into(),
UserHighlightStyle {
color: Some(rgba(0xff7ddaff).into()),
..Default::default()
},
),
(
"variable.special".into(),
UserHighlightStyle {
color: Some(rgba(0xfe444fff).into()),
font_weight: Some(UserFontWeight(700.0)),

View file

@ -11,7 +11,7 @@ use crate::util::Traverse;
use crate::vscode::VsCodeTheme;
use crate::ThemeMetadata;
use super::{VsCodeTokenScope, ZedSyntaxToken};
use super::ZedSyntaxToken;
pub(crate) fn try_parse_color(color: &str) -> Result<Hsla> {
Ok(Rgba::try_from(color)?.into())
@ -268,19 +268,15 @@ impl VsCodeThemeConverter {
let mut highlight_styles = IndexMap::new();
for syntax_token in ZedSyntaxToken::iter() {
let vscode_scope = syntax_token.to_vscode();
let multimatch_scopes = syntax_token.to_vscode();
let token_color = self
.theme
.token_colors
.iter()
.find(|token_color| match token_color.scope {
Some(VsCodeTokenScope::One(ref scope)) => scope == vscode_scope,
Some(VsCodeTokenScope::Many(ref scopes)) => {
scopes.contains(&vscode_scope.to_string())
}
None => false,
});
let token_color = self.theme.token_colors.iter().find(|token_color| {
token_color
.scope
.as_ref()
.map(|scope| scope.multimatch(&multimatch_scopes))
.unwrap_or(false)
});
let Some(token_color) = token_color else {
continue;

View file

@ -8,6 +8,17 @@ pub enum VsCodeTokenScope {
Many(Vec<String>),
}
impl VsCodeTokenScope {
pub fn multimatch(&self, matches: &[&'static str]) -> bool {
match self {
VsCodeTokenScope::One(scope) => matches.iter().any(|&s| s == scope),
VsCodeTokenScope::Many(scopes) => {
matches.iter().any(|s| scopes.contains(&s.to_string()))
}
}
}
}
#[derive(Debug, Deserialize)]
pub struct VsCodeTokenColor {
pub scope: Option<VsCodeTokenScope>,
@ -118,49 +129,90 @@ impl std::fmt::Display for ZedSyntaxToken {
}
impl ZedSyntaxToken {
pub fn to_vscode(&self) -> &'static str {
pub fn to_vscode(&self) -> Vec<&'static str> {
use ZedSyntaxToken::*;
match self {
SyntaxAttribute => "entity.other.attribute-name",
SyntaxBoolean => "constant.language",
SyntaxComment => "comment",
SyntaxCommentDoc => "comment.block.documentation",
SyntaxConstant => "constant.character",
SyntaxConstructor => "entity.name.function.definition.special.constructor",
SyntaxEmbedded => "embedded",
SyntaxEmphasis => "emphasis",
SyntaxEmphasisStrong => "emphasis.strong",
SyntaxEnum => "support.type.enum",
SyntaxFunction => "entity.name.function",
SyntaxHint => "hint",
SyntaxKeyword => "keyword",
SyntaxLabel => "label",
SyntaxLinkText => "link_text",
SyntaxLinkUri => "link_uri",
SyntaxNumber => "number",
SyntaxOperator => "operator",
SyntaxPredictive => "predictive",
SyntaxPreproc => "preproc",
SyntaxPrimary => "primary",
SyntaxProperty => "variable.object.property", //"variable.other.field"
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 => "entity.name.type",
SyntaxVariable => "variable.language",
SyntaxVariableSpecial => "variable.special",
SyntaxVariant => "variant",
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![
"markup.bold",
"markup.italic markup.bold",
"markup.bold markup.italic",
],
SyntaxEnum => vec!["support.type.enum"],
SyntaxFunction => vec![
"entity.name.function",
"variable.function",
"support.function",
],
SyntaxKeyword => vec!["keyword"],
SyntaxLabel => 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![
"variable.member",
"support.type.property-name",
"variable.object.property",
"variable.other.field",
],
SyntaxPunctuation => vec![
"punctuation",
"punctuation.section",
"punctuation.accessor",
"punctuation.separator",
"punctuation.terminator",
"punctuation.definition.tag",
],
SyntaxPunctuationBracket => vec![
"punctuation.bracket",
"punctuation.definition.tag.begin",
"punctuation.definition.tag.end",
],
SyntaxPunctuationDelimiter => 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![
"variable",
"variable.language",
"variable.member",
"variable.parameter.function-call",
],
SyntaxVariableSpecial => vec![
"variable.special",
"variable.member",
"variable.annotation",
"variable.language",
],
SyntaxVariant => vec!["variant"],
_ => vec![],
}
}
}