我们拥有的机制可以在包含外部库时保护某些定义,我们希望在格式化代码时将它们保持原样,最终按字母顺序对块的内容进行排序。
例如:
#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格式可以为我做些什么吗?
答案 0 :(得分:0)
看看“禁用格式”功能
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的注释。