max-len
どんな言語でも、非常に長いコード行は読みづらくなります。可読性と保守性を向上させるために、多くのコーダーはコード行をX文字数(従来は80文字)に制限するという慣習を確立しました。
var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" }; // very long
ルール詳細
このルールは、コードの可読性と保守性を向上させるために、最大行長を適用します。行の長さは、行内のUnicode文字数で定義されます。
オプション
このルールには、位置引数として最大2つの数値(`code`と`tabWidth`オプション用)、それに続くオブジェクトオプションを使用できます(位置引数が優先されます)。
- `"code"` (デフォルト `80`) 最大行長を適用します。
- `"tabWidth"` (デフォルト `4`) タブ文字の文字幅を指定します。
- `"comments"` コメントの最大行長を適用します。`code`の値をデフォルト値として使用します。
- `"ignorePattern"` 正規表現に一致する行を無視します。1行のみ一致させることができ、YAMLまたはJSONで記述する場合は二重エスケープする必要があります。
- `"ignoreComments": true` すべての末尾コメントと独立した行のコメントを無視します。
- `"ignoreTrailingComments": true` 末尾コメントのみ無視します。
- `"ignoreUrls": true` URLを含む行を無視します。
- `"ignoreStrings": true` ダブルクォートまたはシングルクォートで囲まれた文字列を含む行を無視します。
- `"ignoreTemplateLiterals": true` テンプレートリテラルを含む行を無視します。
- `"ignoreRegExpLiterals": true` 正規表現リテラルを含む行を無視します。
code
デフォルトの`{ "code": 80 }`オプションを使用した、このルールに違反するコードの例
/*eslint @stylistic/js/max-len: ["error", { "code": 80 }]*/
var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" };
デフォルトの`{ "code": 80 }`オプションを使用した、このルールに準拠するコードの例
/*eslint @stylistic/js/max-len: ["error", { "code": 80 }]*/
var foo = {
"bar": "This is a bar.",
"baz": { "qux": "This is a qux" },
"easier": "to read"
};
tabWidth
デフォルトの`{ "tabWidth": 4 }`オプションを使用した、このルールに違反するコードの例
/*eslint @stylistic/js/max-len: ["error", { "code": 80, "tabWidth": 4 }]*/
\t \t var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" } };
デフォルトの`{ "tabWidth": 4 }`オプションを使用した、このルールに準拠するコードの例
/*eslint @stylistic/js/max-len: ["error", { "code": 80, "tabWidth": 4 }]*/
\t \t var foo = {
\t \t \t \t "bar": "This is a bar.",
\t \t \t \t "baz": { "qux": "This is a qux" }
\t \t };
comments
`{ "comments": 65 }`オプションを使用した、このルールに違反するコードの例
/*eslint @stylistic/js/max-len: ["error", { "comments": 65 }]*/
/**
* This is a comment that violates the maximum line length we have specified
**/
ignoreComments
`{ "ignoreComments": true }`オプションを使用した、このルールに準拠するコードの例
/*eslint @stylistic/js/max-len: ["error", { "ignoreComments": true }]*/
/**
* This is a really really really really really really really really really long comment
**/
ignoreTrailingComments
`{ "ignoreTrailingComments": true }`オプションを使用した、このルールに準拠するコードの例
/*eslint @stylistic/js/max-len: ["error", { "ignoreTrailingComments": true }]*/
var foo = 'bar'; // This is a really really really really really really really long comment
ignoreUrls
`{ "ignoreUrls": true }`オプションを使用した、このルールに準拠するコードの例
/*eslint @stylistic/js/max-len: ["error", { "ignoreUrls": true }]*/
var url = 'https://www.example.com/really/really/really/really/really/really/really/long';
ignoreStrings
`{ "ignoreStrings": true }`オプションを使用した、このルールに準拠するコードの例
/*eslint @stylistic/js/max-len: ["error", { "ignoreStrings": true }]*/
var longString = 'this is a really really really really really long string!';
ignoreTemplateLiterals
`{ "ignoreTemplateLiterals": true }`オプションを使用した、このルールに準拠するコードの例
/*eslint @stylistic/js/max-len: ["error", { "ignoreTemplateLiterals": true }]*/
var longTemplateLiteral = `this is a really really really really really long template literal!`;
ignoreRegExpLiterals
`{ "ignoreRegExpLiterals": true }`オプションを使用した、このルールに準拠するコードの例
/*eslint @stylistic/js/max-len: ["error", { "ignoreRegExpLiterals": true }]*/
var longRegExpLiteral = /this is a really really really really really long regular expression!/;
ignorePattern
`ignorePattern`オプションを使用した、このルールに準拠するコードの例
/*eslint @stylistic/js/max-len: ["error", { "ignorePattern": "^\\s*var\\s.+=\\s*require\\s*\\(" }]*/
var dep = require('really/really/really/really/really/really/really/really/long/module');