private void alignVariableDeclarations(List<GrStatement> group, boolean classLevel) { AlignmentProvider.Aligner typeElement = myAlignmentProvider.createAligner(true); AlignmentProvider.Aligner varName = myAlignmentProvider.createAligner(true); AlignmentProvider.Aligner eq = myAlignmentProvider.createAligner(true); for (GrStatement statement : group) { GrVariableDeclaration varDeclaration = (GrVariableDeclaration) statement; GrVariable[] variables = varDeclaration.getVariables(); for (GrVariable variable : variables) { varName.append(variable.getNameIdentifierGroovy()); } if (classLevel && mySettings.ALIGN_GROUP_FIELD_DECLARATIONS) { typeElement.append(varDeclaration.getTypeElementGroovy()); ASTNode current_eq = variables[variables.length - 1].getNode().findChildByType(GroovyTokenTypes.mASSIGN); if (current_eq != null) { eq.append(current_eq.getPsi()); } } } }
private void calculateAlignments(List<ASTNode> children, boolean classLevel) { List<Alignment> currentGroup = null; for (ASTNode child : children) { PsiElement psi = child.getPsi(); if (psi instanceof GrLabeledStatement) { List<LeafPsiElement> table = getSpockTable(((GrLabeledStatement) psi).getStatement()); if (table.isEmpty()) { currentGroup = null; } else { currentGroup = new ArrayList<Alignment>(); for (LeafPsiElement expression : table) { Alignment alignment = Alignment.createAlignment(true); currentGroup.add(alignment); ContainerUtil.putIfNotNull(expression, alignment, myInnerAlignments); } } } else if (currentGroup != null && isTablePart(psi)) { List<LeafPsiElement> table = getSpockTable((GrStatement) psi); for (int i = 0; i < Math.min(table.size(), currentGroup.size()); i++) { myInnerAlignments.put(table.get(i), currentGroup.get(i)); } } else if (psi instanceof GrVariableDeclaration) { if (!classLevel || currentGroup == null || fieldGroupEnded(psi)) { currentGroup = Arrays.asList( Alignment.createAlignment(true), Alignment.createAlignment(true), Alignment.createAlignment(true)); } GrVariable[] variables = ((GrVariableDeclaration) psi).getVariables(); if (variables.length > 0) { Alignment varName = currentGroup.get(1); for (GrVariable variable : variables) { myInnerAlignments.put(variable.getNameIdentifierGroovy(), varName); } if (classLevel && mySettings.ALIGN_GROUP_FIELD_DECLARATIONS) { ContainerUtil.putIfNotNull( ((GrVariableDeclaration) psi).getTypeElementGroovy(), currentGroup.get(0), myInnerAlignments); ASTNode eq = variables[variables.length - 1].getNode().findChildByType(GroovyTokenTypes.mASSIGN); if (eq != null) { myInnerAlignments.put(eq.getPsi(), currentGroup.get(2)); } } } } else if (GeeseUtil.isClosureRBrace(psi) && myGroovySettings.USE_FLYING_GEESE_BRACES) { myInnerAlignments.put(psi, GeeseUtil.calculateRBraceAlignment(psi, myInnerAlignments)); } else { if (psi instanceof PsiComment) { PsiElement prev = psi.getPrevSibling(); if (prev != null && prev.getNode().getElementType() != mNLS || classLevel && !fieldGroupEnded(psi)) { continue; } } currentGroup = null; } } }