|
|
|
@ -12,7 +12,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
|
|
|
const userInput = document.getElementById('user-input');
|
|
|
|
const userInput = document.getElementById('user-input');
|
|
|
|
const chatBox = document.getElementById('chat-box');
|
|
|
|
const chatBox = document.getElementById('chat-box');
|
|
|
|
const loading = document.getElementById('loading');
|
|
|
|
const loading = document.getElementById('loading');
|
|
|
|
const sendBtn = document.getElementById('send-btn'); // 获取发送按钮
|
|
|
|
const sendBtn = document.getElementById('send-btn');
|
|
|
|
|
|
|
|
|
|
|
|
// 初始化显示工作区容器
|
|
|
|
// 初始化显示工作区容器
|
|
|
|
const workspaceContainer = document.querySelector('.workspace-container');
|
|
|
|
const workspaceContainer = document.querySelector('.workspace-container');
|
|
|
|
@ -22,23 +22,26 @@ document.addEventListener('DOMContentLoaded', () => {
|
|
|
|
|
|
|
|
|
|
|
|
chatForm.addEventListener('submit', async (e) => {
|
|
|
|
chatForm.addEventListener('submit', async (e) => {
|
|
|
|
e.preventDefault();
|
|
|
|
e.preventDefault();
|
|
|
|
|
|
|
|
const text = userInput.value.trim();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 如果输入为空,不执行任何操作
|
|
|
|
|
|
|
|
if (!text && !isRequestInProgress) return;
|
|
|
|
|
|
|
|
|
|
|
|
// 如果有请求正在进行,点击按钮将中断请求
|
|
|
|
// 如果有请求正在进行,点击按钮将中断请求
|
|
|
|
if (isRequestInProgress) {
|
|
|
|
if (isRequestInProgress) {
|
|
|
|
|
|
|
|
logToExtension("取消请求");
|
|
|
|
// 发送取消请求的消息到扩展
|
|
|
|
// 发送取消请求的消息到扩展
|
|
|
|
vscode.postMessage({
|
|
|
|
vscode.postMessage({
|
|
|
|
command: 'cancelRequest'
|
|
|
|
command: 'cancelRequest'
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 重置按钮状态
|
|
|
|
resetSendButton();
|
|
|
|
resetSendButton();
|
|
|
|
hideLoading();
|
|
|
|
hideLoading();
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
const text = userInput.value.trim();
|
|
|
|
// 发送消息
|
|
|
|
if (!text) return;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 发送消息并禁用按钮
|
|
|
|
|
|
|
|
vscode.postMessage({
|
|
|
|
vscode.postMessage({
|
|
|
|
command: 'ask',
|
|
|
|
command: 'ask',
|
|
|
|
text,
|
|
|
|
text,
|
|
|
|
@ -46,15 +49,14 @@ document.addEventListener('DOMContentLoaded', () => {
|
|
|
|
fileContentPath: contextFilePath // 添加文件路径
|
|
|
|
fileContentPath: contextFilePath // 添加文件路径
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
showLoading();
|
|
|
|
|
|
|
|
userInput.value = '';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 切换按钮为停止按钮
|
|
|
|
// 切换按钮为停止按钮
|
|
|
|
isRequestInProgress = true;
|
|
|
|
isRequestInProgress = true;
|
|
|
|
if (sendBtn) {
|
|
|
|
if (sendBtn) {
|
|
|
|
sendBtn.textContent = '停止';
|
|
|
|
sendBtn.textContent = '停止';
|
|
|
|
sendBtn.classList.add('stop-button');
|
|
|
|
sendBtn.classList.add('stop-button');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
showLoading();
|
|
|
|
|
|
|
|
userInput.value = '';
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
// 重置发送按钮为初始状态
|
|
|
|
// 重置发送按钮为初始状态
|
|
|
|
@ -102,9 +104,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
|
|
|
|
|
|
|
|
|
|
|
// 渲染内容
|
|
|
|
// 渲染内容
|
|
|
|
if (isMarkdown(content)) {
|
|
|
|
if (isMarkdown(content)) {
|
|
|
|
console.log("content:", content);
|
|
|
|
|
|
|
|
msgDiv.innerHTML = marked.parse(content);
|
|
|
|
msgDiv.innerHTML = marked.parse(content);
|
|
|
|
console.log("msgDiv.innerHTML:", msgDiv.innerHTML);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
const div = document.createElement('div');
|
|
|
|
const div = document.createElement('div');
|
|
|
|
div.textContent = content;
|
|
|
|
div.textContent = content;
|
|
|
|
@ -270,7 +270,9 @@ document.addEventListener('DOMContentLoaded', () => {
|
|
|
|
streamingMessageContent = '';
|
|
|
|
streamingMessageContent = '';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
isRequestInProgress = false
|
|
|
|
// 重置发送按钮状态
|
|
|
|
|
|
|
|
resetSendButton();
|
|
|
|
|
|
|
|
|
|
|
|
// 保存消息到历史记录
|
|
|
|
// 保存消息到历史记录
|
|
|
|
currentSessionHistory.push({role: 'assistant', content: content});
|
|
|
|
currentSessionHistory.push({role: 'assistant', content: content});
|
|
|
|
|
|
|
|
|
|
|
|
@ -442,7 +444,6 @@ document.addEventListener('DOMContentLoaded', () => {
|
|
|
|
|
|
|
|
|
|
|
|
window.addEventListener('message', (event) => {
|
|
|
|
window.addEventListener('message', (event) => {
|
|
|
|
const message = event.data;
|
|
|
|
const message = event.data;
|
|
|
|
console.log(message)
|
|
|
|
|
|
|
|
if (message.command === 'addMessage') {
|
|
|
|
if (message.command === 'addMessage') {
|
|
|
|
addMessage(message.role, message.content, message.codeDiff);
|
|
|
|
addMessage(message.role, message.content, message.codeDiff);
|
|
|
|
} else if (message.command === 'startStream') {
|
|
|
|
} else if (message.command === 'startStream') {
|
|
|
|
@ -615,6 +616,13 @@ document.addEventListener('DOMContentLoaded', () => {
|
|
|
|
language: language
|
|
|
|
language: language
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function logToExtension(...args) {
|
|
|
|
|
|
|
|
vscode.postMessage({
|
|
|
|
|
|
|
|
command: 'log',
|
|
|
|
|
|
|
|
data: args
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 简单的语言检测
|
|
|
|
// 简单的语言检测
|
|
|
|
|