AllClassesCompletion: drop usage of KotlinBuiltIns.getInstance()
This commit is contained in:
+5
-3
@@ -21,11 +21,11 @@ import com.intellij.codeInsight.completion.CompletionParameters
|
|||||||
import com.intellij.codeInsight.completion.PrefixMatcher
|
import com.intellij.codeInsight.completion.PrefixMatcher
|
||||||
import com.intellij.psi.PsiClass
|
import com.intellij.psi.PsiClass
|
||||||
import org.jetbrains.kotlin.asJava.KotlinLightClass
|
import org.jetbrains.kotlin.asJava.KotlinLightClass
|
||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
|
||||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||||
import org.jetbrains.kotlin.idea.core.KotlinIndicesHelper
|
import org.jetbrains.kotlin.idea.core.KotlinIndicesHelper
|
||||||
import org.jetbrains.kotlin.idea.project.ProjectStructureUtil
|
import org.jetbrains.kotlin.idea.project.ProjectStructureUtil
|
||||||
|
import org.jetbrains.kotlin.idea.resolve.ResolutionFacade
|
||||||
import org.jetbrains.kotlin.psi.JetFile
|
import org.jetbrains.kotlin.psi.JetFile
|
||||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
||||||
import org.jetbrains.kotlin.resolve.scopes.JetScope
|
import org.jetbrains.kotlin.resolve.scopes.JetScope
|
||||||
@@ -34,17 +34,19 @@ import org.jetbrains.kotlin.resolve.scopes.getDescriptorsFiltered
|
|||||||
class AllClassesCompletion(private val parameters: CompletionParameters,
|
class AllClassesCompletion(private val parameters: CompletionParameters,
|
||||||
private val kotlinIndicesHelper: KotlinIndicesHelper,
|
private val kotlinIndicesHelper: KotlinIndicesHelper,
|
||||||
private val prefixMatcher: PrefixMatcher,
|
private val prefixMatcher: PrefixMatcher,
|
||||||
|
private val resolutionFacade: ResolutionFacade,
|
||||||
private val kindFilter: (ClassKind) -> Boolean
|
private val kindFilter: (ClassKind) -> Boolean
|
||||||
) {
|
) {
|
||||||
fun collect(classDescriptorCollector: (ClassDescriptor) -> Unit, javaClassCollector: (PsiClass) -> Unit) {
|
fun collect(classDescriptorCollector: (ClassDescriptor) -> Unit, javaClassCollector: (PsiClass) -> Unit) {
|
||||||
|
|
||||||
//TODO: this is a temporary hack until we have built-ins in indices
|
//TODO: this is a temporary hack until we have built-ins in indices
|
||||||
collectClassesFromScope(classDescriptorCollector, KotlinBuiltIns.getInstance().builtInsPackageScope)
|
collectClassesFromScope(classDescriptorCollector, resolutionFacade.moduleDescriptor.builtIns.builtInsPackageScope)
|
||||||
|
|
||||||
kotlinIndicesHelper
|
kotlinIndicesHelper
|
||||||
.getKotlinClasses({ prefixMatcher.prefixMatches(it) }, kindFilter)
|
.getKotlinClasses({ prefixMatcher.prefixMatches(it) }, kindFilter)
|
||||||
.forEach { classDescriptorCollector(it) }
|
.forEach { classDescriptorCollector(it) }
|
||||||
|
|
||||||
if (!ProjectStructureUtil.isJsKotlinModule(parameters.getOriginalFile() as JetFile)) {
|
if (!ProjectStructureUtil.isJsKotlinModule(parameters.originalFile as JetFile)) {
|
||||||
addAdaptedJavaCompletion(javaClassCollector)
|
addAdaptedJavaCompletion(javaClassCollector)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -340,7 +340,7 @@ abstract class CompletionSession(protected val configuration: CompletionSessionC
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected fun addAllClasses(kindFilter: (ClassKind) -> Boolean) {
|
protected fun addAllClasses(kindFilter: (ClassKind) -> Boolean) {
|
||||||
AllClassesCompletion(parameters, indicesHelper, prefixMatcher, kindFilter)
|
AllClassesCompletion(parameters, indicesHelper, prefixMatcher, resolutionFacade, kindFilter)
|
||||||
.collect(
|
.collect(
|
||||||
{ descriptor -> collector.addDescriptorElements(descriptor, notImported = true) },
|
{ descriptor -> collector.addDescriptorElements(descriptor, notImported = true) },
|
||||||
{ javaClass -> collector.addElement(lookupElementFactory.createLookupElementForJavaClass(javaClass), notImported = true) }
|
{ javaClass -> collector.addElement(lookupElementFactory.createLookupElementForJavaClass(javaClass), notImported = true) }
|
||||||
|
|||||||
+4
-3
@@ -90,9 +90,10 @@ class ParameterNameAndTypeCompletion(
|
|||||||
|
|
||||||
public fun addFromAllClasses(parameters: CompletionParameters, indicesHelper: KotlinIndicesHelper) {
|
public fun addFromAllClasses(parameters: CompletionParameters, indicesHelper: KotlinIndicesHelper) {
|
||||||
for ((i, prefixMatcher) in nameSuggestionPrefixMatchers.withIndex()) {
|
for ((i, prefixMatcher) in nameSuggestionPrefixMatchers.withIndex()) {
|
||||||
AllClassesCompletion(parameters, indicesHelper, prefixMatcher.toClassifierNamePrefixMatcher(), { !it.isSingleton() })
|
AllClassesCompletion(
|
||||||
.collect(
|
parameters, indicesHelper, prefixMatcher.toClassifierNamePrefixMatcher(), resolutionFacade, { !it.isSingleton() }
|
||||||
{ addSuggestionsForClassifier(it, userPrefixes[i], prefixMatcher, notImported = true) },
|
).collect(
|
||||||
|
{ addSuggestionsForClassifier(it, userPrefixes[i], prefixMatcher, notImported = true) },
|
||||||
{ addSuggestionsForJavaClass(it, userPrefixes[i], prefixMatcher, notImported = true) }
|
{ addSuggestionsForJavaClass(it, userPrefixes[i], prefixMatcher, notImported = true) }
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user