feat:添加上下文功能实现

This commit is contained in:
Roe-xin
2026-01-05 15:59:26 +08:00
parent 9b0d2d5e01
commit 1d7f3d7626
4 changed files with 798 additions and 14 deletions

View File

@ -14,6 +14,11 @@ import {
getContextButtonStyles,
getContextButtonScript,
} from "./contextButton";
import {
getContextDisplayContent,
getContextDisplayStyles,
getContextDisplayScript,
} from "./contextDisplay";
import {
getContextCompressContent,
getContextCompressStyles,
@ -43,6 +48,8 @@ export function getInputAreaContent(
<div class="input-top-toolbar">
${getContextButtonContent()}
</div>
<!-- 上下文显示区域 -->
${getContextDisplayContent()}
<textarea
id="messageInput"
placeholder="输入您的问题,按 Enter 发送Shift + Enter 换行..."
@ -76,6 +83,7 @@ export function getInputAreaStyles(): string {
${getModeSelectorStyles()}
${getModelSelectorStyles()}
${getContextButtonStyles()}
${getContextDisplayStyles()}
${getContextCompressStyles()}
${getOptimizeButtonStyles()}
.input-area {
@ -281,6 +289,7 @@ export function getInputAreaScript(): string {
// 注意getModeSelectorScript() 已在 webviewContent.ts 开头加载,这里不再重复加载
${getModelSelectorScript()}
${getContextButtonScript()}
${getContextDisplayScript()}
${getContextCompressScript()}
${getOptimizeButtonScript()}
@ -391,6 +400,9 @@ export function getInputAreaScript(): string {
const model = getCurrentModel(); // 从模型选择器组件获取当前模型
const planMode = document.getElementById('planToggle')?.checked || false;
// 获取上下文项
const contextItems = window.getContextItems ? window.getContextItems() : [];
addMessage(text, 'user');
// 标记已有消息,切换布局到底部
@ -400,7 +412,14 @@ export function getInputAreaScript(): string {
// 切换按钮为暂停状态
setSendButtonState(true);
vscode.postMessage({ command: 'sendMessage', text: text, mode: mode, model: model, planMode: planMode });
vscode.postMessage({
command: 'sendMessage',
text: text,
mode: mode,
model: model,
planMode: planMode,
contextItems: contextItems
});
messageInput.value = '';
autoResizeTextarea(); // 重置输入框高度
messageInput.focus();