我想[ ]在 VS Code 的降价文件中选择语法高亮。
我可以[ ]使用以下目标regex:(?<=\s)\]|\[(?=\s)。但是[ ],当它是标题的一部分时不会匹配。
作为一个最小的例子,在package.json我有以下内容:
"contributes": {
"grammars": [
{
"scopeName": "markdown.todo",
"path": "./syntaxes/todo.markdown.json",
"injectTo": ["text.html.markdown"]
}
]
}
然后,在todo.markdown.json我有:
{
"scopeName": "markdown.todo",
"injectionSelector": "L:text.html.markdown",
"patterns": [
{ "include": "#item-todo" }
],
"repository": {
"item-todo": {
"name": "item.todo",
"match": "(?<=\\s)\\]|\\[(?=\\s)"
}
}
}
最后,在 VS Code 中,settings.json我使用以下方法应用颜色:
"editor.tokenColorCustomizations": {
"textMateRules": [
{
"scope": "item.todo",
"settings": {
"foreground": "#FF0000"
}
}
]
}
我可以在下面看到它[ ]被选中,但不是在标题内时。
当我检查令牌和范围时,我看到了几个textmate scopes. 我不确定这是否相关,但似乎 VS Code 正在根据markup.heading范围突出显示降价标题。但是,数组markup.heading中不存在。textmate scopes
我尝试更改为"injectionSelector": "L:heading.1.markdown"and/or "injectTo": ["heading.1.markdown"],但无论我指定什么选择器,我似乎都无法[ ]在标题中匹配。

