From 5ace57bc5fc423e355e865410a2844af20732504 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Tue, 28 Apr 2015 15:23:26 +0300 Subject: [PATCH] "Move lambda function into parentheses" intention - smaller availability range --- .../src/org/jetbrains/kotlin/idea/JetBundle.properties | 2 -- .../intentions/MoveLambdaInsideParenthesesIntention.kt | 10 ++++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/JetBundle.properties b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/JetBundle.properties index 09da6119316..fb97e3f46dc 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/JetBundle.properties +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/JetBundle.properties @@ -302,8 +302,6 @@ replace.with.infix.function.call.intention.error.resolution.failed=The element c replace.with.infix.function.call.intention.error.package.call=Cannot be applied with a package as the receiver replace.explicit.function.literal.param.with.it=Replace explicit parameter ''{0}'' with ''it'' replace.explicit.function.literal.param.with.it.family=Replace Explicit Parameter with 'it' -move.lambda.inside.parentheses=Move lambda function into parentheses -move.lambda.inside.parentheses.family=Move Lambda Function Into Parentheses move.lambda.outside.parentheses=Move lambda expression out of parentheses move.lambda.outside.parentheses.family=Move Lambda Expression out of Parentheses replace.it.with.explicit.function.literal.param=Replace 'it' with explicit parameter diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/MoveLambdaInsideParenthesesIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/MoveLambdaInsideParenthesesIntention.kt index 64c50ba19bf..7fefd6676c2 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/MoveLambdaInsideParenthesesIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/MoveLambdaInsideParenthesesIntention.kt @@ -21,10 +21,12 @@ import org.jetbrains.kotlin.psi.JetFunctionLiteralArgument import org.jetbrains.kotlin.idea.util.psiModificationUtil.moveInsideParentheses import org.jetbrains.kotlin.idea.caches.resolve.analyzeFully -public class MoveLambdaInsideParenthesesIntention : JetSelfTargetingOffsetIndependentIntention( - "move.lambda.inside.parentheses", javaClass()) { - - override fun isApplicableTo(element: JetFunctionLiteralArgument): Boolean = true +public class MoveLambdaInsideParenthesesIntention : JetSelfTargetingIntention(javaClass(), "Move lambda function into parentheses") { + override fun isApplicableTo(element: JetFunctionLiteralArgument, caretOffset: Int): Boolean { + val lBrace = element.getFunctionLiteral().getLeftCurlyBrace() + val rBrace = element.getFunctionLiteral().getRightCurlyBrace() ?: return false + return caretOffset < lBrace.getTextRange().getEndOffset() || rBrace.getTextRange().containsOffset(caretOffset) + } override fun applyTo(element: JetFunctionLiteralArgument, editor: Editor) { element.moveInsideParentheses(element.analyzeFully())