我正在使用clang-format作为代码库的自动格式化工具。但是它的某些功能困扰着我。
例如,我不希望它格式化我的宏定义,因为在大多数情况下,仅手动格式化它们就更清楚了。但是我不知道如何以clang格式禁用它。
另一个小问题是指针对齐。有时候,很明显使它向左对齐,有时是正确的。所以我宁愿手工做。但是从clang格式禁用它似乎是不可能的吗?
在这些问题上有帮助吗?谢谢!
答案 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
会分析文件中&
和*
最常见的对齐方式并使用它)。