CheckStyle公式ドキュメント#EmptyLineSeparator
バージョン
Checkstyleバージョン:10.15.0
Javaバージョン:17
| チェック追加Ver |
|---|
| Checkstyle 5.8 |
以下の前に空行が挿入されているかどうかをチェックする。
ステートメントだけでなく、実装やドキュメントのコメントやブロックの前に空の行区切りがあるかどうかもチェックする。
- package
- import
- fields
- constructors
- methods
- nested classes
- static initializers
- instance initializers
プロパティ
| プロパティ | 型 | デフォルト値 | 説明 | 追加Ver |
|---|---|---|---|---|
| allowNoEmptyLineBetweenFields | boolean | false | フィールド間の空行なしを許可するかどうか | 5.8 |
| allowMultipleEmptyLines | boolean | true | クラスメンバー間に複数の空行を許可するかどうか | 6.3 |
| allowMultipleEmpty LinesInsideClassMembers |
boolean | true | クラス内(メソッド内の処理等)に複数の空行を許可するかどうか | 6.18 |
| tokens | トークンの サブセット | PACKAGE_DEF IMPORT STATIC_IMPORT CLASS_DEF INTERFACE_DEF ENUM_DEF STATIC_INIT INSTANCE_INIT METHOD_DEF CTOR_DEF VARIABLE_DEF RECORD_DEF COMPACT_CTOR_DEF |
チェック対象のトークン | 5.8 |
❕トークンのサブセットの設定値
| 値 | 説明 |
|---|---|
| CLASS_DEF | クラス宣言 |
| COMPACT_CTOR_DEF | 引数なしコンストラクタ宣言 |
| CTOR_DEF | コンストラクタ宣言 |
| ENUM_DEF | Enum宣言 |
| IMPORT | インポート |
| INTERFACE_DEF | インターフェース宣言 |
| INSTANCE_INIT | インスタンスイニシャライザ |
| METHOD_DEF | メソッド宣言 |
| PACKAGE_DEF | パッケージ宣言 |
| STATIC_IMPORT | staticインポート |
| STATIC_INIT | スタティックイニシャライザ |
| RECORD_DEF | レコード宣言 |
| VARIABLE_DEF | フィールドまたはローカル変数の宣言 |
設定+チェック実行結果
プロパティを設定しない場合
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="EmptyLineSeparator"/> </module> </module>
チェック実行例
// NG package, import, class, field, methodの間にはそれぞれ1行以上の空行が必要 /////////////////////////////////////////////////// //HEADER /////////////////////////////////////////////////// package com.whitespace; import java.io.Serializable; class MyClass { public static final int FOO_CONST = 1; public void foo() {} } // OK /////////////////////////////////////////////////// //HEADER /////////////////////////////////////////////////// package com.whitespace; import java.io.Serializable; class MyClass { public static final int FOO_CONST = 1; public void foo() {} }
プロパティを設定した場合
allowNoEmptyLineBetweenFields
フィールド間の空行なしを許可するかどうか
デフォルト:false
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="EmptyLineSeparator"> <property name="allowNoEmptyLineBetweenFields" value="true" /> </module> </module> </module>
チェック実行例
// OK フィールドの間に空行がなくてもOK /////////////////////////////////////////////////// //HEADER /////////////////////////////////////////////////// package com.whitespace; import java.io.Serializable; class MyClass { int var1 = 1; int var2 = 2; public void foo() {} }
allowMultipleEmptyLines
クラスメンバー間に複数の空行を許可するかどうか
デフォルト:true
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="EmptyLineSeparator"> <property name="allowMultipleEmptyLines" value="false" /> </module> </module> </module>
チェック実行例
// NG フィールドの間に複数行の空行が存在している /////////////////////////////////////////////////// //HEADER /////////////////////////////////////////////////// package com.whitespace; import java.io.Serializable; class MyClass { int var1 = 1; int var2 = 2; public void foo() {} } // OK /////////////////////////////////////////////////// //HEADER /////////////////////////////////////////////////// package com.whitespace; import java.io.Serializable; class MyClass { int var1 = 1; int var2 = 2; public void foo() {} }
allowMultipleEmptyLinesInsideClassMembers
クラスメンバーの中で複数の空行を許可するかどうか
デフォルト:true
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="EmptyLineSeparator"> <property name="allowMultipleEmptyLinesInsideClassMembers" value="false" /> </module> </module> </module>
チェック実行例
// NG メソッドの中に複数行の空行が存在している /////////////////////////////////////////////////// //HEADER /////////////////////////////////////////////////// package com.whitespace; import java.io.Serializable; class MyClass { int var1 = 1; int var2 = 2; public void foo() { int var4 = 4; int var5 = 5; } } // OK /////////////////////////////////////////////////// //HEADER /////////////////////////////////////////////////// package com.whitespace; import java.io.Serializable; class MyClass { int var1 = 1; int var2 = 2; public void foo() { int var4 = 4; int var5 = 5; } }
tokens
チェック対象のトークン。
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="EmptyLineSeparator"> <property name="tokens" value="VARIABLE_DEF, METHOD_DEF"/> </module> </module> </module>
チェック実行例
// NG package, import, class, field, methodの間にはそれぞれ1行以上の空行が必要 /////////////////////////////////////////////////// //HEADER /////////////////////////////////////////////////// package com.whitespace; import java.io.Serializable; class MyClass { public static final int FOO_CONST = 1; public void foo() {} } // OK 変数宣言とメソッド宣言の間には1行以上の空行が必要 /////////////////////////////////////////////////// //HEADER /////////////////////////////////////////////////// package com.whitespace; import java.io.Serializable; class MyClass { public static final int FOO_CONST = 1; public void foo() {} }