AA: register CoreJavaFileManager

in a similar way
KotlinCoreEnvironment.ProjectEnvironment.registerJavaPsiFacade does
This commit is contained in:
Jinseong Jeon
2022-06-02 15:32:20 -07:00
committed by Ilya Kirillov
parent af053fd8f3
commit c1b2469e51
2 changed files with 17 additions and 10 deletions
@@ -5,10 +5,8 @@
package org.jetbrains.kotlin.analysis.api.fe10.test.configurator package org.jetbrains.kotlin.analysis.api.fe10.test.configurator
import com.intellij.core.CoreJavaFileManager
import com.intellij.mock.MockApplication import com.intellij.mock.MockApplication
import com.intellij.mock.MockProject 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.KtAnalysisApiInternals
import org.jetbrains.kotlin.analysis.api.session.KtAnalysisSessionProvider import org.jetbrains.kotlin.analysis.api.session.KtAnalysisSessionProvider
import org.jetbrains.kotlin.analysis.api.descriptors.CliFe10AnalysisFacade import org.jetbrains.kotlin.analysis.api.descriptors.CliFe10AnalysisFacade
@@ -36,7 +34,6 @@ object AnalysisApiFe10TestServiceRegistrar : AnalysisApiTestServiceRegistrar() {
registerService(KtAnalysisSessionProvider::class.java, KtFe10AnalysisSessionProvider(project)) registerService(KtAnalysisSessionProvider::class.java, KtFe10AnalysisSessionProvider(project))
registerService(Fe10AnalysisFacade::class.java, CliFe10AnalysisFacade(project)) registerService(Fe10AnalysisFacade::class.java, CliFe10AnalysisFacade(project))
registerService(ModuleVisibilityManager::class.java, CliModuleVisibilityManagerImpl(enabled = true)) registerService(ModuleVisibilityManager::class.java, CliModuleVisibilityManagerImpl(enabled = true))
registerService(CoreJavaFileManager::class.java, project.getService(JavaFileManager::class.java) as CoreJavaFileManager)
registerService(SymbolLightClassFacadeCache::class.java) registerService(SymbolLightClassFacadeCache::class.java)
} }
@@ -7,8 +7,10 @@ package org.jetbrains.kotlin.analysis.api.standalone.base.project.structure
import com.intellij.codeInsight.ExternalAnnotationsManager import com.intellij.codeInsight.ExternalAnnotationsManager
import com.intellij.codeInsight.InferredAnnotationsManager import com.intellij.codeInsight.InferredAnnotationsManager
import com.intellij.core.CoreJavaFileManager
import com.intellij.mock.MockProject import com.intellij.mock.MockProject
import com.intellij.openapi.Disposable import com.intellij.openapi.Disposable
import com.intellij.openapi.components.ServiceManager
import com.intellij.psi.PsiDirectory import com.intellij.psi.PsiDirectory
import com.intellij.psi.PsiFileSystemItem import com.intellij.psi.PsiFileSystemItem
import com.intellij.psi.PsiJavaFile import com.intellij.psi.PsiJavaFile
@@ -43,7 +45,21 @@ object StandaloneProjectFactory {
val applicationEnvironment = val applicationEnvironment =
KotlinCoreEnvironment.getOrCreateApplicationEnvironmentForTests(applicationDisposable, compilerConfiguration) 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( fun registerServicesForProjectEnvironment(
@@ -61,16 +77,10 @@ object StandaloneProjectFactory {
project.registerService(ProjectStructureProvider::class.java, projectStructureProvider) project.registerService(ProjectStructureProvider::class.java, projectStructureProvider)
initialiseVirtualFileFinderServices(environment, modules, sourceFiles, languageVersionSettings, jdkHome) initialiseVirtualFileFinderServices(environment, modules, sourceFiles, languageVersionSettings, jdkHome)
initialiseAnnotationServices(project)
project.setupHighestLanguageLevel() project.setupHighestLanguageLevel()
} }
private fun initialiseAnnotationServices(project: MockProject) {
project.registerService(ExternalAnnotationsManager::class.java, MockExternalAnnotationsManager())
project.registerService(InferredAnnotationsManager::class.java, MockInferredAnnotationsManager())
}
private fun initialiseVirtualFileFinderServices( private fun initialiseVirtualFileFinderServices(
environment: KotlinCoreProjectEnvironment, environment: KotlinCoreProjectEnvironment,
modules: List<KtModule>, modules: List<KtModule>,