From c5142d33cb7bd158e96dd73b59dcbd4fe639b533 Mon Sep 17 00:00:00 2001 From: Vladimir Dolzhenko Date: Mon, 14 Nov 2022 22:16:09 +0100 Subject: [PATCH] [kotlin] Align popup tooltip with quick fix and autocompletion suggestion #KTIJ-20617 GitOrigin-RevId: 01e2ded7dd3439f732c76e3047469a0ca8700b46 --- .../kotlin/idea/actions/KotlinAddImportAction.kt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/actions/KotlinAddImportAction.kt b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/actions/KotlinAddImportAction.kt index 683081f5e7f9..f60d2bfed427 100644 --- a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/actions/KotlinAddImportAction.kt +++ b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/actions/KotlinAddImportAction.kt @@ -50,6 +50,7 @@ import org.jetbrains.kotlin.psi.psiUtil.endOffset import org.jetbrains.kotlin.psi.psiUtil.startOffset import org.jetbrains.kotlin.resolve.ImportPath import java.awt.BorderLayout +import java.util.* import javax.swing.Icon import javax.swing.JPanel import javax.swing.ListCellRenderer @@ -62,16 +63,17 @@ internal fun createSingleImportAction( ): KotlinAddImportAction { val file = element.containingKtFile val prioritizer = Prioritizer(file) - val variants = fqNames.asSequence().mapNotNull { fqName -> + val variants = TreeSet(compareBy({ it.priority }, { it.variant.hint })) + for (fqName in fqNames) { val sameFqNameDescriptors = file.resolveImportReference(fqName) val priority = sameFqNameDescriptors.minOfOrNull { prioritizer.priority(it, file.languageVersionSettings) - } ?: return@mapNotNull null + } ?: continue - VariantWithPriority(SingleImportVariant(fqName, sameFqNameDescriptors, project), priority) + variants += VariantWithPriority(SingleImportVariant(fqName, sameFqNameDescriptors, project), priority) } - return KotlinAddImportAction(project, editor, element, variants) + return KotlinAddImportAction(project, editor, element, variants.asSequence()) } internal fun createSingleImportActionForConstructor(