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(
|
fun createProjectEnvironment(
|
||||||
projectDisposable: Disposable,
|
projectDisposable: Disposable,
|
||||||
applicationDisposable: Disposable,
|
applicationDisposable: Disposable,
|
||||||
|
unitTestMode: Boolean = false,
|
||||||
compilerConfiguration: CompilerConfiguration = CompilerConfiguration(),
|
compilerConfiguration: CompilerConfiguration = CompilerConfiguration(),
|
||||||
classLoader: ClassLoader = MockProject::class.java.classLoader
|
classLoader: ClassLoader = MockProject::class.java.classLoader
|
||||||
): KotlinCoreProjectEnvironment {
|
): KotlinCoreProjectEnvironment {
|
||||||
val applicationEnvironment =
|
val applicationEnvironment = if (unitTestMode)
|
||||||
KotlinCoreEnvironment.getOrCreateApplicationEnvironmentForTests(applicationDisposable, compilerConfiguration)
|
KotlinCoreEnvironment.getOrCreateApplicationEnvironmentForTests(applicationDisposable, compilerConfiguration)
|
||||||
|
else
|
||||||
|
KotlinCoreEnvironment.getOrCreateApplicationEnvironmentForProduction(applicationDisposable, compilerConfiguration)
|
||||||
|
|
||||||
registerApplicationExtensionPoints(applicationEnvironment, applicationDisposable)
|
registerApplicationExtensionPoints(applicationEnvironment, applicationDisposable)
|
||||||
|
|
||||||
registerApplicationServices(applicationEnvironment.application)
|
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.util.Disposer
|
||||||
import com.intellij.openapi.vfs.impl.jar.CoreJarFileSystem
|
import com.intellij.openapi.vfs.impl.jar.CoreJarFileSystem
|
||||||
import com.intellij.psi.search.GlobalSearchScope
|
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.KtAnalysisApiInternals
|
||||||
import org.jetbrains.kotlin.analysis.api.lifetime.KtDefaultLifetimeTokenProvider
|
import org.jetbrains.kotlin.analysis.api.lifetime.KtDefaultLifetimeTokenProvider
|
||||||
import org.jetbrains.kotlin.analysis.api.lifetime.KtReadActionConfinementDefaultLifetimeTokenProvider
|
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.fir.declarations.SealedClassInheritorsProviderImpl
|
||||||
import org.jetbrains.kotlin.load.kotlin.PackagePartProvider
|
import org.jetbrains.kotlin.load.kotlin.PackagePartProvider
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
import kotlin.contracts.ExperimentalContracts
|
|
||||||
import kotlin.contracts.InvocationKind
|
|
||||||
import kotlin.contracts.contract
|
|
||||||
|
|
||||||
public class StandaloneAnalysisAPISessionBuilder(
|
public class StandaloneAnalysisAPISessionBuilder(
|
||||||
applicationDisposable: Disposable,
|
applicationDisposable: Disposable,
|
||||||
projectDisposable: Disposable,
|
projectDisposable: Disposable,
|
||||||
|
unitTestMode: Boolean,
|
||||||
classLoader: ClassLoader = MockProject::class.java.classLoader
|
classLoader: ClassLoader = MockProject::class.java.classLoader
|
||||||
) {
|
) {
|
||||||
init {
|
init {
|
||||||
@@ -59,10 +60,10 @@ public class StandaloneAnalysisAPISessionBuilder(
|
|||||||
StandaloneProjectFactory.createProjectEnvironment(
|
StandaloneProjectFactory.createProjectEnvironment(
|
||||||
projectDisposable,
|
projectDisposable,
|
||||||
applicationDisposable,
|
applicationDisposable,
|
||||||
|
unitTestMode,
|
||||||
classLoader = classLoader
|
classLoader = classLoader
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
init {
|
init {
|
||||||
FirStandaloneServiceRegistrar.registerApplicationServices(kotlinCoreProjectEnvironment.environment.application)
|
FirStandaloneServiceRegistrar.registerApplicationServices(kotlinCoreProjectEnvironment.environment.application)
|
||||||
}
|
}
|
||||||
@@ -217,6 +218,7 @@ public class StandaloneAnalysisAPISessionBuilder(
|
|||||||
public inline fun buildStandaloneAnalysisAPISession(
|
public inline fun buildStandaloneAnalysisAPISession(
|
||||||
applicationDisposable: Disposable = Disposer.newDisposable("StandaloneAnalysisAPISession.application"),
|
applicationDisposable: Disposable = Disposer.newDisposable("StandaloneAnalysisAPISession.application"),
|
||||||
projectDisposable: Disposable = Disposer.newDisposable("StandaloneAnalysisAPISession.project"),
|
projectDisposable: Disposable = Disposer.newDisposable("StandaloneAnalysisAPISession.project"),
|
||||||
|
unitTestMode: Boolean = false,
|
||||||
withPsiDeclarationFromBinaryModuleProvider: Boolean = false,
|
withPsiDeclarationFromBinaryModuleProvider: Boolean = false,
|
||||||
classLoader: ClassLoader = MockProject::class.java.classLoader,
|
classLoader: ClassLoader = MockProject::class.java.classLoader,
|
||||||
init: StandaloneAnalysisAPISessionBuilder.() -> Unit
|
init: StandaloneAnalysisAPISessionBuilder.() -> Unit
|
||||||
@@ -227,6 +229,7 @@ public inline fun buildStandaloneAnalysisAPISession(
|
|||||||
return StandaloneAnalysisAPISessionBuilder(
|
return StandaloneAnalysisAPISessionBuilder(
|
||||||
applicationDisposable,
|
applicationDisposable,
|
||||||
projectDisposable,
|
projectDisposable,
|
||||||
|
unitTestMode,
|
||||||
classLoader
|
classLoader
|
||||||
).apply(init).build(
|
).apply(init).build(
|
||||||
withPsiDeclarationFromBinaryModuleProvider,
|
withPsiDeclarationFromBinaryModuleProvider,
|
||||||
|
|||||||
+1
@@ -43,6 +43,7 @@ class AnalysisApiEnvironmentManagerImpl(
|
|||||||
StandaloneProjectFactory.createProjectEnvironment(
|
StandaloneProjectFactory.createProjectEnvironment(
|
||||||
testRootDisposable,
|
testRootDisposable,
|
||||||
testServices.applicationDisposableProvider.getApplicationRootDisposable(),
|
testServices.applicationDisposableProvider.getApplicationRootDisposable(),
|
||||||
|
unitTestMode = true
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user