diff --git a/PUBLISH.md b/PUBLISH.md index a0f70e8..1a7935a 100644 --- a/PUBLISH.md +++ b/PUBLISH.md @@ -88,6 +88,7 @@ CO03l8nmFBBTNPDg7lN9a9fYwDdgsRIDVDwTrx6Esggi6HnzmrMTJQQJ99BLACAAAAAAAAAAAAAGAZDO 5. 点击 **Create** 完成创建 **注意事项:** + - Publisher ID 一旦创建无法修改 - Publisher ID 必须全局唯一 - 建议使用有意义且专业的 ID @@ -126,6 +127,7 @@ CO03l8nmFBBTNPDg7lN9a9fYwDdgsRIDVDwTrx6Esggi6HnzmrMTJQQJ99BLACAAAAAAAAAAAAAGAZDO ## [0.0.2] - 2025-12-29 ### 新增 + - 添加发送和暂停按钮功能 - 添加一键优化按钮组件 - 添加 Plan 开关组件 @@ -133,11 +135,13 @@ CO03l8nmFBBTNPDg7lN9a9fYwDdgsRIDVDwTrx6Esggi6HnzmrMTJQQJ99BLACAAAAAAAAAAAAAGAZDO - 添加上下文压缩功能 ### 改进 + - 优化用户界面交互体验 ## [0.0.1] - 2025-12-XX ### 新增 + - 初始版本发布 - Verilog 代码智能生成 - 集成 iverilog 仿真工具 @@ -161,6 +165,7 @@ in the Software without restriction... ### 4. 优化 README.md 确保 README 包含: + - 清晰的功能介绍 - 使用截图或 GIF 演示 - 详细的使用说明 @@ -219,6 +224,7 @@ pnpm vsce publish **步骤:** 1. 本地打包插件: + ```bash pnpm run package pnpm vsce package[pnpm vsce package --no-dependencies] @@ -257,7 +263,7 @@ pnpm vsce publish major ```bash # 发布指定版本 -pnpm vsce publish 0.0.3 +npx vsce publish --packagePath iccoder-1.0.7.vsix ``` ### 更新流程建议 @@ -268,8 +274,6 @@ pnpm vsce publish 0.0.3 4. 执行发布命令 5. 验证市场上的插件是否正常 - - ## 更新流程 1. 修改版本号 @@ -281,10 +285,10 @@ pnpm vsce publish 0.0.3 ```bash #补丁版本 (1.0.0 -> 1.0.1) pnpm version patch - + #次要版本 (1.0.0 -> 1.1.0) pnpm version minor - + #主要版本 (1.0.0 -> 2.0.0) pnpm version major ``` @@ -294,18 +298,15 @@ pnpm vsce publish 0.0.3 ```bash #先编译 pnpm run compile - + #中间build pnpm run build - + #后打包成.vsix pnpm vsce package --no-dependencies ``` - - 3. 手动上传/命令上传 - - https://marketplace.visualstudio.com/ 在这个里面手动上传 更新就选择update - 命令上传:vsce publish @@ -318,6 +319,7 @@ pnpm vsce publish 0.0.3 **原因:** PAT Token 无效或过期 **解决方案:** + - 重新生成 PAT Token - 重新登录:`pnpm vsce login ic-coder-team` @@ -326,6 +328,7 @@ pnpm vsce publish 0.0.3 **原因:** Publisher ID 不存在或不匹配 **解决方案:** + - 检查 `package.json` 中的 `publisher` 字段 - 确认已在市场创建对应的 Publisher @@ -334,17 +337,20 @@ pnpm vsce publish 0.0.3 **原因:** 必需文件缺失 **解决方案:** + - 确保 `dist/` 目录存在且包含编译后的代码 - 运行 `pnpm run package` 重新构建 ### 4. 插件审核被拒 **常见原因:** + - 插件名称或描述违反市场规则 - 图标不符合要求(建议 128x128 PNG) - README 内容不完整 **解决方案:** + - 查看审核反馈邮件 - 修改相关内容后重新发布 @@ -366,6 +372,7 @@ code --install-extension ic-coder-plugin-0.0.2.vsix ``` 或者在 VS Code 中: + 1. 打开扩展面板 2. 点击 `...` 菜单 3. 选择 **Install from VSIX...** diff --git a/src/extension.ts b/src/extension.ts index bea0771..1517e52 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -159,8 +159,9 @@ export async function activate(context: vscode.ExtensionContext) { // 注册命令:用户登录 const loginCommand = vscode.commands.registerCommand( "ic-coder.login", - async () => { + async (options?: { forceReauth?: boolean }) => { try { + const forceReauth = options?.forceReauth === true; const session = await vscode.authentication.getSession("iccoder", [], { createIfNone: false, }); @@ -169,7 +170,7 @@ export async function activate(context: vscode.ExtensionContext) { : null; // 会话仍有效时,直接打开聊天面板 - if (session && expired !== true) { + if (session && expired === false && !forceReauth) { vscode.commands.executeCommand("ic-coder.openChat"); return; } diff --git a/src/panels/ICHelperPanel.ts b/src/panels/ICHelperPanel.ts index 6dc006b..ff5c5ff 100644 --- a/src/panels/ICHelperPanel.ts +++ b/src/panels/ICHelperPanel.ts @@ -91,7 +91,9 @@ export async function showICHelperPanel( "立即登录", ); if (action === "立即登录") { - vscode.commands.executeCommand("ic-coder.login"); + vscode.commands.executeCommand("ic-coder.login", { + forceReauth: true, + }); } return; } @@ -106,7 +108,9 @@ export async function showICHelperPanel( .showWarningMessage("请先登录后再使用 IC Coder", "立即登录") .then((selection) => { if (selection === "立即登录") { - vscode.commands.executeCommand("ic-coder.login"); + vscode.commands.executeCommand("ic-coder.login", { + forceReauth: true, + }); } }); return; @@ -116,7 +120,9 @@ export async function showICHelperPanel( .showWarningMessage("请先登录后再使用 IC Coder", "立即登录") .then((selection) => { if (selection === "立即登录") { - vscode.commands.executeCommand("ic-coder.login"); + vscode.commands.executeCommand("ic-coder.login", { + forceReauth: true, + }); } }); return; diff --git a/src/services/dialogService.ts b/src/services/dialogService.ts index c1019f0..b4298c9 100644 --- a/src/services/dialogService.ts +++ b/src/services/dialogService.ts @@ -449,7 +449,9 @@ export class DialogSession { .showErrorMessage("登录已过期,请重新登录", "重新登录") .then((selection) => { if (selection === "重新登录") { - vscode.commands.executeCommand("iccoder.login"); + vscode.commands.executeCommand("ic-coder.login", { + forceReauth: true, + }); } }); throw new Error("登录已过期,请重新登录"); @@ -894,7 +896,9 @@ export class DialogSession { .showErrorMessage("登录状态已过期,请重新登录", "重新登录") .then((selection) => { if (selection === "重新登录") { - vscode.commands.executeCommand("ic-coder.login"); + vscode.commands.executeCommand("ic-coder.login", { + forceReauth: true, + }); } }); // 登录过期错误已处理,不再传递给外部 diff --git a/src/utils/messageHandler.ts b/src/utils/messageHandler.ts index 49e3777..72ff7ff 100644 --- a/src/utils/messageHandler.ts +++ b/src/utils/messageHandler.ts @@ -92,7 +92,9 @@ export async function handleUserMessage( ); if (action === '立即登录') { - vscode.commands.executeCommand("ic-coder.login"); + vscode.commands.executeCommand("ic-coder.login", { + forceReauth: true, + }); } // 恢复输入状态 @@ -126,7 +128,9 @@ export async function handleUserMessage( ); if (action === '立即登录') { - vscode.commands.executeCommand("ic-coder.login"); + vscode.commands.executeCommand("ic-coder.login", { + forceReauth: true, + }); } // 恢复输入状态