cl::cat(ClangFormatCategory));
static cl::opt<std::string> QualifierAlignment(
- "qualifier-aligment",
+ "qualifier-alignment",
cl::desc(
- "If set, overrides the cvqualifier style behavior determined by the "
+ "If set, overrides the qualifier alignment style determined by the "
"QualifierAlignment style flag"),
cl::init(""), cl::cat(ClangFormatCategory));
return true;
}
- StringRef ConstAlignment = QualifierAlignment;
+ StringRef QualifierAlignmentOrder = QualifierAlignment;
FormatStyle->QualifierAlignment =
- StringSwitch<FormatStyle::QualifierAlignmentStyle>(ConstAlignment.lower())
+ StringSwitch<FormatStyle::QualifierAlignmentStyle>(
+ QualifierAlignmentOrder.lower())
.Case("right", FormatStyle::QAS_Right)
.Case("left", FormatStyle::QAS_Left)
.Default(FormatStyle->QualifierAlignment);
+ if (FormatStyle->QualifierAlignment == FormatStyle::QAS_Left)
+ FormatStyle->QualifierOrder = {"const", "volatile", "type"};
+ else if (FormatStyle->QualifierAlignment == FormatStyle::QAS_Right)
+ FormatStyle->QualifierOrder = {"type", "const", "volatile"};
+ else if (QualifierAlignmentOrder.contains("type")) {
+ FormatStyle->QualifierAlignment = FormatStyle::QAS_Custom;
+ SmallVector<StringRef> Qualifiers;
+ QualifierAlignmentOrder.split(Qualifiers, " ", /*MaxSplit=*/-1,
+ /*KeepEmpty=*/false);
+ FormatStyle->QualifierOrder = {Qualifiers.begin(), Qualifiers.end()};
+ }
+
if (SortIncludes.getNumOccurrences() != 0) {
if (SortIncludes)
FormatStyle->SortIncludes = FormatStyle::SI_CaseSensitive;