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:
Valentin Kipyatkov
2015-08-24 19:03:32 +03:00
parent 6c46e3ec02
commit 9a641974f8
2 changed files with 1 additions and 25 deletions
@@ -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>? {