2.0になって良くなったと言われるGroovy-Eclipse plugin 2.0.0.xxをしばらく使ってました。前バージョンを使ってたわけではありませんので、以下で書いてることは2.0の機能なのか1.0から引き続きなのかは不明。
うれしい点
- クラスを使用したとき、対応するimport文の生成ができる。最初Ctrl-1(Quick Fix)でできないのでできないのかと思ったら、クラス名直後でCtrl-SPCの補完*1をしてパッケージから選ぶと、それに対応したimport文が自動生成されます(Javaエディタでもそうなのね知らんかった)。import文の面倒を見るのはEmacsとかで編集する祭の苦痛の1つだったからこれはうれしい。[ソース]-[インポートの編成]も可能。
- テストコードをGroovyでかける。(やりたければ)対象クラスのprivate変数やフィールドにもアクセスできる。Groovyだからね。
- 定義にジャンプとかもできる。
- リファクタリングはたいした物は無いが、リネームがあるのはいい!Javaから呼び出しているならGroovy側のリネームと連動するらしいし。良く考えると、個人的にはリネーム以外の他のリファクタリングをJavaで多用するでもないし、これで十分かも。eachをforに変換(あるいはその逆)とかもあればいいかもね。
- メソッド名補完は候補の絞りが甘いような・・。でも、currnetTimeMillisとか「うろ覚えのメソッド名で最初の方がわかっている場合」には有効だ。
つらい点。
- QuickFix(Ctrl-1)が出ない(厳密には、出るときが全く無いわけじゃないけど、ほとんどでないし出ても有効なものであるケースを見たこと無い)。これは痛いよ。
- groovy1.7の「もしかしてエラーメッセージ」にしたがって修正候補を出して欲しいものだよ。
場合によってはつらいかもな点
留意点など
他に、はまった点をいくつか。
- EclipseとMavenとの併用の際に、maven eclipse:eclipseで.classpathファイルを生成したとして、そのなかにGMavenで使用するGroovyのMavenモジュールが含まれているとEclipseで設定したGroovyプラグインと衝突します。当たり前なんだけど。具体的には以下ね。
gmaven関係のは除去しておきましょう。
まとめ
感想として言うと、Javaに最適化されたEclipse環境内では、相対的にGroovy編集機能がちと非力であることは否めない。Emacsで編集してるときにはできなくても気にならなかった機能が、Eclipse中でできないと不満が出てくるのはなぜだろう・・・。人というものの弱さか。
ただ、使い慣れたエディタが別にあるわけではないなら、使って損は無いとは思います。業務だったら使わざるを得ないケースも多々あるでしょうしね。
id:nobeansさんは、「ことEclipse内で編集するに際しては、テストコードだろうと何だろうとJavaで書いた方が効率がいい」とおっしゃってましたが、まあそういう見方もあろうかと思います(私もテストコードの半分ぐらいは結局Javaで書いた)。
次回はSpockとかも使ってみよっと。