diff --git a/gradle.properties b/gradle.properties index d28d4a73..809fc22f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -29,7 +29,7 @@ electronPackagerVersion=^15.1.0 gradleMkdocsPluginVersion=2.3.0 intellijPlatformVersion=213.6461.23 intellijMarkdownPluginVersion=213.5744.223 -intellijJcefVersion=89.0.12-g2b76680-chromium-89.0.4389.90-api-1.6 +intellijJcefVersion=104.4.26-g4180781-chromium-104.0.5112.102-api-1.10 istanbulInstrumenterLoaderVersion=3.0.1 javassistVersion=3.28.0-GA javaWebSocketVersion=1.5.2 diff --git a/projector-agent-ij-injector/src/main/kotlin/org/jetbrains/projector/agent/ijInjector/IjInjector.kt b/projector-agent-ij-injector/src/main/kotlin/org/jetbrains/projector/agent/ijInjector/IjInjector.kt index 44a51f0a..273d95cb 100644 --- a/projector-agent-ij-injector/src/main/kotlin/org/jetbrains/projector/agent/ijInjector/IjInjector.kt +++ b/projector-agent-ij-injector/src/main/kotlin/org/jetbrains/projector/agent/ijInjector/IjInjector.kt @@ -35,7 +35,9 @@ internal object IjInjector { val isAgent: Boolean, val markdownPanelClassName: String, val isIdeAttached: Boolean, - ) + ){ + val jcefTransformerInUse by lazy { isIdeAttached } + } private fun parametersFromArgs(args: Map): AgentParameters { @@ -51,6 +53,7 @@ internal object IjInjector { val parameters = parametersFromArgs(args) // TODO: support same transformers in agent mode too to reach feature parity + // TODO JCEF & Markdown 不支持时,查看这里对应的类加载器 val transformers = listOf( IjAwtTransformer, IjLigaturesDisablerTransformer, @@ -60,7 +63,6 @@ internal object IjInjector { IjFastNodeCellRendererTransformer, IjRestartDisablerTransformer, ) - ProjectorBatchTransformer(transformers).runTransformations(instrumentation, parameters) } } diff --git a/projector-agent-ij-injector/src/main/kotlin/org/jetbrains/projector/agent/ijInjector/IjMdTransformer.kt b/projector-agent-ij-injector/src/main/kotlin/org/jetbrains/projector/agent/ijInjector/IjMdTransformer.kt index aabef9ab..3acd278f 100644 --- a/projector-agent-ij-injector/src/main/kotlin/org/jetbrains/projector/agent/ijInjector/IjMdTransformer.kt +++ b/projector-agent-ij-injector/src/main/kotlin/org/jetbrains/projector/agent/ijInjector/IjMdTransformer.kt @@ -91,7 +91,13 @@ internal object IjMdTransformer : IdeTransformerSetup false true -> try { - WindowsCommandLineProcessor.ourMainRunnerClass + // TODO 更好的判断IDE是否启动起来 原 WindowsCommandLineProcessor.ourMainRunnerClass + StartUpMeasurer.isEnabled() true } catch (t: Throwable) { + t.printStackTrace() false } } private val isIdeClassLoaderInstantiated: Boolean - get() = isIdeAttached && WindowsCommandLineProcessor.ourMainRunnerClass != null + get() = isIdeAttached public val attachToIde: Boolean get() = getOption(ATTACH_TO_IDE_PROPERTY_NAME, "true").toBooleanStrict() diff --git a/projector-util-loading/src/main/kotlin/org/jetbrains/projector/util/loading/state/IdeStateUtils.kt b/projector-util-loading/src/main/kotlin/org/jetbrains/projector/util/loading/state/IdeStateUtils.kt index 6ca6d029..1d315313 100644 --- a/projector-util-loading/src/main/kotlin/org/jetbrains/projector/util/loading/state/IdeStateUtils.kt +++ b/projector-util-loading/src/main/kotlin/org/jetbrains/projector/util/loading/state/IdeStateUtils.kt @@ -68,6 +68,8 @@ public fun registerStateListener(purpose: String?, listener: IdeStateListener) { return } + logger.info { "registerStateListener start" } + scope.launch { runLoopForListener(purpose, listener) } }