padded-blocks
一部のスタイルガイドでは、ブロックステートメントの開始と終了を空行で区切ることを求めています。これは、ブロックの内容と周囲のコードを視覚的に分離することで可読性を向上させることを目的としています。
if (a) {
b();
}コードスタイルの一貫性を保つために、常にパディングされたブロックを記述するか、決して記述しないかのどちらかにする必要があります。
ルールの詳細
このルールは、ブロック内の空行のパディングの一貫性を強制します。
オプション
このルールには2つのオプションがあり、最初のオプションは文字列オプションまたはオブジェクトオプションを指定できます。2番目のオプションはオブジェクトオプションで、例外を許可できます。
最初のオプション
文字列オプション
"always"(デフォルト) は、ブロックステートメント、関数本体、クラス静的ブロック、クラス、およびswitchステートメントの先頭と末尾に空行を必要とします。"never"は、ブロックステートメント、関数本体、クラス静的ブロック、クラス、およびswitchステートメントの先頭と末尾に空行を許可しません。
オブジェクトオプション
"blocks"は、ブロックステートメント、関数本体、およびクラス静的ブロック内のパディングを要求または許可しません"classes"は、クラス内のパディングを要求または許可しません"switches"は、switchステートメント内のパディングを要求または許可しません
2番目のオプション
"allowSingleLineBlocks": trueは、1行のブロックを許可します
always
デフォルトの "always" オプションを使用した場合の、このルールの不正なコードの例
/*eslint @stylistic/js/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" オプションを使用した場合の、このルールの正しいコードの例
/*eslint @stylistic/js/padded-blocks: ["error", "always"]*/
if (a) {
b();
}
if (a)
{
b();
}
if (a) {
// comment
b();
}
class C {
static {
a();
}
}never
"never" オプションを使用した場合の、このルールの不正なコードの例
/*eslint @stylistic/js/padded-blocks: ["error", "never"]*/
if (a) {
b();
}
if (a)
{
b();
}
if (a) {
b();
}
if (a) {
b();
}
class C {
static {
a();
}
}"never" オプションを使用した場合の、このルールの正しいコードの例
/*eslint @stylistic/js/padded-blocks: ["error", "never"]*/
if (a) {
b();
}
if (a)
{
b();
}
class C {
static {
a();
}
}blocks
{ "blocks": "always" } オプションを使用した場合の、このルールの不正なコードの例
/*eslint @stylistic/js/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" } オプションを使用した場合の、このルールの正しいコードの例
/*eslint @stylistic/js/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" } オプションを使用した場合の、このルールの不正なコードの例
/*eslint @stylistic/js/padded-blocks: ["error", { "blocks": "never" }]*/
if (a) {
b();
}
if (a)
{
b();
}
if (a) {
b();
}
if (a) {
b();
}
class C {
static {
a();
}
}{ "blocks": "never" } オプションを使用した場合の、このルールの正しいコードの例
/*eslint @stylistic/js/padded-blocks: ["error", { "blocks": "never" }]*/
if (a) {
b();
}
if (a)
{
b();
}
class C {
static {
a();
}
}
class D {
static {
a();
}
}classes
{ "classes": "always" } オプションを使用した場合の、このルールの不正なコードの例
/*eslint @stylistic/js/padded-blocks: ["error", { "classes": "always" }]*/
class A {
constructor(){
}
}{ "classes": "always" } オプションを使用した場合の、このルールの正しいコードの例
/*eslint @stylistic/js/padded-blocks: ["error", { "classes": "always" }]*/
class A {
constructor(){
}
}{ "classes": "never" } オプションを使用した場合の、このルールの不正なコードの例
/*eslint @stylistic/js/padded-blocks: ["error", { "classes": "never" }]*/
class A {
constructor(){
}
}{ "classes": "never" } オプションを使用した場合の、このルールの正しいコードの例
/*eslint @stylistic/js/padded-blocks: ["error", { "classes": "never" }]*/
class A {
constructor(){
}
}switches
{ "switches": "always" } オプションを使用した場合の、このルールの不正なコードの例
/*eslint @stylistic/js/padded-blocks: ["error", { "switches": "always" }]*/
switch (a) {
case 0: foo();
}{ "switches": "always" } オプションを使用した場合の、このルールの正しいコードの例
/*eslint @stylistic/js/padded-blocks: ["error", { "switches": "always" }]*/
switch (a) {
case 0: foo();
}
if (a) {
b();
}{ "switches": "never" } オプションを使用した場合の、このルールの不正なコードの例
/*eslint @stylistic/js/padded-blocks: ["error", { "switches": "never" }]*/
switch (a) {
case 0: foo();
}{ "switches": "never" } オプションを使用した場合の、このルールの正しいコードの例
/*eslint @stylistic/js/padded-blocks: ["error", { "switches": "never" }]*/
switch (a) {
case 0: foo();
}
if (a) {
b();
}always + allowSingleLineBlocks
"always", {"allowSingleLineBlocks": true} オプションを使用した場合の、このルールの不正なコードの例
/*eslint @stylistic/js/padded-blocks: ["error", "always", { allowSingleLineBlocks: true }]*/
if (a) {
b();
}
if (a) {
b();
}
if (a) {
b();
}"always", {"allowSingleLineBlocks": true} オプションを使用した場合の、このルールの正しいコードの例
/*eslint @stylistic/js/padded-blocks: ["error", "always", { allowSingleLineBlocks: true }]*/
if (a) { b(); }
if (a) {
b();
}使用しない場合
ブロック内のパディングの一貫性を気にしない場合は、このルールをオフにできます。