Android Studio最速入門~効率的にコーディングするための使い方

第13回 エディタの話[その5]─インテンション

この記事を読むのに必要な時間:およそ 5 分

はじめに

Eclipseの万能ナイフ,クイックフィックス(Ctrl+1)に相当する機能が "Show Intention Actions" です。Windows,Linuxは「Alt+Enter」⁠Macは「option+Enter」にキーが割り当てられています。扱いが特別なのかメニューバーのどこにもありません(⁠Preferences / Keymap」でも「Other」カテゴリに属してます)⁠

「Android Studio,これだけ覚えとけば何とかなる3大機能」第11回で説明した2つのコード補完(BasicとSmart)と,今回紹介する"Show Intention Actions"です。

インテンション&インスペクション

"Show Intention Actions" と言うように,この機能はコードに対する「気づき」を与えます。反応できる場所にはよくある「電球アイコン」が表示されるので,どこで使って良いか悩むことはそうないと思います。

図1 電球アイコン

図1 電球アイコン

Android Studioの(隠れた?)目玉機能のひとつにコード検査(インスペクション)機能があります。これは平たく言うと,FindBugsCheckstyleを足して2で割って4096倍したような機能なのですが,これも"Show Intention Actions"の修正候補に出てきます。

インテンションとインスペクションは一見似たような機能なのですが,意味合いは異なり,その設定箇所も違う場所にあります。

インテンション
  • コードに対する気づきを指摘する
  • 今のままでも問題ないが,より良くできる提案をする
  • 提案に対するアクションがあり,実行するとコードを修正する
  • 「Preferences / Intentions」で設定
インスペクション
  • コードの問題点を指摘する
  • 一部の指摘には,インテンションのような解決へのアクションがあるが,基本的に利用者が考えて問題を解決する
  • 「Preferences / Inspections」で設定

傾向としては,候補リストの上の方にはインスペクションが並び,続いてインテンションが並びます。

図2 "Show Intention Actions"の候補リストの例

図2 

区切り線と項目の左に並ぶアイコンである程度区別ができますが,インスペクションでも電球アイコンではなく,ペンアイコンになる場合もあるので,結局のところは馴れるしかありません。なお,インスペクションの説明はかなりの分量を要するので次回に繰り越します。

インテンション

インテンションは「こういう書き方もできるけどどう?」といった提案を行う機能です。その提案に乗るのであれば,その項目を選択して決定します(Enterキー)⁠提案に乗るつもりもないし,いちいちうるさいなと思う場合は,リストのサブメニュー(右カーソル(→)キーで表示)にある「Disabled ~」で無効化できます。

図3 インテンションの無効化

図3 インテンションの無効化

インテンションの設定は「Preferences / Intentions」にあり,無効化した項目は,ここから有効化できます。

「Preferences / Intentions」のリストを見るとわかりますが,非常に多くのインテンションが用意されています。インテンションそれぞれには必ず実施前(Before)と実施後(After)の効果が定義されています。インテンションの解説(Description)は英語ですが,この実施前・後のサンプル表示で,だいたいどんなことをするのかイメージできると思います。

図4 ⁠Preferences / Intentions」設定画面

図4 「Preferences / Intentions」設定画面

 個々のインテンションに個別の設定はありません。

「Preferences / Intentions」「IDE Settings」に属するため,インテンションの設定は,プロジェクトごとに設定するのでは無くAndroid Studio固有の設定となります。以前に説明したカラースキーマやキーマップ,次回に説明するインスペクションなどは,任意の組み合わせをいくつかのまとまりで管理できるのに対して,インテンションは1種類の組み合わせしか持つ事ができません(先ほどの設定画面をみると分かりますが「スキーマ」「プロファイル」を定義する場所がないです)⁠

ちなみに,独自のインテンションを作る機能はありません。それをするにはAndroid Studioのプラグインとして作成しなければなりません。

著者プロフィール

今井勝信(いまいまさのぶ)

システムエンジニア。日本ユニシス株式会社所属。仙台在住。

Android開発はまったくやったことがないけれどIntelliJ IDEAが大好き。

Twitter: @masanobuimai

コメント

コメントの記入