Visual studio code 定义VSCode方案语法规则,该规则为;“永远赢”;
我想在markdown中添加一些额外的语法突出显示 我定义了注入语法:Visual studio code 定义VSCode方案语法规则,该规则为;“永远赢”;,visual-studio-code,vscode-extensions,textmate,tmlanguage,Visual Studio Code,Vscode Extensions,Textmate,Tmlanguage,我想在markdown中添加一些额外的语法突出显示 我定义了注入语法: { "scopeName": "markdown.mytodos", "injectionSelector": "L:text.html.markdown", "patterns": [ { "include": "#todo" } ], "repository": { "todo": { "match": "^[ \t]*o .*",
{
"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)
这是而规则:
(^|\\G)[ ]{0,3}(?=\\S)
(^|\\G)((?=\\s*[-=]{3,}\\s*$)|[ ]{4,}(?=\\S))
我目前的理论是,这个未关闭的,而阻塞了我的规则
问题:
打开的规则是否阻止任何其他匹配的发生
我如何告诉我的vscode/textmate语法,我希望它一直“赢”,即使是在不同的范围内
我试过:
使用开始/结束规则而不是匹配
(无更改)
将语言定义为meta.paragration.markdown
的子集,而不是text.html.markdown
:“injectionSelector”:“L:meta.paragration.markdown”
(未按预期添加嵌套范围)
我发现改变我的匹配模式可以解决这个问题
在嵌套的情况下不起作用:
^[ \t]*o .*
适用于我测试过的所有情况:
(^|\G)[ \t]*o .*
医生说:
\G在前一个匹配的末尾或第一个匹配的字符串的开头断言位置
在多个作用域选择器试图与vscode/textmate匹配的情况下,这意味着什么?我不确定。如果你知道,请插话 我发现改变我的匹配模式可以解决这个问题
在嵌套的情况下不起作用:
^[ \t]*o .*
适用于我测试过的所有情况:
(^|\G)[ \t]*o .*
医生说:
\G在前一个匹配的末尾或第一个匹配的字符串的开头断言位置
在多个作用域选择器试图与vscode/textmate匹配的情况下,这意味着什么?我不确定。如果你知道,请插话