feat:预览波形展开新开窗口展示完整波形

This commit is contained in:
Roe-xin
2026-01-09 19:06:34 +08:00
parent f9b3699bda
commit 6abec8c7b7
5 changed files with 396 additions and 7 deletions

View File

@ -14,7 +14,7 @@ export function activate(context: vscode.ExtensionContext) {
initUserService(context);
// 初始化 VCD 文件服务器
const vcdFileServer = new VCDFileServer();
const vcdFileServer = new VCDFileServer(context.extensionUri);
vcdFileServer.start().then((port) => {
console.log(`VCD 文件服务器已启动,端口: ${port}`);
}).catch((error) => {
@ -90,6 +90,39 @@ export function activate(context: vscode.ExtensionContext) {
}
);
// 注册命令:在浏览器中打开 VCD 波形查看器
const openVCDViewerInBrowserCommand = vscode.commands.registerCommand(
"ic-coder.openVCDViewerInBrowser",
async (vcdFilePath?: string) => {
if (!vcdFilePath) {
const fileUri = await vscode.window.showOpenDialog({
canSelectFiles: true,
canSelectFolders: false,
canSelectMany: false,
filters: {
"VCD 文件": ["vcd"],
"所有文件": ["*"],
},
title: "选择 VCD 文件",
});
if (fileUri && fileUri[0]) {
vcdFilePath = fileUri[0].fsPath;
} else {
return;
}
}
// 注册文件到服务器
const fileId = vcdFileServer.registerFile(vcdFilePath);
const viewerUrl = vcdFileServer.getViewerUrl(fileId);
// 在默认浏览器中打开
vscode.env.openExternal(vscode.Uri.parse(viewerUrl));
vscode.window.showInformationMessage(`波形查看器已在浏览器中打开`);
}
);
// 注册命令:用户登录
const loginCommand = vscode.commands.registerCommand(
"ic-coder.login",
@ -186,6 +219,7 @@ export function activate(context: vscode.ExtensionContext) {
openPanelCommand,
openChatCommand,
openVCDViewerCommand,
openVCDViewerInBrowserCommand,
loginCommand,
logoutCommand,
// TODO: 等待重新实现这些命令