You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置clang-format跳过@code与@endcode间的代码格式化

clang-format 跳过Doxygen @code/@endcode 代码块的实现方案

核心结论

不存在适配所有clang-format版本的零改造原生配置,可通过两种可落地的方式,实现@code与@endcode之间的内容不被格式化的需求。

方案1:全版本兼容的官方跳过语法

  • 直接在@code代码段的上下,插入clang-format的标准格式化开关注释,注释本身属于Doxygen块的普通内容,不会干扰最终生成的文档效果。
    示例写法:
/**
 * 示例
 * @code
 * // clang-format off
 * int main()
 * {
 *  return 0;
 * }
 * // clang-format on
 * @endcode
 */
  • 特点:不受clang-format版本限制,是官方指定的强制跳过格式化机制,插入后无论后续配置如何调整,被两行开关包裹的内容都不会被自动重排。

方案2:高版本自定义关键字绑定(无额外注释开销)

  • 针对clang-format 14及以上版本,可直接在.clang-format配置文件中,将@code、@endcode映射为格式化开关的触发关键字,完全不需要手动插入额外的开关注释行。
    配置写法:
---
FormatOff: ["@code"]
FormatOn: ["@endcode"]
  • 特点:配置生效后,clang-format的扫描逻辑会将注释内的@code等价于跳过格式化触发点,@endcode等价于恢复格式化触发点,完全贴合原有@code块的格式边界,不需要额外维护手动插入的开关行。

常见误区提醒:CommentPragmas这类注释类配置仅能控制注释内容本身的排版规则,无法实现整块内容跳过格式化的效果,不要混淆配置的能力边界。


内容的提问来源于stack exchange,提问作者Magdalena

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.30 10:27:03