This revision was automatically updated to reflect the committed changes. Closed by commit rG0a0cc3c58a74: [clang-format] Don't unwrap lines preceded by line comments (authored by owenpan).
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D121576/new/ https://reviews.llvm.org/D121576 Files: clang/lib/Format/WhitespaceManager.cpp clang/unittests/Format/FormatTest.cpp Index: clang/unittests/Format/FormatTest.cpp =================================================================== --- clang/unittests/Format/FormatTest.cpp +++ clang/unittests/Format/FormatTest.cpp @@ -19176,6 +19176,14 @@ " {init1, init2, init3, init4}}\n" "};", Style); + // TODO: Fix the indentations below when this option is fully functional. + verifyFormat("int a[][] = {\n" + " {\n" + " {0, 2}, //\n" + " {1, 2} //\n" + " }\n" + "};", + Style); Style.ColumnLimit = 100; EXPECT_EQ( "test demo[] = {\n" Index: clang/lib/Format/WhitespaceManager.cpp =================================================================== --- clang/lib/Format/WhitespaceManager.cpp +++ clang/lib/Format/WhitespaceManager.cpp @@ -1079,13 +1079,15 @@ // So in here we want to see if there is a brace that falls // on a line that was split. If so on that line we make sure that // the spaces in front of the brace are enough. - Changes[CellIter->Index].NewlinesBefore = 0; - Changes[CellIter->Index].Spaces = 0; - for (const auto *Next = CellIter->NextColumnElement; Next != nullptr; - Next = Next->NextColumnElement) { - Changes[Next->Index].Spaces = 0; - Changes[Next->Index].NewlinesBefore = 0; - } + const auto *Next = CellIter; + do { + const FormatToken *Previous = Changes[Next->Index].Tok->Previous; + if (Previous && Previous->isNot(TT_LineComment)) { + Changes[Next->Index].Spaces = 0; + Changes[Next->Index].NewlinesBefore = 0; + } + Next = Next->NextColumnElement; + } while (Next); // Unless the array is empty, we need the position of all the // immediately adjacent cells if (CellIter != Cells.begin()) {
Index: clang/unittests/Format/FormatTest.cpp =================================================================== --- clang/unittests/Format/FormatTest.cpp +++ clang/unittests/Format/FormatTest.cpp @@ -19176,6 +19176,14 @@ " {init1, init2, init3, init4}}\n" "};", Style); + // TODO: Fix the indentations below when this option is fully functional. + verifyFormat("int a[][] = {\n" + " {\n" + " {0, 2}, //\n" + " {1, 2} //\n" + " }\n" + "};", + Style); Style.ColumnLimit = 100; EXPECT_EQ( "test demo[] = {\n" Index: clang/lib/Format/WhitespaceManager.cpp =================================================================== --- clang/lib/Format/WhitespaceManager.cpp +++ clang/lib/Format/WhitespaceManager.cpp @@ -1079,13 +1079,15 @@ // So in here we want to see if there is a brace that falls // on a line that was split. If so on that line we make sure that // the spaces in front of the brace are enough. - Changes[CellIter->Index].NewlinesBefore = 0; - Changes[CellIter->Index].Spaces = 0; - for (const auto *Next = CellIter->NextColumnElement; Next != nullptr; - Next = Next->NextColumnElement) { - Changes[Next->Index].Spaces = 0; - Changes[Next->Index].NewlinesBefore = 0; - } + const auto *Next = CellIter; + do { + const FormatToken *Previous = Changes[Next->Index].Tok->Previous; + if (Previous && Previous->isNot(TT_LineComment)) { + Changes[Next->Index].Spaces = 0; + Changes[Next->Index].NewlinesBefore = 0; + } + Next = Next->NextColumnElement; + } while (Next); // Unless the array is empty, we need the position of all the // immediately adjacent cells if (CellIter != Cells.begin()) {
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits