refactor: 重构消息路由模块,添加个人规则管理功能
- 拆分消息处理逻辑到独立的 helper 模块 - 新增个人规则的增删改查路由处理 - 优化代码结构,提升可维护性
This commit is contained in:
@ -22,6 +22,12 @@ import {
|
|||||||
handleOpenFileDiff,
|
handleOpenFileDiff,
|
||||||
startChangeSession,
|
startChangeSession,
|
||||||
} from "../../utils/messageHandler";
|
} from "../../utils/messageHandler";
|
||||||
|
import {
|
||||||
|
loadPersonalRules,
|
||||||
|
savePersonalRule,
|
||||||
|
updatePersonalRule,
|
||||||
|
deletePersonalRule,
|
||||||
|
} from "../../utils/personalRulesManager";
|
||||||
import { compactDialog } from "../../services/apiClient";
|
import { compactDialog } from "../../services/apiClient";
|
||||||
import { ChatHistoryManager } from "../../utils/chatHistoryManager";
|
import { ChatHistoryManager } from "../../utils/chatHistoryManager";
|
||||||
import { getCachedUserInfo } from "../../services/userService";
|
import { getCachedUserInfo } from "../../services/userService";
|
||||||
@ -392,5 +398,63 @@ export async function handleWebviewMessage(
|
|||||||
vscode.env.openExternal(vscode.Uri.parse(message.url));
|
vscode.env.openExternal(vscode.Uri.parse(message.url));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case "loadPersonalRules":
|
||||||
|
{
|
||||||
|
const data = loadPersonalRules();
|
||||||
|
panel.webview.postMessage({
|
||||||
|
command: "personalRulesLoaded",
|
||||||
|
data: data,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "savePersonalRule":
|
||||||
|
{
|
||||||
|
const success = await savePersonalRule(
|
||||||
|
message.name,
|
||||||
|
message.content,
|
||||||
|
message.enabled,
|
||||||
|
);
|
||||||
|
if (success) {
|
||||||
|
const data = loadPersonalRules();
|
||||||
|
panel.webview.postMessage({
|
||||||
|
command: "personalRulesLoaded",
|
||||||
|
data: data,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "updatePersonalRule":
|
||||||
|
{
|
||||||
|
const success = await updatePersonalRule(
|
||||||
|
message.filename,
|
||||||
|
message.name,
|
||||||
|
message.content,
|
||||||
|
message.enabled,
|
||||||
|
);
|
||||||
|
if (success) {
|
||||||
|
const data = loadPersonalRules();
|
||||||
|
panel.webview.postMessage({
|
||||||
|
command: "personalRulesLoaded",
|
||||||
|
data: data,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "deletePersonalRule":
|
||||||
|
{
|
||||||
|
const success = await deletePersonalRule(message.filename);
|
||||||
|
if (success) {
|
||||||
|
const data = loadPersonalRules();
|
||||||
|
panel.webview.postMessage({
|
||||||
|
command: "personalRulesLoaded",
|
||||||
|
data: data,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user