我知道我可以在 tmLanguage 文件中使用 Ruby 的正则表达式,但在其他配置文件中似乎并非如此,例如扩展。以语言贡献firstLine
值为例。使用字符类(例如或)时出现错误。因此,我想知道那里实际上允许什么。你将如何匹配那里的空格?\s
\p{L}
更新:评论后我尝试了这个:
"firstLine": "^(lexer|parser)?\\s*grammar\\w+;"
这应该匹配第一行,例如lexer grammar G1;
or grammar G1;
。有没有办法测试那个 RE 是否有效,否则我没有验证?
更新 2:
使用正确的语法很重要,它会神奇地起作用:
"firstLine": "^(lexer|parser)?\\s*grammar\\s*\\w+\\s*;"