From c1b2469e517ae2adb99cbd0b24355323bc09b9a3 Mon Sep 17 00:00:00 2001 From: Jinseong Jeon Date: Thu, 2 Jun 2022 15:32:20 -0700 Subject: [PATCH] AA: register CoreJavaFileManager in a similar way KotlinCoreEnvironment.ProjectEnvironment.registerJavaPsiFacade does --- .../AnalysisApiFe10TestServiceRegistrar.kt | 3 --- .../structure/StandaloneProjectFactory.kt | 24 +++++++++++++------ 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/analysis/analysis-api-fe10/tests/org/jetbrains/kotlin/analysis/api/fe10/test/configurator/AnalysisApiFe10TestServiceRegistrar.kt b/analysis/analysis-api-fe10/tests/org/jetbrains/kotlin/analysis/api/fe10/test/configurator/AnalysisApiFe10TestServiceRegistrar.kt index 618ff18fb17..d19abd1e126 100644 --- a/analysis/analysis-api-fe10/tests/org/jetbrains/kotlin/analysis/api/fe10/test/configurator/AnalysisApiFe10TestServiceRegistrar.kt +++ b/analysis/analysis-api-fe10/tests/org/jetbrains/kotlin/analysis/api/fe10/test/configurator/AnalysisApiFe10TestServiceRegistrar.kt @@ -5,10 +5,8 @@ package org.jetbrains.kotlin.analysis.api.fe10.test.configurator -import com.intellij.core.CoreJavaFileManager import com.intellij.mock.MockApplication import com.intellij.mock.MockProject -import com.intellij.psi.impl.file.impl.JavaFileManager import org.jetbrains.kotlin.analysis.api.KtAnalysisApiInternals import org.jetbrains.kotlin.analysis.api.session.KtAnalysisSessionProvider import org.jetbrains.kotlin.analysis.api.descriptors.CliFe10AnalysisFacade @@ -36,7 +34,6 @@ object AnalysisApiFe10TestServiceRegistrar : AnalysisApiTestServiceRegistrar() { registerService(KtAnalysisSessionProvider::class.java, KtFe10AnalysisSessionProvider(project)) registerService(Fe10AnalysisFacade::class.java, CliFe10AnalysisFacade(project)) registerService(ModuleVisibilityManager::class.java, CliModuleVisibilityManagerImpl(enabled = true)) - registerService(CoreJavaFileManager::class.java, project.getService(JavaFileManager::class.java) as CoreJavaFileManager) registerService(SymbolLightClassFacadeCache::class.java) } diff --git a/analysis/analysis-api-standalone/analysis-api-standalone-base/src/org/jetbrains/kotlin/analysis/api/standalone/base/project/structure/StandaloneProjectFactory.kt b/analysis/analysis-api-standalone/analysis-api-standalone-base/src/org/jetbrains/kotlin/analysis/api/standalone/base/project/structure/StandaloneProjectFactory.kt index d2c1dabcd54..ba278e57258 100644 --- a/analysis/analysis-api-standalone/analysis-api-standalone-base/src/org/jetbrains/kotlin/analysis/api/standalone/base/project/structure/StandaloneProjectFactory.kt +++ b/analysis/analysis-api-standalone/analysis-api-standalone-base/src/org/jetbrains/kotlin/analysis/api/standalone/base/project/structure/StandaloneProjectFactory.kt @@ -7,8 +7,10 @@ package org.jetbrains.kotlin.analysis.api.standalone.base.project.structure import com.intellij.codeInsight.ExternalAnnotationsManager import com.intellij.codeInsight.InferredAnnotationsManager +import com.intellij.core.CoreJavaFileManager import com.intellij.mock.MockProject import com.intellij.openapi.Disposable +import com.intellij.openapi.components.ServiceManager import com.intellij.psi.PsiDirectory import com.intellij.psi.PsiFileSystemItem import com.intellij.psi.PsiJavaFile @@ -43,7 +45,21 @@ object StandaloneProjectFactory { val applicationEnvironment = KotlinCoreEnvironment.getOrCreateApplicationEnvironmentForTests(applicationDisposable, compilerConfiguration) - return KotlinCoreProjectEnvironment(projectDisposable, applicationEnvironment) + return KotlinCoreProjectEnvironment(projectDisposable, applicationEnvironment).apply { + registerJavaPsiFacade(project) + } + } + + private fun registerJavaPsiFacade(project: MockProject) { + with(project) { + registerService( + CoreJavaFileManager::class.java, + ServiceManager.getService(this, JavaFileManager::class.java) as CoreJavaFileManager + ) + + registerService(ExternalAnnotationsManager::class.java, MockExternalAnnotationsManager()) + registerService(InferredAnnotationsManager::class.java, MockInferredAnnotationsManager()) + } } fun registerServicesForProjectEnvironment( @@ -61,16 +77,10 @@ object StandaloneProjectFactory { project.registerService(ProjectStructureProvider::class.java, projectStructureProvider) initialiseVirtualFileFinderServices(environment, modules, sourceFiles, languageVersionSettings, jdkHome) - initialiseAnnotationServices(project) project.setupHighestLanguageLevel() } - private fun initialiseAnnotationServices(project: MockProject) { - project.registerService(ExternalAnnotationsManager::class.java, MockExternalAnnotationsManager()) - project.registerService(InferredAnnotationsManager::class.java, MockInferredAnnotationsManager()) - } - private fun initialiseVirtualFileFinderServices( environment: KotlinCoreProjectEnvironment, modules: List,