場所をクリックする際に問題が発生しました。私がしていることは、関数を使用してメソッドから AST を作成することです。
getMethodASTEclipse(method, model=projectModel);
メソッドは単なるインスタンスです
methods(projectModel);
そのツリーにアクセスして、たとえばifステートメントを取得したい場合は、呼び出すことができます
case i: \if(_, _, _):println(i@src);
ソースが印刷され、それをクリックすると、Eclipse は適切な if ステートメントを使用して適切なクラスに移動します。フォームは次のようになります。
|project://MyProject/src/MyClass.java|(2836,143,<104,1>,<109,2>)
しかし、メソッドを使用してファイルから AST を取得すると、次のようになります。
createAstFromFile(class, true);
メソッドやファイルの代わりにクラスを提供することもできます。アクセスして同じ if ステートメントを取得して印刷することもできますが、フォームが異なり、クリックできません。なぜだめですか ?
その形式は次のようになります。
|java+class:///MyClass/src/MyClass|(17938,1105,<544,4>,<570,5>)
また、各位置が印刷された後にオフセットが大幅に増加していることにも気付きました。
正しい場所をクリックできるようにするにはどうすればよいですか? オフセットと場所の形で何かをしなければならないと思います。メソッドを使用しようとしました:
resolveJava(loc l);
Registry クラスから取得しましたが、それも機能せず、|loc 定義の宣言を調べようとしましたが、それもありませんでした。
前もって感謝します。