theme_importer: Handle comma-separated token scopes (#27740)
This PR allows the `theme-importer` utility to handle comma-separated
token scopes.
Normally, a token in a VS Code theme is defined as either a string or a
string array:
```json
{
"scope": "token.debug-token",
"settings": {
"foreground": "#d55fde"
}
},
{
"name": "String interpolation",
"scope": [
"punctuation.definition.template-expression.begin",
"punctuation.definition.template-expression.end",
"punctuation.section.embedded"
],
"settings": {
"foreground": "#d55fde"
}
},
```
However, [some
themes](ac85540d64/src/variants/TokenColors.ts (L1771-L1777)
)
seem to use comma-separated values in a single scope string which VS
Code seems to accept as well:
```json
{
"name": "Comments",
"scope": "comment, punctuation.definition.comment",
"settings": {
"foreground": "#7f848e"
}
},
```
This PR handles these definitions by splitting scopes by commas before
trying to match them with the scopes that match Zed syntax tokens.
Release Notes:
- N/A
This commit is contained in:
parent
990ca48744
commit
4f4bbf264f
1 changed files with 1 additions and 1 deletions
|
@ -150,7 +150,7 @@ impl ZedSyntaxToken {
|
|||
VsCodeTokenScope::Many(scopes) => scopes.iter().collect(),
|
||||
}
|
||||
.iter()
|
||||
.map(|scope| scope.as_str())
|
||||
.flat_map(|scope| scope.split(',').map(|s| s.trim()))
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
let scopes_to_match = self.to_vscode();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue