Skip to content

Commit 27bb9d3

Browse files
committed
fix:修正转义字符隐患 && 调整渲染排版
1 parent 1048915 commit 27bb9d3

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

src/cvbManager.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -696,7 +696,7 @@ function rebuildCvb(baseCvb: Cvb, mapFiles: Map<string, string>): Cvb {
696696
// ================== 工具函数 ==================
697697

698698
function escapeRegExp(str: string): string {
699-
return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
699+
return str.replace(/[.*+?^${}()|[\]\\&]/g, (match) => "\\" + match);
700700
}
701701

702702
function normalizeLineWhitespace(anchor: string): string {

src/siderBar.ts

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -130,9 +130,22 @@ export function registerCvbContextMenu(context: vscode.ExtensionContext) {
130130

131131
// 处理聊天内容的独立函数
132132
function processChatContent(text: string): string {
133-
// 修饰内容
134-
let processedText = text.replace(/^@user:\n/gm, '🙋‍♂️ User:\n');
135-
processedText = processedText.replace(/^@AI:\n/gm, '🧠 AI:\n');
133+
// 为用户和 AI 消息添加类标记
134+
let processedText = text.replace(/^@user:\n/gm, '# 🙋‍♂️ User:\n> ');
135+
processedText = processedText.replace(/^@AI:\n/gm, '# 🧠 AI:\n> ');
136+
137+
// 处理其他标记
138+
processedText = processedText.replace(/^## CVB_BEGIN$/gm, '<!-- CVB_BEGIN -->');
139+
processedText = processedText.replace(/^## CVB_END$/gm, '<!-- CVB_END -->');
140+
// 将 META 到 META_END 区段转为 Markdown 代码块
141+
processedText = processedText.replace(
142+
/(^## META$\n)([\s\S]*?)(^## END_META$\n)/gm,
143+
'```\nMETA:\n\n$2\n```'
144+
);
145+
processedText = processedText.replace(/^## FILE:(.*)$/gm, '*FILE: $1*');
146+
147+
// 添加换行分隔
148+
processedText = processedText.replace(/(\n> .+?)(?=\n#|\n$)/gs, '$1\n\n');
136149

137150
// 包裹对话块
138151
const blocks = processedText.split(/(🙋 User:|🧠 AI:)/);

0 commit comments

Comments
 (0)