c++ c c++11 clang clang-format

c++ - ¿Se pueden alinear las asignaciones de variables o macros de formato clang en columnas?



c++11 clang-format (3)

¿Es posible tener asignaciones de variable de alineación de formato de Clang en columnas? Por ejemplo:

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 };

es más legible que:

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 };

Me doy cuenta de que puede que no sea práctico que el formato clang haga esto siempre, pero cuando el código ya se haya formateado manualmente como dicho código, sería bueno que el formato clang deje el formato en su lugar.


Clang-format no tiene ninguna opción para hacer esto.

Si quiere decirle a clang-format que deje algunas líneas solas, puede hacerlo con // clang-format off y // clang-format on comentarios.


Lo probé utilizando https://github.com/mattga/ClangFormat-Xcode/tree/clang_3.7 que es una rama de ClangFormat-Xcode que soporta 3.7.

Podría formatear a = 9999; Escriba la lista como quisiera por opción

AlignConsecutiveAssignments = true

. Pero las definiciones no estaban alineadas. ¿Hay alguna indicación para alinearlos?


Parece que 3.7 es compatible con algo como esto (todavía no lo he probado).

De los docs

AlignConsecutiveAssignments (bool)
Si es verdadero, alinea asignaciones consecutivas.

Esto alineará los operadores de asignación de líneas consecutivas. Esto resultará en formateados como el código int aaaa = 12; int b = 23; int ccc = 23; codigo final

(sic)