void (@NotNull GrIfStatement ifStatement) { if (myType2 == GroovyTokenTypes.kELSE) { if (!isOpenBlock(myType1) && myType1 != GroovyElementTypes.BLOCK_STATEMENT) { createSpaceInCode(true); } else { if (mySettings.ELSE_ON_NEW_LINE) { createLF(true); } else { createSpaceProperty(mySettings.SPACE_BEFORE_ELSE_KEYWORD, false, 0); } } } else if (myType1 == GroovyTokenTypes.kELSE) { if (myType2 == GroovyElementTypes.IF_STATEMENT) { if (mySettings.SPECIAL_ELSE_IF_TREATMENT) { createSpaceProperty(true, false, 0); } else { createLF(true); } } else { if (myType2 == GroovyElementTypes.BLOCK_STATEMENT || isOpenBlock(myType2)) { createSpaceBeforeLBrace(mySettings.SPACE_BEFORE_ELSE_LBRACE, mySettings.BRACE_STYLE, null, mySettings.KEEP_SIMPLE_BLOCKS_IN_ONE_LINE); } else { createSpacingBeforeElementInsideControlStatement(); } } } else if (myType2 == GroovyElementTypes.BLOCK_STATEMENT || isOpenBlock(myType2)) { boolean space = myChild2.getPsi() == ((GrIfStatement)myParent).getElseBranch() ? mySettings.SPACE_BEFORE_ELSE_LBRACE : mySettings.SPACE_BEFORE_IF_LBRACE; createSpaceBeforeLBrace(space, mySettings.BRACE_STYLE, new TextRange(myParent.getTextRange().getStartOffset(), myChild1.getTextRange().getEndOffset()), mySettings.KEEP_SIMPLE_BLOCKS_IN_ONE_LINE); } else if (myType2 == GroovyTokenTypes.mLPAREN) { createSpaceInCode(mySettings.SPACE_BEFORE_IF_PARENTHESES); } else if (isWithinParentheses()) { createSpaceInCode(mySettings.SPACE_WITHIN_IF_PARENTHESES); } else if (((GrIfStatement)myParent).getThenBranch() == myChild2.getPsi()) { createSpacingBeforeElementInsideControlStatement(); } }