Nate Butler
2347576fb5
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
2023-11-09 17:40:10 -05:00
..
2023-09-15 12:50:49 -04:00
2023-11-02 10:08:47 -04:00
2023-11-02 10:55:02 -07:00
2023-11-02 10:08:47 -04:00
2023-11-02 10:55:02 -07:00
2023-10-02 15:24:09 +02:00
2023-10-27 10:55:15 +02:00
2023-11-08 19:29:00 -08:00
2023-10-25 15:39:02 +02:00
2023-11-08 19:29:00 -08:00
2023-10-05 14:57:45 -07:00
2023-10-22 12:22:47 +02:00
2023-11-08 19:29:00 -08:00
2023-11-06 11:18:56 -08:00
2023-11-08 21:23:31 -08:00
2023-11-03 18:01:06 -07:00
2023-10-17 09:41:34 -06:00
2023-10-26 12:29:22 +02:00
2023-11-08 19:29:00 -08:00
2023-09-15 12:50:49 -04:00
2023-10-25 07:10:21 -07:00
2023-11-02 10:55:02 -07:00
2023-11-06 19:29:31 +02:00
2023-09-20 16:40:29 -07:00
2023-11-09 14:18:17 -08:00
2023-11-09 14:03:14 -08:00
2023-11-02 10:55:02 -07:00
2023-10-02 19:35:31 -04:00
2023-10-10 12:26:48 +03:00
2023-10-12 16:17:41 +03:00
2023-11-03 12:15:23 -04:00
2023-10-09 23:14:32 +03:00
2023-11-02 10:55:02 -07:00
2023-09-19 16:13:47 -04:00
2023-11-02 19:18:01 -06:00
2023-11-09 10:52:17 -07:00
2023-11-09 13:23:31 -08:00
2023-11-09 13:23:31 -08:00
2023-11-08 11:23:35 -08:00
2023-11-04 13:54:37 +02:00
2023-11-02 10:55:02 -07:00
2023-11-03 12:55:06 +02:00
2023-11-09 10:58:33 -08:00
2023-11-09 11:09:49 -08:00
2023-10-17 21:47:21 +03:00
2023-10-31 14:04:03 -07:00
2023-11-08 09:41:57 -08:00
2023-10-19 23:05:06 -06:00
2023-10-26 12:29:22 +02:00
2023-11-02 10:55:02 -07:00
2023-11-08 14:45:54 -07:00
2023-10-25 19:31:47 +02:00
2023-11-08 19:29:00 -08:00
2023-10-27 10:55:15 +02:00
2023-10-22 17:10:21 +02:00
2023-11-08 21:23:31 -08:00
2023-09-20 20:44:26 -06:00
2023-11-08 19:29:00 -08:00
2023-11-09 14:49:37 +02:00
2023-11-09 17:18:41 +02:00
2023-11-09 14:49:37 +02:00
2023-11-09 17:18:41 +02:00
2023-10-25 07:10:21 -07:00
2023-09-21 18:09:02 -07:00
2023-09-26 23:52:11 +02:00
2023-11-09 13:23:31 -08:00
2023-10-23 12:50:57 +02:00
2023-11-02 19:30:33 -06:00
2023-11-03 12:15:23 -04:00
2023-10-25 17:37:14 +02:00
2023-11-03 18:01:06 -07:00
2023-11-03 11:02:50 +02:00
2023-11-03 12:38:09 +02:00
2023-11-08 09:57:08 -08:00
2023-11-01 13:53:45 -06:00
2023-11-08 17:45:23 +01:00
2023-10-01 23:38:30 -04:00
2023-11-08 19:29:00 -08:00
2023-10-12 12:11:27 -04:00
2023-11-03 14:53:08 +01:00
2023-11-03 12:15:23 -04:00
2023-10-25 15:39:02 +02:00
2023-11-09 17:40:10 -05:00
2023-11-09 16:41:58 -05:00
2023-11-09 00:38:06 -05:00
2023-11-03 11:02:50 +02:00
2023-10-25 18:34:14 +02:00
2023-11-01 13:53:45 -06:00
2023-10-23 11:06:58 +02:00
2023-10-25 15:53:34 +02:00
2023-11-08 20:10:38 -08:00
2023-11-09 10:58:33 -08:00
2023-11-09 11:15:08 -08:00
2023-10-28 11:37:25 -04:00
2023-10-30 14:40:31 -04:00