From dca4015cbaf12d7e9dcc15a2543d927421b97f67 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Tue, 29 Aug 2023 09:56:59 +0200 Subject: [PATCH] [Analysis API Standalone] get rid of deprecated utils for initializing the standalone mode they were deprecated and there are no clients for them now ^KT-60884 --- .../api/standalone/StandaloneUtils.kt | 209 ------------------ 1 file changed, 209 deletions(-) delete mode 100644 analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/api/standalone/StandaloneUtils.kt diff --git a/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/api/standalone/StandaloneUtils.kt b/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/api/standalone/StandaloneUtils.kt deleted file mode 100644 index 1b07b1b0425..00000000000 --- a/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/api/standalone/StandaloneUtils.kt +++ /dev/null @@ -1,209 +0,0 @@ -/* - * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - -package org.jetbrains.kotlin.analysis.api.standalone - -import com.intellij.mock.MockApplication -import com.intellij.mock.MockProject -import com.intellij.openapi.project.Project -import com.intellij.psi.PsiElementFinder -import com.intellij.psi.search.GlobalSearchScope -import org.jetbrains.kotlin.analysis.api.KtAnalysisApiInternals -import org.jetbrains.kotlin.analysis.api.fir.KtFirAnalysisSessionProvider -import org.jetbrains.kotlin.analysis.api.impl.base.references.HLApiReferenceProviderService -import org.jetbrains.kotlin.analysis.api.session.KtAnalysisSessionProvider -import org.jetbrains.kotlin.analysis.api.standalone.base.project.structure.KtStaticModuleDependentsProvider -import org.jetbrains.kotlin.analysis.decompiled.light.classes.ClsJavaStubByVirtualFileCache -import org.jetbrains.kotlin.analysis.low.level.api.fir.api.services.FirSealedClassInheritorsProcessorFactory -import org.jetbrains.kotlin.analysis.project.structure.KotlinModuleDependentsProvider -import org.jetbrains.kotlin.analysis.project.structure.KtModuleScopeProvider -import org.jetbrains.kotlin.analysis.project.structure.KtModuleScopeProviderImpl -import org.jetbrains.kotlin.analysis.project.structure.ProjectStructureProvider -import org.jetbrains.kotlin.analysis.project.structure.impl.buildKtModuleProviderByCompilerConfiguration -import org.jetbrains.kotlin.analysis.project.structure.impl.getPsiFilesFromPaths -import org.jetbrains.kotlin.analysis.project.structure.impl.getSourceFilePaths -import org.jetbrains.kotlin.analysis.providers.* -import org.jetbrains.kotlin.analysis.providers.impl.* -import org.jetbrains.kotlin.asJava.KotlinAsJavaSupport -import org.jetbrains.kotlin.asJava.finder.JavaElementFinder -import org.jetbrains.kotlin.config.CompilerConfiguration -import org.jetbrains.kotlin.fir.declarations.SealedClassInheritorsProvider -import org.jetbrains.kotlin.fir.declarations.SealedClassInheritorsProviderImpl -import org.jetbrains.kotlin.idea.references.KotlinFirReferenceContributor -import org.jetbrains.kotlin.idea.references.KotlinReferenceProviderContributor -import org.jetbrains.kotlin.light.classes.symbol.SymbolKotlinAsJavaSupport -import org.jetbrains.kotlin.load.kotlin.PackagePartProvider -import org.jetbrains.kotlin.psi.KotlinReferenceProvidersService -import org.jetbrains.kotlin.psi.KtFile - -/** - * Configure Application environment for Analysis API standalone mode. - * - * In particular, this will register: - * * [KotlinReferenceProvidersService] - * * [KotlinReferenceProviderContributor] - */ -@Deprecated( - "Use StandaloneAnalysisAPISessionBuilder.", - ReplaceWith("buildStandaloneAnalysisAPISession { }") -) -public fun configureApplicationEnvironment(app: MockApplication) { - if (app.getServiceIfCreated(KotlinReferenceProvidersService::class.java) == null) { - app.registerService( - KotlinReferenceProvidersService::class.java, - HLApiReferenceProviderService::class.java - ) - } - if (app.getServiceIfCreated(KotlinReferenceProviderContributor::class.java) == null) { - app.registerService( - KotlinReferenceProviderContributor::class.java, - KotlinFirReferenceContributor::class.java - ) - } -} - -/** - * Configure Project environment for Analysis API standalone mode. - * - * In particular, this will register: - * * [KtAnalysisSessionProvider] - * * [SymbolKotlinAsJavaSupport] - * * [ClsJavaStubByVirtualFileCache] - * * [KotlinModificationTrackerFactory] - * * [KotlinMessageBusProvider] - * * [KotlinGlobalModificationService] - * * [KotlinAnnotationsResolverFactory] - * * [org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirResolveSessionService] - * * [FirSealedClassInheritorsProcessorFactory] - * * [KtModuleScopeProvider] - * * [ProjectStructureProvider] - * * [KotlinModuleDependentsProvider] - * * [KotlinDeclarationProviderFactory] - * * [KotlinPackageProviderFactory] - * * [PackagePartProviderFactory] - * * [KotlinReferenceProvidersService] - * * [KotlinReferenceProviderContributor] - * - * Note that [ProjectStructureProvider] is built by using - * * given [ktFiles] as Kotlin sources - * * other Java sources in [compilerConfig] (set via [addJavaSourceRoots]) - * * JVM class paths in [compilerConfig] (set via [addJvmClasspathRoots]) as library. - */ -@Deprecated( - "Use StandaloneAnalysisAPISessionBuilder.", - ReplaceWith("buildStandaloneAnalysisAPISession { }") -) -public fun configureProjectEnvironment( - project: MockProject, - compilerConfig: CompilerConfiguration, - packagePartProvider: (GlobalSearchScope) -> PackagePartProvider, -) { - val sourceKtFiles = getPsiFilesFromPaths(project, getSourceFilePaths(compilerConfig)) - configureProjectEnvironment(project, compilerConfig, sourceKtFiles, packagePartProvider) -} - -internal fun configureProjectEnvironment( - project: MockProject, - compilerConfig: CompilerConfiguration, - sourceKtFiles: List, - packagePartProvider: (GlobalSearchScope) -> PackagePartProvider, -) { - reRegisterJavaElementFinder(project) - - project.registerService( - KotlinModificationTrackerFactory::class.java, - KotlinStaticModificationTrackerFactory() - ) - - project.registerService( - KotlinMessageBusProvider::class.java, - KotlinProjectMessageBusProvider(project), - ) - - project.registerService( - KotlinGlobalModificationService::class.java, - KotlinStaticGlobalModificationService(project), - ) - - // FIR LC - project.registerService( - ClsJavaStubByVirtualFileCache::class.java, - ClsJavaStubByVirtualFileCache() - ) - - project.registerService( - KotlinAnnotationsResolverFactory::class.java, - KotlinStaticAnnotationsResolverFactory(sourceKtFiles) - ) - - project.registerService( - KotlinReferenceProvidersService::class.java, - HLApiReferenceProviderService::class.java - ) - - project.registerService( - KotlinReferenceProviderContributor::class.java, - KotlinFirReferenceContributor::class.java - ) - - project.registerService( - FirSealedClassInheritorsProcessorFactory::class.java, - object : FirSealedClassInheritorsProcessorFactory() { - override fun createSealedClassInheritorsProvider(): SealedClassInheritorsProvider { - return SealedClassInheritorsProviderImpl - } - } - ) - project.registerService( - KtModuleScopeProvider::class.java, - KtModuleScopeProviderImpl() - ) - - val projectStructureProvider = buildKtModuleProviderByCompilerConfiguration(compilerConfig, project, sourceKtFiles) - project.registerService( - ProjectStructureProvider::class.java, - projectStructureProvider, - ) - val declarationProviderFactory = KotlinStaticDeclarationProviderFactory(project, sourceKtFiles) - project.registerService( - KotlinModuleDependentsProvider::class.java, - KtStaticModuleDependentsProvider(projectStructureProvider.allKtModules), - ) - - project.registerService( - KotlinDeclarationProviderFactory::class.java, - declarationProviderFactory - ) - project.registerService( - KotlinDeclarationProviderMerger::class.java, - KotlinStaticDeclarationProviderMerger(project) - ) - project.registerService( - KotlinPackageProviderFactory::class.java, - KotlinStaticPackageProviderFactory(project, sourceKtFiles + declarationProviderFactory.getAdditionalCreatedKtFiles()) - ) - project.registerService( - PackagePartProviderFactory::class.java, - KotlinStaticPackagePartProviderFactory(packagePartProvider) - ) -} - -@OptIn(KtAnalysisApiInternals::class) -private fun reRegisterJavaElementFinder(project: Project) { - PsiElementFinder.EP.getPoint(project).unregisterExtension(JavaElementFinder::class.java) - with(project as MockProject) { - registerService( - KtAnalysisSessionProvider::class.java, - KtFirAnalysisSessionProvider(this) - ) - picoContainer.unregisterComponent(KotlinAsJavaSupport::class.qualifiedName) - registerService( - KotlinAsJavaSupport::class.java, - SymbolKotlinAsJavaSupport(project) - ) - } - @Suppress("DEPRECATION") - PsiElementFinder.EP.getPoint(project).registerExtension(JavaElementFinder(project)) -}