From 8150276da04e1eff60f0eba60675f37509971d23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=9D=BF=20=E5=AE=89?= Date: Wed, 17 Sep 2025 16:32:32 +0800 Subject: [PATCH] =?UTF-8?q?1.0.5=20=E6=A0=87=E9=A2=98=E6=A0=8F=E5=92=8C?= =?UTF-8?q?=E5=91=BD=E4=BB=A4=E7=AE=80=E5=8C=96=EF=BC=8C=E5=8F=AF=E6=89=93?= =?UTF-8?q?=E5=BC=80=E5=BA=93=E5=87=BD=E6=95=B0json?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dist/commands.js | 44 ++++++++++--------------------- dist/commands.js.map | 2 +- package.json | 13 +++------ squirrel-nut-explorer-1.0.3.vsix | Bin 129888 -> 129881 bytes src/commands.ts | 43 +++++++++--------------------- 5 files changed, 32 insertions(+), 70 deletions(-) diff --git a/dist/commands.js b/dist/commands.js index cff3424..510c7a9 100644 --- a/dist/commands.js +++ b/dist/commands.js @@ -117,40 +117,24 @@ function registerCommands(context, model, provider, functionExtractor, output) { vscode.window.showErrorMessage(`连接失败: ${error}`); } }); - // 刷新文件列表 - const refreshCommand = vscode.commands.registerCommand('squirrel.refreshFiles', async () => { - if (!model.getIsConnected()) { - vscode.window.showErrorMessage('请先连接到 pvfUtility API'); - return; - } - try { - await vscode.window.withProgress({ - location: vscode.ProgressLocation.Notification, - title: '正在刷新文件列表...', - cancellable: false - }, async (progress) => { - const success = await model.refresh(); - if (success) { - vscode.window.showInformationMessage('文件列表刷新成功'); - provider.refresh(); - } - else { - vscode.window.showErrorMessage('刷新文件列表失败'); - } - }); - } - catch (error) { - vscode.window.showErrorMessage(`刷新失败: ${error}`); - } - }); // 打开文件(单击或双击文件时调用) const openFileCommand = vscode.commands.registerCommand('squirrel.openFile', async (entry) => { await openFile(model, provider, entry); }); - // 保存文件(通过 VS Code 的保存事件处理,这个命令主要用于显示) - const saveFileCommand = vscode.commands.registerCommand('squirrel.saveFile', async () => { - vscode.window.showInformationMessage('使用 VS Code 的保存功能或 Ctrl+S 保存文件'); + // 打开库函数文档文件夹 + const openApiDocsCommand = vscode.commands.registerCommand('squirrel.openApiDocs', async () => { + // 获取扩展路径 + const extensionPath = vscode.extensions.getExtension('local.squirrel-nut-explorer')?.extensionPath; + if (extensionPath) { + // 构建api-functions.json文件的URI + const apiDocsUri = vscode.Uri.file(extensionPath); + // 在资源管理器中打开文件夹 + await vscode.env.openExternal(apiDocsUri); + } + else { + vscode.window.showErrorMessage('无法找到扩展路径'); + } }); - context.subscriptions.push(connectCommand, refreshCommand, openFileCommand, saveFileCommand); + context.subscriptions.push(connectCommand, openFileCommand, openApiDocsCommand); } //# sourceMappingURL=commands.js.map \ No newline at end of file diff --git a/dist/commands.js.map b/dist/commands.js.map index 3e4e339..24e76b5 100644 --- a/dist/commands.js.map +++ b/dist/commands.js.map @@ -1 +1 @@ -{"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index 33f8611..98fee96 100644 --- a/package.json +++ b/package.json @@ -55,20 +55,15 @@ }, "commands": [ { - "command": "squirrel.refreshFiles", - "title": "刷新文件列表", - "icon": "$(refresh)" + "command": "squirrel.openApiDocs", + "title": "打开库函数文档", + "icon": "$(book)" }, { "command": "squirrel.openFile", "title": "打开文件", "icon": "$(open-file)" }, - { - "command": "squirrel.saveFile", - "title": "保存文件", - "icon": "$(save)" - }, { "command": "squirrel.connectToApi", "title": "连接到 pvfUtility" @@ -82,7 +77,7 @@ "group": "navigation@0" }, { - "command": "squirrel.refreshFiles", + "command": "squirrel.openApiDocs", "when": "view == squirrelExplorerView", "group": "navigation@1" } diff --git a/squirrel-nut-explorer-1.0.3.vsix b/squirrel-nut-explorer-1.0.3.vsix index eafd6a0567606fe7d83cdcc7d388964921991674..901296d4bedc17f4aeb2adf84cf367a183aec32b 100644 GIT binary patch delta 5769 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 IS{%s#0YnB#fdBvi delta 5777 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 { - if (!model.getIsConnected()) { - vscode.window.showErrorMessage('请先连接到 pvfUtility API'); - return; - } - - try { - await vscode.window.withProgress({ - location: vscode.ProgressLocation.Notification, - title: '正在刷新文件列表...', - cancellable: false - }, async (progress) => { - const success = await model.refresh(); - if (success) { - vscode.window.showInformationMessage('文件列表刷新成功'); - provider.refresh(); - } else { - vscode.window.showErrorMessage('刷新文件列表失败'); - } - }); - } catch (error) { - vscode.window.showErrorMessage(`刷新失败: ${error}`); - } - }); - // 打开文件(单击或双击文件时调用) const openFileCommand = vscode.commands.registerCommand('squirrel.openFile', async (entry: FileEntry) => { await openFile(model, provider, entry); }); - // 保存文件(通过 VS Code 的保存事件处理,这个命令主要用于显示) - const saveFileCommand = vscode.commands.registerCommand('squirrel.saveFile', async () => { - vscode.window.showInformationMessage('使用 VS Code 的保存功能或 Ctrl+S 保存文件'); + // 打开库函数文档文件夹 + const openApiDocsCommand = vscode.commands.registerCommand('squirrel.openApiDocs', async () => { + // 获取扩展路径 + const extensionPath = vscode.extensions.getExtension('local.squirrel-nut-explorer')?.extensionPath; + if (extensionPath) { + // 构建api-functions.json文件的URI + const apiDocsUri = vscode.Uri.file(extensionPath); + // 在资源管理器中打开文件夹 + await vscode.env.openExternal(apiDocsUri); + } else { + vscode.window.showErrorMessage('无法找到扩展路径'); + } }); - context.subscriptions.push(connectCommand, refreshCommand, openFileCommand, saveFileCommand); + context.subscriptions.push(connectCommand, openFileCommand, openApiDocsCommand); } \ No newline at end of file