From bd4f1c65c2d478891282ea33d4cd1fff261f9e25 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Thu, 27 Aug 2015 23:14:40 +0300 Subject: [PATCH] Insert type arguments by Tab too --- .../handlers/KotlinFunctionInsertHandler.kt | 2 +- .../handlers/basic/typeArgsForCall/ReplaceByTab1.kt | 10 ++++++++++ .../basic/typeArgsForCall/ReplaceByTab1.kt.after | 10 ++++++++++ .../handlers/basic/typeArgsForCall/ReplaceByTab2.kt | 10 ++++++++++ .../basic/typeArgsForCall/ReplaceByTab2.kt.after | 10 ++++++++++ .../BasicCompletionHandlerTestGenerated.java | 12 ++++++++++++ 6 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 idea/idea-completion/testData/handlers/basic/typeArgsForCall/ReplaceByTab1.kt create mode 100644 idea/idea-completion/testData/handlers/basic/typeArgsForCall/ReplaceByTab1.kt.after create mode 100644 idea/idea-completion/testData/handlers/basic/typeArgsForCall/ReplaceByTab2.kt create mode 100644 idea/idea-completion/testData/handlers/basic/typeArgsForCall/ReplaceByTab2.kt.after diff --git a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/handlers/KotlinFunctionInsertHandler.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/handlers/KotlinFunctionInsertHandler.kt index 9752005357e..323daa08eb5 100644 --- a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/handlers/KotlinFunctionInsertHandler.kt +++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/handlers/KotlinFunctionInsertHandler.kt @@ -100,7 +100,7 @@ class KotlinFunctionInsertHandler( val openingBracket = if (insertLambda) '{' else '(' val closingBracket = if (insertLambda) '}' else ')' - var insertTypeArguments = inputTypeArguments && (completionChar == '\n' || completionChar == '\r') + var insertTypeArguments = inputTypeArguments && (completionChar == '\n' || completionChar == '\r' || completionChar == Lookup.REPLACE_SELECT_CHAR) if (completionChar == Lookup.REPLACE_SELECT_CHAR) { val offset1 = chars.skipSpaces(offset) diff --git a/idea/idea-completion/testData/handlers/basic/typeArgsForCall/ReplaceByTab1.kt b/idea/idea-completion/testData/handlers/basic/typeArgsForCall/ReplaceByTab1.kt new file mode 100644 index 00000000000..e73237c19fd --- /dev/null +++ b/idea/idea-completion/testData/handlers/basic/typeArgsForCall/ReplaceByTab1.kt @@ -0,0 +1,10 @@ +inline fun Iterable<*>.myFilterIsInstance(): List { + return filterIsInstanceTo(ArrayList()) +} + +fun foo(list: List) { + list.filter(x) +} + +// ELEMENT: myFilterIsInstance +// CHAR: '\t' diff --git a/idea/idea-completion/testData/handlers/basic/typeArgsForCall/ReplaceByTab1.kt.after b/idea/idea-completion/testData/handlers/basic/typeArgsForCall/ReplaceByTab1.kt.after new file mode 100644 index 00000000000..61aaab47755 --- /dev/null +++ b/idea/idea-completion/testData/handlers/basic/typeArgsForCall/ReplaceByTab1.kt.after @@ -0,0 +1,10 @@ +inline fun Iterable<*>.myFilterIsInstance(): List { + return filterIsInstanceTo(ArrayList()) +} + +fun foo(list: List) { + list.myFilterIsInstance<>(x) +} + +// ELEMENT: myFilterIsInstance +// CHAR: '\t' diff --git a/idea/idea-completion/testData/handlers/basic/typeArgsForCall/ReplaceByTab2.kt b/idea/idea-completion/testData/handlers/basic/typeArgsForCall/ReplaceByTab2.kt new file mode 100644 index 00000000000..182e9559f3f --- /dev/null +++ b/idea/idea-completion/testData/handlers/basic/typeArgsForCall/ReplaceByTab2.kt @@ -0,0 +1,10 @@ +inline fun Iterable<*>.myFilterIsInstance(): List { + return filterIsInstanceTo(ArrayList()) +} + +fun foo(list: List) { + list.filter(x) +} + +// ELEMENT: myFilterIsInstance +// CHAR: '\t' diff --git a/idea/idea-completion/testData/handlers/basic/typeArgsForCall/ReplaceByTab2.kt.after b/idea/idea-completion/testData/handlers/basic/typeArgsForCall/ReplaceByTab2.kt.after new file mode 100644 index 00000000000..d4e610c774c --- /dev/null +++ b/idea/idea-completion/testData/handlers/basic/typeArgsForCall/ReplaceByTab2.kt.after @@ -0,0 +1,10 @@ +inline fun Iterable<*>.myFilterIsInstance(): List { + return filterIsInstanceTo(ArrayList()) +} + +fun foo(list: List) { + list.myFilterIsInstance(x) +} + +// ELEMENT: myFilterIsInstance +// CHAR: '\t' diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/handlers/BasicCompletionHandlerTestGenerated.java b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/handlers/BasicCompletionHandlerTestGenerated.java index 03ffc4b3b67..d2d12db39c6 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/handlers/BasicCompletionHandlerTestGenerated.java +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/handlers/BasicCompletionHandlerTestGenerated.java @@ -481,6 +481,18 @@ public class BasicCompletionHandlerTestGenerated extends AbstractBasicCompletion doTest(fileName); } + @TestMetadata("ReplaceByTab1.kt") + public void testReplaceByTab1() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/handlers/basic/typeArgsForCall/ReplaceByTab1.kt"); + doTest(fileName); + } + + @TestMetadata("ReplaceByTab2.kt") + public void testReplaceByTab2() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/handlers/basic/typeArgsForCall/ReplaceByTab2.kt"); + doTest(fileName); + } + @TestMetadata("Simple.kt") public void testSimple() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/handlers/basic/typeArgsForCall/Simple.kt");