From c617d5256e2f5bccaac4f352f85bf35a48d0e293 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Wed, 29 Apr 2015 19:36:40 +0300 Subject: [PATCH] ReplaceWithTraditionalAssignmentIntention - smaller range --- .../ReplaceWithTraditionalAssignmentIntention.kt | 11 ++++++----- .../complexRightExpression.kt | 2 +- .../nonAssignmentExpression.kt | 2 +- .../nonAugmentedAssign.kt | 2 +- .../replaceWithTraditionalAssignment/simple.kt | 2 +- .../replaceWithTraditionalAssignment/simple.kt.after | 2 +- 6 files changed, 11 insertions(+), 10 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/ReplaceWithTraditionalAssignmentIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/ReplaceWithTraditionalAssignmentIntention.kt index a8f095e9fbb..008cab496ce 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/ReplaceWithTraditionalAssignmentIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/ReplaceWithTraditionalAssignmentIntention.kt @@ -22,11 +22,12 @@ import org.jetbrains.kotlin.psi.JetBinaryExpression import org.jetbrains.kotlin.psi.JetPsiFactory import org.jetbrains.kotlin.psi.JetSimpleNameExpression -public class ReplaceWithTraditionalAssignmentIntention : JetSelfTargetingOffsetIndependentIntention(javaClass(), "Replace with traditional assignment") { - override fun isApplicableTo(element: JetBinaryExpression): Boolean { - return element.getOperationToken() in JetTokens.AUGMENTED_ASSIGNMENTS - && element.getLeft() is JetSimpleNameExpression - && element.getRight() != null +public class ReplaceWithTraditionalAssignmentIntention : JetSelfTargetingIntention(javaClass(), "Replace with traditional assignment") { + override fun isApplicableTo(element: JetBinaryExpression, caretOffset: Int): Boolean { + if (element.getOperationToken() !in JetTokens.AUGMENTED_ASSIGNMENTS) return false + if (element.getLeft() !is JetSimpleNameExpression) return false + if (element.getRight() == null) return false + return element.getOperationReference().getTextRange().containsOffset(caretOffset) } override fun applyTo(element: JetBinaryExpression, editor: Editor) { diff --git a/idea/testData/intentions/replaceWithTraditionalAssignment/complexRightExpression.kt b/idea/testData/intentions/replaceWithTraditionalAssignment/complexRightExpression.kt index 44ddf918fa8..4e1f23f7430 100644 --- a/idea/testData/intentions/replaceWithTraditionalAssignment/complexRightExpression.kt +++ b/idea/testData/intentions/replaceWithTraditionalAssignment/complexRightExpression.kt @@ -2,5 +2,5 @@ fun foo() { var x = 0 val a = 1 val b = 1 - x += a / b + x += a / b } \ No newline at end of file diff --git a/idea/testData/intentions/replaceWithTraditionalAssignment/nonAssignmentExpression.kt b/idea/testData/intentions/replaceWithTraditionalAssignment/nonAssignmentExpression.kt index d0c68128fce..acf1c4dc008 100644 --- a/idea/testData/intentions/replaceWithTraditionalAssignment/nonAssignmentExpression.kt +++ b/idea/testData/intentions/replaceWithTraditionalAssignment/nonAssignmentExpression.kt @@ -1,5 +1,5 @@ // IS_APPLICABLE: false fun foo() { var x = 0 - x + 1 + x + 1 } \ No newline at end of file diff --git a/idea/testData/intentions/replaceWithTraditionalAssignment/nonAugmentedAssign.kt b/idea/testData/intentions/replaceWithTraditionalAssignment/nonAugmentedAssign.kt index f5c86babf49..a30243352db 100644 --- a/idea/testData/intentions/replaceWithTraditionalAssignment/nonAugmentedAssign.kt +++ b/idea/testData/intentions/replaceWithTraditionalAssignment/nonAugmentedAssign.kt @@ -3,5 +3,5 @@ fun foo() { var x = 0 val a = 1 val b = 1 - x = a / b + x = a / b } \ No newline at end of file diff --git a/idea/testData/intentions/replaceWithTraditionalAssignment/simple.kt b/idea/testData/intentions/replaceWithTraditionalAssignment/simple.kt index dd626cf344a..530f4a54bfd 100644 --- a/idea/testData/intentions/replaceWithTraditionalAssignment/simple.kt +++ b/idea/testData/intentions/replaceWithTraditionalAssignment/simple.kt @@ -1,4 +1,4 @@ fun foo() { var x = 0 - x += 1 + x += 1 } \ No newline at end of file diff --git a/idea/testData/intentions/replaceWithTraditionalAssignment/simple.kt.after b/idea/testData/intentions/replaceWithTraditionalAssignment/simple.kt.after index c4922fceaf2..03c2201b477 100644 --- a/idea/testData/intentions/replaceWithTraditionalAssignment/simple.kt.after +++ b/idea/testData/intentions/replaceWithTraditionalAssignment/simple.kt.after @@ -1,4 +1,4 @@ fun foo() { var x = 0 - x = x + 1 + x = x + 1 } \ No newline at end of file