.clang-format 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. # .clang-format
  2. # 这是一个尝试接近 Qt 风格的配置。
  3. # Qt 的风格比较独特,可能需要结合 Clang-Format 的其他选项和手动调整。
  4. BasedOnStyle: Google # Google 风格的控制流大括号是同行的,作为起点。
  5. # 也可以尝试 BasedOnStyle: LLVM
  6. IndentWidth: 4
  7. UseTab: Never
  8. ColumnLimit: 100 # 建议行宽
  9. # Qt 类和函数的大括号在新行,控制流语句的大括号同行。
  10. # Clang-Format 的 BreakBeforeBraces 选项很难完美匹配这种混合风格。
  11. # AttachStyle: 用于控制流语句的大括号行为,通常与 K&R 风格(同行)一致。
  12. # 对于类和函数,你可能需要更复杂的 Clang-Format 配置,或者接受一点偏差。
  13. # 默认的 BasedOnStyle: Google 或 LLVM 已经把控制流语句的大括号放在同行了。
  14. BreakBeforeBraces: Attach # 用于 if/for/while 等控制流语句,使其大括号与语句同行
  15. # 对于类、函数、命名空间等大括号的控制:
  16. # Qt 风格中,类、函数、命名空间的大括号是新一行的。
  17. # Clang-Format 没有一个直接的 BreakBeforeBraces 选项来完美匹配这种组合。
  18. # Default/Custom 会根据情况进行调整。
  19. # 通常,当你设置 BreakBeforeBraces: Attach 时,类和函数的大括号会默认在新行。
  20. # 这是一个需要你测试和验证的部分。
  21. AlignTrailingComments: true # 尾随注释的对齐
  22. # 指针/引用符
  23. PointerAndReferenceBindsToType: false # * 和 & 紧贴变量名 (e.g., int *x)
  24. # 或 true 如果你喜欢紧贴类型 (e.g., int* x),Qt 官方更常用前者,但后者也常见。
  25. # 注意:Qt 官方指南里是这样写的:`char *ptr;` 但实际代码中 `char* ptr;` 也大量存在。
  26. # 其他常见的 Q_PROPERTY 相关的对齐
  27. AllowShortBlocksOnASingleLine: Empty # {} 可以放在一行
  28. # 确保在项目中安装了 Clang-Format VS Code 扩展,并设置为保存时格式化。