From 4b2ee7e64520d6168a1d8a7fbb363349cc8d2686 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Fri, 26 Dec 2014 20:43:44 +0300 Subject: [PATCH] Fixed KT-6429 Wrong replacement range in smart completion in some particular case #KT-6429 Fixed --- .../plugin/completion/KotlinCompletionContributor.kt | 2 +- .../completion/handlers/smart/ReplaceArgument.kt | 11 +++++++++++ .../handlers/smart/ReplaceArgument.kt.after | 11 +++++++++++ .../handlers/SmartCompletionHandlerTestGenerated.java | 7 ++++++- 4 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 idea/testData/completion/handlers/smart/ReplaceArgument.kt create mode 100644 idea/testData/completion/handlers/smart/ReplaceArgument.kt.after diff --git a/idea/src/org/jetbrains/jet/plugin/completion/KotlinCompletionContributor.kt b/idea/src/org/jetbrains/jet/plugin/completion/KotlinCompletionContributor.kt index ec521d4d851..3a50bb981e0 100644 --- a/idea/src/org/jetbrains/jet/plugin/completion/KotlinCompletionContributor.kt +++ b/idea/src/org/jetbrains/jet/plugin/completion/KotlinCompletionContributor.kt @@ -272,7 +272,7 @@ public class KotlinCompletionContributor : CompletionContributor() { val chars = document.getCharsSequence() while (i < chars.length()) { val c = chars.charAt(i) - if (c == '\n' || c == 'r') return true + if (c == '\n') return true if (!Character.isWhitespace(c)) return false i++ } diff --git a/idea/testData/completion/handlers/smart/ReplaceArgument.kt b/idea/testData/completion/handlers/smart/ReplaceArgument.kt new file mode 100644 index 00000000000..d32c4de8f16 --- /dev/null +++ b/idea/testData/completion/handlers/smart/ReplaceArgument.kt @@ -0,0 +1,11 @@ +import java.util.ArrayList + +class C(p: Int, p2: Int) + +fun foo(p: Int){ + val result = ArrayList() + C(1, result.size()) +} + +// CHAR: '\t' +// ELEMENT: p diff --git a/idea/testData/completion/handlers/smart/ReplaceArgument.kt.after b/idea/testData/completion/handlers/smart/ReplaceArgument.kt.after new file mode 100644 index 00000000000..cdd6948e6e8 --- /dev/null +++ b/idea/testData/completion/handlers/smart/ReplaceArgument.kt.after @@ -0,0 +1,11 @@ +import java.util.ArrayList + +class C(p: Int, p2: Int) + +fun foo(p: Int){ + val result = ArrayList() + C(1, p) +} + +// CHAR: '\t' +// ELEMENT: p diff --git a/idea/tests/org/jetbrains/jet/completion/handlers/SmartCompletionHandlerTestGenerated.java b/idea/tests/org/jetbrains/jet/completion/handlers/SmartCompletionHandlerTestGenerated.java index 5f021b5aa32..7b6f329017a 100644 --- a/idea/tests/org/jetbrains/jet/completion/handlers/SmartCompletionHandlerTestGenerated.java +++ b/idea/tests/org/jetbrains/jet/completion/handlers/SmartCompletionHandlerTestGenerated.java @@ -19,7 +19,6 @@ package org.jetbrains.jet.completion.handlers; import com.intellij.testFramework.TestDataPath; import org.jetbrains.jet.JUnit3RunnerWithInners; import org.jetbrains.jet.JetTestUtils; -import org.jetbrains.jet.test.InnerTestClasses; import org.jetbrains.jet.test.TestMetadata; import org.junit.runner.RunWith; @@ -534,6 +533,12 @@ public class SmartCompletionHandlerTestGenerated extends AbstractSmartCompletion doTest(fileName); } + @TestMetadata("ReplaceArgument.kt") + public void testReplaceArgument() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/handlers/smart/ReplaceArgument.kt"); + doTest(fileName); + } + @TestMetadata("SAMExpected1.kt") public void testSAMExpected1() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/handlers/smart/SAMExpected1.kt");