AA standalone: use IJ platform in headless mode

This commit is contained in:
Jinseong Jeon
2023-02-01 15:18:43 -08:00
committed by Ilya Kirillov
parent 2e26b0956e
commit 4a872928dd
@@ -24,7 +24,6 @@ import org.jetbrains.kotlin.analysis.api.standalone.base.project.structure.Stand
import org.jetbrains.kotlin.analysis.decompiled.light.classes.ClsJavaStubByVirtualFileCache
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.services.FirSealedClassInheritorsProcessorFactory
import org.jetbrains.kotlin.analysis.low.level.api.fir.project.structure.LLFirBuiltinsSessionFactory
import org.jetbrains.kotlin.analysis.low.level.api.fir.project.structure.LLFirLibrarySessionFactory
import org.jetbrains.kotlin.analysis.project.structure.KtModuleScopeProvider
import org.jetbrains.kotlin.analysis.project.structure.KtModuleScopeProviderImpl
import org.jetbrains.kotlin.analysis.project.structure.ProjectStructureProvider
@@ -59,6 +58,11 @@ public class StandaloneAnalysisAPISessionBuilder(
projectDisposable: Disposable,
) {
init {
// We depend on swing (indirectly through PSI or something), so we want to declare headless mode,
// to avoid accidentally starting the UI thread. But, don't set it if it was set externally.
if (System.getProperty("java.awt.headless") == null) {
System.setProperty("java.awt.headless", "true")
}
setupIdeaStandaloneExecution()
}