Javaの開発プラットフォームとしてとても使いやすいEclipseですが、ソースコードなどを解析するEclipseプラグインなども、比較的容易に開発することができます。
Eclipseにはいろいろなコード解析方法が存在し、ちょっとややこしいです。とりあえず書きにメモっとく事にします。
Eclipse/プラグイン開発のTIPS集/org.eclipse.jdt.core.ICompilationUnit に書いたとおり、ICompilationUnit? はIParentというインタフェースを実装していて、これのメソッド
IJavaElement[] getChildren() throws JavaModelException;
を用いることで、ソースコードを上から順次解析することができます。
ソースコードを解析するパーサASTParserに書いたとおり、 org.eclipse.jdt.core.ICompilationUnit?からorg.eclipse.jdt.core.dom.CompilationUnit? を生成し、そのインスタンスに対してVisitorパタンを適用してソースコードを走査することができます。
アクションやハンドラ経由でパッケージエクスプローラからICompilationUnit?を取得したいケースがありますが、以下のようにやればOKですね。
public Object execute(ExecutionEvent event) throws ExecutionException { ISelection selection = HandlerUtil.getActiveMenuSelectionChecked(event); if (selection instanceof IStructuredSelection) { IStructuredSelection sselection = (IStructuredSelection) selection; Object firstElement = sselection.getFirstElement(); if (firstElement instanceof ICompilationUnit) { ICompilationUnit unit = (ICompilationUnit) firstElement; // 色々処理。 } } } return null; }
この記事は
現在のアクセス:7667