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

第42回 コードスタイルの設定

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

Blank Lines

空白行に関する設定です。

Keep Maximum Blank Lines
リフォーマットしても残しておく空白行の最大値を指定します。ここで指定した行数より多い(無駄に見える)空白行は "Reformat Code..." を実行すると,それぞれ指定した最大値まで削除されます。
  • In declarations : クラスやインターフェイスの宣言内の空白行(主にメソッドの外側)
  • In Code : メソッド内側にある空白行。
  • Before '}' : 閉じ中括弧 } の前の空白行
Minimum Blank Lines
「Keep Maximum Blank Lines」とは逆にリフォーマットすると最低限挿入する空白行の行数を指定します。
  • Before package statementpackage文の前の空白行。
  • After package statementpackage文の後の空白行。
  • Before importsimport文の前の空白行。
  • After importsimport文の後の空白行。
  • Around class : クラス全体の前後の空白行。
  • After class header : クラスヘッダclass宣言)の後の空白行。
  • After anonymous class header : 匿名クラスのクラスヘッダの後の空白行。
  • Around field in interface : インターフェイス・フィールドの前後の空白行。
  • Around field : クラス・フィールドの前後の空白行。
  • Around method in interface : インターフェイス内のメソッド宣言前後の空白行。
  • Around method : メソッド全体の前後の空白行。
  • Before method body : メソッド本体の前(メソッド宣言の { の後)の空白行。

JavaDoc

Javadocコメントに関する設定です。IntelliJ IDEA10とか,そのあたりの頃は日本語の扱いがテキトウでJavadocコメントの整形なんてロクな事にならないので,指定しない方がマシな項目でした。最近では日本語の扱いも多少マシになったので,ある程度アテにしてもよくなりました。最新のIDEA13をベースにしているAndroid Studioも当然大丈夫です。

  • Enable JavaDoc formatting : Javadocの整形を行うかどうかを指定します。Android StudioのJavadocの整形が気に入らなときはここをOFFにしましょう。
Alignment
Javadocタグの桁揃えを指定します。
  • Align parameter descriptions@param タグの説明文の桁揃えを行います。
  • Align thrown exception descriptions@throws タグの説明文の桁揃えを行います。
Blank lines
Javadocコメント中の空白行の扱いを指定します。空白行の指定といっても指定した箇所に空白行を1行挿入するだけで,挿入する行数を変えることはできません。
  • After description : Javadocコメント本文とJavadocタグの間に空白行を挿入します。
  • After parameter descriptions@paramタグと他のJavadocタグの間に空白行を挿入します。
  • After return tag@returnタグと他のタグの間に空白行を挿入します。
Invalid tags
不正なJavadocタグをそのままにしておくかを決めます。それぞれの項目でOFFにすると,該当箇所は"Reformat Code..."を実行すると不正なタグは消えて無くなります。
  • Keep invalid tags : 不正なJavadocタグをそのままにします。
  • Keep empty @param tags : 説明文が空の@paramタグをそのままにします。
  • Keep empty @return tags : 説明文が空の@returnタグをそのままにします。
  • Keep empty @throws tags : 説明文が空の@throwsタグをそのままにします。
Other
Javadocコメントに関するその他の設定です。
  • Enable leading asterisks : Javadocコメントの継続行の行頭にアスタリスク*を付けるかを指定します。
  • Use @throws rather than @exception@exceptionタグではなく,@throwsタグを使います。
  • Wrap at right margin : 右マージンを超えるコメントを折り返します。日本語の文区切りが実に大ざっぱです。
  • Generate "<p/>" on empty lines : 空白行を <p/> に置き換えます。
  • Keep empty lines : 空白行をそのまま維持します。
  • Do not wrap one line comments : 1行コメント/** こうゆうやつ */を折り返ししません。
  • Preserve line feeds : 任意の改行位置をそのままにします。OFFにすると『Wrap at right margin』などに巻き込まれて改行位置が調整されます。
  • Parameter descriptions on new line@param@throwsの説明文を改行してから記述します。

XML

冒頭で「Java中心にコードスタイル設定について紹介する」と言いましたが,特別にXMLの一部について紹介します。Android Studioの紹介記事なので「Androidタブ」について取り上げます。

図8 ⁠Preferences / Code Style / XML」設定画面の「Androidタブ」

図8 「Preferences / Code Style / XML」設定画面の「Androidタブ」

「Androidタブ」では,XMLファイルのうちAndroid開発に用いるXMLファイルに特化した設定を行います。

  • Use custom formatting settings for Android XML files : Android用のXMLファイルにこのコードスタイルを適用するかを指定します。

以下,それぞれ次のXMLファイルについて個別に設定を行います。

  • AndroidManifest.xml
  • Layout Files
  • Value Resource Files and Selectors
  • Other XML resource files

設定できる項目は以下のとおりです。設定画面にプレビューがないのでわかりづらいです。

Wrap attributes
XML属性(attribute)の折り返しを指定します。選択肢は表3と同じです。
Insert line break before first attribute
タグの最初の属性を改行してから記述するかを指定します。

リスト6 ⁠Insert line break before first attribute』がOFF

<uses-sdk android:minSdkVersion="7"
    android:targetSdkVersion="16" />

リスト7 ⁠Insert line break before first attribute』がON

<uses-sdk
    android:minSdkVersion="7"
    android:targetSdkVersion="16" />
Insert line break after last attribute
タグの最後の属性を後に改行するかを指定します。ONにすると,ちょっとヘンな感じです。

リスト8 ⁠Insert line break after last attribute』がOFF

<uses-sdk android:minSdkVersion="7"
    android:targetSdkVersion="16"
    />
Group tags with the same name
「同じ名前のタグをグループ化する」と読み取れるのですが,実際にONにしても何の変化も見られません。見ている対象が悪かったのか,それともバグなのでしょうか……。
Insert blank line before tag
タグの直前に空白行を1行挿入します。
Insert line breaks around style declaration
「スタイル<style>定義の前後に空白行を挿入する」と読み取れるのですが,実際にためしてもそうなりませんでした。これもバグですかね……。

まとめ

この題材を取り上げたことを後悔するほど,コードスタイルにはたくさんの設定項目があります。ちょっとかじっただけでは「Eclipseで出来たこれができない」と言いたくなりますが,挫けずに目を皿のように凝らして設定項目をなめ回すと大体はAndroid Studioでもできます。該当するルールを探し当てたときの感激たるや,そもそも何をしたかったのかを忘れるくらいです。

当然,もともとサポートしていない整形ルールはいくら探しても見つかりません。結局のところ,EclipseもAndroid Studioも出自が異なるIDEなので仕方が無いのです。そこは割り切って慣れるしかありません。

著者プロフィール

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

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

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

Twitter: @masanobuimai