我目前正在编写IntelliJ插件。 这个插件应该处理HTML,Java(有时也是JavaScript)和rythm(模板引擎)我遵循JetBrains的插件文档。
我的词法分析器(我使用JFlex)匹配所有内容并将匹配的代码识别为HTML。
对于rythm代码部分,我在lexer中有正则表达式。
我还想实现一些Java语言功能,比如完成包和类。
另外,我不知道我的方法是否正确。 Because my lexer splits HTML在某些方面:
@,(,),{,}
匹配完整代码并将其识别为HTML的正则表达式是:
TEXT = [^ @ *(){}] +
此正则表达式导致我的HTML代码在代码以@,(,),{和}开头的位置被拆分的问题 如果我不知道除了这些字符,我的插件就不会重新调整我的其他正则表达式,而我的括号匹配器将不再起作用,因为它会匹配所有内容。
有没有更好的方法来支持多种语言?如何在我的插件中实现Java语言功能?