From 3566ac15104efb8589647307ce949841f021401f Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Wed, 26 Nov 2014 20:31:09 +0300 Subject: [PATCH] Code completion: added type parameters for Kotlin classes too --- .../jet/plugin/completion/LookupElementFactory.kt | 5 +++++ .../completion/basic/common/GenericKotlinClass.kt | 8 ++++++++ .../completion/basic/common/StandardJetArrayFirst.kt | 5 ++--- .../jet/completion/JSBasicCompletionTestGenerated.java | 6 ++++++ .../jet/completion/JvmBasicCompletionTestGenerated.java | 6 ++++++ .../jet/completion/JvmSmartCompletionTestGenerated.java | 1 + 6 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 idea/testData/completion/basic/common/GenericKotlinClass.kt diff --git a/idea/src/org/jetbrains/jet/plugin/completion/LookupElementFactory.kt b/idea/src/org/jetbrains/jet/plugin/completion/LookupElementFactory.kt index cacbe500ee1..f0e00710424 100644 --- a/idea/src/org/jetbrains/jet/plugin/completion/LookupElementFactory.kt +++ b/idea/src/org/jetbrains/jet/plugin/completion/LookupElementFactory.kt @@ -81,6 +81,11 @@ public open class LookupElementFactory protected() { } is ClassDescriptor -> { + val typeParams = descriptor.getTypeConstructor().getParameters() + if (typeParams.isNotEmpty()) { + element = element.appendTailText("<" + typeParams.map { it.getName().asString() }.joinToString(", ") + ">", true) + } + element = element.appendTailText(" (" + DescriptorUtils.getFqName(descriptor.getContainingDeclaration()) + ")", true) } diff --git a/idea/testData/completion/basic/common/GenericKotlinClass.kt b/idea/testData/completion/basic/common/GenericKotlinClass.kt new file mode 100644 index 00000000000..97d38b2fa77 --- /dev/null +++ b/idea/testData/completion/basic/common/GenericKotlinClass.kt @@ -0,0 +1,8 @@ +class Generic1 + +class Generic2 + +fun foo(): G + +// EXIST: { lookupString: "Generic1", itemText: "Generic1", tailText: " ()" } +// EXIST: { lookupString: "Generic2", itemText: "Generic2", tailText: " ()" } diff --git a/idea/testData/completion/basic/common/StandardJetArrayFirst.kt b/idea/testData/completion/basic/common/StandardJetArrayFirst.kt index cd676977e43..57a460ad0aa 100644 --- a/idea/testData/completion/basic/common/StandardJetArrayFirst.kt +++ b/idea/testData/completion/basic/common/StandardJetArrayFirst.kt @@ -4,10 +4,9 @@ fun main(args: Array) { // INVOCATION_COUNT: 2 // WITH_ORDER: 1 -// EXIST: { lookupString:"Array", tailText:" (kotlin)" } +// EXIST: { lookupString:"Array", tailText:" (kotlin)" } // EXIST_JAVA_ONLY: { lookupString:"Array", tailText:" (java.sql)" } -// EXIST_JAVA_ONLY: { lookupString:"ArrayList", tailText:" (java.util)" } -// EXIST_JS_ONLY: { lookupString:"ArrayList", tailText:" (java.util)" } +// EXIST: { lookupString:"ArrayList", tailText:" (java.util)" } diff --git a/idea/tests/org/jetbrains/jet/completion/JSBasicCompletionTestGenerated.java b/idea/tests/org/jetbrains/jet/completion/JSBasicCompletionTestGenerated.java index f2e0a079bdc..29e05bd0e5c 100644 --- a/idea/tests/org/jetbrains/jet/completion/JSBasicCompletionTestGenerated.java +++ b/idea/tests/org/jetbrains/jet/completion/JSBasicCompletionTestGenerated.java @@ -292,6 +292,12 @@ public class JSBasicCompletionTestGenerated extends AbstractJSBasicCompletionTes doTest(fileName); } + @TestMetadata("GenericKotlinClass.kt") + public void testGenericKotlinClass() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/basic/common/GenericKotlinClass.kt"); + doTest(fileName); + } + @TestMetadata("HigherOrderFunction1.kt") public void testHigherOrderFunction1() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/basic/common/HigherOrderFunction1.kt"); diff --git a/idea/tests/org/jetbrains/jet/completion/JvmBasicCompletionTestGenerated.java b/idea/tests/org/jetbrains/jet/completion/JvmBasicCompletionTestGenerated.java index 6aa6dd5d8ad..e85aa08848a 100644 --- a/idea/tests/org/jetbrains/jet/completion/JvmBasicCompletionTestGenerated.java +++ b/idea/tests/org/jetbrains/jet/completion/JvmBasicCompletionTestGenerated.java @@ -292,6 +292,12 @@ public class JvmBasicCompletionTestGenerated extends AbstractJvmBasicCompletionT doTest(fileName); } + @TestMetadata("GenericKotlinClass.kt") + public void testGenericKotlinClass() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/basic/common/GenericKotlinClass.kt"); + doTest(fileName); + } + @TestMetadata("HigherOrderFunction1.kt") public void testHigherOrderFunction1() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/basic/common/HigherOrderFunction1.kt"); diff --git a/idea/tests/org/jetbrains/jet/completion/JvmSmartCompletionTestGenerated.java b/idea/tests/org/jetbrains/jet/completion/JvmSmartCompletionTestGenerated.java index 2e8732d5052..82a867cdbdc 100644 --- a/idea/tests/org/jetbrains/jet/completion/JvmSmartCompletionTestGenerated.java +++ b/idea/tests/org/jetbrains/jet/completion/JvmSmartCompletionTestGenerated.java @@ -19,6 +19,7 @@ package org.jetbrains.jet.completion; 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;