Ist es möglich, Variablenzuweisungen im Clang-Format in Spalten auszurichten? Zum Beispiel:
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
};
ist besser lesbar als:
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
};
Mir ist klar, dass es für Clang-Format möglicherweise nicht praktisch ist, dies immer zu tun, aber wenn der Code bereits wie der besagte Code manuell formatiert wurde, wäre es schön, wenn das Clang-Format die Formatierung beibehalten würde.
Es sieht so aus, als ob 3.7 so etwas unterstützt (noch nicht getestet).
Von dem Dokumente
AlignConsecutiveAssignments (bool)
Wenn wahr, werden aufeinanderfolgende Zuweisungen ausgerichtet.
Dadurch werden die Zuweisungsoperatoren aufeinanderfolgender Zeilen ausgerichtet. Dies führt zu Formatierungen wie code int aaaa = 12; int b = 23; int ccc = 23; Endcode
(sieh)
Clang-Format hat dazu keine Option.
Wenn Sie clang-format anweisen möchten, bestimmte Zeilen in Ruhe zu lassen, können Sie dies mit tun // clang-format off
und // clang-format on
Kommentare.
Ich habe es mit getestet https://github.com/mattga/ClangFormat-Xcode/tree/clang_3.7 Dies ist ein Zweig von ClangFormat-Xcode, der 3.7 unterstützt.
Ich könnte a = 9999 formatieren; Geben Sie die Liste ein, wie ich es wollte, per Option
AlignConsecutiveAssignments = true
. Aber die Definitionen wurden nicht angeglichen. Gibt es einen Hinweis, sie auszurichten?
Für Makros: Es sieht so aus, als könnten Sie dies erreichen, sobald Clang 10 veröffentlicht wird, indem Sie hinzufügen AlignConsecutiveMacros: true
für dich .clang-format
https://reviews.llvm.org/D28462
Sie können diese Optionen verwenden: AlignConsecutiveMacros: true ref:https://clang.llvm.org/docs/ClangFormatStyleOptions.html
llvm-Version unterstützen: >=10.0
entkrusten hat eine Option dafür, aber kein Clang-Format.
– Jarod42
24. November 2014 um 18:10 Uhr
Es ist schockierend für mich, dass es dies nicht unterstützt. Macht das Clang-Format meiner Meinung nach unbrauchbar.
– David
10. Dezember 2014 um 18:15 Uhr
Die entsprechende Option von uncrustify ist: align_pp_define_span
– Cofiz
7. Januar 2015 um 5:48 Uhr