ktlintをpre-commitに引っ掛けてコードフォーマットする
元々php書いてて、php-cs-fixerをpre-commitでフックして整形してたなぁ…と思って最近Androidをkotlinでソース書いてるときに、同じようなやつkotlin版ないのかなぁと調べたらちゃんとありましたね。
ということでphp-cs-fixerのパターンと同様にktlintでフォーマットかけます pre-commitのscriptはこちらを参考にしました
結果以下のようなpre-commitにしました
#!/bin/sh if git rev-parse --verify HEAD >/dev/null 2>&1 then against=HEAD else # Initial commit: diff against an empty tree object against=4b825dc642cb6eb9a060e54bf8d69288fbee4904 fi # Redirect output to stderr. exec 1>&2 # コミットされるファイルのうち、.ktで終わるもの for FILE in `git diff-index --name-status $against -- | grep -E '^[AUM].*\.kt$'| cut -c3-`; do /usr/local/bin/ktlint -F $FILE git add $FILE done
以上でとりあえずpre-commitでktlintによるコードフォーマットが行われるのでちょっと便利