From 836b4aa0f004267636ecbb97aea8f1031a05f828 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Tue, 28 Oct 2014 20:58:28 +0300 Subject: [PATCH] Smart completion: fixed lookup string for anonymous object item --- .../jet/plugin/completion/smart/TypeInstantiationItems.kt | 6 +++++- idea/testData/completion/smart/AnonymousObjectWithPrefix.kt | 5 +++++ .../jet/completion/JvmSmartCompletionTestGenerated.java | 6 ++++++ 3 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 idea/testData/completion/smart/AnonymousObjectWithPrefix.kt diff --git a/idea/src/org/jetbrains/jet/plugin/completion/smart/TypeInstantiationItems.kt b/idea/src/org/jetbrains/jet/plugin/completion/smart/TypeInstantiationItems.kt index 6ad48ca08b4..409591fc0f0 100644 --- a/idea/src/org/jetbrains/jet/plugin/completion/smart/TypeInstantiationItems.kt +++ b/idea/src/org/jetbrains/jet/plugin/completion/smart/TypeInstantiationItems.kt @@ -70,6 +70,7 @@ class TypeInstantiationItems(val resolveSession: ResolveSessionForBodies, val bi var lookupElement = createLookupElement(classifier, resolveSession, bindingContext) var lookupString = lookupElement.getLookupString() + var allLookupStrings = setOf(lookupString) val typeArgs = jetType.getArguments() var itemText = lookupString + DescriptorRenderer.SHORT_NAMES_IN_TYPES.renderTypeArguments(typeArgs) @@ -80,7 +81,8 @@ class TypeInstantiationItems(val resolveSession: ResolveSessionForBodies, val bi val constructorParenthesis = if (classifier.getKind() != ClassKind.TRAIT) "()" else "" itemText += constructorParenthesis itemText = "object: " + itemText + "{...}" - lookupString = "object" //? + lookupString = "object" + allLookupStrings = setOf(lookupString, lookupElement.getLookupString()) insertHandler = InsertHandler {(context, item) -> val editor = context.getEditor() val startOffset = context.getStartOffset() @@ -127,6 +129,8 @@ class TypeInstantiationItems(val resolveSession: ResolveSessionForBodies, val bi lookupElement = object: LookupElementDecorator(lookupElement) { override fun getLookupString() = lookupString + override fun getAllLookupStrings() = allLookupStrings + override fun renderElement(presentation: LookupElementPresentation) { getDelegate().renderElement(presentation) presentation.setItemText(itemText) diff --git a/idea/testData/completion/smart/AnonymousObjectWithPrefix.kt b/idea/testData/completion/smart/AnonymousObjectWithPrefix.kt new file mode 100644 index 00000000000..26cf4e8d7d1 --- /dev/null +++ b/idea/testData/completion/smart/AnonymousObjectWithPrefix.kt @@ -0,0 +1,5 @@ +trait Foo + +var a : Foo = o + +// EXIST: { lookupString:"object", itemText:"object: Foo{...}" } diff --git a/idea/tests/org/jetbrains/jet/completion/JvmSmartCompletionTestGenerated.java b/idea/tests/org/jetbrains/jet/completion/JvmSmartCompletionTestGenerated.java index 2e2570386e3..61213683df2 100644 --- a/idea/tests/org/jetbrains/jet/completion/JvmSmartCompletionTestGenerated.java +++ b/idea/tests/org/jetbrains/jet/completion/JvmSmartCompletionTestGenerated.java @@ -77,6 +77,12 @@ public class JvmSmartCompletionTestGenerated extends AbstractJvmSmartCompletionT doTest(fileName); } + @TestMetadata("AnonymousObjectWithPrefix.kt") + public void testAnonymousObjectWithPrefix() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/smart/AnonymousObjectWithPrefix.kt"); + doTest(fileName); + } + @TestMetadata("AnyExpected.kt") public void testAnyExpected() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/smart/AnyExpected.kt");