elementRenderingUtils: override visitor for KtTypeReference, KtParameterList, KtParameter
This commit is contained in:
@@ -27,8 +27,8 @@ import org.jetbrains.kotlin.idea.core.toDescriptor
|
|||||||
import org.jetbrains.kotlin.idea.core.util.DescriptorMemberChooserObject
|
import org.jetbrains.kotlin.idea.core.util.DescriptorMemberChooserObject
|
||||||
import org.jetbrains.kotlin.idea.inspections.findExistingEditor
|
import org.jetbrains.kotlin.idea.inspections.findExistingEditor
|
||||||
import org.jetbrains.kotlin.idea.quickfix.KotlinIntentionActionsFactory
|
import org.jetbrains.kotlin.idea.quickfix.KotlinIntentionActionsFactory
|
||||||
|
import org.jetbrains.kotlin.idea.refactoring.getExpressionShortText
|
||||||
import org.jetbrains.kotlin.idea.refactoring.introduce.showErrorHint
|
import org.jetbrains.kotlin.idea.refactoring.introduce.showErrorHint
|
||||||
import org.jetbrains.kotlin.idea.refactoring.renderTrimmed
|
|
||||||
import org.jetbrains.kotlin.idea.util.application.executeWriteCommand
|
import org.jetbrains.kotlin.idea.util.application.executeWriteCommand
|
||||||
import org.jetbrains.kotlin.idea.util.liftToExpected
|
import org.jetbrains.kotlin.idea.util.liftToExpected
|
||||||
import org.jetbrains.kotlin.idea.util.module
|
import org.jetbrains.kotlin.idea.util.module
|
||||||
@@ -176,9 +176,11 @@ private tailrec fun findClasses(elements: List<KtNamedDeclaration>, module: Modu
|
|||||||
private fun showUnknownTypesDialog(project: Project, declarationsWithNonExistentClasses: List<KtNamedDeclaration>): Boolean =
|
private fun showUnknownTypesDialog(project: Project, declarationsWithNonExistentClasses: List<KtNamedDeclaration>): Boolean =
|
||||||
declarationsWithNonExistentClasses.isEmpty() || showOkNoDialog(
|
declarationsWithNonExistentClasses.isEmpty() || showOkNoDialog(
|
||||||
"Unknown types",
|
"Unknown types",
|
||||||
declarationsWithNonExistentClasses.joinToString(prefix = "These declarations cannot be transformed:\n", separator = "\n") {
|
declarationsWithNonExistentClasses.joinToString(
|
||||||
it.renderTrimmed()
|
prefix = "These declarations cannot be transformed:\n",
|
||||||
},
|
separator = "\n",
|
||||||
|
transform = ::getExpressionShortText
|
||||||
|
),
|
||||||
project
|
project
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -187,7 +189,7 @@ private fun showUnknownTypesError(element: KtNamedDeclaration) {
|
|||||||
showErrorHint(
|
showErrorHint(
|
||||||
element.project,
|
element.project,
|
||||||
editor,
|
editor,
|
||||||
"You cannot create the expect declaration from:\n${element.renderTrimmed()}",
|
"You cannot create the expect declaration from:\n${getExpressionShortText(element)}",
|
||||||
"Unknown types"
|
"Unknown types"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,6 +59,15 @@ fun KtElement.renderTrimmed(): String {
|
|||||||
builder.append(')')
|
builder.append(')')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun visitParameterList(list: KtParameterList) {
|
||||||
|
list.parameters.join(prefix = "(", postfix = ")")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun visitParameter(parameter: KtParameter) {
|
||||||
|
builder.append("${parameter.name}: ")
|
||||||
|
parameter.typeReference?.accept(this)
|
||||||
|
}
|
||||||
|
|
||||||
override fun visitLabeledExpression(expression: KtLabeledExpression) {
|
override fun visitLabeledExpression(expression: KtLabeledExpression) {
|
||||||
expression.baseExpression?.accept(this)
|
expression.baseExpression?.accept(this)
|
||||||
}
|
}
|
||||||
@@ -116,6 +125,10 @@ fun KtElement.renderTrimmed(): String {
|
|||||||
expression.selectorExpression?.accept(this)
|
expression.selectorExpression?.accept(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun visitTypeReference(typeReference: KtTypeReference) {
|
||||||
|
builder.append(typeReference.text)
|
||||||
|
}
|
||||||
|
|
||||||
override fun visitThisExpression(expression: KtThisExpression) {
|
override fun visitThisExpression(expression: KtThisExpression) {
|
||||||
builder.append("this")
|
builder.append("this")
|
||||||
expression.getLabelName()?.let { builder.append("@$it") }
|
expression.getLabelName()?.let { builder.append("@$it") }
|
||||||
@@ -233,7 +246,7 @@ fun KtElement.renderTrimmed(): String {
|
|||||||
it.accept(this)
|
it.accept(this)
|
||||||
}
|
}
|
||||||
function.name?.let { builder.append(" $it") }
|
function.name?.let { builder.append(" $it") }
|
||||||
function.valueParameters.asSequence().mapNotNull { it.typeReference }.joinTo(builder, prefix = "(", postfix = ")")
|
function.valueParameterList?.accept(this)
|
||||||
function.equalsToken?.let { builder.append(" = ") }
|
function.equalsToken?.let { builder.append(" = ") }
|
||||||
function.bodyExpression?.accept(this)
|
function.bodyExpression?.accept(this)
|
||||||
}
|
}
|
||||||
@@ -246,12 +259,12 @@ fun KtElement.renderTrimmed(): String {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun visitPrimaryConstructor(constructor: KtPrimaryConstructor) {
|
override fun visitPrimaryConstructor(constructor: KtPrimaryConstructor) {
|
||||||
constructor.valueParameters.asSequence().mapNotNull { it.typeReference }.joinTo(builder, prefix = "(", postfix = ")")
|
constructor.valueParameterList?.accept(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun visitSecondaryConstructor(constructor: KtSecondaryConstructor) {
|
override fun visitSecondaryConstructor(constructor: KtSecondaryConstructor) {
|
||||||
builder.append("constructor")
|
builder.append("constructor")
|
||||||
constructor.valueParameters.asSequence().mapNotNull { it.typeReference }.joinTo(builder, prefix = "(", postfix = ")")
|
constructor.valueParameterList?.accept(this)
|
||||||
constructor.bodyExpression?.accept(this)
|
constructor.bodyExpression?.accept(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user