import com.intellij.completion.FeatureManagerImpl
import com.intellij.stats.personalization.UserFactorDescriptions
import com.intellij.stats.personalization.UserFactorStorage
+import com.jetbrains.completion.ranker.features.impl.FeatureUtils
/**
* @author Vitaliy.Bibaev
val relevanceObjects =
lookup.getRelevanceObjects(listOf(element), false)
val relevanceMap = relevanceObjects[element]?.associate { it.first to it.second } ?: return
+ val featuresValues = FeatureUtils.preparedMap(relevanceMap)
val project = lookup.project
val featureManager = FeatureManagerImpl.getInstance()
featureManager.binaryFactors.filter { !featureManager.isUserFeature(it.name) }.forEach { feature ->
UserFactorStorage.applyOnBoth(project, UserFactorDescriptions.binaryFeatureDescriptor(feature))
{ updater ->
- updater.update(relevanceMap[feature.name])
+ updater.update(featuresValues[feature.name])
}
}
featureManager.doubleFactors.filter { !featureManager.isUserFeature(it.name) }.forEach { feature ->
UserFactorStorage.applyOnBoth(project, UserFactorDescriptions.doubleFeatureDescriptor(feature))
{ updater ->
- updater.update(relevanceMap[feature.name])
+ updater.update(featuresValues[feature.name])
}
}
featureManager.categorialFactors.filter { !featureManager.isUserFeature(it.name) }.forEach { feature ->
UserFactorStorage.applyOnBoth(project, UserFactorDescriptions.categoriealFeatureDescriptor(feature))
{ updater ->
- updater.update(relevanceMap[feature.name])
+ updater.update(featuresValues[feature.name])
}
}
}