clang-formatのスタイル設定
clang-formatはC/C++/Objective-Cのソースコードを整形するツールです。「美しいフォーマット」について自分で考えるのが面倒になってきたので導入しました。動作例などは以下を参照してください。
スタイルオプションは以下のページが参考になります。
ClangFormatスタイルオプション — Algo13 2015.10.04 ドキュメント
私は次のようなスクリプトを書いて,リポジトリに突っ込んでいます。
#!/bin/zsh ls src/**/*.{cpp,h} | xargs clang-format -i -style="{ BasedOnStyle: LLVM, Standard: Cpp11, ColumnLimit: 0, Cpp11BracedListStyle: false }"
- ポインタの
*
や参照の&
を付ける位置はint *p
のように変数側に付ける派だったり,インデントはスペースで2文字分派だったりするので,BasedOnStyle: LLVM
を基本としています - C++03縛りとかは別に無いので
Standard: Cpp11
にしています ColumnLimit: 0
は長い行の途中に自動で改行を入れる処理を無効にするオプションです。clang-formatが入れてくれる改行の位置が私の美的センス(笑)と離れているような気がするので,改行位置を自分で決めるために無効にしています{ 1, 2, 3 }
のようにリストリテラルの内側にはスペースを入れたいのでCpp11BracedListStyle: false
としています