Completion: corrected presentation for extension properties
This commit is contained in:
@@ -76,12 +76,6 @@ public object KotlinLookupElementFactory {
|
|||||||
val returnType = descriptor.getReturnType()
|
val returnType = descriptor.getReturnType()
|
||||||
element = element.withTypeText(if (returnType != null) DescriptorRenderer.SHORT_NAMES_IN_TYPES.renderType(returnType) else "")
|
element = element.withTypeText(if (returnType != null) DescriptorRenderer.SHORT_NAMES_IN_TYPES.renderType(returnType) else "")
|
||||||
element = element.appendTailText(DescriptorRenderer.SHORT_NAMES_IN_TYPES.renderFunctionParameters(descriptor), false)
|
element = element.appendTailText(DescriptorRenderer.SHORT_NAMES_IN_TYPES.renderFunctionParameters(descriptor), false)
|
||||||
|
|
||||||
if (descriptor.getExtensionReceiverParameter() != null) {
|
|
||||||
val tail = " for " + DescriptorRenderer.SHORT_NAMES_IN_TYPES.renderType(descriptor.getExtensionReceiverParameter()!!.getType()) +
|
|
||||||
" in " + DescriptorUtils.getFqName(descriptor.getContainingDeclaration())
|
|
||||||
element = element.appendTailText(tail, true)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
is VariableDescriptor -> {
|
is VariableDescriptor -> {
|
||||||
@@ -97,6 +91,15 @@ public object KotlinLookupElementFactory {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (KotlinBuiltIns.getInstance().isDeprecated(descriptor)) {
|
if (KotlinBuiltIns.getInstance().isDeprecated(descriptor)) {
|
||||||
element = element.withStrikeoutness(true)
|
element = element.withStrikeoutness(true)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package a.b
|
||||||
|
|
||||||
|
class Some {
|
||||||
|
fun foo() {
|
||||||
|
"".<caret>
|
||||||
|
}
|
||||||
|
|
||||||
|
fun String.memberExtFun() { }
|
||||||
|
val String.memberExtProp: Int get() = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
fun String.extFun() { }
|
||||||
|
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" }
|
||||||
@@ -816,6 +816,12 @@ public class JSBasicCompletionTestGenerated extends AbstractJSBasicCompletionTes
|
|||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("Extensions.kt")
|
||||||
|
public void testExtensions() throws Exception {
|
||||||
|
String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/basic/common/extensions/Extensions.kt");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("InvalidTypeParameters.kt")
|
@TestMetadata("InvalidTypeParameters.kt")
|
||||||
public void testInvalidTypeParameters() throws Exception {
|
public void testInvalidTypeParameters() throws Exception {
|
||||||
String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/basic/common/extensions/InvalidTypeParameters.kt");
|
String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/basic/common/extensions/InvalidTypeParameters.kt");
|
||||||
|
|||||||
@@ -816,6 +816,12 @@ public class JvmBasicCompletionTestGenerated extends AbstractJvmBasicCompletionT
|
|||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("Extensions.kt")
|
||||||
|
public void testExtensions() throws Exception {
|
||||||
|
String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/basic/common/extensions/Extensions.kt");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("InvalidTypeParameters.kt")
|
@TestMetadata("InvalidTypeParameters.kt")
|
||||||
public void testInvalidTypeParameters() throws Exception {
|
public void testInvalidTypeParameters() throws Exception {
|
||||||
String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/basic/common/extensions/InvalidTypeParameters.kt");
|
String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/basic/common/extensions/InvalidTypeParameters.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user