Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMateusz Matela2020-12-26 20:42:59 +0000
committerMateusz Matela2020-12-27 11:37:35 +0000
commitcd724c54745b6a84d51657b978e34eab2b210439 (patch)
tree8a975c6a0bbc0715ea746d5b0e0c20e7154654dc
parent7a7d8f1c3d71e40b54a57675cbf6d30b6721e7e9 (diff)
downloadeclipse.jdt.core-cd724c54745b6a84d51657b978e34eab2b210439.tar.gz
eclipse.jdt.core-cd724c54745b6a84d51657b978e34eab2b210439.tar.xz
eclipse.jdt.core-cd724c54745b6a84d51657b978e34eab2b210439.zip
Bug 569798 - [formatter] Brace position - next line indented: bug forI20201228-1800I20201227-1800
array within annotation Change-Id: Ibc770d542a3fced7518a8446b357e91fe59dc4ad Signed-off-by: Mateusz Matela <mateusz.matela@gmail.com>
-rw-r--r--org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterBugsTests.java17
-rw-r--r--org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/linewrap/WrapPreparator.java8
2 files changed, 25 insertions, 0 deletions
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterBugsTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterBugsTests.java
index 80a8a1dd2e..d2c45c7036 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterBugsTests.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterBugsTests.java
@@ -13231,4 +13231,21 @@ public void testBug567714() {
" }\n" +
"}");
}
+/**
+ * https://bugs.eclipse.org/569798 - [formatter] Brace position - next line indented: bug for array within annotation
+ */
+public void testBug569798() {
+ this.formatterPrefs.brace_position_for_array_initializer = DefaultCodeFormatterConstants.NEXT_LINE_SHIFTED;
+ formatSource(
+ "class Test {\n" +
+ " @Nullable\n" +
+ " @SuppressWarnings(\n" +
+ " { \"\" })\n" +
+ " @Something(a =\n" +
+ " { \"\" })\n" +
+ " void f() {\n" +
+ " }\n" +
+ "}"
+ );
+}
}
diff --git a/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/linewrap/WrapPreparator.java b/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/linewrap/WrapPreparator.java
index bb3301426c..d81b254ecf 100644
--- a/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/linewrap/WrapPreparator.java
+++ b/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/linewrap/WrapPreparator.java
@@ -81,6 +81,7 @@ import org.eclipse.jdt.core.dom.IfStatement;
import org.eclipse.jdt.core.dom.InfixExpression;
import org.eclipse.jdt.core.dom.InfixExpression.Operator;
import org.eclipse.jdt.core.dom.LambdaExpression;
+import org.eclipse.jdt.core.dom.MemberValuePair;
import org.eclipse.jdt.core.dom.MethodDeclaration;
import org.eclipse.jdt.core.dom.MethodInvocation;
import org.eclipse.jdt.core.dom.Name;
@@ -795,6 +796,13 @@ public class WrapPreparator extends ASTVisitor {
closingBraceIndex, 0, this.currentDepth, 1, true, false));
}
}
+ if (this.options.brace_position_for_array_initializer.equals(DefaultCodeFormatterConstants.NEXT_LINE_SHIFTED)
+ && openingBrace.getWrapPolicy() == null && (node.getParent() instanceof SingleMemberAnnotation
+ || node.getParent() instanceof MemberValuePair)) {
+ int parentIndex = this.tm.firstIndexIn(node.getParent(), -1);
+ int indent = this.options.indentation_size;
+ openingBrace.setWrapPolicy(new WrapPolicy(WrapMode.BLOCK_INDENT, parentIndex, indent));
+ }
return true;
}

Back to the top