mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[kotlin][k2] Use new composite provider abstraction for merging IDE declaration providers
^KT-61791 GitOrigin-RevId: 8bd9a6ed455bcf26f8b074769ca62e8ca9522271
This commit is contained in:
committed by
intellij-monorepo-bot
parent
857f75ad67
commit
4e41fbe678
+6
-6
@@ -14,10 +14,10 @@ import com.intellij.util.indexing.FileBasedIndex
|
||||
import org.jetbrains.kotlin.analysis.project.structure.KtModule
|
||||
import org.jetbrains.kotlin.analysis.providers.KotlinDeclarationProvider
|
||||
import org.jetbrains.kotlin.analysis.providers.KotlinDeclarationProviderFactory
|
||||
import org.jetbrains.kotlin.analysis.providers.impl.KotlinDeclarationProviderMergerBase
|
||||
import org.jetbrains.kotlin.analysis.providers.KotlinDeclarationProviderMerger
|
||||
import org.jetbrains.kotlin.analysis.providers.impl.declarationProviders.CompositeKotlinDeclarationProvider
|
||||
import org.jetbrains.kotlin.analysis.providers.impl.declarationProviders.FileBasedKotlinDeclarationProvider
|
||||
import org.jetbrains.kotlin.analysis.providers.impl.util.mergeOnly
|
||||
import org.jetbrains.kotlin.analysis.providers.impl.mergeSpecificProviders
|
||||
import org.jetbrains.kotlin.idea.base.indices.names.KotlinTopLevelCallableByPackageShortNameIndex
|
||||
import org.jetbrains.kotlin.idea.base.indices.names.KotlinTopLevelClassLikeDeclarationByPackageShortNameIndex
|
||||
import org.jetbrains.kotlin.idea.base.indices.names.getNamesInPackage
|
||||
@@ -48,12 +48,12 @@ internal class IdeKotlinDeclarationProviderFactory(private val project: Project)
|
||||
}
|
||||
}
|
||||
|
||||
internal class IdeKotlinDeclarationProviderMerger(private val project: Project) : KotlinDeclarationProviderMergerBase() {
|
||||
override fun mergeToList(declarationProviders: List<KotlinDeclarationProvider>): List<KotlinDeclarationProvider> =
|
||||
declarationProviders.mergeOnly<_, IdeKotlinDeclarationProvider> { providers ->
|
||||
internal class IdeKotlinDeclarationProviderMerger(private val project: Project) : KotlinDeclarationProviderMerger() {
|
||||
override fun merge(providers: List<KotlinDeclarationProvider>): KotlinDeclarationProvider =
|
||||
providers.mergeSpecificProviders<_, IdeKotlinDeclarationProvider>(CompositeKotlinDeclarationProvider.factory) { targetProviders ->
|
||||
IdeKotlinDeclarationProvider(
|
||||
project,
|
||||
GlobalSearchScope.union(providers.map { it.scope }),
|
||||
GlobalSearchScope.union(targetProviders.map { it.scope }),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user