Author: mydeveloperday Date: 2021-09-24T08:11:53+01:00 New Revision: 87ab958641fa30ed1e5880aaf43b909c552af0dc
URL: https://github.com/llvm/llvm-project/commit/87ab958641fa30ed1e5880aaf43b909c552af0dc DIFF: https://github.com/llvm/llvm-project/commit/87ab958641fa30ed1e5880aaf43b909c552af0dc.diff LOG: [clang-format] ensure clang-format command-line argument sets up the default left/right qualifier ordering When specifying the alignment direction on the command line ensure we set up the default ordering. Fix spelling mistakes in the command-line argument Reviewed By: HazardyKnusperkeks Differential Revision: https://reviews.llvm.org/D110359 Added: Modified: clang/tools/clang-format/ClangFormat.cpp Removed: ################################################################################ diff --git a/clang/tools/clang-format/ClangFormat.cpp b/clang/tools/clang-format/ClangFormat.cpp index 16d76a66afabc..368e63ef0aeab 100644 --- a/clang/tools/clang-format/ClangFormat.cpp +++ b/clang/tools/clang-format/ClangFormat.cpp @@ -106,9 +106,9 @@ static cl::opt<bool> SortIncludes( 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)); @@ -410,14 +410,27 @@ static bool format(StringRef FileName) { 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; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits