しおしお

IntelliJ IDEAのことなんかを書いてます

Groovyのsoutvテンプレートを良い感じにしてみた

Groovyのコードでsoutvを使用すると、下のコードみたいに変数の中身を標準出力に出力するprintln文を簡単に生成できます。

println "str = $str"

ただ、この生成されるコードにはちょっとだけ不便な点があります。
上のコードのように単純に変数名を出力するだけなら問題はないんだけど、例えばstrの先頭四文字を出力したい場合だと、生成されるコードが下のような感じになるので、ちゃんと動いてくれません。

println "str[0..3] = $str[0..3]"

この問題は、Live templatesのsoutvのテンプレートに中括弧を足してあげるだけで解決します。
テンプレートの変更は、settingsの画面を開いて下の画像の矢印の順に選択していくとできます。
f:id:sioiri:20120509224526p:plain

変更する内容は、変更前と後を比べてもらうとわかるように$EXPR$を波括弧で囲ってあげるのみです。

変更前
println "$EXPR_COPY$ = $DOLLAR$$EXPR$"
変更後
println "$EXPR_COPY$ = $DOLLAR${$EXPR$}"

この変更で、生成されるコードに波括弧が入るので良い感じになります。

println "str[0..3] = ${str[0..3]}"