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/linebreak-style: ["error", "unix"]*/
var a = 'a'; // \r\n
デフォルトの"unix"
オプションを使用した場合の、このルールに準拠するコードの例
/*eslint @stylistic/linebreak-style: ["error", "unix"]*/
var a = 'a', // \n
b = 'b'; // \n
// \n
function foo(params) { // \n
// do stuff \n
}// \n
windows
"windows"
オプションを使用した場合の、このルールに違反するコードの例
/*eslint @stylistic/linebreak-style: ["error", "windows"]*/
var a = 'a'; // \n
"windows"
オプションを使用した場合の、このルールに準拠するコードの例
/*eslint @stylistic/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