コンテンツへスキップ

@stylistic/js/

max-len

どんな言語でも、非常に長いコード行は読みづらくなります。可読性と保守性を向上させるために、多くのコーダーはコード行をX文字数(従来は80文字)に制限するという慣習を確立しました。

js
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 }`オプションを使用した、このルールに違反するコードの例

js
/*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 }`オプションを使用した、このルールに準拠するコードの例

js
/*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 }`オプションを使用した、このルールに違反するコードの例

js
/*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 }`オプションを使用した、このルールに準拠するコードの例

js
/*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 }`オプションを使用した、このルールに違反するコードの例

js
/*eslint @stylistic/js/max-len: ["error", { "comments": 65 }]*/

/**
* This is a comment that violates the maximum line length we have specified
**/
不正な例

ignoreComments

`{ "ignoreComments": true }`オプションを使用した、このルールに準拠するコードの例

js
/*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 }`オプションを使用した、このルールに準拠するコードの例

js
/*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 }`オプションを使用した、このルールに準拠するコードの例

js
/*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 }`オプションを使用した、このルールに準拠するコードの例

js
/*eslint @stylistic/js/max-len: ["error", { "ignoreStrings": true }]*/

var longString = 'this is a really really really really really long string!';
正しい例

ignoreTemplateLiterals

`{ "ignoreTemplateLiterals": true }`オプションを使用した、このルールに準拠するコードの例

js
/*eslint @stylistic/js/max-len: ["error", { "ignoreTemplateLiterals": true }]*/

var longTemplateLiteral = `this is a really really really really really long template literal!`;
正しい例

ignoreRegExpLiterals

`{ "ignoreRegExpLiterals": true }`オプションを使用した、このルールに準拠するコードの例

js
/*eslint @stylistic/js/max-len: ["error", { "ignoreRegExpLiterals": true }]*/

var longRegExpLiteral = /this is a really really really really really long regular expression!/;
正しい例

ignorePattern

`ignorePattern`オプションを使用した、このルールに準拠するコードの例

js
/*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');
正しい例

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