diff options
-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; |