public void apply(Editor editor, HaxeSmartEnterProcessor processor, PsiElement psiElement) throws IncorrectOperationException {
if (!(psiElement instanceof HaxeIfStatement)) {
return;
}
HaxeIfStatement ifStatement = (HaxeIfStatement)psiElement;
if (ifStatement.getBlockStatementList().size() > 0) {
return;
}
if (ifStatement.getNode().findChildByType(HaxeTokenTypes.PLPAREN) == null) {
int offset = ifStatement.getFirstChild().getTextRange().getEndOffset();
editor.getDocument().insertString(offset, " () {\n}");
editor.getCaretModel().moveToOffset(offset + 2);
processor.setSkipEnter(true);
}
else if (ifStatement.getExpressionList().size() > 0 && ifStatement.getNode().findChildByType(HaxeTokenTypes.PLCURLY) == null) {
int offset = ifStatement.getNode().findChildByType(HaxeTokenTypes.PRPAREN).getTextRange().getEndOffset();
editor.getDocument().insertString(offset, " {\n\n}");
editor.getCaretModel().moveToOffset(offset + 3);
processor.setSkipEnter(true);
}
}