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
This commit is contained in:
smallstone 2023-11-13 12:19:58 +08:00
parent 700cfff6ba
commit e4a571a0bd
2 changed files with 11 additions and 9 deletions

View File

@ -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);
}

View File

@ -97,7 +97,7 @@ const webviewConfig = {
new CleanWebpackPlugin(),
new webpack.ProgressPlugin(),
new webpack.DefinePlugin({
"process.env.platform": "idea",
"process.env.platform": JSON.stringify("idea"),
}),
],
};