【问题标题】:clang-format: disable formatting for macros?clang-format:禁用宏的格式化?
【发布时间】:2019-06-18 06:03:46
【问题描述】:

我使用 clang-format 作为我的代码库的自动格式化工具。但是它的一些功能让我很烦。

例如,我不希望它格式化我的宏定义,因为大多数时候,手动格式化它们会更清楚。但我不知道如何以 clang 格式禁用它。

另一个小问题是指针对齐。有时,让它左对齐很清楚,有时它是右对齐。所以我宁愿自己动手。但是从 clang-format 禁用它似乎是不可能的?

对这些问题有帮助吗?

【问题讨论】:

  • 你成功了吗?我试过使用BasedOnStyle: None,但它忽略了所有其他设置(据我所知,它也不应该这样做。

标签: c++ clang-format


【解决方案1】:

您可以将宏包装在

// clang-format off
#define ... \
   ...
// clang-format on

要避免手动编辑每个文件,您可以使用正则表达式

search: ^([ \t]*#[ \t]*define[ \t]+.+?\\\r?\n(?:.*?\\\r?\n)*.*?\r?\n)

replace: // clang-format off\r\n$1// clang-format on\r\n

例如,在 Notepad++ 中,Ctrl+Shift+F - “在文件中查找 - “在文件中替换”。

迄今为止(直到 v11)没有办法禁用指针对齐。您可以设置样式,也可以派生样式(clang-format 将分析文件以查找 &* 的最常见对齐方式并使用它)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-30
    • 1970-01-01
    • 2014-11-17
    • 1970-01-01
    • 1970-01-01
    • 2022-12-23
    • 1970-01-01
    相关资源
    最近更新 更多