Override/implement members dialog: no qualified type names in signatures but qualified owner class names (+ moved a method)
This commit is contained in:
@@ -25,8 +25,8 @@ import com.intellij.psi.codeStyle.CodeStyleManager
|
||||
import com.intellij.psi.impl.source.codeStyle.CodeEditUtil
|
||||
import org.jetbrains.kotlin.lexer.JetTokens
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.name.renderName
|
||||
import org.jetbrains.kotlin.psi.psiUtil.*
|
||||
import org.jetbrains.kotlin.renderer.render
|
||||
import java.util.ArrayList
|
||||
import java.util.HashMap
|
||||
import java.util.LinkedHashMap
|
||||
@@ -82,7 +82,7 @@ private val SUPPORTED_ARGUMENT_TYPES = listOf(
|
||||
PsiElementArgumentType<JetExpression>(javaClass()),
|
||||
PsiElementArgumentType<JetTypeReference>(javaClass()),
|
||||
PlainTextArgumentType<String>(javaClass(), toPlainText = { it }),
|
||||
PlainTextArgumentType<Name>(javaClass(), toPlainText = { it.renderName() }),
|
||||
PlainTextArgumentType<Name>(javaClass(), toPlainText = { it.render() }),
|
||||
PsiChildRangeArgumentType
|
||||
)
|
||||
|
||||
|
||||
@@ -16,8 +16,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.name
|
||||
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRenderer
|
||||
|
||||
public fun FqName.isSubpackageOf(packageName: FqName): Boolean {
|
||||
return when {
|
||||
this == packageName -> true
|
||||
@@ -78,5 +76,3 @@ public fun isValidJavaFqName(qualifiedName: String?): Boolean {
|
||||
|
||||
return state != State.AFTER_DOT
|
||||
}
|
||||
|
||||
public fun Name.renderName(): String = DescriptorRenderer.COMPACT.renderName(this)
|
||||
|
||||
@@ -16,7 +16,12 @@
|
||||
|
||||
package org.jetbrains.kotlin.renderer
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.*
|
||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.ClassifierDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor
|
||||
import org.jetbrains.kotlin.name.FqNameBase
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
|
||||
public fun qualifiedNameForSourceCode(descriptor: ClassifierDescriptor): String {
|
||||
val nameString = DescriptorRenderer.COMPACT.renderName(descriptor.getName())
|
||||
@@ -30,3 +35,7 @@ private fun qualifierName(descriptor: DeclarationDescriptor): String? = when (de
|
||||
else -> null
|
||||
}
|
||||
|
||||
|
||||
public fun Name.render(): String = DescriptorRenderer.COMPACT.renderName(this)
|
||||
|
||||
public fun FqNameBase.render(): String = DescriptorRenderer.COMPACT.renderFqName(this)
|
||||
|
||||
@@ -21,10 +21,10 @@ import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.PropertyAccessorDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.ReceiverParameterDescriptor
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.name.renderName
|
||||
import org.jetbrains.kotlin.psi.JetExpression
|
||||
import org.jetbrains.kotlin.psi.JetFunctionLiteral
|
||||
import org.jetbrains.kotlin.psi.JetPsiFactory
|
||||
import org.jetbrains.kotlin.renderer.render
|
||||
import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils
|
||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||
import org.jetbrains.kotlin.resolve.scopes.JetScope
|
||||
@@ -60,7 +60,7 @@ public fun JetScope.getImplicitReceiversWithInstanceToExpression(): Map<Receiver
|
||||
for ((index, receiver) in receivers.withIndex()) {
|
||||
val owner = receiver.getContainingDeclaration()
|
||||
val (expressionText, isImmediateThis) = if (owner in outerDeclarationsWithInstance) {
|
||||
val thisWithLabel = thisQualifierName(receiver)?.let { "this@${it.renderName()}" }
|
||||
val thisWithLabel = thisQualifierName(receiver)?.let { "this@${it.render()}" }
|
||||
if (index == 0)
|
||||
(thisWithLabel ?: "this") to true
|
||||
else
|
||||
|
||||
@@ -32,11 +32,11 @@ import org.jetbrains.kotlin.idea.util.FuzzyType
|
||||
import org.jetbrains.kotlin.idea.util.findLabelAndCall
|
||||
import org.jetbrains.kotlin.idea.util.getImplicitReceiversWithInstanceToExpression
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.name.renderName
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.psi.psiUtil.parents
|
||||
import org.jetbrains.kotlin.psi.psiUtil.parentsWithSelf
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRenderer
|
||||
import org.jetbrains.kotlin.renderer.render
|
||||
import org.jetbrains.kotlin.resolve.BindingContext
|
||||
import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils
|
||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||
@@ -266,7 +266,7 @@ private fun createKeywordWithLabelElement(keyword: String, label: Name?, addSpac
|
||||
}
|
||||
|
||||
private fun createKeywordWithLabelElement(keyword: String, label: Name?): LookupElementBuilder {
|
||||
val labelInCode = label?.renderName()
|
||||
val labelInCode = label?.render()
|
||||
var element = LookupElementBuilder.create(KeywordLookupObject, if (label == null) keyword else "$keyword@$labelInCode")
|
||||
element = element.withPresentableText(keyword)
|
||||
element = element.withBoldness(true)
|
||||
|
||||
+22
-1
@@ -25,12 +25,17 @@ import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiMember;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor;
|
||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor;
|
||||
import org.jetbrains.kotlin.idea.JetDescriptorIconProvider;
|
||||
import org.jetbrains.kotlin.psi.JetClass;
|
||||
import org.jetbrains.kotlin.psi.JetDeclaration;
|
||||
import org.jetbrains.kotlin.psi.JetNamedDeclaration;
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRenderer;
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRendererBuilder;
|
||||
import org.jetbrains.kotlin.renderer.NameShortness;
|
||||
import org.jetbrains.kotlin.renderer.RendererPackage;
|
||||
import org.jetbrains.kotlin.resolve.DescriptorUtils;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
@@ -42,12 +47,28 @@ public class DescriptorClassMember extends MemberChooserObjectBase implements Cl
|
||||
@NotNull
|
||||
private final PsiElement myPsiElement;
|
||||
|
||||
private static final DescriptorRenderer MEMBER_RENDERER = new DescriptorRendererBuilder()
|
||||
.setWithDefinedIn(false)
|
||||
.setModifiers()
|
||||
.setStartFromName(true)
|
||||
.setNameShortness(NameShortness.SHORT)
|
||||
.build();
|
||||
|
||||
public DescriptorClassMember(@NotNull PsiElement element, @NotNull DeclarationDescriptor descriptor) {
|
||||
super(DescriptorRenderer.STARTS_FROM_NAME.render(descriptor), getIcon(element, descriptor));
|
||||
super(getText(descriptor), getIcon(element, descriptor));
|
||||
myPsiElement = element;
|
||||
myDescriptor = descriptor;
|
||||
}
|
||||
|
||||
private static String getText(DeclarationDescriptor descriptor) {
|
||||
if (descriptor instanceof ClassDescriptor) {
|
||||
return RendererPackage.render(DescriptorUtils.getFqNameSafe(descriptor));
|
||||
}
|
||||
else {
|
||||
return MEMBER_RENDERER.render(descriptor);
|
||||
}
|
||||
}
|
||||
|
||||
private static Icon getIcon(PsiElement element, DeclarationDescriptor declarationDescriptor) {
|
||||
if (element.isValid()) {
|
||||
boolean isClass = element instanceof PsiClass || element instanceof JetClass;
|
||||
|
||||
@@ -41,9 +41,9 @@ import org.jetbrains.kotlin.idea.util.ShortenReferences
|
||||
import org.jetbrains.kotlin.idea.core.moveFunctionLiteralOutsideParentheses
|
||||
import org.jetbrains.kotlin.lexer.JetTokens
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.name.renderName
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.psi.psiUtil.*
|
||||
import org.jetbrains.kotlin.renderer.render
|
||||
import org.jetbrains.kotlin.resolve.BindingContext
|
||||
import org.jetbrains.kotlin.resolve.CompileTimeConstantUtils
|
||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||
@@ -621,7 +621,7 @@ public abstract class DeprecatedSymbolUsageFixBase(
|
||||
assert(usages.all { expression.isAncestor(it, strict = true) })
|
||||
|
||||
fun replaceUsages(name: Name) {
|
||||
val nameInCode = psiFactory.createExpression(name.renderName())
|
||||
val nameInCode = psiFactory.createExpression(name.render())
|
||||
for (usage in usages) {
|
||||
usage.replace(nameInCode)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user