clang-formatを使って整形


プロジェクトでインデントルールなどを揃えたい時に使える clang-format と Alcatraz
Alcatrazについてはこちらを参考に導入 → http://qiita.com/masuhara/items/95185be077d3fc29a00f

そしてPackage ManagerからClangFormatプラグインをインストールします。
※以下、インストールした後なので左側が"remove"になってます

ファイル保存時に自動で適用するように設定(Edit -> Clang Format -> Enable Format on Save を選択)
スタイルの設定はファイルから読み込むように設定(Edit -> Clang Format -> File を選択)

clang-formatに関してはhomebrewでインストールすることにしましょう

brew tap tcr/tcr
brew install clang-format

本題

で、ここからなのですが、clang-formatコマンドを使ってXcodeを起動せずにフォーマットするにはどうしたらいいのか調べました。
プロジェクトで利用している .clang-formatの中身はこれだけです

% cat .clang-format
---
BasedOnStyle:  Google
ColumnLimit: 110
BinPackParameters: false

これを使ってファイルを整形するには以下の通りにするとうまくいきます

clang-format -i  -style="{BasedOnStyle: Google, ColumnLimit: 110, BinPackParameters: false}"  Classes/Some/File.cpp

ここまで書いた後で教えて頂いたのですが、.clang-formatと同じ内容でよければこれでいいみたいです

clang-format -i  -style=file  Classes/Some/File.cpp

※本当はAppCodeでおんなじ事をしたいのだが、 https://github.com/travisjeffery/ClangFormat-Xcode/issues/95 てことらしく
※ついでにいうとClangSharpとかってのもあるみたいなので、XamarinやMonoDevelopでうまくつかえないものか