From 540e8b8b468cb1a8f450dcc0dd36b2161d83a561 Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Wed, 9 Jul 2014 16:10:00 +0400 Subject: [PATCH] Extract Function: By default suggest only classes as containers when etracting to class body --- .../extractFunction/ExtractKotlinFunctionHandler.kt | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/ExtractKotlinFunctionHandler.kt b/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/ExtractKotlinFunctionHandler.kt index 7812ccfa73e..e601bbb04c2 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/ExtractKotlinFunctionHandler.kt +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/ExtractKotlinFunctionHandler.kt @@ -39,7 +39,6 @@ import org.jetbrains.jet.lang.psi.psiUtil.getOutermostParentContainedIn import org.jetbrains.jet.plugin.refactoring.checkConflictsInteractively import org.jetbrains.jet.plugin.refactoring.executeWriteCommand import org.jetbrains.jet.lang.psi.JetBlockExpression -import org.jetbrains.jet.lang.psi.JetClassOrObject import org.jetbrains.jet.lang.psi.JetClassBody import kotlin.test.fail import org.jetbrains.jet.lang.psi.JetDeclarationWithBody @@ -56,8 +55,8 @@ import java.util.Collections import org.jetbrains.jet.lang.psi.JetProperty import org.jetbrains.jet.lang.psi.JetParameterList import org.jetbrains.jet.lang.psi.JetClassInitializer -import org.jetbrains.jet.lang.psi.JetFunctionLiteralExpression import org.jetbrains.jet.lang.psi.JetFunctionLiteral +import org.jetbrains.jet.lang.psi.JetClassOrObject public class ExtractKotlinFunctionHandler(public val allContainersEnabled: Boolean = false) : RefactoringActionHandler { fun doInvoke( @@ -194,11 +193,7 @@ fun selectElements( return when (parent) { is JetFile -> Collections.singletonList(parent) is JetClassBody -> { - element.getAllExtractionContainers(strict) - .filter { - it is JetClassBody || (it is JetBlockExpression && it.getParent() is JetDeclarationWithBody) - } - .dropWhile { it !is JetClassBody } + element.getAllExtractionContainers(strict).filterIsInstance(javaClass()) } else -> { val enclosingDeclaration =