From 016af0b53c29395b70f2a9a6bc373e12d2fdf5c3 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Fri, 28 Nov 2014 13:21:29 +0300 Subject: [PATCH] Code completion: shorter presentation for member extensions --- .../jet/plugin/completion/LookupElementFactory.kt | 10 +++++++--- .../basic/common/extensions/Extensions.kt | 13 ++++++++----- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/idea/src/org/jetbrains/jet/plugin/completion/LookupElementFactory.kt b/idea/src/org/jetbrains/jet/plugin/completion/LookupElementFactory.kt index 943a0bf0e4b..9dc41cf5e39 100644 --- a/idea/src/org/jetbrains/jet/plugin/completion/LookupElementFactory.kt +++ b/idea/src/org/jetbrains/jet/plugin/completion/LookupElementFactory.kt @@ -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) } } diff --git a/idea/testData/completion/basic/common/extensions/Extensions.kt b/idea/testData/completion/basic/common/extensions/Extensions.kt index fb4d4375e0b..745aaceb7e3 100644 --- a/idea/testData/completion/basic/common/extensions/Extensions.kt +++ b/idea/testData/completion/basic/common/extensions/Extensions.kt @@ -1,11 +1,14 @@ package a.b class Some { - fun foo() { - "". + class Nested { + fun foo() { + "". + } + + 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" }