Netbeans Javaコードスタイル概説 その02

対象IDE:Netbeans 7.3.1

目次

  • その01
    • 序文
  • その02
    • タブとインデント
    • 位置揃え
    • 中括弧
  • その03
    • 折り返し
    • 空行
    • スペース
  • その04
    • コメント
    • インポート
    • コード生成

タブとインデント (Tabs And Indents)

indent

※ 「行折返し」までの項目は、各言語用エディタ間で設定を共有することが可能。

・タブをスペースに展開 (Expand Tabs to Spaces)

この設定はTABキー押下によるインデント指示、および自動生成されるコードのインデント等に影響する。ファイル読み込み時の水平タブはこの設定の影響を受けずに水平タブのまま読み込まれる。
このチェックボックスをオンにすると、TABキー押下時に何個かのスペース(U+0020)をテキストに挿入することでインデント字下げを実現しようとする。
オフにするとTABキー押下時に水平タブ(U+0009)をテキストに挿入してインデント字下げを実現しようとする。水平タブのみでインデントを実現できない場合はスペースも混ぜて補おうとする。
インデントが画面上何桁になるかは、インデントの各種設定やTABキーを押した箇所の前後の状況によって決まる。
デフォルトでは「オン」

・インデントのスペース数 (Number of Spaces per Indent)

インデント1単位あたりの字下げ幅をスペース数換算で指定する。
ハーフインデントという操作が出てきたりするので、おそらく偶数が望ましい。
デフォルトは4スペース。

・タブのサイズ (Tab Size)

水平タブ(U+0009)により実現されるタブストップの単位をスペース数換算で指定する。
デフォルトは8桁。

・右マージン (Right Margin)

テキストエディタの右側で指定桁数到達を示す赤い線の位置を指定する。後述の各種折り返し機能に影響する。
プロポーショナルフォントや全角和文が交じる行ではあまり正確に機能しない。
※ 余白を意味する「マージン」とは実はなんの関係もないかも?
デフォルトは80桁。

・行折り返し (Line wrap)

1行がウィンドウサイズに収まらない場合に、収まらない文字列をどう表示するか指定する。

  • オフ (Off)
    表示を切る。水平スクロールバーを使えば切れた箇所を確認することが可能。
  • 単語の後 (After words)
    単語の切れ目で折り返し、次の行として表示する。単語の並びによってはウィンドウ枠より若干手前で折り返すことになる。
  • 任意の場所 (Anywhere)
    文字の切れ目で次の行に折り返す。先行する行はウィンドウ幅を目一杯使うよう表示される。

デフォルトは「オフ」

・継続インデント・サイズ (Continuation Indentation Size)

1ステートメントの途中で改行した時の、分割される後続行のインデント量。
ステートメント行本来のインデント位置が起点となる。
デフォルトは8桁。

・ラベルのインデント (Label Indentation)

ラベル付きステートメント(Labeled Statement) 内部のインデント量。ラベル名に後続するステートメント部の開始位置に影響を及ぼす。
ラベル付きステートメント行本来のインデント位置が起点となる。
(※ 必ずしもラベル名先頭が基準では無い)
ラベル付きステートメント以降のステートメントにはインデント量は持ち越されない。
ラベル名とステートメント部が干渉しない限り、ラベル付きステートメントを1行に収めようとする。
デフォルトは0桁。

・ラベル絶対インデント (Absolute Label Indentation)

ラベル付きステートメントのラベル名開始位置を行頭に固定する。
ラベル名後続ステートメントのインデント量には影響しない。
この設定がオンの場合、ラベル付きステートメントのラベル名とステートメント部を強制的に別行に分離する方法は無い模様。
デフォルトは「オフ」。

・最上位クラスのメンバーをインデント (Indent Top Level Class Members)

クラスその他の各種型宣言に対し、その子要素宣言がインデントされる。
※ 最上位クラスでない各種型宣言の内部にもインデントは働くので、現時点でこの項目名は若干おかしい。
デフォルトは「オン」。

・switch文でcase文をインデント (Indent Case Statements in Switch)

switch文の先頭に対しcase句がインデントされるか否かを設定する。
デフォルトは「オン」。


位置揃え (Alignment)

pos

・改行 (New Lines)

  • else
  • finally
  • while
  • 修飾子の後 (After Modifiers)
  • catch

各種キーワードの前に「}」がある場合、改行を挿入してインデントを合わせる。

宣言中の各種修飾子並び (public, private, protected, static, abstract, final, native, synchronized, transient, volatile, strictfp, etc.) の後に改行を挿入し、後続部は継続行としてインデントされる。

while”はdo-while文の設定であり、ただのwhile文は無関係。

デフォルトでは全て「オフ」

・複数行の位置揃え (Multiline Alignment)

既に改行された継続行のインデント量を、各種文脈に従った物に揃える。
継続行でないものには影響しない。

  • メソッド・パラメータ (Method Parameters)
    メソッド定義一番目の仮引数の定義開始位置に合わせる。
  • メソッド呼び出しの引数 (Method Call Arguments)
    メソッド呼び出し一番目の引数の登場位置に合わせる。
  • 注釈の引数 (Annotation Arguments)
    アノテーションの一番目の引数の登場位置に合わせる。
  • implementsリスト (Implements List)
    implements節で一番目のinterface名登場位置に合わせる。
  • throwsリスト (Throws List)
    throws節で一番目の例外名登場位置に合わせる。
  • tryリソース (Try Resources)
    try節で一番目のリソース定義登場位置に合わせる。
  • 分離catchタイプ (Disjunctive Catch Types)
    一番目のcatch節引数登場位置に合わせる。
  • 配列初期化子 (Array Initializer)
    一番目の配列データ登場位置に合わせる。
  • 二項演算子 (Binary Operators)
    左辺の登場位置に合わせる。
  • 三項演算子 (Ternary Operators)
    条件部(?の前部)の登場位置に合わせる。
  • 代入 (Assignment)
    被代入変数の登場位置に合わせる。
  • for (For)
    for変数宣言の登場位置に合わせる。
  • 括弧付け (Parenthesized)
    最も内側の開き括弧直後に合わせる。

※ 「tryリソース」や「分離catch」はJDK7からの新しい言語仕様。

デフォルトでは全て「オフ」。


中括弧 (Braces)

brace

・中括弧の配置 (Braces Placement)

開き中括弧「{」の配置を設定する。

  • クラス宣言 (Class Declaration)
  • メソッド宣言 (Method Declaration)
  • その他 (Other)
    各種制御文や初期化子に伴う中括弧「{」など。

それぞれが以下の選択肢を持つ。

  • 同じ行 (Same Line)
    {」の前に改行を入れない。
  • 改行 (New Line)
    {」の前に改行を挿入し、先行行とインデントを合わせる。
  • 半分インデントされた改行 (New Line Half Indented)
    {」の前に改行を挿入し、基本インデント量の半分だけインデントする。
  • インデントされた改行 (New Line Indented)
    {」の前に改行を挿入し、インデントする。

デフォルトは全て「同じ行」。

・特殊な”else if”の処理 (Special “else if” Treatment)

Javaに「else if」というキーワードは存在せず、言語仕様の構文木を素直に解釈するのならば「else」の後に改行してネストを一つ下げてから「if」を書くべき。(という主張はおそらくかなりの少数派…)
設定をオンにすると、このような「else if」を1行にまとめてくれる。ただし、既にelse-if間に「{」が入っていると無効。
設定がオフの場合、「else」と「if」の間に強制的に「{」が挿入され、改行とインデントが行われる。

デフォルトは「オン」。

・中括弧の生成 (Braces Generation)

省略可能な箇所の中括弧「{}」に関する設定を行う。

  • if
  • for
  • while
  • do ... while

これらの項目はそれぞれ以下の選択肢を持つ。

  • 生成 (Generate)
    中括弧と改行を積極的に付けようとする。
  • そのまま残す (Leave Alone)
    既存ソースの清書処理に際して、中括弧を足そうとも削ろうともしない。
  • 削除 (Eliminate)
    単一ステートメントのみで構成されるブロックなど、中括弧を消せる場所は積極的に削ろうとする。
    中括弧前後で分離していた行はそのまま分離が保持される。

デフォルトは全て「生成」。

広告

タグ: ,