是否可以在列中使用clang-format对齐变量赋值?例如:
int someInteger = 42;
std::string someString = "string";
const unsigned someUnsigned = 42;
#define SOME_INTEGER 42
#define SOME_STRING_LITERAL "string"
#define SOME_CONSTANT 42
enum Enum {
ONE = 1,
TWO = 2,
THREE = 3,
FOUR = 4,
FIVE = 5,
SIX = 6,
SEVEN = 7
};
比以下内容更具可读性:
int someInteger = 42;
const unsigned someUnsigned = 42;
std::string someString = "string";
#define SOME_INTEGER 42
#define SOME_STRING_LITERAL "string"
#define SOME_CONSTANT 42
enum Enum {
ONE = 1,
TWO = 2,
THREE = 3,
FOUR = 4,
FIVE = 5,
SIX = 6,
SEVEN = 7
};
我意识到clang-format总是这样做可能不太实际,但是当代码已经像所说的代码一样手动格式化时,clang格式就可以保留格式。
答案 0 :(得分:12)
看起来3.7支持这样的东西(尚未测试)。
来自docs
AlignConsecutiveAssignments(bool)
如果为true,则对齐连续分配。这将对齐连续行的赋值运算符。这将导致格式化,如代码int aaaa = 12; int b = 23; int ccc = 23; endcode
(原文如此)
答案 1 :(得分:3)
Clang-format没有任何选项可以做到这一点。
如果您想告诉clang-format单独保留某些行,您可以使用// clang-format off
和// clang-format on
条评论来完成此操作。
答案 2 :(得分:1)
我使用https://github.com/mattga/ClangFormat-Xcode/tree/clang_3.7测试了它,它是支持3.7的ClangFormat-Xcode的分支。
我可以格式化a = 9999;按选项
按需要键入列表AlignConsecutiveAssignments = true
。但定义并未一致。 是否有迹象表明它们是一致的?
答案 3 :(得分:1)
对于宏:似乎在释放lang 10时,您可以通过向您添加AlignConsecutiveMacros: true
.clang-format
答案 4 :(得分:0)
您可以使用以下选项:AlignConsecutiveMacros:true 参考:https://clang.llvm.org/docs/ClangFormatStyleOptions.html 支持llvm版本:> = 10.0