[clang] [clang-format][NFC] Clean up AlignConsecutiveStyle (PR #111285)
Owen Pan via cfe-commits
cfe-commits at lists.llvm.org
Sun Oct 6 18:15:16 PDT 2024
https://github.com/owenca updated https://github.com/llvm/llvm-project/pull/111285
>From b1bcd59b45230dd3b82c09ae0a32ce45f2ff9bdc Mon Sep 17 00:00:00 2001
From: Owen Pan <owenpiano at gmail.com>
Date: Sun, 6 Oct 2024 02:27:59 -0700
Subject: [PATCH] [clang-format][NFC] Clean up AlignConsecutiveStyle
---
clang/docs/ClangFormatStyleOptions.rst | 79 ++++++++++++----------
clang/include/clang/Format/Format.h | 13 ++--
clang/lib/Format/Format.cpp | 17 +----
clang/unittests/Format/ConfigParseTest.cpp | 23 +++----
4 files changed, 63 insertions(+), 69 deletions(-)
diff --git a/clang/docs/ClangFormatStyleOptions.rst b/clang/docs/ClangFormatStyleOptions.rst
index a16edb0989b05c..27c3e12087dd26 100644
--- a/clang/docs/ClangFormatStyleOptions.rst
+++ b/clang/docs/ClangFormatStyleOptions.rst
@@ -249,7 +249,7 @@ the configuration (without a prefix: ``Auto``).
.. _AlignArrayOfStructures:
**AlignArrayOfStructures** (``ArrayInitializerAlignmentStyle``) :versionbadge:`clang-format 13` :ref:`ΒΆ <AlignArrayOfStructures>`
- if not ``None``, when using initialization for an array of structs
+ If not ``None``, when using initialization for an array of structs
aligns the fields into columns.
@@ -307,11 +307,12 @@ the configuration (without a prefix: ``Auto``).
Alignment options.
They can also be read as a whole for compatibility. The choices are:
- - None
- - Consecutive
- - AcrossEmptyLines
- - AcrossComments
- - AcrossEmptyLinesAndComments
+
+ * ``None``
+ * ``Consecutive``
+ * ``AcrossEmptyLines``
+ * ``AcrossComments``
+ * ``AcrossEmptyLinesAndComments``
For example, to align across empty lines and not across comments, either
of these work.
@@ -449,11 +450,12 @@ the configuration (without a prefix: ``Auto``).
Alignment options.
They can also be read as a whole for compatibility. The choices are:
- - None
- - Consecutive
- - AcrossEmptyLines
- - AcrossComments
- - AcrossEmptyLinesAndComments
+
+ * ``None``
+ * ``Consecutive``
+ * ``AcrossEmptyLines``
+ * ``AcrossComments``
+ * ``AcrossEmptyLinesAndComments``
For example, to align across empty lines and not across comments, either
of these work.
@@ -591,11 +593,12 @@ the configuration (without a prefix: ``Auto``).
Alignment options.
They can also be read as a whole for compatibility. The choices are:
- - None
- - Consecutive
- - AcrossEmptyLines
- - AcrossComments
- - AcrossEmptyLinesAndComments
+
+ * ``None``
+ * ``Consecutive``
+ * ``AcrossEmptyLines``
+ * ``AcrossComments``
+ * ``AcrossEmptyLinesAndComments``
For example, to align across empty lines and not across comments, either
of these work.
@@ -734,11 +737,12 @@ the configuration (without a prefix: ``Auto``).
Alignment options.
They can also be read as a whole for compatibility. The choices are:
- - None
- - Consecutive
- - AcrossEmptyLines
- - AcrossComments
- - AcrossEmptyLinesAndComments
+
+ * ``None``
+ * ``Consecutive``
+ * ``AcrossEmptyLines``
+ * ``AcrossComments``
+ * ``AcrossEmptyLinesAndComments``
For example, to align across empty lines and not across comments, either
of these work.
@@ -996,11 +1000,12 @@ the configuration (without a prefix: ``Auto``).
Alignment options.
They can also be read as a whole for compatibility. The choices are:
- - None
- - Consecutive
- - AcrossEmptyLines
- - AcrossComments
- - AcrossEmptyLinesAndComments
+
+ * ``None``
+ * ``Consecutive``
+ * ``AcrossEmptyLines``
+ * ``AcrossComments``
+ * ``AcrossEmptyLinesAndComments``
For example, to align across empty lines and not across comments, either
of these work.
@@ -1136,11 +1141,12 @@ the configuration (without a prefix: ``Auto``).
Alignment options.
They can also be read as a whole for compatibility. The choices are:
- - None
- - Consecutive
- - AcrossEmptyLines
- - AcrossComments
- - AcrossEmptyLinesAndComments
+
+ * ``None``
+ * ``Consecutive``
+ * ``AcrossEmptyLines``
+ * ``AcrossComments``
+ * ``AcrossEmptyLinesAndComments``
For example, to align across empty lines and not across comments, either
of these work.
@@ -1276,11 +1282,12 @@ the configuration (without a prefix: ``Auto``).
Alignment options.
They can also be read as a whole for compatibility. The choices are:
- - None
- - Consecutive
- - AcrossEmptyLines
- - AcrossComments
- - AcrossEmptyLinesAndComments
+
+ * ``None``
+ * ``Consecutive``
+ * ``AcrossEmptyLines``
+ * ``AcrossComments``
+ * ``AcrossEmptyLinesAndComments``
For example, to align across empty lines and not across comments, either
of these work.
diff --git a/clang/include/clang/Format/Format.h b/clang/include/clang/Format/Format.h
index 53a9577e0f72e7..7070720fa66ccb 100644
--- a/clang/include/clang/Format/Format.h
+++ b/clang/include/clang/Format/Format.h
@@ -131,7 +131,7 @@ struct FormatStyle {
/// Don't align array initializer columns.
AIAS_None
};
- /// if not ``None``, when using initialization for an array of structs
+ /// If not ``None``, when using initialization for an array of structs
/// aligns the fields into columns.
///
/// \note
@@ -145,11 +145,12 @@ struct FormatStyle {
/// Alignment options.
///
/// They can also be read as a whole for compatibility. The choices are:
- /// - None
- /// - Consecutive
- /// - AcrossEmptyLines
- /// - AcrossComments
- /// - AcrossEmptyLinesAndComments
+ ///
+ /// * ``None``
+ /// * ``Consecutive``
+ /// * ``AcrossEmptyLines``
+ /// * ``AcrossComments``
+ /// * ``AcrossEmptyLinesAndComments``
///
/// For example, to align across empty lines and not across comments, either
/// of these work.
diff --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp
index 5350c66ea5132b..432110de85c85d 100644
--- a/clang/lib/Format/Format.cpp
+++ b/clang/lib/Format/Format.cpp
@@ -44,11 +44,7 @@ struct ScalarEnumerationTraits<FormatStyle::BreakBeforeNoexceptSpecifierStyle> {
template <> struct MappingTraits<FormatStyle::AlignConsecutiveStyle> {
static void enumInput(IO &IO, FormatStyle::AlignConsecutiveStyle &Value) {
- IO.enumCase(Value, "None",
- FormatStyle::AlignConsecutiveStyle(
- {/*Enabled=*/false, /*AcrossEmptyLines=*/false,
- /*AcrossComments=*/false, /*AlignCompound=*/false,
- /*AlignFunctionPointers=*/false, /*PadOperators=*/true}));
+ IO.enumCase(Value, "None", FormatStyle::AlignConsecutiveStyle({}));
IO.enumCase(Value, "Consecutive",
FormatStyle::AlignConsecutiveStyle(
{/*Enabled=*/true, /*AcrossEmptyLines=*/false,
@@ -76,11 +72,7 @@ template <> struct MappingTraits<FormatStyle::AlignConsecutiveStyle> {
{/*Enabled=*/true, /*AcrossEmptyLines=*/false,
/*AcrossComments=*/false, /*AlignCompound=*/false,
/*AlignFunctionPointers=*/false, /*PadOperators=*/true}));
- IO.enumCase(Value, "false",
- FormatStyle::AlignConsecutiveStyle(
- {/*Enabled=*/false, /*AcrossEmptyLines=*/false,
- /*AcrossComments=*/false, /*AlignCompound=*/false,
- /*AlignFunctionPointers=*/false, /*PadOperators=*/true}));
+ IO.enumCase(Value, "false", FormatStyle::AlignConsecutiveStyle({}));
}
static void mapping(IO &IO, FormatStyle::AlignConsecutiveStyle &Value) {
@@ -1441,11 +1433,6 @@ FormatStyle getLLVMStyle(FormatStyle::LanguageKind Language) {
LLVMStyle.AlignAfterOpenBracket = FormatStyle::BAS_Align;
LLVMStyle.AlignArrayOfStructures = FormatStyle::AIAS_None;
LLVMStyle.AlignConsecutiveAssignments = {};
- LLVMStyle.AlignConsecutiveAssignments.AcrossComments = false;
- LLVMStyle.AlignConsecutiveAssignments.AcrossEmptyLines = false;
- LLVMStyle.AlignConsecutiveAssignments.AlignCompound = false;
- LLVMStyle.AlignConsecutiveAssignments.AlignFunctionPointers = false;
- LLVMStyle.AlignConsecutiveAssignments.Enabled = false;
LLVMStyle.AlignConsecutiveAssignments.PadOperators = true;
LLVMStyle.AlignConsecutiveBitFields = {};
LLVMStyle.AlignConsecutiveDeclarations = {};
diff --git a/clang/unittests/Format/ConfigParseTest.cpp b/clang/unittests/Format/ConfigParseTest.cpp
index b8bdfaaa74e10e..b39ec7ddc06729 100644
--- a/clang/unittests/Format/ConfigParseTest.cpp
+++ b/clang/unittests/Format/ConfigParseTest.cpp
@@ -300,12 +300,8 @@ TEST(ConfigParseTest, ParsesConfiguration) {
#define CHECK_ALIGN_CONSECUTIVE(FIELD) \
do { \
Style.FIELD.Enabled = true; \
- CHECK_PARSE( \
- #FIELD ": None", FIELD, \
- FormatStyle::AlignConsecutiveStyle( \
- {/*Enabled=*/false, /*AcrossEmptyLines=*/false, \
- /*AcrossComments=*/false, /*AlignCompound=*/false, \
- /*AlignFunctionPointers=*/false, /*PadOperators=*/true})); \
+ CHECK_PARSE(#FIELD ": None", FIELD, \
+ FormatStyle::AlignConsecutiveStyle({})); \
CHECK_PARSE( \
#FIELD ": Consecutive", FIELD, \
FormatStyle::AlignConsecutiveStyle( \
@@ -319,18 +315,20 @@ TEST(ConfigParseTest, ParsesConfiguration) {
/*AcrossComments=*/false, /*AlignCompound=*/false, \
/*AlignFunctionPointers=*/false, /*PadOperators=*/true})); \
CHECK_PARSE( \
- #FIELD ": AcrossEmptyLinesAndComments", FIELD, \
+ #FIELD ": AcrossComments", FIELD, \
FormatStyle::AlignConsecutiveStyle( \
- {/*Enabled=*/true, /*AcrossEmptyLines=*/true, \
+ {/*Enabled=*/true, /*AcrossEmptyLines=*/false, \
/*AcrossComments=*/true, /*AlignCompound=*/false, \
/*AlignFunctionPointers=*/false, /*PadOperators=*/true})); \
- /* For backwards compability, false / true should still parse */ \
CHECK_PARSE( \
- #FIELD ": false", FIELD, \
+ #FIELD ": AcrossEmptyLinesAndComments", FIELD, \
FormatStyle::AlignConsecutiveStyle( \
- {/*Enabled=*/false, /*AcrossEmptyLines=*/false, \
- /*AcrossComments=*/false, /*AlignCompound=*/false, \
+ {/*Enabled=*/true, /*AcrossEmptyLines=*/true, \
+ /*AcrossComments=*/true, /*AlignCompound=*/false, \
/*AlignFunctionPointers=*/false, /*PadOperators=*/true})); \
+ /* For backwards compability, false / true should still parse */ \
+ CHECK_PARSE(#FIELD ": false", FIELD, \
+ FormatStyle::AlignConsecutiveStyle({})); \
CHECK_PARSE( \
#FIELD ": true", FIELD, \
FormatStyle::AlignConsecutiveStyle( \
@@ -342,6 +340,7 @@ TEST(ConfigParseTest, ParsesConfiguration) {
CHECK_PARSE_NESTED_BOOL(FIELD, AcrossEmptyLines); \
CHECK_PARSE_NESTED_BOOL(FIELD, AcrossComments); \
CHECK_PARSE_NESTED_BOOL(FIELD, AlignCompound); \
+ CHECK_PARSE_NESTED_BOOL(FIELD, AlignFunctionPointers); \
CHECK_PARSE_NESTED_BOOL(FIELD, PadOperators); \
} while (false)
More information about the cfe-commits
mailing list