Junoで追加されたプラグイン

本連載では数回に分けてEclipse 4.2 Junoの新機能を紹介しているが、最終回となる今回はJunoで新たに追加されたプラグインとしてEclipseのコード補完機能を強化するEclipse Code RecommendersとDSL開発のためのワークベンチを提供するXtextを紹介する。

コード補完を強化するEclipse Code Recommenders

Eclipse Code Recommenders (以下Code Recommenders)は、Eclipseにより高度な入力補完機能を提供するためのプラグインだ。Junoで提供されているパッケージの中では「Eclipse IDE for Java Developers」にのみ標準でインストールされている。

Eclipseはメソッドの補完時にメソッド名の昇順に補完候補を表示するが、実際に利用頻度の高いメソッドはごく一部だ。Code Recommendersはこれらのメソッドの中から適切と思われるものを順位を付けて表示する。

図1 : Eclipse Code Recomendersによるコード補完

Code Recommendersは、Exdoc Viewというビューも提供している。このビューはJavaエディタで選択した要素に関するドキュメントを表示するもので、通常はJavadocを表示するが、Code Recoomendersによってメソッドの利用頻度、オーバーライドされているメソッドの頻度などが表示される。既存のコードを分析して得られた統計情報を参照できるため、使い慣れないAPIを利用する際に参考になるだろう。

図2 : Extdoc View

DSL開発のためのXtextと、Xtextによる新言語Xtend

Xtextは、EclipseでDSLを開発するためのツールセットを提供する。構文定義からパーサを生成できるだけでなく、Eclipse上で動作するエディタまで自動生成できるのが大きな特徴だ。このエディタは構文定義に応じた強調表示や構文チェック、入力補完機能などを備えた強力なもので、すでに本連載でも紹介したEclipse plugin for LESSe(fx)clipseなど、Xtextを使用したエディタを提供するプラグインも登場してきており、DSL開発だけでなく開発ツールを作成するためのツールとしても注目を集めている。

図3 : Xtextによる構文定義

また、Eclipse Foundationでは、XtendというXtextベースのプログラミング言語の開発も行われている (Xtendの詳細については本連載の第118回を参照していただきたい)。

JVMベースのプログラミング言語としてはScala、Kotlin、Ceylonなど関数型言語のエッセンスを導入したものが注目を集めているが、Xtendはこれらの言語と異なり、Javaを置き換えるのではなく、あくまでJava使用した開発をサポートするためのツールという位置付けであり、ソースを直接インタプリタで実行したり、コンパイラによってクラスファイルを生成するのではなく、Javaのソースコードが生成される。生成されたJavaコードは可読性にも配慮されているため、Javaコードを効率的に記述するためのDSLとしてXtendを使用することもできるだろう。他のJVMベースの言語と比べると導入しやすい点は大きなメリットだ。

図4 : Xtendエディタ

なお、XtextやXtendはJunoで提供されているパッケージのうち「Eclipse IDE for Automotive Software Developers」にのみ標準でインストールされている。試してみたい方はこのパッケージを利用するといいだろう。

まとめ

本連載でも述べたようにJunoではEclipse 4.x系への移行による変化は大きいものの、機能面ではそれほど大きな追加はなく、MavenサポートやGUIビルダなど様々なプラグインが提供されるようになった昨年のIndigoと比べると地味なリリースに見えるかもしれない。

しかしXtextはすでに様々なサードパーティ製のプラグインで利用されており、Xtendも実用性の高いJavaベースの新言語として注目を集め始めているなど、Eclipseは新たな広がりも見せ始めている。来年も6月にリリースされる予定のKeplerではどのような進化を見せてくれるだろうか?