今日はUncrustifyと言う多種言語用のフォーマッタについて書きたいと思います。
チームコーディングをしている人は分かると思うのですが、コーディングの仕方は人それぞれです。
nullチェックや、メソッドの書き方、変数名の決め方など人によって本当にばらばらです。
中でも、大変なのがフォーマット。
例えば・・・
【hogeと言うBOOL値がYESの時にhogehogeと出力する。】
と言うコードを書きたいとして、
if(hoge) { NSLog(@"hogehoge-"); }
なんてコードを書く人もいれば
if(hoge) NSLog(@"hogehoge-");
と言う人もいれば、
if(hoge) { NSLog(@"hogehoge-"); }
と言う人もいるし、もしかしたら
if(hoge) { NSLog(@"hogehoge-"); }
と書きたい人もいるかもしれません。
それぞれが好きな様に書いてたら第三者が加わった時に読みにくいソースになっているのは目に見えています。
そんな時に役に立つのがフォーマッタですね。
予め条件を指定しておくとそれに従って勝手にコードのフォーマットを決定してもらうのです。
前提として、フォーマッタで設定されているのには文句を言わないと言う条件は必要ですが笑
設定
設定方法です。
git clone git://github.com/bengardner/uncrustify.git [install location] cd uncrustify/ ./configure make sudo make install
これで、/usr/local/binにuncrustifyが保存されます。
後は、XCodeに戻り環境設定のKey Bindingsでショートカットを指定してuncrastify.shを実行させるもよし。
Behaviorsタブのビルドをしたタイミングでシェルスクリプトを走らせる様に設定しても良し。(下図参照)
ってな感じですね。
これで、チームコーディングでフォーマットにおいてあーだこーだ後からもめなくてすむし、後から誰かが入って来てもこれを入れればフォーマットを意識する事なくフォーマットされる。
ハッピーですね!
コメント