Dropped LocationWeigher because it was duplicated by proximity weigher (only preference of symbols from project sources was not duplicated but it's doubtful)
This commit is contained in:
@@ -247,7 +247,7 @@ abstract class CompletionSession(protected val configuration: CompletionSessionC
|
||||
|
||||
sorter = sorter.weighBefore("stats", DeprecatedWeigher, PriorityWeigher, NotImportedWeigher(importableFqNameClassifier), KindWeigher, CallableWeigher)
|
||||
|
||||
sorter = sorter.weighAfter("stats", VariableOrFunctionWeigher, ImportedWeigher(importableFqNameClassifier), LocationWeigher(file, parameters.originalFile as JetFile))
|
||||
sorter = sorter.weighAfter("stats", VariableOrFunctionWeigher, ImportedWeigher(importableFqNameClassifier))
|
||||
|
||||
sorter = sorter.weighBefore("middleMatching", PreferMatchingItemWeigher)
|
||||
|
||||
|
||||
@@ -21,7 +21,6 @@ import com.intellij.codeInsight.completion.CompletionWeigher
|
||||
import com.intellij.codeInsight.lookup.LookupElement
|
||||
import com.intellij.codeInsight.lookup.LookupElementWeigher
|
||||
import com.intellij.codeInsight.lookup.WeighingContext
|
||||
import com.intellij.openapi.module.ModuleUtilCore
|
||||
import com.intellij.psi.util.proximity.PsiProximityComparator
|
||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||
@@ -31,8 +30,6 @@ import org.jetbrains.kotlin.idea.completion.smart.*
|
||||
import org.jetbrains.kotlin.idea.core.ImportableFqNameClassifier
|
||||
import org.jetbrains.kotlin.idea.core.completion.DeclarationLookupObject
|
||||
import org.jetbrains.kotlin.idea.util.FuzzyType
|
||||
import org.jetbrains.kotlin.idea.util.ProjectRootsUtil
|
||||
import org.jetbrains.kotlin.psi.JetFile
|
||||
import org.jetbrains.kotlin.types.typeUtil.TypeNullability
|
||||
import org.jetbrains.kotlin.types.typeUtil.isBooleanOrNullableBoolean
|
||||
import org.jetbrains.kotlin.types.typeUtil.nullability
|
||||
@@ -84,27 +81,6 @@ class ImportedWeigher(private val classifier: ImportableFqNameClassifier) : Look
|
||||
}
|
||||
}
|
||||
|
||||
class LocationWeigher(private val file: JetFile, private val originalFile: JetFile) : LookupElementWeigher("kotlin.location") {
|
||||
private val currentModule = ModuleUtilCore.findModuleForPsiElement(originalFile)
|
||||
|
||||
private enum class Weight {
|
||||
currentFile,
|
||||
currentModule,
|
||||
project,
|
||||
libraries
|
||||
}
|
||||
|
||||
override fun weigh(element: LookupElement): Weight? {
|
||||
val declaration = (element.`object` as? DeclarationLookupObject)?.psiElement ?: return null
|
||||
return when {
|
||||
declaration.containingFile == file -> Weight.currentFile
|
||||
ModuleUtilCore.findModuleForPsiElement(declaration) == currentModule -> Weight.currentModule
|
||||
ProjectRootsUtil.isInProjectSource(declaration) -> Weight.project
|
||||
else -> Weight.libraries
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// analog of LookupElementProximityWeigher which does not work for us
|
||||
object KotlinLookupElementProximityWeigher : CompletionWeigher() {
|
||||
override fun weigh(element: LookupElement, location: CompletionLocation): Comparable<Nothing>? {
|
||||
|
||||
Reference in New Issue
Block a user