[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) {
|
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.CoreJavaFileManager
|
||||||
import com.intellij.core.CorePackageIndex
|
import com.intellij.core.CorePackageIndex
|
||||||
import com.intellij.ide.highlighter.JavaFileType
|
import com.intellij.ide.highlighter.JavaFileType
|
||||||
|
import com.intellij.mock.MockApplication
|
||||||
import com.intellij.mock.MockProject
|
import com.intellij.mock.MockProject
|
||||||
import com.intellij.openapi.Disposable
|
import com.intellij.openapi.Disposable
|
||||||
import com.intellij.openapi.roots.PackageIndex
|
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.impl.base.java.source.JavaElementSourceWithSmartPointerFactory
|
||||||
import org.jetbrains.kotlin.analysis.api.resolve.extensions.KtResolveExtensionProvider
|
import org.jetbrains.kotlin.analysis.api.resolve.extensions.KtResolveExtensionProvider
|
||||||
import org.jetbrains.kotlin.analysis.project.structure.*
|
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.common.messages.MessageCollector
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.*
|
import org.jetbrains.kotlin.cli.jvm.compiler.*
|
||||||
import org.jetbrains.kotlin.cli.jvm.index.JavaRoot
|
import org.jetbrains.kotlin.cli.jvm.index.JavaRoot
|
||||||
@@ -61,12 +63,30 @@ object StandaloneProjectFactory {
|
|||||||
KotlinCoreEnvironment.getOrCreateApplicationEnvironmentForTests(applicationDisposable, compilerConfiguration)
|
KotlinCoreEnvironment.getOrCreateApplicationEnvironmentForTests(applicationDisposable, compilerConfiguration)
|
||||||
registerApplicationExtensionPoints(applicationEnvironment, applicationDisposable)
|
registerApplicationExtensionPoints(applicationEnvironment, applicationDisposable)
|
||||||
|
|
||||||
|
registerApplicationServices(applicationEnvironment.application)
|
||||||
|
|
||||||
return KotlinCoreProjectEnvironment(projectDisposable, applicationEnvironment).apply {
|
return KotlinCoreProjectEnvironment(projectDisposable, applicationEnvironment).apply {
|
||||||
registerProjectServices(project)
|
registerProjectServices(project)
|
||||||
registerJavaPsiFacade(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) {
|
private fun registerProjectServices(project: MockProject) {
|
||||||
@Suppress("UnstableApiUsage")
|
@Suppress("UnstableApiUsage")
|
||||||
CoreApplicationEnvironment.registerExtensionPoint(
|
CoreApplicationEnvironment.registerExtensionPoint(
|
||||||
|
|||||||
Reference in New Issue
Block a user