我正在使用 VScode 并创建自己的语言扩展来突出显示语法,我需要使用正则表达式来查找注释。
基本规则是后面的所有内容!
都是注释,但是有一个特殊情况。当!
在eval()
命令内部时,表示NOT。
例如,我的一些代码如下所示:
if condition=(eval(!DB_EXIST)) ! this is a comment
(eval( !DB_UPDATED && !DB_EXIST)) !---"!" inside eval() means NOT
!this is another comment
<some commands> ! this is also a comment
第!DB_EXIST
1 行和第 2 行不应被解释为注释,!
后面会跟一个非空格。
空格在评论中并不重要。
"comments": {
"patterns" [{
"match":"regex1",
"name":"comment"
}]
},
"operator": {
"patterns" [{
"match":"regex2",
"name":"keyword.operator.NOT"
}]
},
我应该使用哪种正则表达式 1 和 2 来显示不同颜色的评论而不是?
我不擅长这个扩展写作,所以如果有更好的方法来完成这项工作,我将不胜感激。谢谢!
更新
@Gama11 帮助了我,但我并没有在我的代码示例中完全涵盖所有情况。“!”之后的任何非空间 也应该是注释,只要“!” 不在 eval() 内。