void (@NotNull PsiForStatement statement) { if (myRole2 == ChildRole.LPARENTH) { createSpaceInCode(mySettings.SPACE_BEFORE_FOR_PARENTHESES); } else if (myRole1 == ChildRole.LPARENTH) { ASTNode rparenth = findFrom(myChild2, JavaTokenType.RPARENTH, true); if (rparenth == null) { createSpaceInCode(mySettings.SPACE_WITHIN_FOR_PARENTHESES); } else { createParenthSpace(mySettings.FOR_STATEMENT_LPAREN_ON_NEXT_LINE, mySettings.SPACE_WITHIN_FOR_PARENTHESES, new TextRange(myChild1.getTextRange().getStartOffset(), rparenth.getTextRange().getEndOffset())); if (myType2 == JavaElementType.EMPTY_STATEMENT) { createSpaceInCode(mySettings.SPACE_BEFORE_SEMICOLON || mySettings.SPACE_WITHIN_FOR_PARENTHESES); } } } else if (myRole2 == ChildRole.RPARENTH) { ASTNode lparenth = findFrom(myChild2, JavaTokenType.LPARENTH, false); if (lparenth == null) { createSpaceInCode(mySettings.SPACE_WITHIN_FOR_PARENTHESES); } else { ASTNode prev = FormatterUtil.getPreviousLeaf(myChild2, TokenType.WHITE_SPACE, TokenType.ERROR_ELEMENT); if (prev != null && prev.getElementType() == JavaTokenType.SEMICOLON) { // Handle empty 'initialization' or 'condition' section. createSpaceInCode(mySettings.SPACE_AFTER_SEMICOLON); } else { createParenthSpace(mySettings.FOR_STATEMENT_RPAREN_ON_NEXT_LINE, mySettings.SPACE_WITHIN_FOR_PARENTHESES, new TextRange(lparenth.getTextRange().getStartOffset(), myChild2.getTextRange().getEndOffset())); } } } else if (myRole1 == ChildRole.FOR_INITIALIZATION) { createSpaceInCode(mySettings.SPACE_AFTER_SEMICOLON); } else if (myRole1 == ChildRole.CONDITION) { createSpaceInCode(mySettings.SPACE_BEFORE_SEMICOLON); } else if (myRole1 == ChildRole.FOR_SEMICOLON) { createSpaceInCode(mySettings.SPACE_AFTER_SEMICOLON); } else if (myRole2 == ChildRole.LOOP_BODY || myType2 == JavaElementType.CODE_BLOCK) { processLoopBody(); } }