Author: MyDeveloperDay Date: 2024-01-12T08:30:53Z New Revision: c65b939fb795ce4688d33531341d460a47d16664
URL: https://github.com/llvm/llvm-project/commit/c65b939fb795ce4688d33531341d460a47d16664 DIFF: https://github.com/llvm/llvm-project/commit/c65b939fb795ce4688d33531341d460a47d16664.diff LOG: [clang-format] SpacesInSquareBrackets not working for Java (#77833) spaces in [] needs to be handled the same in Java the same as C#. Co-authored-by: paul_hoad <paul_h...@amat.com> 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 d2f6932880df53..24ce18a64348c1 100644 --- a/clang/lib/Format/TokenAnnotator.cpp +++ b/clang/lib/Format/TokenAnnotator.cpp @@ -4674,6 +4674,10 @@ bool TokenAnnotator::spaceRequiredBefore(const AnnotatedLine &Line, } else if (Style.Language == FormatStyle::LK_Java) { if (Left.is(tok::r_square) && Right.is(tok::l_brace)) return true; + // spaces inside square brackets. + if (Left.is(tok::l_square) || Right.is(tok::r_square)) + return Style.SpacesInSquareBrackets; + if (Left.is(Keywords.kw_synchronized) && Right.is(tok::l_paren)) { return Style.SpaceBeforeParensOptions.AfterControlStatements || spaceRequiredBeforeParens(Right); diff --git a/clang/unittests/Format/FormatTestJava.cpp b/clang/unittests/Format/FormatTestJava.cpp index 202d603d057790..6da5f4fa254331 100644 --- a/clang/unittests/Format/FormatTestJava.cpp +++ b/clang/unittests/Format/FormatTestJava.cpp @@ -603,6 +603,21 @@ TEST_F(FormatTestJava, ShortFunctions) { Style); } +TEST_F(FormatTestJava, ConfigurableSpacesInSquareBrackets) { + FormatStyle Spaces = getLLVMStyle(FormatStyle::LK_Java); + + verifyFormat("Object[] arguments", Spaces); + verifyFormat("final Class<?>[] types = new Class<?>[numElements];", Spaces); + verifyFormat("types[i] = arguments[i].getClass();", Spaces); + + Spaces.SpacesInSquareBrackets = true; + + verifyFormat("Object[ ] arguments", Spaces); + verifyFormat("final Class<?>[ ] types = new Class<?>[ numElements ];", + Spaces); + verifyFormat("types[ i ] = arguments[ i ].getClass();", Spaces); +} + } // namespace } // namespace test } // namespace format _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits