Re: IntelliJ IDEAでJavaのstatic import文に関する効率化設定をLive Templateで実現する
http://d.hatena.ne.jp/absj31/20130218/1361134157
コメントをTwitterで済まそうと思ったら、うまく伝えられなかったのでトラックバックします。static importの展開がちょっと冗長とのことですが、ちょっと設定しとくと元のエントリより1ステップほど減らせます(たった1ステップだけかよ、とか言わないw
まずは、Live Templateの設定。ほとんど変わらないのだけど、Optionsの"Use static import if possible"をチェックしとく。これで、static importにできそうな部分はstatic importに置き換えてくれる。ただ、残念な事に"Assert.assertThat()
"しか変換対象になってくれない。:-(
すぐさま試さないで、もうちょっと仕込みをしとく。ひとつは、Settings->Code Style->Java->Importsの設定。ここの"Names count to use static import with '*'"に入れた数字が、static importで "*" を使いはじめるimport文の数。以下のスクリーンショットだと、3つ同じクラスのメソッド使ったら "*" にまとめる(static importはつねに "*" で良ければ、1 とか 0 を設定する。
個別のパッケージだけ "*" を許可したいのであれば、その下の"Packages to Use Import with '*'" にパッケージを指定する。static importで有効にしたい場合は、"Static"にチェックを入れる。さっきのスクリーンショットはつまり、こうゆうこと。
- 普通のimport文はいかなる場合も "*" を許さない("Class count to use import with '*'"を99*1)
- static importは同じクラスを3つ使ったら "*" にまとめる("Names count to use static import with '*'"を3)
- "
org.junit.Assert
"は常にstatic importで "*" にまとめる("Packages to Use Import with '*'"に "org.junit.Assert.*
"を指定)
このあたりのことは,この辺も参考になるかも。→ 10日目 IDEの設定(Project Settings) - marsのメモ
これで終わりじゃ無くて、最後にもうひとつ(ふたつ?)。Settings->Editor->Auto Importで、以下の2つにチェックを入れる。
- "Optimize imports on the fly"
- "Add unambiguous imports on the fly"
これで、必要/不要なimport文を即座に追加・削除してくれる。この設定、ある意味で諸刃の剣で、常に必要とするimport文のみにするので、ちょっとコメントアウトしてみただけでも、それに該当するimport文が即座に消えて無くなる。あと、人さまのコードをちょっと弄っても、import文の最適化をしちゃうので、良かったり悪かったり。:-P
先と同じく,この辺も参考になるかも。→ 11日目 IDEの設定(IDE Settings:前編) - marsのメモ
ここまで来れば準備完了。実際やってみるとこうなる。まずは、Live template展開。
テキトウに穴埋めして展開完了。
assertThat()
はstatic import化してるけど、CoreMatchers
がまだ。これはどうやら、そのままらしい。仕方ないので、CoreMatchers
にカーソル寄せて、Alt+Enter(MacだったらOpt+Enter)で "Add on demand static import for 'org.hamcrest.CoreMatchers'"を選択。(´・ω・`)
あとはごらんの通り。
ps.
あとLive templateをコード補完の候補に紛れ込ませる設定はこちらを参照。→ IntelliJの隠しオプション一覧 - marsのメモ
ps2.
id:sioiri さんのLive Templateにするとさらにもう1ステップ減らせますね。
org.junit.Assert.assertThat($actual$, $matcher$); $actual$ ... Expression:complete() $matcher$ ... Expression:classNameComplete(), Default value: "is"
だがしかし、正直テンプレートの自由度についてはEclipseのほうが上なのだ。
→ 全Eclipse Java プログラマーに捧げる Eclispe 徹底活用術完全版〜Eclipseに空気を読ませて楽する術〜 - Yamashiro0217の日記
というか伝統的にIntelliJがイケてない(下記リンクのおまけ参照。:-P
→ 31日間ReSharper一周 ... それIDEAでもできるよ(その7) - marsのメモ
*1:もっと多くても良い
IntelliJとかReSharper, RubyMine, WebStormなどJetBrains製品のリンクバナー
ここの右上にあるバナーは勝手バナーじゃなくて、JetBrains公式のものなんです。何年前だか忘れてしまったのだけど、JetBrainsにロゴ作成ページがあって、そこで作って貼ってたのね。今だとリンク辿りづらいのだけど、以下から辿れる(どーでもいい昔話ばかり知っててすんません。
→ Major News, Materials & PR Contacts - Press Room | JetBrains
さらに、他のIDEのもあるみたい(自分が作った時はIntelliJとReSharperだけだった気が...。
へーってんで調べてみました。
- Features - IntelliJ IDEA
- ReSharper: The Visual Studio Extension for .NET Developers by JetBrains
- WebStorm: The Smart JavaScript IDE by JetBrains
- http://www.jetbrains.com/phpstorm/documentation/linklogos.jsp
- http://www.jetbrains.com/ruby/features/linklogos.jsp
- PyCharmは見つからず
- http://www.jetbrains.com/objc/features/linklogos.jsp
- dotCover: A Code Coverage Tool for .NET by JetBrains
- dotTrace Profiler: .NET Profiling Experience Like No Other by JetBrains
なんでか PyCharm と TeamCity を見つけることができなかったけど、だいたい揃ってるのね。そんなわけで、ごひいきのIDEのリンクバナーを貼ってみてはいかがでしょう。
#本来、こうゆうのはサムライズムが呼びかけるべきなんでは...。|ω・`)チラッ
ps.
個人的にはデブサミで配ったステッカーの電子データが欲しいのだけど、それは公開されてないようでした。(´・ω・`)