From f4924299dd1b29835231c1848a91c56359c3febe Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Mon, 22 Sep 2014 18:23:03 +0400 Subject: [PATCH] Extract method --- .../handlers/JetCallableInsertHandler.kt | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/idea/src/org/jetbrains/jet/plugin/completion/handlers/JetCallableInsertHandler.kt b/idea/src/org/jetbrains/jet/plugin/completion/handlers/JetCallableInsertHandler.kt index 3be68755648..c4a5415e68f 100644 --- a/idea/src/org/jetbrains/jet/plugin/completion/handlers/JetCallableInsertHandler.kt +++ b/idea/src/org/jetbrains/jet/plugin/completion/handlers/JetCallableInsertHandler.kt @@ -100,13 +100,12 @@ public class JetFunctionInsertHandler(val caretPosition : CaretPosition, val lam psiDocumentManager.doPostponedOperationsAndUnblockDocument(context.getDocument()) val startOffset = context.getStartOffset() - val element = context.getFile().findElementAt(startOffset) + val element = context.getFile().findElementAt(startOffset) ?: return - if (element != null) { - if (PsiTreeUtil.getParentOfType(element, javaClass()) != null) return - val parent = element.getParent() - val grandParent = parent?.getParent() - if (parent is JetSimpleNameExpression && grandParent is JetBinaryExpression && parent == grandParent.getOperationReference()) { // infix call + when { + PsiTreeUtil.getParentOfType(element, javaClass()) != null -> return + + isInfixCall(element) -> { if (context.getCompletionChar() == ' ') { context.setAddCompletionChar(false) } @@ -115,12 +114,17 @@ public class JetFunctionInsertHandler(val caretPosition : CaretPosition, val lam context.getDocument().insertString(tailOffset, " ") context.getEditor().getCaretModel().moveToOffset(tailOffset + 1) } - else { - addBrackets(context, element) - } + + else -> addBrackets(context, element) } } + private fun isInfixCall(context: PsiElement): Boolean { + val parent = context.getParent() + val grandParent = parent?.getParent() + return parent is JetSimpleNameExpression && grandParent is JetBinaryExpression && parent == grandParent.getOperationReference() + } + private fun addBrackets(context : InsertionContext, offsetElement : PsiElement) { if (context.getCompletionChar() == '(') { //TODO: more correct behavior related to braces type context.setAddCompletionChar(false)