Author: Owen Pan Date: 2025-04-30T00:12:41-07:00 New Revision: 7752e0a10b25da2f2eadbed10606bd5454dbca05
URL: https://github.com/llvm/llvm-project/commit/7752e0a10b25da2f2eadbed10606bd5454dbca05 DIFF: https://github.com/llvm/llvm-project/commit/7752e0a10b25da2f2eadbed10606bd5454dbca05.diff LOG: Revert "[clang-format] Add OneLineFormatOffRegex option (#137577)" This reverts commit b8bb1ccb4f9126d1bc9817be24e17f186a75a08b which triggered an assertion failure in CodeGenTest.TestNonAlterTest. Added: Modified: clang/docs/ClangFormatStyleOptions.rst clang/docs/ReleaseNotes.rst clang/include/clang/Format/Format.h clang/lib/Format/Format.cpp clang/lib/Format/FormatTokenLexer.cpp clang/unittests/Format/ConfigParseTest.cpp clang/unittests/Format/FormatTest.cpp Removed: ################################################################################ diff --git a/clang/docs/ClangFormatStyleOptions.rst b/clang/docs/ClangFormatStyleOptions.rst index b47291599649d..3f8a5f49313b2 100644 --- a/clang/docs/ClangFormatStyleOptions.rst +++ b/clang/docs/ClangFormatStyleOptions.rst @@ -5195,29 +5195,6 @@ the configuration (without a prefix: ``Auto``). Add a space in front of an Objective-C protocol list, i.e. use ``Foo <Protocol>`` instead of ``Foo<Protocol>``. -.. _OneLineFormatOffRegex: - -**OneLineFormatOffRegex** (``String``) :versionbadge:`clang-format 21` :ref:`¶ <OneLineFormatOffRegex>` - A regular expression that describes markers for turning formatting off for - one line. If it matches a comment that is the only token of a line, - clang-format skips the comment and the next line. Otherwise, clang-format - skips lines containing a matched token. - - .. code-block:: c++ - - // OneLineFormatOffRegex: ^(// NOLINT|logger$) - // results in the output below: - int a; - int b ; // NOLINT - int c; - // NOLINTNEXTLINE - int d ; - int e; - s = "// NOLINT"; - logger() ; - logger2(); - my_logger(); - .. _PPIndentWidth: **PPIndentWidth** (``Integer``) :versionbadge:`clang-format 13` :ref:`¶ <PPIndentWidth>` diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index 80399e458aec3..bc68bb8b70b3d 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -720,7 +720,6 @@ clang-format top of the file. - Add ``EnumTrailingComma`` option for inserting/removing commas at the end of ``enum`` enumerator lists. -- Add ``OneLineFormatOffRegex`` option for turning formatting off for one line. libclang -------- diff --git a/clang/include/clang/Format/Format.h b/clang/include/clang/Format/Format.h index 7fe41d800ccb3..f6ceef08b46da 100644 --- a/clang/include/clang/Format/Format.h +++ b/clang/include/clang/Format/Format.h @@ -3654,27 +3654,6 @@ struct FormatStyle { /// \version 3.7 bool ObjCSpaceBeforeProtocolList; - /// A regular expression that describes markers for turning formatting off for - /// one line. If it matches a comment that is the only token of a line, - /// clang-format skips the comment and the next line. Otherwise, clang-format - /// skips lines containing a matched token. - /// \code - /// // OneLineFormatOffRegex: ^(// NOLINT|logger$) - /// // results in the output below: - /// int a; - /// int b ; // NOLINT - /// int c; - /// // NOLINTNEXTLINE - /// int d ; - /// int e; - /// s = "// NOLINT"; - /// logger() ; - /// logger2(); - /// my_logger(); - /// \endcode - /// \version 21 - std::string OneLineFormatOffRegex; - /// Different ways to try to fit all constructor initializers on a line. enum PackConstructorInitializersStyle : int8_t { /// Always put each constructor initializer on its own line. @@ -5420,7 +5399,6 @@ struct FormatStyle { ObjCPropertyAttributeOrder == R.ObjCPropertyAttributeOrder && ObjCSpaceAfterProperty == R.ObjCSpaceAfterProperty && ObjCSpaceBeforeProtocolList == R.ObjCSpaceBeforeProtocolList && - OneLineFormatOffRegex == R.OneLineFormatOffRegex && PackConstructorInitializers == R.PackConstructorInitializers && PenaltyBreakAssignment == R.PenaltyBreakAssignment && PenaltyBreakBeforeFirstCallParameter == diff --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp index 2f4b64ef4f5fe..5a1c3f556b331 100644 --- a/clang/lib/Format/Format.cpp +++ b/clang/lib/Format/Format.cpp @@ -1100,7 +1100,6 @@ template <> struct MappingTraits<FormatStyle> { IO.mapOptional("ObjCSpaceAfterProperty", Style.ObjCSpaceAfterProperty); IO.mapOptional("ObjCSpaceBeforeProtocolList", Style.ObjCSpaceBeforeProtocolList); - IO.mapOptional("OneLineFormatOffRegex", Style.OneLineFormatOffRegex); IO.mapOptional("PackConstructorInitializers", Style.PackConstructorInitializers); IO.mapOptional("PenaltyBreakAssignment", Style.PenaltyBreakAssignment); diff --git a/clang/lib/Format/FormatTokenLexer.cpp b/clang/lib/Format/FormatTokenLexer.cpp index bff9db22ac657..a4c94ac411fe0 100644 --- a/clang/lib/Format/FormatTokenLexer.cpp +++ b/clang/lib/Format/FormatTokenLexer.cpp @@ -83,43 +83,8 @@ FormatTokenLexer::FormatTokenLexer( ArrayRef<FormatToken *> FormatTokenLexer::lex() { assert(Tokens.empty()); assert(FirstInLineIndex == 0); - const llvm::Regex FormatOffRegex(Style.OneLineFormatOffRegex); - enum { FO_None, FO_CurrentLine, FO_NextLine } FormatOff = FO_None; do { Tokens.push_back(getNextToken()); - auto &Tok = *Tokens.back(); - const auto NewlinesBefore = Tok.NewlinesBefore; - switch (FormatOff) { - case FO_CurrentLine: - if (NewlinesBefore == 0) - Tok.Finalized = true; - else - FormatOff = FO_None; - break; - case FO_NextLine: - if (NewlinesBefore > 1) { - FormatOff = FO_None; - } else { - Tok.Finalized = true; - FormatOff = FO_CurrentLine; - } - break; - default: - if (!FormattingDisabled && FormatOffRegex.match(Tok.TokenText)) { - if (Tok.is(tok::comment) && - (NewlinesBefore > 0 || &Tok == Tokens.front())) { - Tok.Finalized = true; - FormatOff = FO_NextLine; - } else { - for (auto *Token : reverse(Tokens)) { - Token->Finalized = true; - if (Token->NewlinesBefore > 0) - break; - } - FormatOff = FO_CurrentLine; - } - } - } if (Style.isJavaScript()) { tryParseJSRegexLiteral(); handleTemplateStrings(); diff --git a/clang/unittests/Format/ConfigParseTest.cpp b/clang/unittests/Format/ConfigParseTest.cpp index f7ab5546c7193..2b08b794792e9 100644 --- a/clang/unittests/Format/ConfigParseTest.cpp +++ b/clang/unittests/Format/ConfigParseTest.cpp @@ -295,7 +295,6 @@ TEST(ConfigParseTest, ParsesConfiguration) { FormatStyle Style = {}; Style.Language = FormatStyle::LK_Cpp; CHECK_PARSE("CommentPragmas: '// abc$'", CommentPragmas, "// abc$"); - CHECK_PARSE("OneLineFormatOffRegex: // ab$", OneLineFormatOffRegex, "// ab$"); Style.QualifierAlignment = FormatStyle::QAS_Right; CHECK_PARSE("QualifierAlignment: Leave", QualifierAlignment, diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp index c4fcc5506d152..333d40d481025 100644 --- a/clang/unittests/Format/FormatTest.cpp +++ b/clang/unittests/Format/FormatTest.cpp @@ -24954,105 +24954,6 @@ TEST_F(FormatTest, DisableRegions) { "// clang-format on"); } -TEST_F(FormatTest, OneLineFormatOffRegex) { - auto Style = getLLVMStyle(); - Style.OneLineFormatOffRegex = "// format off$"; - - verifyFormat(" // format off\n" - " int i ;\n" - "int j;", - " // format off\n" - " int i ;\n" - " int j ;", - Style); - verifyFormat("// format off?\n" - "int i;", - " // format off?\n" - " int i ;", - Style); - verifyFormat("f(\"// format off\");", " f(\"// format off\") ;", Style); - - verifyFormat("int i;\n" - " // format off\n" - " int j ;\n" - "int k;", - " int i ;\n" - " // format off\n" - " int j ;\n" - " int k ;", - Style); - - verifyFormat(" // format off\n" - "\n" - "int i;", - " // format off\n" - " \n" - " int i ;", - Style); - - verifyFormat("int i;\n" - " int j ; // format off\n" - "int k;", - " int i ;\n" - " int j ; // format off\n" - " int k ;", - Style); - - verifyFormat("// clang-format off\n" - " int i ;\n" - " int j ; // format off\n" - " int k ;\n" - "// clang-format on\n" - "f();", - " // clang-format off\n" - " int i ;\n" - " int j ; // format off\n" - " int k ;\n" - " // clang-format on\n" - " f() ;", - Style); - - Style.OneLineFormatOffRegex = "^/\\* format off \\*/"; - verifyFormat("int i;\n" - " /* format off */ int j ;\n" - "int k;", - " int i ;\n" - " /* format off */ int j ;\n" - " int k ;", - Style); - verifyFormat("f(\"/* format off */\");", " f(\"/* format off */\") ;", Style); - - Style.AlignEscapedNewlines = FormatStyle::ENAS_DontAlign; - verifyFormat("#define A \\\n" - " do { \\\n" - " /* format off */\\\n" - " f() ; \\\n" - " g(); \\\n" - " } while (0)", - "# define A\\\n" - " do{ \\\n" - " /* format off */\\\n" - " f() ; \\\n" - " g() ;\\\n" - " } while (0 )", - Style); - - Style.ColumnLimit = 50; - Style.OneLineFormatOffRegex = "^LogErrorPrint$"; - verifyFormat(" myproject::LogErrorPrint(logger, \"Don't split me!\");\n" - "myproject::MyLogErrorPrinter(myLogger,\n" - " \"Split me!\");", - " myproject::LogErrorPrint(logger, \"Don't split me!\");\n" - " myproject::MyLogErrorPrinter(myLogger, \"Split me!\");", - Style); - - Style.OneLineFormatOffRegex = "//(< clang-format off| NO_TRANSLATION)$"; - verifyNoChange( - " int i ; //< clang-format off\n" - " msg = sprintf(\"Long string with placeholders.\"); // NO_TRANSLATION", - Style); -} - TEST_F(FormatTest, DoNotCrashOnInvalidInput) { format("? ) ="); verifyNoCrash("#define a\\\n /**/}"); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits