AA: add an option to create Application env for production v.s. test mode
...and use production mode by default for AA standalone ^KT-59511 Fixed
This commit is contained in:
committed by
Ilya Kirillov
parent
134b02c754
commit
799aadfacf
+5
-1
@@ -62,11 +62,15 @@ object StandaloneProjectFactory {
|
||||
fun createProjectEnvironment(
|
||||
projectDisposable: Disposable,
|
||||
applicationDisposable: Disposable,
|
||||
unitTestMode: Boolean = false,
|
||||
compilerConfiguration: CompilerConfiguration = CompilerConfiguration(),
|
||||
classLoader: ClassLoader = MockProject::class.java.classLoader
|
||||
): KotlinCoreProjectEnvironment {
|
||||
val applicationEnvironment =
|
||||
val applicationEnvironment = if (unitTestMode)
|
||||
KotlinCoreEnvironment.getOrCreateApplicationEnvironmentForTests(applicationDisposable, compilerConfiguration)
|
||||
else
|
||||
KotlinCoreEnvironment.getOrCreateApplicationEnvironmentForProduction(applicationDisposable, compilerConfiguration)
|
||||
|
||||
registerApplicationExtensionPoints(applicationEnvironment, applicationDisposable)
|
||||
|
||||
registerApplicationServices(applicationEnvironment.application)
|
||||
|
||||
+7
-4
@@ -12,6 +12,9 @@ import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.util.Disposer
|
||||
import com.intellij.openapi.vfs.impl.jar.CoreJarFileSystem
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import kotlin.contracts.ExperimentalContracts
|
||||
import kotlin.contracts.InvocationKind
|
||||
import kotlin.contracts.contract
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisApiInternals
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.KtDefaultLifetimeTokenProvider
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.KtReadActionConfinementDefaultLifetimeTokenProvider
|
||||
@@ -37,13 +40,11 @@ import org.jetbrains.kotlin.fir.declarations.SealedClassInheritorsProvider
|
||||
import org.jetbrains.kotlin.fir.declarations.SealedClassInheritorsProviderImpl
|
||||
import org.jetbrains.kotlin.load.kotlin.PackagePartProvider
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import kotlin.contracts.ExperimentalContracts
|
||||
import kotlin.contracts.InvocationKind
|
||||
import kotlin.contracts.contract
|
||||
|
||||
public class StandaloneAnalysisAPISessionBuilder(
|
||||
applicationDisposable: Disposable,
|
||||
projectDisposable: Disposable,
|
||||
unitTestMode: Boolean,
|
||||
classLoader: ClassLoader = MockProject::class.java.classLoader
|
||||
) {
|
||||
init {
|
||||
@@ -59,10 +60,10 @@ public class StandaloneAnalysisAPISessionBuilder(
|
||||
StandaloneProjectFactory.createProjectEnvironment(
|
||||
projectDisposable,
|
||||
applicationDisposable,
|
||||
unitTestMode,
|
||||
classLoader = classLoader
|
||||
)
|
||||
|
||||
|
||||
init {
|
||||
FirStandaloneServiceRegistrar.registerApplicationServices(kotlinCoreProjectEnvironment.environment.application)
|
||||
}
|
||||
@@ -217,6 +218,7 @@ public class StandaloneAnalysisAPISessionBuilder(
|
||||
public inline fun buildStandaloneAnalysisAPISession(
|
||||
applicationDisposable: Disposable = Disposer.newDisposable("StandaloneAnalysisAPISession.application"),
|
||||
projectDisposable: Disposable = Disposer.newDisposable("StandaloneAnalysisAPISession.project"),
|
||||
unitTestMode: Boolean = false,
|
||||
withPsiDeclarationFromBinaryModuleProvider: Boolean = false,
|
||||
classLoader: ClassLoader = MockProject::class.java.classLoader,
|
||||
init: StandaloneAnalysisAPISessionBuilder.() -> Unit
|
||||
@@ -227,6 +229,7 @@ public inline fun buildStandaloneAnalysisAPISession(
|
||||
return StandaloneAnalysisAPISessionBuilder(
|
||||
applicationDisposable,
|
||||
projectDisposable,
|
||||
unitTestMode,
|
||||
classLoader
|
||||
).apply(init).build(
|
||||
withPsiDeclarationFromBinaryModuleProvider,
|
||||
|
||||
+1
@@ -43,6 +43,7 @@ class AnalysisApiEnvironmentManagerImpl(
|
||||
StandaloneProjectFactory.createProjectEnvironment(
|
||||
testRootDisposable,
|
||||
testServices.applicationDisposableProvider.getApplicationRootDisposable(),
|
||||
unitTestMode = true
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user