我想在减价中添加一些额外的语法突出显示。
我定义了一个注入语法:
{
"scopeName": "markdown.mytodos",
"injectionSelector": "L:text.html.markdown",
"patterns": [
{ "include": "#todo" }
],
"repository": {
"todo": {
"match": "^[ \t]*o .*",
"_comment": "Line start, tabs or spaces, then literal `o` and a space",
"name": "entity.name.tag.css"
}
}
}结果:
我希望看到这两个示例的规则,但它只适用于第一个示例:
foo
o bar <- correct scope
foo
o bar <- wrong scope (meta.paragraph.markdown)因此,我的范围似乎没有被接受,尽管regex匹配(隔离测试)。
我查了一下,Markdown用这个meta.paragraph.markdown规则定义了begin:
(^|\\G)[ ]{0,3}(?=\\S)这个while规则是:
(^|\\G)((?=\\s*[-=]{3,}\\s*$)|[ ]{4,}(?=\\S))我目前的理论是,这个未封闭的while阻碍了我的规则。
问题:
happening?
我试过:
使用begin/end规则代替change)
meta.paragraph.markdown的子集,而不是text.html.markdown:"injectionSelector": "L:meta.paragraph.markdown" (不按预期添加嵌套作用域)发布于 2020-01-22 02:30:13
我发现改变我的匹配模式解决了这个问题。
在嵌套情况下不起作用:
^[ \t]*o .*对于我测试过的所有病例,效果都很好:
(^|\G)[ \t]*o .*医生说:
\G在上一次匹配的末尾或第一次匹配的字符串开始处断言位置
在试图由vscode/textmate匹配的多个范围选择器的上下文中,这意味着什么?我没有把握。如果你知道的话请插话!
https://stackoverflow.com/questions/59851224
复制相似问题