Smart completion: fixed lookup string for anonymous object item

This commit is contained in:
Valentin Kipyatkov
2014-10-28 20:58:28 +03:00
parent e256d14075
commit 836b4aa0f0
3 changed files with 16 additions and 1 deletions
@@ -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<LookupElement> {(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>(lookupElement) {
override fun getLookupString() = lookupString
override fun getAllLookupStrings() = allLookupStrings
override fun renderElement(presentation: LookupElementPresentation) {
getDelegate().renderElement(presentation)
presentation.setItemText(itemText)
@@ -0,0 +1,5 @@
trait Foo
var a : Foo = o<caret>
// EXIST: { lookupString:"object", itemText:"object: Foo{...}" }
@@ -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");