如何修复VS代码/文本语言配置中的注释



我已经为VS Code编写了一个基本的语法突出显示器,但是在注释(基本上是Java注释(方面遇到了问题。荧光笔标记了/* 和 */,但不标记注释的其余部分......

根据文档,我了解到定义注释规则的正确方法是:

"comments" : {
"patterns": [
{
"begin": "//",
"end": "$",
"name": "comment.line.double-slash.astra"
},
{
"begin": "/\*",
"end" : "\*/",
"name": "comment.block.astra"
}
]
},

谁能解释一下我做错了什么...

完整的语法突出显示代码如下:

{
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
"name": "ASTRA",
"patterns": [
{
"include": "#keywords"
},
{
"include": "#strings"
},
{
"include": "#comments"
}
],
"repository": {
"keywords": {
"patterns": [{
"name": "keyword.control.astra",
"match": "\b(if|while|foreach|forall|else|done|message|at_index|list_count)\b"
},
{
"name" : "keyword.control.astra",
"match" : "\+|-|\*|/|%|!|@|\$"
},
{
"name" : "keyword.other.astra",
"match" : "\b(package|agent|extends|import|module|rule|goal|types|formula|inference|body|initial|try|recover|send)\b"
},
{
"name" : "entity.name.type.astra",
"match" : "\b(string|list|int|long|float|double|boolean|funct)\b"
},
{
"name" : "constant.language.astra",
"match" : "\b(true|false)\b"
}
]},
"strings": {
"name": "string.quoted.double.astra",
"begin": """,
"end": """,
"patterns": [
{
"name": "constant.character.escape.astra",
"begin": "\",
"end" : "$"
}
]
},
"comments" : {
"patterns": [
{
"begin": "//",
"end": "$",
"name": "comment.line.double-slash.astra"
},
{
"begin": "/\*",
"end" : "\*/",
"name": "comment.block.astra"
}
]
},
"supports": {
"patterns": [
{
"match": "(?:^|\s)[@]\w+\b",
"name": "constant.numeric.astra"
},
{
"match": "\b[a-z]\w*\b",
"name": "support.type.astra"
}
]
}
},
"scopeName": "source.astra"
}

除法运算符/在注释之前匹配。如果您在关键字之前包含注释,您的语法应该有效。

最新更新