feat:新增点击示例直接发送之前加一层工作区检测逻辑

This commit is contained in:
Roe-xin
2026-01-14 11:52:42 +08:00
parent 342bf22f3f
commit 606f757699
6 changed files with 28 additions and 3 deletions

View File

@ -2,7 +2,7 @@
所有重要的项目变更都将记录在此文件中。
## [1.0.0] - 2026-01-13
## [1.0.2] - 2026-01-13
IC Coder插件端正式发布。

View File

@ -119,7 +119,8 @@
"media",
"tools",
"src/assets",
"LICENSE"
"LICENSE",
"CHANGELOG.md"
],
"dependencies": {
"@wavedrom/doppler": "^1.14.0",

View File

@ -109,6 +109,9 @@ export function showICHelperPanel(context: vscode.ExtensionContext) {
case "showInfo":
vscode.window.showInformationMessage(message.text);
break;
case "showWarning":
vscode.window.showWarningMessage(message.message);
break;
// 新增:处理用户回答
case "submitAnswer":
handleUserAnswer(

View File

@ -226,8 +226,20 @@ export function getExampleShowcaseScript(): string {
'生成一个GMII接口的以太网UDP通信模块'
];
// 存储待发送的示例索引
let pendingExampleIndex = -1;
// 直接发送示例消息
function sendExample(index) {
// 先检查工作区
pendingExampleIndex = index;
vscode.postMessage({
command: 'checkWorkspace'
});
}
// 实际发送示例消息
function doSendExample(index) {
const messageInput = document.getElementById('messageInput');
const sendButton = document.getElementById('sendButton');

View File

@ -300,7 +300,6 @@ export function getInputAreaScript(): string {
${getContextDisplayScript()}
${getContextCompressScript()}
${getOptimizeButtonScript()}
${getExampleShowcaseScript()}
// 对话状态管理
let isConversationActive = false;
@ -310,6 +309,8 @@ export function getInputAreaScript(): string {
let hasCheckedWorkspace = false; // 是否已经检测过工作区
let hasWorkspace = true; // 工作区状态
${getExampleShowcaseScript()}
// 切换输入框布局模式
function updateInputAreaLayout() {
const inputArea = document.getElementById('inputArea');

View File

@ -635,6 +635,14 @@ export function getWebviewContent(
if (typeof hasWorkspace !== 'undefined') {
hasWorkspace = message.hasWorkspace;
console.log('[WebView] 工作区状态:', hasWorkspace);
// 如果有待发送的示例,且工作区存在,则发送
if (hasWorkspace && typeof pendingExampleIndex !== 'undefined' && pendingExampleIndex >= 0) {
if (typeof doSendExample === 'function') {
doSendExample(pendingExampleIndex);
pendingExampleIndex = -1; // 重置
}
}
}
break;