Groovy 2.2 で強化された groovysh
先日 beta 2 がでた Groovy 2.2 で groovysh (REPL) が強化されているので触れておきます。最近型検査とかかっちりした部分の強化が目立っている Groovy ですが、本来高速に開発できるところが売りな言語なんでこれは良い傾向です。たまたまという噂もありますが。
コード補完がまともになった
Thibault Kruse という方が groovysh の使えなさに憤慨して一気に直してくれました。Groovy はじめたばかりらしいんですが。ありがたい。
パッケージ/クラス名を補完しようとしてこんな悲しいエラーをはいていたのも
groovy:000> new groovy.json.ERROR org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: groovysh_evaluate: 1: unexpected token: @ line 1, column 16. new groovy.json ^ 1 error
ちゃんと補完候補をだしてくれます
groovy:000> import groovy.json. DateFormatThreadLocal JsonBuilder JsonDelegate JsonException JsonLexer JsonOutput JsonSlurper JsonToken JsonTokenType StreamingJsonBuilder StreamingJsonDelegate StringEscapeUtils *
メソッド補完もこのとおり
groovy:000> Math.m max( metaClass( min(
APIドキュメントを参照できるようになった
コマンドに "doc" が追加されています。これは僕が実装しました。 Clojure の REPL にある doc / javadoc コマンドが便利だったもんで。
groovy:000> help doc usage: doc [<class>] Opens a browser window displaying the doc for the argument.
Groovy の場合 Groovy API、Java 拡張 (GDK) API、Java API の3種類のドキュメントを参照する必要がるのですが、それら全てに対応しています。例えば拡張が入っている java.util.List の場合
groovy:000> doc java.util.List
と打つと GDK と Java 両方のドキュメントのURLを出力しつつ
groovy:000> doc java.util.List http://docs.oracle.com/javase/1.7.0/docs/api/java/util/List.html http://groovy.codehaus.org/groovy-jdk/java/util/List.html
ブラウザで それらを開きます。
ブラウザは GROOVYSH_BROWSER 環境変数 、BROWSER 環境変数、デフォルトブラウザの順で決まります。例えば Mac OS X だと
export GROOVYSH_BROWSER="open -a firefox"
としておけば、デフォルトブラウザの代わりに Firefox が使われます。
前述した補完の修正をこのコマンドにも取り入れてあるので補完もちゃんとききます。良いタイミングでした。