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;
}
この記事は
現在のアクセス:8289