TL;DR
- フォーマットが気になるなら CI 入れればよい(本質)
- かなりくだらないが
-dump-config
オプションで確認しながら適当にオプション変更していって良さげにすることはできる
clang-format でフォーマットする
ここ最近は Protocol Buffers で gRPC サーバの仕様を書いています。
.proto
ファイルのフォーマットには clang-format を使っているのですが、 CI とかでフォーマットを共通化していない、けど他の人も編集するファイルでフォーマットをなんとなく合わせていきたいみたいなときに(これは本質ではないので、殆どの場合そのようなことはしなくてよいと思う)、 clang-format を使うんだけどどのフォーマットオプションが有効になってるかよくわからんということがありました。
そのようなときに、使ってそうなオプションをドキュメントを参照しながら試していくんですが、そもそもデフォルトで何が有効になってるか調べるのが面倒です。
-dump-config
を使うと有効になっているオプションが一覧表示されるので、それを見ながら雑に調整していくことができます。
clang-format -style='{AlignConsecutiveAssignments: true, ColumnLimit: 80, AllowShortFunctionsOnASingleLine: Empty}' -dump-config myserver.proto
---
Language: Proto
AccessModifierOffset: -2
AlignAfterOpenBracket: Align
# ... 省略
-dump-config
と -style
オプションは併用できて、 -style
で追加したオプションが反映された状態で一覧表示されます。