clang-format で雑にフォーマットオプションを調整する

Jul 8, 2021 ( Feb 11, 2022 更新 )

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 で追加したオプションが反映された状態で一覧表示されます。

Return to top