From 7ad766e127fcee17499fd9a67e944798b834b530 Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 22 Sep 2011 16:44:52 +0200 Subject: [PATCH] IDEA-74354 Multiline parameteres list indentation inconsistency --- .../groovy/formatter/GroovyBlockGenerator.java | 7 +++++-- .../lang/formatter/EnterActionTest.groovy | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/formatter/GroovyBlockGenerator.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/formatter/GroovyBlockGenerator.java index 464913df04da..f9d64065cfd0 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/formatter/GroovyBlockGenerator.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/formatter/GroovyBlockGenerator.java @@ -23,6 +23,7 @@ import com.intellij.formatting.Wrap; import com.intellij.lang.ASTNode; import com.intellij.openapi.util.TextRange; import com.intellij.openapi.util.text.StringUtil; +import com.intellij.patterns.PlatformPatterns; import com.intellij.psi.PsiComment; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; @@ -275,8 +276,10 @@ public class GroovyBlockGenerator implements GroovyElementTypes { } private static boolean isKeyword(ASTNode node) { - return node != null && (TokenSets.KEYWORDS.contains(node.getElementType()) || - TokenSets.BRACES.contains(node.getElementType())); + if (node == null) return false; + + return TokenSets.KEYWORDS.contains(node.getElementType()) || + TokenSets.BRACES.contains(node.getElementType()) && !PlatformPatterns.psiElement().withText(")").withParent(GrArgumentList.class).afterLeaf(",").accepts(node.getPsi()); } diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/formatter/EnterActionTest.groovy b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/formatter/EnterActionTest.groovy index 45758242c29f..2c4662ac9096 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/formatter/EnterActionTest.groovy +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/formatter/EnterActionTest.groovy @@ -203,5 +203,23 @@ def c = { a -> """ } + public void testEnterWithAlignedParameters() { + myTempSettings.ALIGN_MULTILINE_PARAMETERS_IN_CALLS = true + doTest """foo(2,) +""", """foo(2, + ) +""" + + } + + public void testEnterWithAlignedParameters2() { + myTempSettings.ALIGN_MULTILINE_PARAMETERS_IN_CALLS = true + doTest """foo(2, +""", """foo(2, + +""" + + } + }