CLANG 格式:禁用宏的格式设置

clang-format: disable formatting for macros?

本文关键字:格式 设置 CLANG      更新时间:2023-10-16

我正在使用 clang-format 作为我的代码库的自动格式化工具。但它的一些功能困扰着我。

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

另一个小问题是指针对齐。有时,很明显要向左对齐,有时向右对齐。所以我宁愿用手做。但是从 clang 格式禁用它似乎是不可能的?

对这些问题有什么帮助吗?

您可以将宏包装在

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

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

search: ^([ t]*#[ t]*define[ t]+.+?\r?n(?:.*?\r?n)*.*?r?n)
replace: // clang-format offrn$1// clang-format onrn

例如,在记事本++中,Ctrl + Shift+ F - "在文件中查找 - "在文件中替换"。

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