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) {
val receiver = descriptor.getExtensionReceiverParameter()
if (receiver != null) {
val tail = " for " + DescriptorRenderer.SHORT_NAMES_IN_TYPES.renderType(receiver.getType()) +
" in " + DescriptorUtils.getFqName(descriptor.getContainingDeclaration())
element = element.appendTailText(tail, true)
val container = descriptor.getContainingDeclaration()
val containerPresentation = if (container is ClassDescriptor)
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
class Some {
fun foo() {
"".<caret>
class Nested {
fun foo() {
"".<caret>
}
fun String.memberExtFun() { }
}
fun String.memberExtFun() { }
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: "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: "memberExtProp", itemText: "memberExtProp", tailText: " for String in a.b.Some", typeText: "Int" }
// EXIST: { lookupString: "memberExtFun", itemText: "memberExtFun", tailText: "() for String in Some.Nested", typeText: "Unit" }
// EXIST: { lookupString: "memberExtProp", itemText: "memberExtProp", tailText: " for String in Some", typeText: "Int" }