Xcodeでのコード整形

XcodeでVisualStudioのようにコード整形はどうすれば出来る?と思って調べたのですが、どうもそんな機能は無いようです。
というわけで、コード整形するにはどうすれば?と思って探して見つかったのが、Uncrustifyでした。*1
(他にも"GNU indent"、"Astyle"という辺りが有名なようです。)


まずは、上記サイトからダウンロードしてきてインストール。

$ ./configure
$ make
$ sudo make install

そして、hippos-labさんでuncrustifyをXCodeで便利に使うという記事があったので、これはナイスです、と早速使わせてもらいました。

下記の内容をユーザスクリプトに追加する事で、Xcode上からコード整形が行えるようになります。
ユーザスクリプトの追加時に、選択箇所のみか、文書全体かを選べますので、両パターンで登録しておくのがよいかと思います。*2

echo -n "%%%{PBXSelection}%%%"
/usr/local/bin/uncrustify -q -l oc -c ${HOME}/share/uncrustify.cfg/gnu-indent.cfg <&0
echo -n "%%%{PBXSelection}%%%"
*3

上記スクリプトで、コンフィグファイルを指定していますが、これがまたかなり細かく指定出来るので思うようなコード整形が行えると思います。
コンフィグファイルの設定はちょっと昔のバージョンのようですが、いきちがいのぷろぐらむあさんの所で説明がありましたので、こちらを参考にさせてもらいました。
ただ、テストフォルダにObjective-C用のコンフィグファイル*4が入っていますので、そちらをそのまま使用しても、それなりにいい感じですし、これをベースに自分好みに設定していくのが基本でしょうね。


というわけで設定はまだまだですが、無事コード整形が行えるようになりました。
次はメモリリークとか、文法チェックとかその辺りのツールを調べたい所です。

*1:正確な読み方がわからない。アンクルスティフィ?、アンクルスティファイ?

*2:ユーザスクリプトの設定方法はこちら

*3:gnu-indent.cfgは好きなファイルを指定して下さい。

*4:uncrustify-0.5X/tests/config/obj-c.cfg