ファイル末尾には改行を入れましょう
状況
コードを GitHub に push したらなんか警告みたいなのが出た.動作に問題があるわけではないがよくわからない.
ファイル末尾に改行を入れる理由
これは POSIX 規格でテキストファイルを「改行文字(\n)で区切られた行の集まり」と定義していることに由来する.ファイルの末尾に改行がない場合,最終行が他の行とは異なる扱いになってしまう可能性がある.要は「一行は改行まで含んで一行」とうことである.
また,差分ツールやエディタなどでは,末尾改行がないと意図しない差分として認識されることもあるため,注意喚起として警告マークなどが表示されることがある.
さらに,チーム開発においても末尾改行の有無は差分に影響が出やすい点であり,余計なコンフリクトを避けるためにも末尾改行を推奨する流れがある.したがって,特に大きなデメリットがない以上は末尾に改行を入れることが望ましいと言える.
Visual Studio Code で末尾改行を自動挿入する方法
設定画面から設定する場合
Visual Studio Code(以下,VS Code)では,保存時に自動的にファイル末尾に改行を入れる設定が用意されている.具体的には以下の手順を行う.
-
設定を開く
メニューバーから「ファイル > 設定 > 設定」を選択するか,ショートカットCtrl + ,
(Windows)あるいは⌘ + ,
(Mac)を押下して設定画面を開く. -
設定項目を検索する
検索バーに「final newline」と入力すると,「File: Insert Final Newline」や「File: Trim Final Newlines」といった項目が表示される. -
設定を有効にする
「File: Insert Final Newline」をオンにすることで,ファイルを保存したときに末尾に改行が自動的に挿入されるようになる.さらに,必要に応じて「File: Trim Final Newlines」をオンにすることで,ファイル末尾に複数の空白行が入らないように調整できる.
settings.json で直接編集する場合
VS Code の設定ファイル「settings.json」に以下の設定を追加しても同様の動作を得られる.
{
"files.insertFinalNewline": true,
"files.trimFinalNewlines": true
}
まとめ
ファイル末尾に改行を入れることは,POSIX 規格やツール間の互換性を保つ意味で推奨されている.実際の動作上は問題がなくても,差分ツールや GitHub などのバージョン管理ツールで警告が出る場合があるため,慣習に従って末尾改行を入れておくほうが望ましい.VS Code を使用している場合は,上述の設定を行うことで保存時に自動的に末尾改行が挿入されるため,作業効率の面からも便利である.
以上だ( `・ω・)b
Discussion