visual-studio-code - 如何将 TextMate 语法注入 VS Code 中的 Markdown 标题?
问题描述
我想[ ]
在 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"]
,但无论我指定什么选择器,我似乎都无法[ ]
在标题中匹配。
解决方案
推荐阅读
- google-chrome - 使用 Range http 标头时 Chrome 不发送 cookie
- winapi - 获取特定驱动器的驱动器序列号
- conv-neural-network - CNN 图像分类器的准确率非常低(0.0054)
- performance - 如何设计对日数万封邮件的支持,并与电商交易系统对接?
- spring-boot - Springboot actuator refresh 和 bus-refresh 总是返回 401 Unauthorized
- solr - 通过 pysolr 包使用 min_rf 功能
- java - RestTemplate 连接超时
- flutter - 我收到此错误 getter 'length' was called on null Receiver: null : 尝试调用:length I/flutter
- r - r 用过滤器找到一行然后替换单个单元格值
- c# - 如何将多个参数传递给.net core 3.1上的存储过程