Author: Danil Sidoruk Date: 2022-08-15T20:27:15-07:00 New Revision: d8d331bc97103b6e191b96189166fefc6be54148
URL: https://github.com/llvm/llvm-project/commit/d8d331bc97103b6e191b96189166fefc6be54148 DIFF: https://github.com/llvm/llvm-project/commit/d8d331bc97103b6e191b96189166fefc6be54148.diff LOG: [clang-format] Fix aligning of java-style declarations - Modify TokenAnnotator to work fine with java-style array declarations. - Add test for aligning of java declarations. Fixes #55931. Differential Revision: https://reviews.llvm.org/D129628 Added: Modified: clang/lib/Format/TokenAnnotator.cpp clang/unittests/Format/FormatTestJava.cpp Removed: ################################################################################ diff --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp index b0a1c691c771a..5ea1506bae193 100644 --- a/clang/lib/Format/TokenAnnotator.cpp +++ b/clang/lib/Format/TokenAnnotator.cpp @@ -2065,6 +2065,11 @@ class AnnotatingParser { if (PreviousNotConst->isSimpleTypeSpecifier()) return true; + // type[] a in Java + if (Style.Language == FormatStyle::LK_Java && + PreviousNotConst->is(tok::r_square)) + return true; + // const a = in JavaScript. return Style.isJavaScript() && PreviousNotConst->is(tok::kw_const); } diff --git a/clang/unittests/Format/FormatTestJava.cpp b/clang/unittests/Format/FormatTestJava.cpp index 03e16ae0a00d3..7b25a0bb4bdfd 100644 --- a/clang/unittests/Format/FormatTestJava.cpp +++ b/clang/unittests/Format/FormatTestJava.cpp @@ -584,6 +584,17 @@ TEST_F(FormatTestJava, AlignsBlockComments) { " void f() {}")); } +TEST_F(FormatTestJava, AlignDeclarations) { + FormatStyle Style = getLLVMStyle(FormatStyle::LK_Java); + Style.AlignConsecutiveDeclarations.Enabled = true; + verifyFormat("private final String[] args;\n" + "private final A_ParserHelper parserHelper;\n" + "private final int numOfCmdArgs;\n" + "private int numOfCmdArgs;\n" + "private String[] args;", + Style); +} + TEST_F(FormatTestJava, KeepsDelimitersOnOwnLineInJavaDocComments) { EXPECT_EQ("/**\n" " * javadoc line 1\n" _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits