Scala
IntelliJ
IDE

【12/21まで75%OFF!】ScalaエンジニアにIntelliJ IDEAを是非とも試して欲しいワケ

More than 5 years have passed since last update.

@OE_uiaです。

ScalaでAndroidアプリ開発しているほか、2013年3月のScalaConference実行委員で会計やってます。

こないだ(といっても結構前)の#rpscalaではこんなLTしました。

Play or Scala AdventCalendar用に何を書くか相当迷ったのですが、色々タイムリーな話題が多かったのでIntelliJ IDEAについて書こうかと。


IntelliJ IDEAとは

*チェコのソフトメーカーJetBrainsが提供しているIDE。基本的に有料(Commercial License $499, Individual License $199ほか)だか、無料のCommunityEditionもある。

*特徴として、強力なリファクタリング機能や、デフォルトでも多くのプログラミング言語やGitなどのVCSに対応している多機能さ、コードの自動補完の軽量さなどが挙げられる。

*最新版は12.0

*12/12(水)に、日本で初めてJetBrainsユーザーグループの会合(主催:@yusukeさん)が開かれた。


IntelliJ IDEAのIndividual Licenceが75%OFFセール中($199 => $50)

*12/21(金)の日本時間午後8時まで、Individual Licenceが75%OFFのセールが開催されている。なぜ12/21かといえば、マヤ文明の人類滅亡説から。しかし、現在JetBrainsのサイトの方が滅亡し落ちている。

*業務で使う場合でも、個人的なお金で買う場合はIndividual LicenceでOKらしい。

*参考:Link


無料版と有料版の違い

*無料版ではサポートする言語やフレームワークが限られている。現在Java, Android,Groovy, Scalaなどはサポートされているほか、 IDE内にsbtコンソールがあるので、sbtユーザーに優しい。(現状、sbtコンソールにタブ補完が効いていない?のが難点。履歴は上下カーソルで参照できるので、~compileなど頻繁に叩くコマンド向き。)

*参考:feature

*Play frameworkは無料版ではサポートされていない。その他言語(Javacript, Ruby, Python, PHP, SQL,CoffeeScriptなどなど)も無料版ではサポート外)。


リファクタリング機能

*Command + Option + Shift + Tでリファクタリング機能の呼び出し

*
変数/メソッドのrenameでは指定場所以外にも、参照している全ての場所を同時に変更してくれるだけでなく、文字列リテラル(""内など)の中まで見つけて変更するかどうかまで聞いてくれる。はじめてIDEに萌えた

**その他、メソッドや変数の抽出、SafeDelete(後で戻せるDelete)などにも対応。


その他便利なショートカットキー(Mac)

全Keymap=>JetBrains::GettingStarted


リファレンスを探す系

*Command + Shift + A => アクション検索 。settingだけでではなく、usageなども検索してくれる。困った時はコレ。

*
Command + B => 宣言されているソースまでジャンプ。 (Command + clickでもOK)


コードを生成する系

*Command + o => Overrideできる変数、メソッドの一覧表示。選択するとメソッドのシグネチャごとペーストしてくれる。本当に便利。12.0からオプションで戻り値の型を省略させないことが出来るようになったので、さらに便利に。

**Command + i => Implementできる変数、メソッドの一覧表示。選択するとメソッドのシグネチャごとペーストしてくれる。
本当に便利*。12.0からオプションで戻り値の型を省略させないことが出来るようになったので、さらに便利。

**Option + Enter => QuickFix。未定義のクラスの上で実行すると、同名のクラスの一覧を表示、選択したものをimportなどに使う。名前が衝突しているときのrenameなどにも。


整形系

**Command + Option + l => コードの整形。とりあえず頻繁に叩いています。

**Command + Shift + カーソルキー => 変数 / メソッドブロックごとの移動。順番を入れ替えたいときに。


移動系

*Command + N => クラスの名前を入力するダイアログの表示。ランチャーアプリっぽい動作。入力すると、そのクラスへ飛べる。

*
Option + カーソルキー => カーソルの単語単位での移動。Vimmer向け?


その他よく使うコマンド

**Ctrl + N => 新規ファイル作成(class, trait, object, html ...)

など。

そのほか、こんな使い方がイケてるぜ!というのがあれば教えてください。僕もまだ使い始めて1年経っていませんので。

しかし、無料版のサポート言語一覧を何度見ても、ScalaでAndroidアプリ作れというメッセージを感じざるを得ません(`・ω・´)キリッ