検証環境
Checkstyleバージョン:10.3.3
Javaバージョン:17
チェック概要
チェック追加バージョン |
---|
Checkstyle 3.0 |
コードブロックの左中括弧({
)の配置をチェックする。
左中括弧の配置ルールの設定にはLeftCurlyOptionを指定する。
値 | 説明 |
---|---|
eol | 中括弧は常に行末に配置する |
nl | 中括弧は常に改行して行頭に配置する |
nlow | 中括弧に接続された文/式/宣言が複数行にまたがる場合は、nlルールを適用し、それ以外の場合はeolルールを適用する |
// eol // OK if (condition) { } // NG if (condition) { } // nl // OK if (condition) { } // NG if (condition) { } // nlow // OK if (condition) { } if (condition1 && condition2 && condition3 && condition4) { } // NG if (condition) { } if (condition1 && condition2 && condition3 && condition4) { }
プロパティ
プロパティ | 型 | デフォルト値 | 説明 | 追加バージョン |
---|---|---|---|---|
option | LeftCurlyOption | eol | 左中括弧の配置ポリシー | 3.0 |
ignoreEnums | boolean | true | 左中括弧の配置ポリシーがEOLの場合、Enumのチェックを無視するかどうか | 6.9 |
tokens | トークンの サブセット | ANNOTATION_DEF, CLASS_DEF, CTOR_DEF, ENUM_CONSTANT_DEF, ENUM_DEF, INTERFACE_DEF, LAMBDA, LITERAL_CASE, LITERAL_CATCH, LITERAL_DEFAULT, LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF, LITERAL_SWITCH, LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE, METHOD_DEF, OBJBLOCK, STATIC_INIT, RECORD_DEF, COMPACT_CTOR_DEF |
チェック対象のトークン | 3.0 |
〇トークンのサブセットには以下の値が設定可能
値 | 説明 |
---|---|
ANNOTATION_DEF | アノテーション宣言 |
CLASS_DEF | クラス宣言 |
COMPACT_CTOR_DEF | 引数なしコンストラクタ宣言 |
CTOR_DEF | コンストラクタ宣言 |
ENUM_CONSTANT_DEF | Enum定数宣言 |
ENUM_DEF | Enum宣言 |
INTERFACE_DEF | インターフェース宣言 |
LAMBDA | ラムダ式の-> |
LITERAL_CASE | case |
LITERAL_CATCH | catch |
LITERAL_DEFAULT | default |
LITERAL_DO | do |
LITERAL_ELSE | else |
LITERAL_FINALLY | finally |
LITERAL_FOR | for |
LITERAL_IF | if |
LITERAL_SWITCH | switch |
LITERAL_SYNCHRONIZED | symchronized |
LITERAL_TRY | try |
LITERAL_WHILE | while |
METHOD_DEF | メソッド宣言 |
OBJBLOCK | オブジェクトブロック |
RECORD_DEF | レコード宣言 |
STATIC_INIT | スタティックイニシャライザ |
設定+チェック実行結果
プロパティ設定なし
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="LeftCurly"/> </module> </module>
チェック実行例
// NG 左中括弧は行末に配置する class MyClass { // NG 左中括弧は行末に配置する private interface TestInterface { } // OK private class TestClass { } }
プロパティ設定あり
option
左中括弧の配置ポリシーを設定する。
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="LeftCurly"> <property name="option" value="nl"/> </module> </module> </module>
チェック実行例
左中括弧の配置ポリシーが「nl」なので、左中括弧は常に改行して記述する。
// OK class MyClass { // OK private interface TestInterface { } // NG 左中括弧は改行して行頭に配置する private class TestClass { } }
ignoreEnums
trueを設定した場合、左中括弧のポリシーが「EOL(中括弧は常に行末に配置する)」の場合、Enumをチェック対象外とする。(デフォルト設定:true)
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="LeftCurly"> <property name="ignoreEnums" value="false"/> </module> </module> </module>
チェック実行例
enumでも左中括弧のの後は常に行末に配置する必要がある。
class MyClass { // NG enum Colors {RED, BLUE, GREEN; } // OK enum Colors { RED, BLUE, GREEN; } }
tokens
チェック対象のトークンをコンマ区切りで記述する。
設定ファイル記述方法
<module name="Checker"> <module name="TreeWalker"> <module name="LeftCurly"> <property name="tokens" value="CLASS_DEF,INTERFACE_DEF"/> </module> </module> </module>
チェック実行例
// NG 左中括弧は行末に配置する class MyClass { // OK メソッド宣言はチェック対象外 public void doSomething() { } }