diff options
author | Owen Pan <owenpiano@gmail.com> | 2025-02-27 20:18:02 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-02-27 20:18:02 -0800 |
commit | 80f34e2716e8e69347ae16da5fff7114442db310 (patch) | |
tree | 93b3987ba316e282ff5c43210f64a8a87c78805b | |
parent | bafd44bff58cff9efe569a221b232bab004d55cd (diff) | |
download | llvm-80f34e2716e8e69347ae16da5fff7114442db310.zip llvm-80f34e2716e8e69347ae16da5fff7114442db310.tar.gz llvm-80f34e2716e8e69347ae16da5fff7114442db310.tar.bz2 |
[clang-format] Change BracedInitializerIndentWidth to int (#128988)
Fixes #108526
-rw-r--r-- | clang/docs/ClangFormatStyleOptions.rst | 4 | ||||
-rw-r--r-- | clang/include/clang/Format/Format.h | 4 | ||||
-rw-r--r-- | clang/lib/Format/ContinuationIndenter.cpp | 6 | ||||
-rw-r--r-- | clang/lib/Format/Format.cpp | 2 | ||||
-rw-r--r-- | clang/unittests/Format/ConfigParseTest.cpp | 10 |
5 files changed, 15 insertions, 11 deletions
diff --git a/clang/docs/ClangFormatStyleOptions.rst b/clang/docs/ClangFormatStyleOptions.rst index d157c07..9ecac68 100644 --- a/clang/docs/ClangFormatStyleOptions.rst +++ b/clang/docs/ClangFormatStyleOptions.rst @@ -2582,9 +2582,9 @@ the configuration (without a prefix: ``Auto``). .. _BracedInitializerIndentWidth: -**BracedInitializerIndentWidth** (``Unsigned``) :versionbadge:`clang-format 17` :ref:`¶ <BracedInitializerIndentWidth>` +**BracedInitializerIndentWidth** (``Integer``) :versionbadge:`clang-format 17` :ref:`¶ <BracedInitializerIndentWidth>` The number of columns to use to indent the contents of braced init lists. - If unset, ``ContinuationIndentWidth`` is used. + If unset or negative, ``ContinuationIndentWidth`` is used. .. code-block:: c++ diff --git a/clang/include/clang/Format/Format.h b/clang/include/clang/Format/Format.h index 46fb1d5..fec47a2 100644 --- a/clang/include/clang/Format/Format.h +++ b/clang/include/clang/Format/Format.h @@ -1289,7 +1289,7 @@ struct FormatStyle { BitFieldColonSpacingStyle BitFieldColonSpacing; /// The number of columns to use to indent the contents of braced init lists. - /// If unset, ``ContinuationIndentWidth`` is used. + /// If unset or negative, ``ContinuationIndentWidth`` is used. /// \code /// AlignAfterOpenBracket: AlwaysBreak /// BracedInitializerIndentWidth: 2 @@ -1319,7 +1319,7 @@ struct FormatStyle { /// } /// \endcode /// \version 17 - std::optional<unsigned> BracedInitializerIndentWidth; + int BracedInitializerIndentWidth; /// Different ways to wrap braces after control statements. enum BraceWrappingAfterControlStatementStyle : int8_t { diff --git a/clang/lib/Format/ContinuationIndenter.cpp b/clang/lib/Format/ContinuationIndenter.cpp index d49128c..972dceb 100644 --- a/clang/lib/Format/ContinuationIndenter.cpp +++ b/clang/lib/Format/ContinuationIndenter.cpp @@ -1921,9 +1921,9 @@ void ContinuationIndenter::moveStatePastScopeOpener(LineState &State, NewIndent = Style.IndentWidth + std::min(State.Column, CurrentState.NestedBlockIndent); } else if (Current.is(tok::l_brace)) { - NewIndent = - CurrentState.LastSpace + Style.BracedInitializerIndentWidth.value_or( - Style.ContinuationIndentWidth); + const auto Width = Style.BracedInitializerIndentWidth; + NewIndent = CurrentState.LastSpace + + (Width < 0 ? Style.ContinuationIndentWidth : Width); } else { NewIndent = CurrentState.LastSpace + Style.ContinuationIndentWidth; } diff --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp index 68ef119..92678a0 100644 --- a/clang/lib/Format/Format.cpp +++ b/clang/lib/Format/Format.cpp @@ -1512,7 +1512,7 @@ FormatStyle getLLVMStyle(FormatStyle::LanguageKind Language) { LLVMStyle.BinPackLongBracedList = true; LLVMStyle.BinPackParameters = FormatStyle::BPPS_BinPack; LLVMStyle.BitFieldColonSpacing = FormatStyle::BFCS_Both; - LLVMStyle.BracedInitializerIndentWidth = std::nullopt; + LLVMStyle.BracedInitializerIndentWidth = -1; LLVMStyle.BraceWrapping = {/*AfterCaseLabel=*/false, /*AfterClass=*/false, /*AfterControlStatement=*/FormatStyle::BWACS_Never, diff --git a/clang/unittests/Format/ConfigParseTest.cpp b/clang/unittests/Format/ConfigParseTest.cpp index 9cd2629..273bab8 100644 --- a/clang/unittests/Format/ConfigParseTest.cpp +++ b/clang/unittests/Format/ConfigParseTest.cpp @@ -265,9 +265,9 @@ TEST(ConfigParseTest, ParsesConfigurationIntegers) { Style.Language = FormatStyle::LK_Cpp; CHECK_PARSE_INT(AccessModifierOffset); + CHECK_PARSE_INT(BracedInitializerIndentWidth); CHECK_PARSE_INT(PPIndentWidth); - CHECK_PARSE_UNSIGNED(BracedInitializerIndentWidth); CHECK_PARSE_UNSIGNED(ColumnLimit); CHECK_PARSE_UNSIGNED(ConstructorInitializerIndentWidth); CHECK_PARSE_UNSIGNED(ContinuationIndentWidth); @@ -1441,8 +1441,10 @@ TEST(ConfigParseTest, GetStyleOfFile) { ASSERT_EQ(*Style9, SubSubStyle); // Test 9.8: use inheritance from a file without BasedOnStyle - ASSERT_TRUE(FS.addFile("/e/withoutbase/.clang-format", 0, - llvm::MemoryBuffer::getMemBuffer("ColumnLimit: 123"))); + ASSERT_TRUE(FS.addFile( + "/e/withoutbase/.clang-format", 0, + llvm::MemoryBuffer::getMemBuffer("BracedInitializerIndentWidth: 2\n" + "ColumnLimit: 123"))); ASSERT_TRUE( FS.addFile("/e/withoutbase/sub/.clang-format", 0, llvm::MemoryBuffer::getMemBuffer( @@ -1452,6 +1454,7 @@ TEST(ConfigParseTest, GetStyleOfFile) { ASSERT_TRUE(static_cast<bool>(Style9)); ASSERT_EQ(*Style9, [] { auto Style = getLLVMStyle(); + Style.BracedInitializerIndentWidth = 2; Style.ColumnLimit = 123; return Style; }()); @@ -1460,6 +1463,7 @@ TEST(ConfigParseTest, GetStyleOfFile) { ASSERT_TRUE(static_cast<bool>(Style9)); ASSERT_EQ(*Style9, [] { auto Style = getLLVMStyle(); + Style.BracedInitializerIndentWidth = 2; Style.ColumnLimit = 123; Style.IndentWidth = 7; return Style; |