From 77e1210bff4af9345ed3a76b8b91ac88599e2a54 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Mon, 1 Dec 2014 14:20:04 +0300 Subject: [PATCH] Completion: classes not to be used in Kotlin placed to the last place --- .../org/jetbrains/jet/plugin/completion/CompletionSorting.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/idea/src/org/jetbrains/jet/plugin/completion/CompletionSorting.kt b/idea/src/org/jetbrains/jet/plugin/completion/CompletionSorting.kt index 0c68c20177a..f0421d83a7c 100644 --- a/idea/src/org/jetbrains/jet/plugin/completion/CompletionSorting.kt +++ b/idea/src/org/jetbrains/jet/plugin/completion/CompletionSorting.kt @@ -32,7 +32,6 @@ import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns import org.jetbrains.jet.lang.resolve.DescriptorUtils import org.jetbrains.jet.lang.resolve.name.isValidJavaFqName import org.jetbrains.jet.lang.resolve.ImportPath -import org.jetbrains.jet.plugin.quickfix.ImportInsertHelper import com.intellij.codeInsight.completion.CompletionType import org.jetbrains.jet.plugin.completion.smart.NameSimilarityWeigher import org.jetbrains.jet.plugin.completion.smart.SMART_COMPLETION_ITEM_PRIORITY_KEY @@ -40,6 +39,8 @@ import org.jetbrains.jet.plugin.completion.smart.SmartCompletionItemPriority import com.intellij.psi.PsiClass import java.util.HashSet import org.jetbrains.jet.lang.resolve.name.FqName +import org.jetbrains.jet.lang.resolve.java.mapping.JavaToKotlinClassMap +import org.jetbrains.jet.plugin.quickfix.ImportInsertHelper public fun CompletionResultSet.addKotlinSorting(parameters: CompletionParameters): CompletionResultSet { var sorter = CompletionSorter.defaultSorter(parameters, getPrefixMatcher())!! @@ -121,6 +122,7 @@ private class JetDeclarationRemotenessWeigher(private val file: JetFile) : Looku default hasImportFromSamePackage notImported + notToBeUsedInKotlin } override fun weigh(element: LookupElement): Comparable { @@ -138,6 +140,7 @@ private class JetDeclarationRemotenessWeigher(private val file: JetFile) : Looku val importPath = ImportPath(qualifiedName) val fqName = importPath.fqnPart() return when { + JavaToKotlinClassMap.getInstance().mapPlatformClass(fqName).isNotEmpty() -> Weight.notToBeUsedInKotlin ImportInsertHelper.getInstance().isImportedWithDefault(importPath, file) -> Weight.kotlinDefaultImport importCache.isImportedWithPreciseImport(fqName) -> Weight.preciseImport importCache.isImportedWithAllUnderImport(fqName) -> Weight.allUnderImport