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 d1514e9ea764..1a9fe03a7256 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 @@ -949,7 +949,7 @@ public abstract class AbstractJavaBlock extends AbstractBlock implements JavaBlo Indent externalIndent = Indent.getNoneIndent(); Indent internalIndent = Indent.getContinuationWithoutFirstIndent(false); - if (isInsideMethodCallParenthesis(child)) { + if (isInsideMethodCallParenthesis(child) || isInsideMethodDeclarationParenthesis(child)) { internalIndent = Indent.getSmartIndent(Indent.Type.CONTINUATION); } @@ -1021,6 +1021,13 @@ public abstract class AbstractJavaBlock extends AbstractBlock implements JavaBlo return false; } + private static boolean isInsideMethodDeclarationParenthesis(@NotNull ASTNode child) { + ASTNode parent = child.getTreeParent(); + if (parent == null || parent.getElementType() != JavaElementType.PARAMETER_LIST) return false; + ASTNode grandParent = parent.getTreeParent(); + return grandParent != null && grandParent.getElementType() == JavaElementType.METHOD; + } + private static boolean canUseAnonymousClassAlignment(@NotNull ASTNode child) { // The general idea is to handle situations like below: // test(new Runnable() {