42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
import * as vscode from "vscode";
|
|
import { getWebviewContent } from "../utils/webviewContent";
|
|
import { handleUserMessage, insertCodeToEditor } from "../utils/messageHandler";
|
|
|
|
/**
|
|
* 创建并显示 IC 助手面板
|
|
*/
|
|
export function showICHelperPanel(context: vscode.ExtensionContext) {
|
|
// 创建WebView面板
|
|
const panel = vscode.window.createWebviewPanel(
|
|
"icCoder", // 面板ID
|
|
"IC Coder", // 面板标题
|
|
vscode.ViewColumn.Beside, // 显示在旁边
|
|
{
|
|
enableScripts: true,
|
|
retainContextWhenHidden: true,
|
|
}
|
|
);
|
|
|
|
// 设置HTML内容
|
|
panel.webview.html = getWebviewContent();
|
|
|
|
// 处理消息
|
|
panel.webview.onDidReceiveMessage(
|
|
(message) => {
|
|
switch (message.command) {
|
|
case "sendMessage":
|
|
handleUserMessage(panel, message.text);
|
|
break;
|
|
case "insertCode":
|
|
insertCodeToEditor(message.code);
|
|
break;
|
|
case "showInfo":
|
|
vscode.window.showInformationMessage(message.text);
|
|
break;
|
|
}
|
|
},
|
|
undefined,
|
|
context.subscriptions
|
|
);
|
|
}
|