From 91fb7c5e1d182b394ab8f79b1f01a890ef38936f Mon Sep 17 00:00:00 2001 From: Max Medvedev Date: Wed, 7 Nov 2012 17:28:05 +0400 Subject: [PATCH] fix second test --- .../processors/GroovySpacingProcessor.java | 28 +++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/formatter/processors/GroovySpacingProcessor.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/formatter/processors/GroovySpacingProcessor.java index 3b65668d5a48..159484c515bd 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/formatter/processors/GroovySpacingProcessor.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/formatter/processors/GroovySpacingProcessor.java @@ -20,7 +20,7 @@ import com.intellij.formatting.Spacing; import com.intellij.lang.ASTNode; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.util.TextRange; -import com.intellij.psi.PsiElement; +import com.intellij.psi.*; import com.intellij.psi.codeStyle.CommonCodeStyleSettings; import com.intellij.psi.formatter.FormatterUtil; import com.intellij.psi.impl.source.SourceTreeToPsiMap; @@ -35,6 +35,7 @@ import org.jetbrains.plugins.groovy.lang.lexer.TokenSets; import org.jetbrains.plugins.groovy.lang.psi.GroovyElementVisitor; import org.jetbrains.plugins.groovy.lang.psi.GroovyPsiElement; import org.jetbrains.plugins.groovy.lang.psi.api.auxiliary.GrListOrMap; +import org.jetbrains.plugins.groovy.lang.psi.api.auxiliary.modifiers.GrModifierList; import org.jetbrains.plugins.groovy.lang.psi.api.auxiliary.modifiers.annotation.GrAnnotation; import org.jetbrains.plugins.groovy.lang.psi.api.auxiliary.modifiers.annotation.GrAnnotationArgumentList; import org.jetbrains.plugins.groovy.lang.psi.api.auxiliary.modifiers.annotation.GrAnnotationArrayInitializer; @@ -366,6 +367,18 @@ public class GroovySpacingProcessor extends GroovyElementVisitor { } } + @Override + public void visitModifierList(GrModifierList modifierList) { + int annotationWrap = getAnnotationWrap(); + if (myChild1.getElementType() == ANNOTATION && annotationWrap == CommonCodeStyleSettings.WRAP_ALWAYS) { + myResult = Spacing.createSpacing(0, 0, 1, mySettings.KEEP_LINE_BREAKS, mySettings.KEEP_BLANK_LINES_IN_CODE); + } + else { + createSpaceProperty(true, false, 0); + } + + } + @Override public void visitAnnotationMethod(GrAnnotationMethod annotationMethod) { if (myType2 == mLPAREN) { @@ -708,7 +721,8 @@ public class GroovySpacingProcessor extends GroovyElementVisitor { private void processModifierList(ASTNode modifierList) { - if (modifierList.getLastChildNode().getElementType() == ANNOTATION && mySettings.METHOD_ANNOTATION_WRAP == CommonCodeStyleSettings.WRAP_ALWAYS || + int annotationWrap = getAnnotationWrap(); + if (modifierList.getLastChildNode().getElementType() == ANNOTATION && annotationWrap == CommonCodeStyleSettings.WRAP_ALWAYS || mySettings.MODIFIER_LIST_WRAP) { myResult = Spacing.createSpacing(0, 0, 1, mySettings.KEEP_LINE_BREAKS, mySettings.KEEP_BLANK_LINES_IN_CODE); } @@ -717,6 +731,16 @@ public class GroovySpacingProcessor extends GroovyElementVisitor { } } + private int getAnnotationWrap() { + return myParent instanceof PsiMethod ? mySettings.METHOD_ANNOTATION_WRAP : + myParent instanceof PsiClass ? mySettings.CLASS_ANNOTATION_WRAP : + myParent instanceof GrVariableDeclaration && + ((GrVariableDeclaration)myParent).getVariables()[0] instanceof PsiField ? mySettings.FIELD_ANNOTATION_WRAP : + myParent instanceof GrVariableDeclaration ? mySettings.VARIABLE_ANNOTATION_WRAP : + myParent instanceof PsiParameter ? mySettings.PARAMETER_ANNOTATION_WRAP : + CommonCodeStyleSettings.DO_NOT_WRAP; + } + public Spacing getSpacing() { return myResult; }