================ @@ -24153,6 +24153,123 @@ TEST_F(FormatTest, WhitespaceSensitiveMacros) { verifyNoChange("FOO(String-ized&Messy+But: :Still=Intentional);", Style); } +TEST_F(FormatTest, IgnorePPDefinitions) { + FormatStyle Style = getLLVMStyle(); + Style.IgnorePPDefinitions = true; + + verifyNoChange("#define A", Style); + verifyNoChange("#define A b", Style); + verifyNoChange("#define A ( args )", Style); + verifyNoChange("#define A ( args ) = func ( args )", Style); + + verifyNoChange("#define A x:", Style); + verifyNoChange("#define A a. b", Style); + + // Surrounded with formatted code. + verifyFormat("int a;\n" + "#define A a\n" + "int a;", + "int a ;\n" + "#define A a\n" + "int a ;", + Style); + + // Columns are not broken when a limit is set. + Style.ColumnLimit = 10; + verifyNoChange("#define A a a a a", Style); + + Style.ColumnLimit = 15; + verifyNoChange("#define A //a very long comment", Style); + // in the following examples, since second line will not be formtted, it won't + // take into considertaion the alignment from the first line. The third line + // will follow the second line's alignment. + verifyFormat("int aaaaaa; // a\n" + "#define A // a\n" + "int a; // a", + "int aaaaaa; // a\n" + "#define A // a\n" + "int a; // a", + Style); + + Style.ColumnLimit = 0; + + // Multiline definition. + verifyNoChange("#define A \\\n" + "Line one with spaces . \\\n" + " Line two.", + Style); + verifyNoChange("#define A \\\n" + "a a \\\n" + "a \\\n" + "a", + Style); + Style.AlignEscapedNewlines = FormatStyle::ENAS_Left; + verifyNoChange("#define A \\\n" + "a a \\\n" + "a \\\n" + "a", + Style); + Style.AlignEscapedNewlines = FormatStyle::ENAS_Right; + verifyNoChange("#define A \\\n" + "a a \\\n" + "a \\\n" + "a", + Style); + + // Adjust indendations but don't change the definition. + Style.IndentPPDirectives = FormatStyle::PPDIS_None; + verifyNoChange("#if A\n" + "#define A a\n" + "#endif", + Style); + verifyNoChange("#define UNITY 1\n" + "#if A\n" + "# define A a\\\n" + " a a\n" + "#endif", + Style); + verifyFormat("#if A\n" + "#define A a\n" ---------------- owenca wrote:
The indentation should _not_ change. https://github.com/llvm/llvm-project/pull/70338 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits