diff --git a/src/views/webviewContent.ts b/src/views/webviewContent.ts index 8a4cb48..fa6fb67 100644 --- a/src/views/webviewContent.ts +++ b/src/views/webviewContent.ts @@ -163,6 +163,32 @@ export function getWebviewContent(iconUri?: string): string { border-radius: 4px; cursor: pointer; } + .optimize-button { + padding: 8px; + background: transparent; + color: var(--vscode-foreground); + border: none; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + transition: opacity 0.2s ease; + width: 32px; + height: 32px; + align-self: flex-end; + margin-bottom: -6px; + } + .optimize-button:hover { + opacity: 0.7; + } + .optimize-button svg { + width: 16px; + height: 16px; + } + .optimize-button-wrapper { + display: flex; + align-items: flex-end; + } .quick-actions { display: flex; gap: 8px; @@ -491,6 +517,14 @@ export function getWebviewContent(iconUri?: string): string { + +
+ + 一键优化 +
+ @@ -509,6 +543,8 @@ export function getWebviewContent(iconUri?: string): string { const editingFileName = document.getElementById('editingFileName'); let currentEditingFile = null; + let originalText = ''; // 保存原始文本用于撤回 + let isOptimized = false; // 标记是否已优化 function sendMessage() { const text = messageInput.value.trim(); @@ -519,6 +555,56 @@ export function getWebviewContent(iconUri?: string): string { vscode.postMessage({ command: 'sendMessage', text: text, mode: mode }); messageInput.value = ''; messageInput.focus(); + + // 重置优化状态 + resetOptimizeButton(); + } + + function handleOptimize() { + if (isOptimized) { + // 撤回操作 + messageInput.value = originalText; + resetOptimizeButton(); + } else { + // 优化操作 + originalText = messageInput.value; // 保存原始文本 + + // 使用死数据替换输入框内容 + const optimizedTexts = [ + '请帮我优化这段代码,提高性能和可读性', + '请分析这个问题并给出最佳解决方案', + '请帮我重构这段代码,使其更加简洁高效', + '请检查代码中的潜在问题并提供改进建议' + ]; + const randomText = optimizedTexts[Math.floor(Math.random() * optimizedTexts.length)]; + messageInput.value = randomText; + + // 切换到撤回状态 + isOptimized = true; + updateOptimizeButton(); + } + + messageInput.focus(); + } + + function updateOptimizeButton() { + const optimizeIcon = document.getElementById('optimizeIcon'); + const optimizeTooltip = document.getElementById('optimizeTooltip'); + + // 切换为撤回图标 + optimizeIcon.innerHTML = ''; + optimizeTooltip.textContent = '撤回'; + } + + function resetOptimizeButton() { + const optimizeIcon = document.getElementById('optimizeIcon'); + const optimizeTooltip = document.getElementById('optimizeTooltip'); + + // 切换回优化图标(星星图标) + optimizeIcon.innerHTML = ''; + optimizeTooltip.textContent = '一键优化'; + isOptimized = false; + originalText = ''; } function readFile() {