From a4b56a640e712ab03ff79abdbf84fa4673870f82 Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Thu, 6 Mar 2014 12:20:34 +0100 Subject: [PATCH] java: formatting of type annotations inside type elements --- .../psi/formatter/java/JavaSpacePropertyProcessor.java | 5 ++++- .../intellij/psi/formatter/java/JavaFormatterSpaceTest.java | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/java/java-impl/src/com/intellij/psi/formatter/java/JavaSpacePropertyProcessor.java b/java/java-impl/src/com/intellij/psi/formatter/java/JavaSpacePropertyProcessor.java index c39f35532d80..390116c3793c 100644 --- a/java/java-impl/src/com/intellij/psi/formatter/java/JavaSpacePropertyProcessor.java +++ b/java/java-impl/src/com/intellij/psi/formatter/java/JavaSpacePropertyProcessor.java @@ -1441,7 +1441,10 @@ public class JavaSpacePropertyProcessor extends JavaElementVisitor { @Override public void visitTypeElement(PsiTypeElement type) { - if (myType2 == JavaTokenType.ELLIPSIS || myType2 == JavaTokenType.LBRACKET || myType2 == JavaTokenType.RBRACKET) { + if (myType1 == JavaElementType.ANNOTATION || myType2 == JavaElementType.ANNOTATION) { + createSpaceInCode(true); + } + else if (myType2 == JavaTokenType.ELLIPSIS || myType2 == JavaTokenType.LBRACKET || myType2 == JavaTokenType.RBRACKET) { createSpaceInCode(false); } else if (type.getType() instanceof PsiDisjunctionType) { diff --git a/java/java-tests/testSrc/com/intellij/psi/formatter/java/JavaFormatterSpaceTest.java b/java/java-tests/testSrc/com/intellij/psi/formatter/java/JavaFormatterSpaceTest.java index a5b34fc53a17..c4cd499ccd96 100644 --- a/java/java-tests/testSrc/com/intellij/psi/formatter/java/JavaFormatterSpaceTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/formatter/java/JavaFormatterSpaceTest.java @@ -545,11 +545,15 @@ public class JavaFormatterSpaceTest extends AbstractJavaFormatterTest { doTextTest( "class C<@TA(1)T> {\n" + " L<@TA(2)A> f = (@TA(3) A) new @TA(4) A() {\n" + + " void m(@TA(6) int @TA(7)[] p) {\n" + + " }\n" + " };\n" + "}", "class C<@TA(1) T> {\n" + " L<@TA(2) A> f = (@TA(3) A) new @TA(4) A() {\n" + + " void m(@TA(6) int @TA(7) [] p) {\n" + + " }\n" + " };\n" + "}" );