Index: clang/tools/clang-format/ClangFormat.cpp =================================================================== --- clang/tools/clang-format/ClangFormat.cpp +++ clang/tools/clang-format/ClangFormat.cpp @@ -106,9 +106,9 @@ cl::cat(ClangFormatCategory)); static cl::opt 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)); @@ -418,6 +418,17 @@ .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 (ConstAlignment.contains("type")) { + FormatStyle->QualifierAlignment = FormatStyle::QAS_Custom; + SmallVector Qualifiers; + ConstAlignment.split(Qualifiers, " ", /*MaxSplit=*/-1, /*KeepEmpty=*/false); + FormatStyle->QualifierOrder = {Qualifiers.begin(), Qualifiers.end()}; + } + if (SortIncludes.getNumOccurrences() != 0) { if (SortIncludes) FormatStyle->SortIncludes = FormatStyle::SI_CaseSensitive;