生涯未熟

生涯未熟

プログラミングをちょこちょこと。

Protocol Buffersにclang-formatをかけるとインデント崩れを起こすパターンがある

Protocol Buffersをシコシコ使ってるんですが、clang-formatをかけると具合の悪くなるパターンを発見したのでメモ。

ちなみに一応書いときますがclang-formatはProtocol Buffersをサポートしてます。

github.com

どういうパターン?

例えばこういうパターンです。

これに対してclang-formatをかけると・・・

🤔🤔🤔🤔🤔🤔🤔🤔🤔🤔

なんでこうなるの?

調べたけどソースコード読むのダルくてわからん。
ただLLVMのbug reportはされているみたいなので、バグという認識をしている人はちゃんといるっぽい。

bugs.llvm.org

応急措置

このままじゃ困るので一旦の応急措置。

はい。微妙な違いなのですがoption内でセミコロンを使わないってことをしています。
こうするとclang-formatをかけても・・・

schema のところがちょっと変わっちゃいましたが、まぁ概ね問題無しですね。

まとめ

というわけで、clang-formatでインデント崩れ起こしちゃうパターンがあるよという話でした。
まぁバグっぽい挙動なので直るのを粛々と待つしかないですね・・・