Completion: classes not to be used in Kotlin placed to the last place

This commit is contained in:
Valentin Kipyatkov
2014-12-01 14:20:04 +03:00
parent 6ddedb7825
commit 77e1210bff
@@ -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.DescriptorUtils
import org.jetbrains.jet.lang.resolve.name.isValidJavaFqName import org.jetbrains.jet.lang.resolve.name.isValidJavaFqName
import org.jetbrains.jet.lang.resolve.ImportPath import org.jetbrains.jet.lang.resolve.ImportPath
import org.jetbrains.jet.plugin.quickfix.ImportInsertHelper
import com.intellij.codeInsight.completion.CompletionType import com.intellij.codeInsight.completion.CompletionType
import org.jetbrains.jet.plugin.completion.smart.NameSimilarityWeigher import org.jetbrains.jet.plugin.completion.smart.NameSimilarityWeigher
import org.jetbrains.jet.plugin.completion.smart.SMART_COMPLETION_ITEM_PRIORITY_KEY 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 com.intellij.psi.PsiClass
import java.util.HashSet import java.util.HashSet
import org.jetbrains.jet.lang.resolve.name.FqName 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 { public fun CompletionResultSet.addKotlinSorting(parameters: CompletionParameters): CompletionResultSet {
var sorter = CompletionSorter.defaultSorter(parameters, getPrefixMatcher())!! var sorter = CompletionSorter.defaultSorter(parameters, getPrefixMatcher())!!
@@ -121,6 +122,7 @@ private class JetDeclarationRemotenessWeigher(private val file: JetFile) : Looku
default default
hasImportFromSamePackage hasImportFromSamePackage
notImported notImported
notToBeUsedInKotlin
} }
override fun weigh(element: LookupElement): Comparable<Weight> { override fun weigh(element: LookupElement): Comparable<Weight> {
@@ -138,6 +140,7 @@ private class JetDeclarationRemotenessWeigher(private val file: JetFile) : Looku
val importPath = ImportPath(qualifiedName) val importPath = ImportPath(qualifiedName)
val fqName = importPath.fqnPart() val fqName = importPath.fqnPart()
return when { return when {
JavaToKotlinClassMap.getInstance().mapPlatformClass(fqName).isNotEmpty() -> Weight.notToBeUsedInKotlin
ImportInsertHelper.getInstance().isImportedWithDefault(importPath, file) -> Weight.kotlinDefaultImport ImportInsertHelper.getInstance().isImportedWithDefault(importPath, file) -> Weight.kotlinDefaultImport
importCache.isImportedWithPreciseImport(fqName) -> Weight.preciseImport importCache.isImportedWithPreciseImport(fqName) -> Weight.preciseImport
importCache.isImportedWithAllUnderImport(fqName) -> Weight.allUnderImport importCache.isImportedWithAllUnderImport(fqName) -> Weight.allUnderImport