Code completion: shorter presentation for member extensions

This commit is contained in:
Valentin Kipyatkov
2014-11-28 13:21:29 +03:00
parent ffe231ec4d
commit 016af0b53c
2 changed files with 15 additions and 8 deletions
@@ -97,9 +97,13 @@ public open class LookupElementFactory protected() {
if (descriptor is CallableDescriptor) { if (descriptor is CallableDescriptor) {
val receiver = descriptor.getExtensionReceiverParameter() val receiver = descriptor.getExtensionReceiverParameter()
if (receiver != null) { if (receiver != null) {
val tail = " for " + DescriptorRenderer.SHORT_NAMES_IN_TYPES.renderType(receiver.getType()) + val container = descriptor.getContainingDeclaration()
" in " + DescriptorUtils.getFqName(descriptor.getContainingDeclaration()) val containerPresentation = if (container is ClassDescriptor)
element = element.appendTailText(tail, true) DescriptorUtils.getFqNameFromTopLevelClass(container)
else
DescriptorUtils.getFqName(container)
val receiverPresentation = DescriptorRenderer.SHORT_NAMES_IN_TYPES.renderType(receiver.getType())
element = element.appendTailText(" for $receiverPresentation in $containerPresentation", true)
} }
} }
@@ -1,11 +1,14 @@
package a.b package a.b
class Some { class Some {
fun foo() { class Nested {
"".<caret> fun foo() {
"".<caret>
}
fun String.memberExtFun() { }
} }
fun String.memberExtFun() { }
val String.memberExtProp: Int get() = 1 val String.memberExtProp: Int get() = 1
} }
@@ -14,5 +17,5 @@ val String.extProp: Int get() = 1
// EXIST: { lookupString: "extFun", itemText: "extFun", tailText: "() for String in a.b", typeText: "Unit" } // EXIST: { lookupString: "extFun", itemText: "extFun", tailText: "() for String in a.b", typeText: "Unit" }
// EXIST: { lookupString: "extProp", itemText: "extProp", tailText: " for String in a.b", typeText: "Int" } // EXIST: { lookupString: "extProp", itemText: "extProp", tailText: " for String in a.b", typeText: "Int" }
// EXIST: { lookupString: "memberExtFun", itemText: "memberExtFun", tailText: "() for String in a.b.Some", typeText: "Unit" } // EXIST: { lookupString: "memberExtFun", itemText: "memberExtFun", tailText: "() for String in Some.Nested", typeText: "Unit" }
// EXIST: { lookupString: "memberExtProp", itemText: "memberExtProp", tailText: " for String in a.b.Some", typeText: "Int" } // EXIST: { lookupString: "memberExtProp", itemText: "memberExtProp", tailText: " for String in Some", typeText: "Int" }