From e4a571a0bd3783f54d2ed1c9be85d93a36bdde31 Mon Sep 17 00:00:00 2001 From: smallstone <> Date: Mon, 13 Nov 2023 12:19:58 +0800 Subject: [PATCH] Refactor MessageUtil class - Import IdeaBridge module for IDEA platform integration - Modify registerHandler() method to use IdeaBridge for IDEA platform - Add console.log statement in sendMessage() method for debugging - Modify webpack.idea.config.js to properly define process.env.platform as string --- src/util/MessageUtil.ts | 18 ++++++++++-------- webpack.idea.config.js | 2 +- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/util/MessageUtil.ts b/src/util/MessageUtil.ts index 2cad7d2..f3a762c 100644 --- a/src/util/MessageUtil.ts +++ b/src/util/MessageUtil.ts @@ -1,7 +1,4 @@ -// const vscodeApi = window.acquireVsCodeApi(); -const vscodeApi = { - postMessage: (message: any) => {}, -}; +import IdeaBridge from "./ideaBridge"; class MessageUtil { private static instance: MessageUtil; @@ -33,10 +30,14 @@ class MessageUtil { // Register a message handler for a specific message type registerHandler(messageType: string, handler: any) { - if (!this.handlers[messageType]) { - this.handlers[messageType] = []; + if (process.env.platform === "idea") { + IdeaBridge.registerHandler(messageType, handler); + } else { + if (!this.handlers[messageType]) { + this.handlers[messageType] = []; + } + this.handlers[messageType].push(handler); } - this.handlers[messageType].push(handler); } // Unregister a message handler for a specific message type @@ -60,8 +61,9 @@ class MessageUtil { // Send a message to the VSCode API sendMessage(message: any) { + console.log("util sendMessage message: ", message); if (process.env.platform === "idea") { - window.callJAVA(); + IdeaBridge.sendMessage(message); } else { window.acquireVsCodeApi().postMessage(message); } diff --git a/webpack.idea.config.js b/webpack.idea.config.js index 68e30f0..20a3e27 100644 --- a/webpack.idea.config.js +++ b/webpack.idea.config.js @@ -97,7 +97,7 @@ const webviewConfig = { new CleanWebpackPlugin(), new webpack.ProgressPlugin(), new webpack.DefinePlugin({ - "process.env.platform": "idea", + "process.env.platform": JSON.stringify("idea"), }), ], };