Visual studio code Can';不要让范围检查员识别评论

Visual studio code Can';不要让范围检查员识别评论,visual-studio-code,vscode-extensions,tmlanguage,Visual Studio Code,Vscode Extensions,Tmlanguage,我一直在尝试为文档合成工具中使用的规则编写自己的语法突出显示扩展 我已经能够让它的大部分工作正常,但我只是不能得到范围检查员认可的意见 为了排除冲突,我从tmLanguage文件中删除了所有其他工作代码,剩下的代码如下 ote rules.tmLanguage.json { “scopeName”:“source.ote规则”, “模式”:[{ “包括”:“#表达式” }], “存储库”:{ “表达”:{ “模式”:[ { “包括”:“#注释” } ] }, “评论”:{ “模式”:[{ “包括

我一直在尝试为文档合成工具中使用的规则编写自己的语法突出显示扩展

我已经能够让它的大部分工作正常,但我只是不能得到范围检查员认可的意见

为了排除冲突,我从tmLanguage文件中删除了所有其他工作代码,剩下的代码如下

ote rules.tmLanguage.json

{
“scopeName”:“source.ote规则”,
“模式”:[{
“包括”:“#表达式”
}],
“存储库”:{
“表达”:{
“模式”:[
{
“包括”:“#注释”
}
]
},
“评论”:{
“模式”:[{
“包括”:“#注释块”
},
{
“包括”:“#注释行”
}
],
“评论行”:{
“匹配”:“\\/\\/.*?$”,
“名称”:“注释.行.双斜杠.注释规则”
},
“评论栏”:{
“开始”:“\\/\\*”,
“结束”:“\\*\\/”,
“开始捕捉”:{
“0”:{“名称”:“标点符号.定义.注释.注释规则”}
},
“结束捕获”:{
“0”:{“名称”:“标点符号.定义.注释.注释规则”}
}
}
}
}
}
我试图匹配的文件是一个纯文本文件(
*.txt
扩展名),注释要么是带有双正斜杠的行注释,要么是分别以
/*
*/
开头和结尾的块注释

测试文本文件.txt

//只是一些注释文本
//缩进注释
//
//除斜线外,将上面的行留空
/*
内联块注释
*/
当我用scope inspector查看上面的文本时,它重新计算出它来自source.ote-rules,但将标记类型显示为“other”


我检查了rubular.com上的正则表达式,它们似乎在处理我展示的示例,所以我遗漏了什么?

问题是
引用中包含的模式必须直接位于
“repository”
中,但您将它们嵌套在
“comments ote”
中。它根本找不到它们

此外,您可能希望为
“comments block”
提供一个作用域名称,以便将其突出显示为注释,例如
“name”:“comment.block.ote rules”

{
“scopeName”:“source.ote规则”,
“模式”:[
{
“包括”:“#表达式”
}
],
“存储库”:{
“表达”:{
“模式”:[
{
“包括”:“#注释”
}
]
},
“评论”:{
“模式”:[
{
“包括”:“#注释块”
},
{
“包括”:“#注释行”
}
]
},
“评论行”:{
“匹配”:“\\/\\/.*?$”,
“名称”:“注释.行.双斜杠.注释规则”
},
“评论栏”:{
“开始”:“\\/\\*”,
“结束”:“\\*\\/”,
“开始捕捉”:{
"0": {
“名称”:“标点符号.定义.注释.注释规则”
}
},
“结束捕获”:{
"0": {
“名称”:“标点符号.定义.注释.注释规则”
}
},
“名称”:“comment.block.ote规则”
}
}
}
注意:您不需要使用
“include”
,也可以直接在
“patterns”
中指定模式:

“注释”:{
“模式”:[
{
“匹配”:“\\/\\/.*?$”,
“名称”:“注释.行.双斜杠.注释规则”
},
{
“开始”:“\\/\\*”,
“结束”:“\\*\\/”,
“开始捕捉”:{
"0": {
“名称”:“标点符号.定义.注释.注释规则”
}
},
“结束捕获”:{
"0": {
“名称”:“标点符号.定义.注释.注释规则”
}
},
“名称”:“comment.block.ote规则”
}
]
}