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:
parent
700cfff6ba
commit
e4a571a0bd
@ -1,7 +1,4 @@
|
|||||||
// const vscodeApi = window.acquireVsCodeApi();
|
import IdeaBridge from "./ideaBridge";
|
||||||
const vscodeApi = {
|
|
||||||
postMessage: (message: any) => {},
|
|
||||||
};
|
|
||||||
|
|
||||||
class MessageUtil {
|
class MessageUtil {
|
||||||
private static instance: MessageUtil;
|
private static instance: MessageUtil;
|
||||||
@ -33,10 +30,14 @@ class MessageUtil {
|
|||||||
|
|
||||||
// Register a message handler for a specific message type
|
// Register a message handler for a specific message type
|
||||||
registerHandler(messageType: string, handler: any) {
|
registerHandler(messageType: string, handler: any) {
|
||||||
if (!this.handlers[messageType]) {
|
if (process.env.platform === "idea") {
|
||||||
this.handlers[messageType] = [];
|
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
|
// Unregister a message handler for a specific message type
|
||||||
@ -60,8 +61,9 @@ class MessageUtil {
|
|||||||
|
|
||||||
// Send a message to the VSCode API
|
// Send a message to the VSCode API
|
||||||
sendMessage(message: any) {
|
sendMessage(message: any) {
|
||||||
|
console.log("util sendMessage message: ", message);
|
||||||
if (process.env.platform === "idea") {
|
if (process.env.platform === "idea") {
|
||||||
window.callJAVA();
|
IdeaBridge.sendMessage(message);
|
||||||
} else {
|
} else {
|
||||||
window.acquireVsCodeApi().postMessage(message);
|
window.acquireVsCodeApi().postMessage(message);
|
||||||
}
|
}
|
||||||
|
@ -97,7 +97,7 @@ const webviewConfig = {
|
|||||||
new CleanWebpackPlugin(),
|
new CleanWebpackPlugin(),
|
||||||
new webpack.ProgressPlugin(),
|
new webpack.ProgressPlugin(),
|
||||||
new webpack.DefinePlugin({
|
new webpack.DefinePlugin({
|
||||||
"process.env.platform": "idea",
|
"process.env.platform": JSON.stringify("idea"),
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user