minimize

Block Checks

ブロックのチェックを行います。

EmptyBlock

空ブロックをチェックします。

コードを修正していく内、不必要なロジックが残ったままになる事があります。
空ブロックはその典型とも言えます。
チェックする事で、不要なコードを削除するのに役立ちます。

option

空ブロックの識別方法を設定します。

stmt

ステートメントが存在しない部分を空ブロックと識別します(デフォルト)。

if (...) {
    // これは空ブロックと認識される
}

text

何らかの文字が存在しない部分を空ブロックと識別します。

if (...) {
    // これは空ブロックと認識されない
}

tokens

  チェック対象を設定します。

LeftCurly

左中括弧 { の出現位置をチェックします。

こういうものがプロジェクト内でバラバラだと
プログラムはとても読みにくくなります。統一しましょう。

option

正とする出現位置のパターンを設定します。

eol

行末に出現します(デフォルト)。

void func() {
}

nl

行頭に出現します。

void func()
{
}

nlow

通常は行末に出現します。
ただし、複数行にまたがる場合は行頭に出現します。

if (a == 1 && b == 1) {
    // 通常は行末を正とする
}
if (a == 1
    && b == 1)
{
    // ただし、複数行にまたがる場合は行頭を正とする
}


maxLineLength

1行の最大文字数を設定します。

tokens

チェック対象を設定します。

NeedBraces

中括弧の必須チェックを行います。

if (param == null) return;

上の文ではif文の中括弧を省略しています。
このチェックを有効にすると、このようなコーディングを抑制することが出来ます。

このような簡単な場合など、つい括弧を省略したくなりがちですが
これには意外なほどデメリットがあります。

まず、ぱっと見てそこに条件文があることを認識しにくくなります。
条件文はプログラムの分岐点ですので、括弧を付けてインデントを分けた方が
見やすくて良いのです。

そして、カバレッジ計測時にも弊害があります。
ラインカバレッジの場合、「その行を通ったか」という観点で計測します。
条件文を1行に収めてしまうと、条件式の真偽に関わらず
常にカバレッジが満たされてしまいます。

他にも、例えばブレークポイントを設定するような場合でもそうです。
ほとんどのIDEでは行単位でポイントを設定します。
1行になっていると、「条件が満たされたときにブレークポイントを設定する」
という事が出来ません。

tokens

チェック対象を設定します。

RightCurly

右中括弧 } の出現位置をチェックします。

option

正とする出現位置のパターンを設定します。

same

他のテキストと同じ行に出現します(デフォルト)。

try {
} catch ...

alone

他のテキストは同じ行に出現せず、常に単体で行中に出現します。

try {
}
catch ...


tokens

チェック対象を設定します。

AvoidNestedBlocks

ネストしたブロックをチェックします。

void func() {
    ...
    {
        // この部分が、ネストしたブロックです
    }
    ...
}

ネストブロックは一見便利ですが、それによってコードが非常に汚れてしまいます。
面倒でも、こういった処理はメソッド化しましょう。

allowInSwitchCase

caseブロックのネストを許可します。

switch (i) {
    case 0: {
        // これは許可する
    }
}

[コメント(0)]