Completion: fixed insertion of java class names that require escaping

This commit is contained in:
Valentin Kipyatkov
2015-06-17 17:56:33 +03:00
parent 8210d3091f
commit 0e4ac7108a
@@ -26,8 +26,10 @@ import org.jetbrains.kotlin.idea.completion.isAfterDot
import org.jetbrains.kotlin.idea.core.completion.DeclarationDescriptorLookupObject
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers
import org.jetbrains.kotlin.idea.util.ShortenReferences
import org.jetbrains.kotlin.name.FqNameUnsafe
import org.jetbrains.kotlin.psi.JetFile
import org.jetbrains.kotlin.psi.JetNameReferenceExpression
import org.jetbrains.kotlin.renderer.render
import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
@@ -85,7 +87,12 @@ object KotlinClassInsertHandler : BaseDeclarationInsertHandler() {
val lookupObject = item.getObject()
return when (lookupObject) {
is DeclarationDescriptorLookupObject -> IdeDescriptorRenderers.SOURCE_CODE.renderClassifierName(lookupObject.descriptor as ClassDescriptor)
is PsiClass -> lookupObject.getQualifiedName()!!
is PsiClass -> {
val qualifiedName = lookupObject.getQualifiedName()!!
if (FqNameUnsafe.isValid(qualifiedName)) FqNameUnsafe(qualifiedName).render() else qualifiedName
}
else -> error("Unknown object in LookupElement with KotlinClassInsertHandler: $lookupObject")
}
}