linebreak-style
多くの人が異なるエディタ、VCSアプリケーション、オペレーティングシステムを使用して開発を行う場合、上記いずれかによって異なる改行コードが書き込まれる可能性があります(特にSourceTreeのWindows版とMac版を併用する場合に発生する可能性があります)。
Windowsオペレーティングシステムで使用される改行コードは通常、キャリッジリターン(CR)とラインフィード(LF)の組み合わせであるキャリッジリターンラインフィード(CRLF)ですが、LinuxとUnixは単純なラインフィード(LF)を使用します。対応する制御シーケンスは、LFの場合は"\n"
、CRLFの場合は"\r\n"
です。
多くのバージョン管理システム(gitやSubversionなど)は、正しい改行コードを自動的に確保できます。しかし、あらゆる事態を考慮するために、このルールを有効化することができます。
ルール詳細
このルールは、オペレーティングシステム、VCS、またはエディタに関係なく、コードベース全体で一貫した改行コードを強制します。
オプション
このルールには、文字列オプションがあります。
"unix"
(デフォルト)は、Unixの改行コード(LFの\n
)の使用を強制します。"windows"
は、Windowsの改行コード(CRLFの\r\n
)の使用を強制します。
unix
デフォルトの"unix"
オプションを使用したこのルールの不正なコードの例
/*eslint @stylistic/js/linebreak-style: ["error", "unix"]*/
var a = 'a'; // \r\n
デフォルトの"unix"
オプションを使用したこのルールの正しいコードの例
/*eslint @stylistic/js/linebreak-style: ["error", "unix"]*/
var a = 'a', // \n
b = 'b'; // \n
// \n
function foo(params) { // \n
// do stuff \n
}// \n
windows
"windows"
オプションを使用したこのルールの不正なコードの例
/*eslint @stylistic/js/linebreak-style: ["error", "windows"]*/
var a = 'a'; // \n
"windows"
オプションを使用したこのルールの正しいコードの例
/*eslint @stylistic/js/linebreak-style: ["error", "windows"]*/
var a = 'a', // \r\n
b = 'b'; // \r\n
// \r\n
function foo(params) { // \r\n
// do stuff \r\n
} // \r\n
バージョン管理システムでのこのルールの使用
バージョン管理システムは、改行コードに対して特別な動作をする場合があります。異なるプラットフォームから開発者がコードベースに簡単に貢献できるように、VCSを適切に改行コードを処理するように設定することをお勧めします。
たとえば、Windowsシステムでのgitのデフォルトの動作は、ファイルをチェックアウトする際にLF改行コードをCRLFに変換することですが、変更をコミットする際には改行コードをLFとして保存することです。これにより、ESLintが参照するファイルにはCRLF改行コードが含まれるため、"unix"
設定で構成されている場合、linebreak-style
ルールはエラーを報告します。gitを使用する場合は、.gitattributes
ファイルに1行追加して、gitが.js
ファイルの改行コードを変換するのを防ぐことができます。
*.js text eol=lf
使用しない場合
コード内で異なる改行コードを使用することに問題がない場合は、このルールを安全にオフにすることができます。
互換性
- JSCS: validateLineBreaks