clang-format:是否禁用宏格式设置?

时间:2019-01-24 13:25:25

标签: c++ clang-format

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

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

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

在这些问题上有帮助吗?谢谢!

1 个答案:

答案 0 :(得分:5)

您可以将宏包装在其中

// 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会分析文件中&*最常见的对齐方式并使用它)。