4

現在、IntelliJ プラグインを作成しています。このプラグインは、HTML、Java (場合によっては JavaScript)、およびrythm (テンプレート エンジン) を処理する必要があります。JetBrains のプラグイン ドキュメントに従いました。

私のレクサー (JFlex を使用) はすべてに一致し、一致したコードを HTML として認識します。

リズム コード部分については、レクサーに正規表現を使用しています。

また、パッケージやクラスの補完など、Java 言語の機能をいくつか実装したいと考えています。

また、私のアプローチが正しいかどうかもわかりません。私の字句解析器はいくつかの点でHTML を分割するため:

@、(、)、{、}

完全なコードに一致し、それを HTML として認識するための正規表現は次のとおりです。

テキスト = [^@*(){}]+

この正規表現により、コードが @、(、)、{、} で始まるポイントで HTML コードが分割されるという問題が発生します。これらの文字を除外しないと、プラグインは他の正規表現とブレース マッチャーを認識しません。すべてに一致するため、もう機能しません。

複数の言語をサポートするためのより良い方法はありますか? また、プラグインに Java 言語機能を実装するにはどうすればよいですか?

4

0 に答える 0