diff options
author | Mateusz Matela | 2020-12-26 20:42:59 +0000 |
---|---|---|
committer | Mateusz Matela | 2020-12-27 11:37:35 +0000 |
commit | cd724c54745b6a84d51657b978e34eab2b210439 (patch) | |
tree | 8a975c6a0bbc0715ea746d5b0e0c20e7154654dc | |
parent | 7a7d8f1c3d71e40b54a57675cbf6d30b6721e7e9 (diff) | |
download | eclipse.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>
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; } |