SSTエンジニアブログ

SSTのエンジニアによるWebセキュリティの技術を中心としたエンジニアブログです。

IntelliJ IDEAを使ってみた

はじめに

こんにちは、Flab勤務の宋です。

皆さんは開発する時にどんなエディターやIDEを使用していますか。

今まで自分はVS codeでプログラムを書いていました。 最近Scalaを勉強する機会があり、IntelliJ IDEAを使い始めた次第です。 というわけで今回はIntelliJ IDEAのお話です。 とは言っても個人的に便利と思った機能を軽く紹介する程度で、どちらかというとIntelliJ IDEAを使ったことがない方向けの記事になります。

👇普段から使っているVS code code.visualstudio.com

IntelliJ IDEAとは

IntelliJ IDEAはJetBrains社が開発したIDEです。無償で利用できるCommunity Editionと有償のUltimate Editionがあります。 JetBrains社といえばAndroidの公式言語として追加されたKotlinの開発元でもあります。

Community Editionは無償で利用できますが、対応言語に制限があり、またWeb系やDB系の機能が使用できません。 以下では主にCommunity Editionでも使える機能を紹介します。

👇IntelliJ IDEA www.jetbrains.com

便利な機能

選択範囲の拡大&縮小

最初に紹介するのは選択範囲の拡大&縮小機能です。 この機能を使えば範囲選択をする時に、マウスでドラッグしたり、Shiftを押しながらカーソルを移動させたりすることなく簡単に選択することができます。

最初にカーソルがesの間にある状態から始まり、1回拡大すると test が選択されます。 拡大を連続して行うと test"test"("test")と選択され、最終的には println("test") が選択されます。 縮小はこの逆の動きをします。

f:id:sst-son:20190214144845g:plain:w200

  • 選択範囲の拡大
    • Windows: Ctrl + W
    • Mac: Option + ↑
  • 選択範囲の縮小
    • Windows: Ctrl + Shift + W
    • Mac: Option + ↓

※最近のアップデートでVS codeにもこの機能が追加されたみたいです。 code.visualstudio.com

後置補完

後置補完を使うことで括弧の中に戻って入力することなく、式から文を構成することができます。 下の例では2回後置補完を使っています。

1回目は.varです。 これは入力を変数に代入する後置補完です。 デフォルトでは変数はvalとして宣言されます、varにしたい場合はAlt+Vで切り替えることができます。(Scalaではvalは再代入不可、varは再代入可能)

2回目は.ifです。 これは入力をif式の条件式にする後置補完です。

最後にコードフォーマット機能でコードを整えています。x<11 が自動整形されてx < 11になっています。

f:id:sst-son:20190214151841g:plain

  • コードフォーマット
    • Windows: Ctrl + Alt + L
    • Mac: Option + Command + L

ちなみにScalaで利用できる後置補完は以下のようになっています。 f:id:sst-son:20190214145822j:plain:w300

インテンション・アクション

インテンション・アクションはIntelliJ IDEAがコードを解析し、様々な方法で最適化をサポートしてくれる機能です。 インテンション・アクションが使える箇所には💡 が現れます。

下の例では2種類のインテンション・アクションを使っています。 1つ目はコードで使用されていない変数を削除するアクションです。これはxに対して使用しています。 2つ目は型補完のアクションです。これはstrseqに対して使用しています。(Scalaは静的言語で型を持ちますが、型推論があり、明示的に型を示さなくてコンパイルエラーにはなりません。)

strには文字列IntelliJが入っているので、型推論によりString型が補完されます。seqSeq型のネストになっていますが、これも問題なく補完してくれます。

今回はScalaの変数宣言で使用していますが、ほかの様々な箇所で様々なインテンション・アクションを使用することができます。 是非いろいろ試してみてください。

f:id:sst-son:20190214160738g:plain

  • インテンション・アクション
    • Windows: Alt + Enter
    • Mac: Option + Enter

定義へジャンプ& 使用箇所の検索

定義へジャンプはその名の通り、変数、関数、クラスなどの定義へジャンプします。 今回の例ではMainオブジェクトはAppトレイトをミックスインしています。Appにカーソルを当ててCtrl + Bを押すとAppトレイトが定義されているApp.scalaの該当部分へジャンプします。 f:id:sst-son:20190225122000g:plain

逆に定義部分でAlt + F7を押すと使用箇所の検索結果が画面下に現れます。ここで選択してEnterを押すとその利用箇所へジャンプします。 f:id:sst-son:20190225122008g:plain

  • 定義へジャンプ
    • Windows: Ctrl + B
    • Mac: Command + B
  • 使用箇所の検索
    • Windows: Alt + F7
    • Mac: Option + F7

おわりに

IntelliJ IDEAには今回紹介した機能以外にも様々な機能があります。 デバッグやVCSとの連携、さらにUltimate EditionではWeb開発やDBとの連携をサポートしてくれる機能もあります。

というわけでIntelliJ IDEAの便利機能について軽く紹介してみました。如何だったでしょうか。 もうすでにバリバリIntelliJ IDEAを使っている方にとってはすでに知っている機能ばかりで物足りなかったと思います。 逆にまだIntelliJ IDEAを使ったことがない方がこの記事を読んで頂き、IntelliJ IDEAを使ってみようかなと思ってもらえれば幸いです。