[Analysis API] move KotlinFakeClsStubsCache service registration to StandaloneProjectFactory
so it can be used from standalone mode
This commit is contained in:
committed by
Space Team
parent
452844ffc6
commit
feaf9acd1d
-1
@@ -64,6 +64,5 @@ object AnalysisApiBaseTestServiceRegistrar: AnalysisApiTestServiceRegistrar() {
|
||||
}
|
||||
|
||||
override fun registerApplicationServices(application: MockApplication, testServices: TestServices) {
|
||||
application.registerService(KotlinFakeClsStubsCache::class.java, KotlinFakeClsStubsCache())
|
||||
}
|
||||
}
|
||||
|
||||
+20
@@ -11,6 +11,7 @@ import com.intellij.core.CoreApplicationEnvironment
|
||||
import com.intellij.core.CoreJavaFileManager
|
||||
import com.intellij.core.CorePackageIndex
|
||||
import com.intellij.ide.highlighter.JavaFileType
|
||||
import com.intellij.mock.MockApplication
|
||||
import com.intellij.mock.MockProject
|
||||
import com.intellij.openapi.Disposable
|
||||
import com.intellij.openapi.roots.PackageIndex
|
||||
@@ -29,6 +30,7 @@ import org.jetbrains.kotlin.analysis.api.impl.base.references.HLApiReferenceProv
|
||||
import org.jetbrains.kotlin.analysis.api.impl.base.java.source.JavaElementSourceWithSmartPointerFactory
|
||||
import org.jetbrains.kotlin.analysis.api.resolve.extensions.KtResolveExtensionProvider
|
||||
import org.jetbrains.kotlin.analysis.project.structure.*
|
||||
import org.jetbrains.kotlin.analysis.providers.impl.KotlinFakeClsStubsCache
|
||||
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
||||
import org.jetbrains.kotlin.cli.jvm.compiler.*
|
||||
import org.jetbrains.kotlin.cli.jvm.index.JavaRoot
|
||||
@@ -61,12 +63,30 @@ object StandaloneProjectFactory {
|
||||
KotlinCoreEnvironment.getOrCreateApplicationEnvironmentForTests(applicationDisposable, compilerConfiguration)
|
||||
registerApplicationExtensionPoints(applicationEnvironment, applicationDisposable)
|
||||
|
||||
registerApplicationServices(applicationEnvironment.application)
|
||||
|
||||
return KotlinCoreProjectEnvironment(projectDisposable, applicationEnvironment).apply {
|
||||
registerProjectServices(project)
|
||||
registerJavaPsiFacade(project)
|
||||
}
|
||||
}
|
||||
|
||||
private fun registerApplicationServices(application: MockApplication) {
|
||||
if (application.getServiceIfCreated(KotlinFakeClsStubsCache::class.java) != null) {
|
||||
// application services already registered by som other threads, tests
|
||||
return
|
||||
}
|
||||
KotlinCoreEnvironment.underApplicationLock {
|
||||
if (application.getServiceIfCreated(KotlinFakeClsStubsCache::class.java) != null) {
|
||||
// application services already registered by som other threads, tests
|
||||
return
|
||||
}
|
||||
application.apply {
|
||||
registerService(KotlinFakeClsStubsCache::class.java, KotlinFakeClsStubsCache())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun registerProjectServices(project: MockProject) {
|
||||
@Suppress("UnstableApiUsage")
|
||||
CoreApplicationEnvironment.registerExtensionPoint(
|
||||
|
||||
Reference in New Issue
Block a user