我们在包含外部库时包含了保护某些定义的机制,我们希望在格式化代码时保持原样,最终按字母顺序对块的内容进行排序。
例如:
#include <ExternalIncludeBegin.h>
# include <somelib/someheader.h>
# include <somelib/anotherheader.h>
#include <ExternalIncludeEnd.h>
现在,clang格式将这个块转换为
#include <ExternalIncludeBegin.h>
#include <somelib/someheader.h>
#include <somelib/anotherheader.h>
#include <ExternalIncludeEnd.h>
但是我想保留原始缩进,如果可能的话,不必用新代码封装所有内容(我们想要格式化的代码库又旧又大(,clang格式在这里可以为我做什么吗?
看看"禁用格式"功能
Disabling Formatting on a Piece of Code
Clang-format understands also special comments that switch formatting in a delimited range. The code between a comment // clang-format off or /* clang-format off */ up to a comment // clang-format on or /* clang-format on */ will not be formatted. The comments themselves will be formatted (aligned) normally.
int formatted_code;
// clang-format off
void unformatted_code ;
// clang-format on
void formatted_code_again;
更多详细信息: https://clang.llvm.org/docs/ClangFormatStyleOptions.html
因此,您也可以使用"sed"或其他工具,以便在整个项目中注入特定于 clang 的注释。