コンテンツへスキップ

@stylistic/

padded-blocks

一部のスタイルガイドでは、ブロックステートメントが空白行で始まり、終わることが求められます。これは、ブロックの内容と周囲のコードを視覚的に分離することで、可読性を向上させることを目的としています。

js
if (a) {

    b();

}

コードスタイルの一貫性を保つことが望ましいので、パディングされたブロックを常に書くか、まったく書かないかのどちらかにする必要があります。

ルールの詳細

このルールは、ブロック内の一貫した空白行のパディングを強制します。

オプション

このルールには2つのオプションがあり、1つ目は文字列オプションまたはオブジェクトオプションにすることができます。2つ目はオブジェクトオプションで、例外を許可できます。

最初のオプション

文字列オプション

  • "always" (デフォルト) は、ブロックステートメント、関数本体、クラス静的ブロック、クラス、およびswitchステートメントの最初と最後に空白行を必要とします。
  • "never" は、ブロックステートメント、関数本体、クラス静的ブロック、クラス、およびswitchステートメントの最初と最後に空白行を許可しません。

オブジェクトオプション

  • "blocks" ブロックステートメント、関数本体、およびクラス静的ブロック内のパディングを必須または禁止します
  • "classes" クラス内のパディングを必須または禁止します
  • "switches" switchステートメント内のパディングを必須または禁止します

2番目のオプション

  • "allowSingleLineBlocks": true は、単一行ブロックを許可します

always

デフォルトの"always"オプションを使用した、このルールの不正なコードの例

js
/*eslint @stylistic/padded-blocks: ["error", "always"]*/

if (a) 
{
b();
} if (a)
{
b();
}
if (a)
{
b();
} if (a)
{
b(); } if (a)
{
// comment b(); } class C
{
static
{
a();
}
}
不正

デフォルトの"always"オプションを使用した、このルールの正しいコードの例

js
/*eslint @stylistic/padded-blocks: ["error", "always"]*/

if (a) {

    b();

}

if (a)
{

    b();

}

if (a) {

    // comment
    b();

}

class C {

    static {

        a();

    }

}
正しい

never

"never"オプションを使用した、このルールの不正なコードの例

js
/*eslint @stylistic/padded-blocks: ["error", "never"]*/

if (a) 
{
b();
} if (a)
{
b();
} if (a)
{
b(); } if (a) { b();
} class C
{
static
{
a();
}
}
不正

"never"オプションを使用した、このルールの正しいコードの例

js
/*eslint @stylistic/padded-blocks: ["error", "never"]*/

if (a) {
    b();
}

if (a)
{
    b();
}

class C {
    static {
        a();
    }
}
正しい

blocks

{ "blocks": "always" }オプションを使用した、このルールの不正なコードの例

js
/*eslint @stylistic/padded-blocks: ["error", { "blocks": "always" }]*/

if (a) 
{
b();
} if (a)
{
b();
}
if (a)
{
b();
} if (a) { b();
} if (a)
{
b(); } if (a)
{
// comment b(); } class C { static
{
a();
} }
不正

{ "blocks": "always" }オプションを使用した、このルールの正しいコードの例

js
/*eslint @stylistic/padded-blocks: ["error", { "blocks": "always" }]*/

if (a) {

    b();

}

if (a)
{

    b();

}

if (a) {

    // comment
    b();

}

class C {

    static {

        a();

    }

}

class D {
    static {

        a();

    }

}
正しい

{ "blocks": "never" }オプションを使用した、このルールの不正なコードの例

js
/*eslint @stylistic/padded-blocks: ["error", { "blocks": "never" }]*/

if (a) 
{
b();
} if (a)
{
b();
} if (a)
{
b(); } if (a) { b();
} class C { static
{
a();
} }
不正

{ "blocks": "never" }オプションを使用した、このルールの正しいコードの例

js
/*eslint @stylistic/padded-blocks: ["error", { "blocks": "never" }]*/

if (a) {
    b();
}

if (a)
{
    b();
}

class C {
    static {
        a();
    }
}

class D {

    static {
        a();
    }

}
正しい

classes

{ "classes": "always" }オプションを使用した、このルールの不正なコードの例

js
/*eslint @stylistic/padded-blocks: ["error", { "classes": "always" }]*/

class  A 
{
constructor(){ }
}
不正

{ "classes": "always" }オプションを使用した、このルールの正しいコードの例

js
/*eslint @stylistic/padded-blocks: ["error", { "classes": "always" }]*/

class  A {

    constructor(){
    }

}
正しい

{ "classes": "never" }オプションを使用した、このルールの不正なコードの例

js
/*eslint @stylistic/padded-blocks: ["error", { "classes": "never" }]*/

class  A 
{
constructor(){ }
}
不正

{ "classes": "never" }オプションを使用した、このルールの正しいコードの例

js
/*eslint @stylistic/padded-blocks: ["error", { "classes": "never" }]*/

class  A {
    constructor(){
    }
}
正しい

switches

{ "switches": "always" }オプションを使用した、このルールの不正なコードの例

js
/*eslint @stylistic/padded-blocks: ["error", { "switches": "always" }]*/

switch (a) 
{
case 0: foo();
}
不正

{ "switches": "always" }オプションを使用した、このルールの正しいコードの例

js
/*eslint @stylistic/padded-blocks: ["error", { "switches": "always" }]*/

switch (a) {

    case 0: foo();

}

if (a) {
    b();
}
正しい

{ "switches": "never" }オプションを使用した、このルールの不正なコードの例

js
/*eslint @stylistic/padded-blocks: ["error", { "switches": "never" }]*/

switch (a) 
{
case 0: foo();
}
不正

{ "switches": "never" }オプションを使用した、このルールの正しいコードの例

js
/*eslint @stylistic/padded-blocks: ["error", { "switches": "never" }]*/

switch (a) {
    case 0: foo();
}

if (a) {

    b();

}
正しい

always + allowSingleLineBlocks

"always", {"allowSingleLineBlocks": true}オプションを使用した、このルールの不正なコードの例

js
/*eslint @stylistic/padded-blocks: ["error", "always", { allowSingleLineBlocks: true }]*/

if (a) 
{
b();
} if (a) { b();
} if (a)
{
b(); }
不正

"always", {"allowSingleLineBlocks": true}オプションを使用した、このルールの正しいコードの例

js
/*eslint @stylistic/padded-blocks: ["error", "always", { allowSingleLineBlocks: true }]*/

if (a) { b(); }

if (a) {

    b();

}
正しい

使用しない場合

ブロック内のパディングの一貫性を気にしない場合は、このルールをオフにすることができます。

MITライセンスの下でリリースされています。