uehaj's blog

Grな日々 - GroovyとかGrailsとかElmとかRustとかHaskellとかReactとかFregeとかJavaとか -

STS 2.5.1試した

昨日、「STSにおいてGroovyデバッグサポートが向上した」という記事を書きました。これは、SpringSource Team Blog]の記事を読んだだけで書いたのですが、今日は実際に試してみました。

デバッグ時の「式の評価」機能については、勝手な思い込みとして、「実行中にコードをインクリメンタルに書いていく」ようなスタイルができるようになるかも!と期待したのですが、この点については、まだ実用的とは言えぬ・・と思いました。理由は以下の通り。

  • Boolean型を含む式の評価に対応してないようだ。「true」をCommand+Shift+Dすると、「JDI thread evaluations' has encountered a problem. Exception processing async thread queue」というエラーダイアログが表示されます。Eclipseのログを見ると

!ENTRY com.springsource.sts.groovy.debug.core 4 0 2010-12-09 07:28:57.381
!MESSAGE Internal error logged from Groovy Core Debug:
!STACK 0
java.lang.ClassCastException: java.lang.Boolean cannot be cast to java.lang.Integer
at com.springsource.sts.groovy.debug.core.evaluation.JDITargetDelegate.convertToJDIPrimitive(JDITargetDelegate.java:372)

この結果、assertを含む式はDisplayできない。つまりテストのオンザフライ開発はできない。

  • スクリプトのバインディング引数の参照や代入に対応してないようだ(defをつける必要あり)

2.5.2のnightyなるものも試しましたが同様でした。
単純な式やリスト、およびそれらから成るメソッドコールの結果を見るのになら使えますし便利です。
お目あてであった「編集しながら実行する」スタイルですが、上の範囲なら、できなくはないですが、制限や使い勝手からして、(個人的な感想ですが)実用的とは言えないなあと思いました。

将来に期待です。