概要
社内で、とあるプロジェクトのソースをマージしようとした時の話です。
やけに差分が多いなと思っていると、どうやらロジック自体に変更はなく、コードに整形がかかってたり、いなかったりしている様子。
そういえばマージリクエストを出してくれてるのは今週から入ったメンバーだな、と思い問い合わせてみると・・・
なにが起きたか
開発者によってVSCodeの拡張機能や設定が異なり、特にPrettier等のコードフォーマッター周りの設定が異なると、各自が修正したかった箇所以外にも整形がかかる(もしくはかからない)状態となっていました。
結果的にマージ時に、意図しない差分が発生してなかなかに手間になっていました。
実例として、自分が遭遇したのは下記の例です。
format on saveが有効/無効になっている
format on saveはCtrl + Sで保存した際にコードフォーマットをする/しないの設定です。
これが開発チーム内で統一されていれば良かったのですが、今回はされていませんでした。
format on saveの確認方法はVSCodeの【設定】から検索するか、Settings.jsonに下記の記載があるかで参照できます。
{
"editor.formatOnSave": true
}
まとめ
すぐに原因が分かったため、チーム内であらためてformat on saveをはじめとするVSCodeの設定について共有しました。
余談ですが、複数プロジェクトにまたがってアサインしている場合は、プロジェクト毎に開発規約が異なり、整形ルールも変わってくると思うのでformat on save等はワークスペースの設定に持っていくことをお勧めします。
そのあたりは下記記事が詳しいです。
備考
個人ブログの方にも同様の記事を掲載してあります。