lazy-formatter
2021/12/21 14:05:21
最もファイル差分が小さくなるコードフォーマッターを選択する。
モード
write フォーマットする。ローカル環境などで使う。
check フォーマットされているかチェックする。PR で発火する CI などで使う。
lazy-formatter.json
formatter
pattern: command
アルゴリズム
✅ファイルにたいして、
✅ファイルを読み込んでメモリに保存。
✅minimatch パターンに一致するコマンドに対して
✅実ファイルに対してコマンド実行する。
ファイルパスで formatter の挙動が変わったりするので、実ファイルに対してコマンド実行する。
任意コードを実行できるので取扱注意。
✅コマンド実行後のファイルをメモリに保存。
✅ファイルをもとに戻す。
✅Diff.diffChars で差分文字数を数えて、最も差分が小さいコマンドを決定する
✅write モードならば、
✅最も差分の小さいファイルで上書きする。
✅check モードならば、
✅差分が発生している場合エラー出力する
${path} should be formatted by: ${command}
✅isError = true
✅isError ならば終了コード1にする。