From e1817ca159c7049d61877768a594bda9ffe22edf Mon Sep 17 00:00:00 2001 From: "Denis.Zhdanov" Date: Thu, 12 Jan 2012 13:02:07 +0400 Subject: [PATCH] IDEA-79836 Java formatter: Correct processing of incomplete method call expression with anonymous class arguments --- .../psi/formatter/java/AbstractJavaBlock.java | 2 +- .../java/JavaFormatterBracesTest.java | 4 ++-- .../java/JavaFormatterIndentationTest.java | 22 +++++++++++++++++++ 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/java/java-impl/src/com/intellij/psi/formatter/java/AbstractJavaBlock.java b/java/java-impl/src/com/intellij/psi/formatter/java/AbstractJavaBlock.java index 09f977933bac..dad53a8adcc4 100644 --- a/java/java-impl/src/com/intellij/psi/formatter/java/AbstractJavaBlock.java +++ b/java/java-impl/src/com/intellij/psi/formatter/java/AbstractJavaBlock.java @@ -1087,7 +1087,7 @@ public abstract class AbstractJavaBlock extends AbstractBlock implements JavaBlo } else if (child.getElementType() == to) { result.add(createJavaBlock(child, mySettings, - isAfterIncomplete ? internalIndent : externalIndent, + externalIndent, null, isAfterIncomplete ? alignmentStrategy.getAlignment(null) : bracketAlignment)); return child; diff --git a/java/java-tests/testSrc/com/intellij/psi/formatter/java/JavaFormatterBracesTest.java b/java/java-tests/testSrc/com/intellij/psi/formatter/java/JavaFormatterBracesTest.java index e87ce2dce35b..0db4ffb974ae 100644 --- a/java/java-tests/testSrc/com/intellij/psi/formatter/java/JavaFormatterBracesTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/formatter/java/JavaFormatterBracesTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2010 JetBrains s.r.o. + * Copyright 2000-2012 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -150,7 +150,7 @@ public class JavaFormatterBracesTest extends AbstractJavaFormatterTest { "class Test \n" + "{\n" + " void foo() {\n" + - " bind(new TypeLiteral(){}).toProvider(MyProvider.class);\n" + + " bind(new TypeLiteral() {}).toProvider(MyProvider.class);\n" + " }\n" + "}"; doTextTest(text, text); diff --git a/java/java-tests/testSrc/com/intellij/psi/formatter/java/JavaFormatterIndentationTest.java b/java/java-tests/testSrc/com/intellij/psi/formatter/java/JavaFormatterIndentationTest.java index da9e5839507c..dceea3131647 100644 --- a/java/java-tests/testSrc/com/intellij/psi/formatter/java/JavaFormatterIndentationTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/formatter/java/JavaFormatterIndentationTest.java @@ -467,4 +467,26 @@ public class JavaFormatterIndentationTest extends AbstractJavaFormatterTest { "}"; doTextTest(text, text); } + + public void testIncompleteMethodCall() throws Exception { + // Inspired by IDEA-79836. + + doMethodTest( + "test(new Runnable() {\n" + + " public void run() {\n" + + " }\n" + + " }, new Runnable() {\n" + + " public void run() {\n" + + " }\n" + + " }, )", + "test(new Runnable() {\n" + + " public void run() {\n" + + " }\n" + + " }, new Runnable() {\n" + + " public void run() {\n" + + " }\n" + + " },\n" + + ")" + ); + } }