diff --git a/idea/idea-fir/src/org/jetbrains/kotlin/idea/completion/KotlinFirCompletionContributor.kt b/idea/idea-fir/src/org/jetbrains/kotlin/idea/completion/KotlinFirCompletionContributor.kt index 44b32ecd843..8d217501f53 100644 --- a/idea/idea-fir/src/org/jetbrains/kotlin/idea/completion/KotlinFirCompletionContributor.kt +++ b/idea/idea-fir/src/org/jetbrains/kotlin/idea/completion/KotlinFirCompletionContributor.kt @@ -38,10 +38,6 @@ private object KotlinFirCompletionProvider : CompletionProvider { diff --git a/idea/idea-fir/src/org/jetbrains/kotlin/idea/completion/context/FirBasicCompletionContext.kt b/idea/idea-fir/src/org/jetbrains/kotlin/idea/completion/context/FirBasicCompletionContext.kt index a2be5b1440e..ff5dac04f94 100644 --- a/idea/idea-fir/src/org/jetbrains/kotlin/idea/completion/context/FirBasicCompletionContext.kt +++ b/idea/idea-fir/src/org/jetbrains/kotlin/idea/completion/context/FirBasicCompletionContext.kt @@ -9,7 +9,9 @@ import com.intellij.codeInsight.completion.CompletionParameters import com.intellij.codeInsight.completion.CompletionResultSet import com.intellij.codeInsight.completion.PrefixMatcher import com.intellij.openapi.project.Project +import org.jetbrains.kotlin.idea.caches.project.getModuleInfo import org.jetbrains.kotlin.idea.completion.KotlinFirLookupElementFactory +import org.jetbrains.kotlin.idea.fir.low.level.api.IndexHelper import org.jetbrains.kotlin.idea.project.TargetPlatformDetector import org.jetbrains.kotlin.platform.TargetPlatform import org.jetbrains.kotlin.psi.KtFile @@ -22,6 +24,7 @@ internal class FirBasicCompletionContext( val fakeKtFile: KtFile, val project: Project, val targetPlatform: TargetPlatform, + val indexHelper: IndexHelper, val lookupElementFactory: KotlinFirLookupElementFactory = KotlinFirLookupElementFactory(), ) { companion object { @@ -31,7 +34,22 @@ internal class FirBasicCompletionContext( val fakeKtFile = parameters.position.containingFile as? KtFile ?: return null val targetPlatform = TargetPlatformDetector.getPlatform(originalKtFile) val project = originalKtFile.project - return FirBasicCompletionContext(parameters, result, prefixMatcher, originalKtFile, fakeKtFile, project, targetPlatform) + val indexHelper = createIndexHelper(parameters) + return FirBasicCompletionContext( + parameters, + result, + prefixMatcher, + originalKtFile, + fakeKtFile, + project, + targetPlatform, + indexHelper + ) } + + private fun createIndexHelper(parameters: CompletionParameters) = IndexHelper( + parameters.position.project, + parameters.position.getModuleInfo().contentScope() + ) } } \ No newline at end of file diff --git a/idea/idea-fir/src/org/jetbrains/kotlin/idea/completion/contributors/FirCallableCompletionContributor.kt b/idea/idea-fir/src/org/jetbrains/kotlin/idea/completion/contributors/FirCallableCompletionContributor.kt index 904584e76c7..d364759d7fb 100644 --- a/idea/idea-fir/src/org/jetbrains/kotlin/idea/completion/contributors/FirCallableCompletionContributor.kt +++ b/idea/idea-fir/src/org/jetbrains/kotlin/idea/completion/contributors/FirCallableCompletionContributor.kt @@ -22,8 +22,7 @@ import org.jetbrains.kotlin.psi.KtExpression internal class FirCallableCompletionContributor( basicContext: FirBasicCompletionContext, - indexHelper: IndexHelper -) : FirContextCompletionContributorBase(basicContext, indexHelper) { +) : FirContextCompletionContributorBase(basicContext) { private val typeNamesProvider = TypeNamesProvider(indexHelper) private val shouldCompleteTopLevelCallablesFromIndex: Boolean diff --git a/idea/idea-fir/src/org/jetbrains/kotlin/idea/completion/contributors/FirClassifierCompletionContributor.kt b/idea/idea-fir/src/org/jetbrains/kotlin/idea/completion/contributors/FirClassifierCompletionContributor.kt index 48a7cfaebbd..a427f67ebb1 100644 --- a/idea/idea-fir/src/org/jetbrains/kotlin/idea/completion/contributors/FirClassifierCompletionContributor.kt +++ b/idea/idea-fir/src/org/jetbrains/kotlin/idea/completion/contributors/FirClassifierCompletionContributor.kt @@ -17,8 +17,7 @@ import org.jetbrains.kotlin.psi.KtEnumEntry internal class FirClassifierCompletionContributor( basicContext: FirBasicCompletionContext, - indexHelper: IndexHelper -) : FirContextCompletionContributorBase(basicContext, indexHelper) { +) : FirContextCompletionContributorBase(basicContext) { override fun KtAnalysisSession.complete(positionContext: FirNameReferenceRawPositionContext) { val implicitScopes = originalKtFile.getScopeContextForPosition(positionContext.nameExpression).scopes diff --git a/idea/idea-fir/src/org/jetbrains/kotlin/idea/completion/contributors/FirCompletionContributorBase.kt b/idea/idea-fir/src/org/jetbrains/kotlin/idea/completion/contributors/FirCompletionContributorBase.kt index 54d3f6db9f5..053d7981b60 100644 --- a/idea/idea-fir/src/org/jetbrains/kotlin/idea/completion/contributors/FirCompletionContributorBase.kt +++ b/idea/idea-fir/src/org/jetbrains/kotlin/idea/completion/contributors/FirCompletionContributorBase.kt @@ -14,6 +14,7 @@ import org.jetbrains.kotlin.idea.completion.KotlinFirLookupElementFactory import org.jetbrains.kotlin.idea.completion.context.FirBasicCompletionContext import org.jetbrains.kotlin.idea.completion.context.FirRawPositionCompletionContext import org.jetbrains.kotlin.idea.completion.weighers.Weighers +import org.jetbrains.kotlin.idea.fir.low.level.api.IndexHelper import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSession import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtNamedSymbol @@ -29,6 +30,7 @@ internal abstract class FirCompletionContributorBase( - basicContext: FirBasicCompletionContext, - protected val indexHelper: IndexHelper + basicContext: FirBasicCompletionContext ) : FirCompletionContributorBase(basicContext) { protected val scopeNameFilter: KtScopeNameFilter =