我想[ ]
在 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"]
,但无论我指定什么选择器,我似乎都无法[ ]
在标题中匹配。