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

対象IDE:Netbeans 7.3.1

目次

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

折り返し (Wrapping)

cr

改行の自動挿入に関する各種設定。

・設定項目

  • キーワードの拡張/実装 (Extends/Implements Keyword)
    extends および implements の前に挿入される改行。
    ※ “extends”, “implements” は無理に和訳しない方がよいかも。
    デフォルトは「なし」。
  • 一覧の拡張/実装 (Extends/Implements List)
    implements句の各interface名間コンマ「,」の直後に挿入される改行。
    「implementsリストを位置揃えする」設定になっている場合は、implementsの後に改行が挿入されることもある。
    ※ やはり “extends”, “implements” は訳さない方がよい。
    デフォルトは「なし」。
  • メソッド・パラメータ (Method Parameters)
    メソッド仮引数間コンマ「,」の直後に挿入される改行。
    デフォルトは「なし」。
  • メソッドの呼び出し引数 (Method Call Argumants)
    メソッド呼び出し引数間コンマ「,」の直後に挿入される改行。
    デフォルトは「なし」。
  • 注釈の引数 (Annotation Arguments)
    アノテーション引数間コンマ「,」の直後に挿入される改行。
    デフォルトは「なし」。
  • 連鎖されたメソッド呼び出し (Chained method Calls)
    ドット「.」を挟む連鎖したメソッド呼び出し間に挿入される改行。
    ドットの前後どちらに改行が入るのかは後述の詳細チェックボックスで設定する。
    連鎖フィールド参照は対象外。
    デフォルトは「なし」。
  • キーワードをスロー (Throws Keyword)
    メソッド定義部「throws」の前に挿入される改行。
    ※ throws は動詞として訳さない方がよいような。
    デフォルトは「なし」。
  • スロー・リスト (Throws List)
    throws節の各例外名間コンマ「,」後に挿入される改行。
    デフォルトは「なし」。
  • 配列初期化子 (Array Initializer)
    配列初期化子の「{」直後および各「,」の後に挿入される改行。
    デフォルトは「なし」。
  • tryリソース (Try Resources)
    try文の複数リソース定義間「;」の直後に挿入される改行。
    デフォルトは「なし」。
  • 分離catchタイプ (Disjunctive Catch Types)
    複数catch節間「|」の直後に挿入される改行。
    デフォルトは「なし」。
  • for (For)
    for()内2カ所の「;」の後に挿入される改行。
    デフォルトは「なし」。
  • for文 (For Statement)
    for文と制御対象ステートメントの間に挿入される改行。
    中括弧が自動生成される場合は無効となる。
    デフォルトは「常時」。
  • if文 (If Statement)
    if文と制御対象ステートメントの間に挿入される改行。
    中括弧が自動生成される場合は無効となる。
    デフォルトは「常時」。
  • while文 (While Statement)
    while文と制御対象ステートメントの間に挿入される改行。
    中括弧が自動生成される場合は無効となる。
    デフォルトは「常時」。
  • do … while文 (Do … While Statement)
    do文と制御対象ステートメントの間に挿入される改行。
    中括弧が自動生成される場合は無効となる。
    whileの前は常時改行が入る。
    デフォルトは「常時」。
  • 表明 (Assert)
    assert文のオプショナルな「:」の後に挿入される改行。
    デフォルトは「なし」。
  • enum定数 (Enum Constants)
    enum定数名の各定義間コンマ「,」直後に挿入される改行。
    デフォルトは「なし」。
  • 注釈 (Annotations)
    アノテーション指定と後続する各種宣言文の間に挿入される改行。
    複数連続する各種アノテーション間の改行も含まれる。
    デフォルトは「常時」。
  • 二項演算子 (Binary Operators)
    二項演算子を挟む二つの式間に挿入される改行。
    二項演算子の前後どちらに改行が入るのかは後述の詳細チェックボックスで設定する。
    デフォルトは「なし」。
  • 三項演算子 (Ternary Operators)
    三項演算子式に2カ所挿入される改行。三項演算子式に改行を二つ挿入して3行にわけようとする。
    二つある三項演算子記号「?」「:」の前後どちらに改行が入るのかは後述の詳細チェックボックスで設定する。
    デフォルトは「なし」。
  • 代入演算子 (Assignment Operators)
    代入演算子の直後に挿入される改行。「+=」のような複合代入演算子も対象。
    デフォルトは「なし」。

※ tryリソースと分離catchはJDK7からの新言語仕様。

・選択肢

上記の各項目は次の選択肢を持つ。

  • 常時 (Always)
    積極的に改行を挿入する。
  • 長い場合 (If Long)
    行が長くて右マージン指定内に収まらないと判断したときのみ改行を挿入する。
    あまり正確に桁数を計算しているわけではなさそう…。
  • なし (Never)
    改行を挿入しない。しかし、既に分割された行がまとめられることはない。

・細項目

さらに細かなチェックボックスを有する設定項目も若干ある。いずれのチェックボックスも、上記設定で折り返しが発生しない場合は無効。

  • 連鎖したメソッド呼び出し内のドットの後で折り返し(Wrap After Dot In Chained Method Call)
    オンにすると連鎖メソッド呼び出し間のドット「.」の後に、オフだと前に改行を挿入しようとする。
    デフォルトでオン。
  • 二項演算子の後で折り返し (Wrap After Binary Operators)
    オンにすると二項演算子の後に、オフだと前に改行を挿入する。
    デフォルトでオフ。
  • 三項演算子の後で折り返し (Wrap After Ternary Operators)
    オンにすると「?」および「:」の後に、オフだと前に改行を挿入する。
    デフォルトでオフ。

空行 (Blank Lines)

blank

ソース中の各セクション間に自動挿入される空行の数を設定する。

先行セクション後部の空行数と後続セクション前部の空行数を比較し、空行数の多い方の設定がセクション間の空行数に反映される。空行数の足し算は行われない。

※ クラスヘッダ後部などで若干の例外あり。

・設定項目

  • パッケージ化前 (Before Package)
    package文の前の空行数。
    デフォルトは0行。
  • パッケージ化後 (After Package)
    package文の後の空行数。
    デフォルトは1行。
  • インポート前 (Before Imports)
    import文セクションの前の空行数。
    デフォルトは1行。
  • インポート後 (After Imports)
    import文セクションの後の空行数。
    デフォルトは1行。
  • クラスの前 (Before Class)
    各種型定義部の前の空行数。
    デフォルトは1行。
  • クラスの後 (After Class)
    各種型定義部の後の空行数。
    ※ 想定される後続は、別クラス定義や囲みクラスの別メンバ定義など。
    デフォルトは0行。
  • クラス・ヘッダーの後 (After Class Header)
    クラス本体開始記号「{」の後の空行数。
    後続セクションの前部空行数は無視される。
    クラス本体が0行の場合は無視される。
    デフォルトは1行。
  • 匿名クラスのヘッダーの後 (After Anonymous Class Header)
    匿名クラス本体開始記号「{」の後の空行数。
    後続セクションの前部空行数は無視される。
    匿名クラス本体が0行の場合は無視される。
    デフォルトは0行。
  • クラスの閉じ括弧の前 (Before Class Closing Brace)
    クラス定義終了記号「}」の前の空行数。
    デフォルトは0行。
  • 匿名クラスの閉じ括弧の前 (Before Anonymous Class Closing brace)
    匿名クラス定義終了記号「}」の前の空行数。
    デフォルトは0行。
  • フィールドの前 (Before Field)
    各々のフィールド定義の前の空行数。
    デフォルトは0行。
  • フィールドの後 (After Field)
    各々のフィールド定義の後の空行数。
    デフォルトは0行。
  • メソッドの前 (Before Method)
    メソッド定義部の前の空行数。
    デフォルトは1行。
  • メソッドの後 (After Method)
    メソッド定義部の後の空行数。
    デフォルトは0行。

スペース (Spaces)

sp

各所に自動挿入されるスペースに関する設定。

・キーワードの前 (Before Keywords)

  • ”while”
    }」とそれに続く「while」との間に挿入されるスペース。
    デフォルトは「オン」。
  • “else”
    }」とそれに続く「else」との間に挿入されるスペース。
    デフォルトは「オン」。
  • “catch”
    }」とそれに続く「catch」との間に挿入されるスペース。
    デフォルトは「オン」。
  • “finally”
    }」とそれに続く「finally」との間に挿入されるスペース。
    デフォルトは「オン」。

・丸括弧の前 (Before Parentheses)

  • メソッド宣言 (Method Declaration)
    メソッド宣言におけるメソッド名と後続の「(」の間に挿入されるスペース。
    デフォルトは「オフ」。
  • メソッド呼び出し (Method Call)
    メソッド呼び出しにおけるメソッド名と後続の「(」の間に挿入されるスペース。
    デフォルトは「オフ」。
  • “if”
    「if」と後続の「(」の間に挿入されるスペース。
    デフォルトは「オン」。
  • “for”
    「for」と後続の「(」の間に挿入されるスペース。
    デフォルトは「オン」。
  • “while”
    「while」と後続の「(」の間に挿入されるスペース。
    デフォルトは「オン」。
  • “try”
    「try」と後続の「(」の間に挿入されるスペース。
    デフォルトは「オン」。
  • “catch”
    「catch」と後続の「(」の間に挿入されるスペース。
    デフォルトは「オン」。
  • “switch”
    「switch」と後続の「(」の間に挿入されるスペース。
    デフォルトは「オン」。
  • “synchronized”
    「synchronized」と後続の「(」の間に挿入されるスペース。
    デフォルトは「オン」。
  • 注釈パラメータ (Annotations Parameter)
    アノテーション名と後続の「(」の間に挿入されるスペース。
    デフォルトは「オフ」。

※ 「メソッド」にはコンストラクタ一般も含まれる。

・演算子の周囲 (Around Operators)

  • 単項演算子 (Unary Operators)
    単項演算子の前後に挿入されるスペース。
    ただし数値リテラル直前の「-」は特別扱いとなり無視される。
    式の最後が「++」や「--」の後置演算子の場合、演算子の前にのみスペースが入る。(※ 厳密にはこれらは単項演算子ではない)
    デフォルトは「オフ」。
  • 二項演算子 (Binary Operators)
    二項演算子の前後に挿入されるスペース。
    ただしinstanceof演算子の前後は常にスペースが入る。
    デフォルトは「オン」。
  • 三項演算子 (Ternary Operators)
    ?」および「:」の前後に挿入されるスペース。
    デフォルトは「オン」。
  • 代入演算子 (Assignment Operators)
    =」、「==」、その他「+=」のような復号代入演算子の前後に挿入されるスペース。
    デフォルトは「オン」。
  • 注釈値代入演算子 (Annotation Value Assignment)
    アノテーション引数の「=」の前後に挿入されるスペース。
    デフォルトは「オン」。

※ 演算子が連続するところは2個以上の連続するスペースが挿入される場合がある。

・左中括弧の前 (Before Left Braces)

  • クラス宣言 (Class Declaration)
    クラス本体定義部先頭の「{」の前に挿入されるスペース。
    デフォルトは「オン」。
  • メソッド宣言 (Method Declaration)
    メソッド本体定義部先頭の「{」の前に挿入されるスペース。
    デフォルトは「オン」。
  • “if”
    「if()」と後に続く「{」との間に挿入されるスペース。
    デフォルトは「オン」。
  • “else”
    「else」と後に続く「{」との間に挿入されるスペース。
    デフォルトは「オン」。
  • “while”
    「while()」と後に続く「{」との間に挿入されるスペース。
    デフォルトは「オン」。
  • “for”
    「for()」と後に続く「{」との間に挿入されるスペース。
    デフォルトは「オン」。
  • “do”
    「do」と後に続く「{」との間に挿入されるスペース。
    デフォルトは「オン」。
  • “switch”
    「switch()」と後に続く「{」との間に挿入されるスペース。
    デフォルトは「オン」。
  • “try”
    「try」もしくは「try()」と後に続く「{」との間に挿入されるスペース。
    デフォルトは「オン」。
  • “catch”
    「catch()」と後に続く「{」との間に挿入されるスペース。
    デフォルトは「オン」。
  • “finally”
    「finally」と後に続く「{」との間に挿入されるスペース。
    デフォルトは「オン」。
  • “synchronized”
    「synchronized()」と後に続く「{」との間に挿入されるスペース。
    デフォルトは「オン」。
  • 静的初期化子 (Static Initializer)
    「static」と後に続く「{」との間に挿入されるスペース。
    デフォルトは「オン」。
  • 配列初期化子 (Array Initializer)
    配列初期化子の「{」の前に挿入されるスペース。
    new int[] {1, 2, 3}」のような式に影響する。
    int[] x={1, 2, 3}」のような式には影響しない。
    デフォルトは「オフ」。

・丸括弧の内側 (Within Parentheses)

(」の直後および「)」の直前にスペースを入れる。

※ 丸括弧でない括弧の設定もあり。

  • 丸括弧 (Parentheses)
    一次式の括弧式「()」の内側に挿入されるスペース。
    デフォルトではオフ。
  • メソッド宣言 (Method Declaration)
    メソッド宣言で仮引数を囲む「()」の内側に挿入されるスペース。
    デフォルトではオフ。
  • メソッド呼び出し (Method Call)
    メソッド呼び出しで引数を囲む「()」の内側に挿入されるスペース。
    デフォルトではオフ。
  • “if”
    if文「()」の内側に挿入されるスペース。
    デフォルトではオフ。
  • “for”
    for文「()」の内側に挿入されるスペース。
    デフォルトではオフ。
  • “while”
    while文「()」の内側に挿入されるスペース。
    デフォルトではオフ。
  • “switch”
    switch文「()」の内側に挿入されるスペース。
    デフォルトではオフ。
  • “try”
    try文「()」の内側に挿入されるスペース。
    デフォルトではオフ。
  • “catch”
    catch文「()」の内側に挿入されるスペース。
    デフォルトではオフ。
  • “synchronized”
    synchronized文「()」の内側に挿入されるスペース。
    デフォルトではオフ。
  • 型キャスト (Type Cast)
    型キャスト演算子「()」の内側に挿入されるスペース。
    デフォルトではオフ。
  • 注釈 (Annotation)
    アノテーション引数を囲む「()」の内側に挿入されるスペース。
    デフォルトではオフ。
  • 中括弧 (Braces)
    配列初期化子を囲む「{}」の内側に挿入されるスペース。
    デフォルトではオフ。
  • 配列初期化子の角括弧 (Array Initializer Brackets)
    配列サイズ/添字指定を囲む「[]」の内側に挿入されるスペース。
    デフォルトではオフ。

・その他 (Other)

  • カンマの前 (Before Comma)
    カンマ「,」の前に挿入されるスペース。
    デフォルトではオフ。
  • カンマの後 (After Comma)
    カンマ「,」の後に挿入されるスペース。
    デフォルトではオン。
  • セミコロンの前 (Before Semicolon)
    セミコロン「;」の前に挿入されるスペース。
    デフォルトではオフ。
  • セミコロンの後 (After Semicolon)
    セミコロン「;」の後に挿入されるスペース。
    デフォルトではオン。
  • コロンの前 (Before Colon)
    コロン「:」の前に挿入されるスペース。
    デフォルトではオン。
  • コロンの後 (After Colon)
    コロン「:」の後に挿入されるスペース。
    デフォルトではオン。
  • 型キャストの後 (After Type Cast)
    型キャスト「)」の直後に挿入されるスペース。
    デフォルトではオン。

※ 「セミコロン」(;)はtryリソースの「()」およびfor文「()」内部のセミコロンを指す物である。ステートメント末尾のセミコロンは対象外。

※ 「コロン」(:)はfor-each文「()」内部およびassert文のコロンを指すものである。ラベル、case句、三項演算子のコロンは対象外。

※ 7.3.1 版ではfor-each内部のコロン周囲のスペース挿入処理にバグ?

広告

タグ: ,