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 lookupElement = createLookupElement(classifier, resolveSession, bindingContext)
var lookupString = lookupElement.getLookupString() var lookupString = lookupElement.getLookupString()
var allLookupStrings = setOf(lookupString)
val typeArgs = jetType.getArguments() val typeArgs = jetType.getArguments()
var itemText = lookupString + DescriptorRenderer.SHORT_NAMES_IN_TYPES.renderTypeArguments(typeArgs) 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 "" val constructorParenthesis = if (classifier.getKind() != ClassKind.TRAIT) "()" else ""
itemText += constructorParenthesis itemText += constructorParenthesis
itemText = "object: " + itemText + "{...}" itemText = "object: " + itemText + "{...}"
lookupString = "object" //? lookupString = "object"
allLookupStrings = setOf(lookupString, lookupElement.getLookupString())
insertHandler = InsertHandler<LookupElement> {(context, item) -> insertHandler = InsertHandler<LookupElement> {(context, item) ->
val editor = context.getEditor() val editor = context.getEditor()
val startOffset = context.getStartOffset() val startOffset = context.getStartOffset()
@@ -127,6 +129,8 @@ class TypeInstantiationItems(val resolveSession: ResolveSessionForBodies, val bi
lookupElement = object: LookupElementDecorator<LookupElement>(lookupElement) { lookupElement = object: LookupElementDecorator<LookupElement>(lookupElement) {
override fun getLookupString() = lookupString override fun getLookupString() = lookupString
override fun getAllLookupStrings() = allLookupStrings
override fun renderElement(presentation: LookupElementPresentation) { override fun renderElement(presentation: LookupElementPresentation) {
getDelegate().renderElement(presentation) getDelegate().renderElement(presentation)
presentation.setItemText(itemText) 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); 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") @TestMetadata("AnyExpected.kt")
public void testAnyExpected() throws Exception { public void testAnyExpected() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/smart/AnyExpected.kt"); String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/smart/AnyExpected.kt");