将 clang-format 的版本从 12 升级到 13 後,我写的一个代码生成器生成的代码无故多了一些空行。
经检查,是 KeepEmptyLinesAtTheStartOfBlocks
选项失效了。
示例代码:
1 | namespace A { |
所用配置:
1 | BasedOnStyle: llvm |
clang-format 12 格式化的效果:
1 | namespace A { |
clang-format 13 格式化的效果:
1 | namespace A { |
可见 namespace
块中第一个空行在 clang-format 13 中得以保留。
这件事在 clang-format 的 release notes 上是找不到的,仔细搜索才发现,开发团队认为之前的行为是一个 bug:
https://github.com/llvm/llvm-project/commit/e5a8f230c765aebff34221cb3e084316496fc08e