diff --git a/plugins/kotlin/base/analysis-api-providers/resources/kotlin.base.analysis-api-providers.xml b/plugins/kotlin/base/analysis-api-providers/resources/kotlin.base.analysis-api-providers.xml
index 0b39310a2e6e..8159e3922291 100644
--- a/plugins/kotlin/base/analysis-api-providers/resources/kotlin.base.analysis-api-providers.xml
+++ b/plugins/kotlin/base/analysis-api-providers/resources/kotlin.base.analysis-api-providers.xml
@@ -15,6 +15,9 @@
+
diff --git a/plugins/kotlin/base/analysis-api-providers/src/org/jetbrains/kotlin/idea/base/analysisApiProviders/IdeKotlinPackageProviderFactory.kt b/plugins/kotlin/base/analysis-api-providers/src/org/jetbrains/kotlin/idea/base/analysisApiProviders/IdeKotlinPackageProviderFactory.kt
index 9aba1f0a49ce..839ab4b2debf 100644
--- a/plugins/kotlin/base/analysis-api-providers/src/org/jetbrains/kotlin/idea/base/analysisApiProviders/IdeKotlinPackageProviderFactory.kt
+++ b/plugins/kotlin/base/analysis-api-providers/src/org/jetbrains/kotlin/idea/base/analysisApiProviders/IdeKotlinPackageProviderFactory.kt
@@ -6,8 +6,11 @@ import com.intellij.psi.search.GlobalSearchScope
import com.intellij.psi.util.CachedValueProvider
import org.jetbrains.kotlin.analysis.providers.KotlinPackageProvider
import org.jetbrains.kotlin.analysis.providers.KotlinPackageProviderFactory
+import org.jetbrains.kotlin.analysis.providers.KotlinPackageProviderMerger
import org.jetbrains.kotlin.analysis.providers.createProjectWideOutOfBlockModificationTracker
import org.jetbrains.kotlin.analysis.providers.impl.KotlinPackageProviderBase
+import org.jetbrains.kotlin.analysis.providers.impl.mergeSpecificProviders
+import org.jetbrains.kotlin.analysis.providers.impl.packageProviders.CompositeKotlinPackageProvider
import org.jetbrains.kotlin.caches.project.CachedValue
import org.jetbrains.kotlin.caches.project.getValue
import org.jetbrains.kotlin.idea.base.indices.KotlinPackageIndexUtils
@@ -21,9 +24,19 @@ internal class IdeKotlinPackageProviderFactory(private val project: Project) : K
}
}
+internal class IdeKotlinPackageProviderMerger(private val project: Project) : KotlinPackageProviderMerger() {
+ override fun merge(providers: List): KotlinPackageProvider =
+ providers.mergeSpecificProviders<_, IdeKotlinPackageProvider>(CompositeKotlinPackageProvider.factory) { targetProviders ->
+ IdeKotlinPackageProvider(
+ project,
+ GlobalSearchScope.union(targetProviders.map { it.searchScope })
+ )
+ }
+}
+
private class IdeKotlinPackageProvider(
project: Project,
- searchScope: GlobalSearchScope
+ searchScope: GlobalSearchScope
) : KotlinPackageProviderBase(project, searchScope) {
private val cache by CachedValue(project) {
CachedValueProvider.Result(