From b6818bc0d09b8e918e95dd2a091ab674710833ff Mon Sep 17 00:00:00 2001 From: JOJO <1498581755@qq.com> Date: Sun, 7 Jun 2026 23:48:08 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20edit=5Ffile=20diff=20=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20=E2=80=94=20=E5=A4=9A=E8=A1=8C=E6=9B=BF?= =?UTF-8?q?=E6=8D=A2=E6=8E=92=E5=BA=8F=20&=20=E8=A1=8C=E9=97=B4=E9=97=B4?= =?UTF-8?q?=E9=9A=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- static/src/components/chat/actions/ToolAction.vue | 2 +- static/src/components/chat/actions/toolRenderers.ts | 8 ++++++++ static/src/components/overlay/VersioningDialog.vue | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/static/src/components/chat/actions/ToolAction.vue b/static/src/components/chat/actions/ToolAction.vue index 8921385..8fd8090 100644 --- a/static/src/components/chat/actions/ToolAction.vue +++ b/static/src/components/chat/actions/ToolAction.vue @@ -1228,7 +1228,7 @@ function renderEasterEgg(result: any, args: any): string { grid-template-columns: 5ch 1ch minmax(0, 1fr); column-gap: 8px; padding: 2px 4px; - margin: 1px 0; + margin: 0; align-items: start; } diff --git a/static/src/components/chat/actions/toolRenderers.ts b/static/src/components/chat/actions/toolRenderers.ts index 92997c5..92d4664 100644 --- a/static/src/components/chat/actions/toolRenderers.ts +++ b/static/src/components/chat/actions/toolRenderers.ts @@ -386,6 +386,14 @@ function renderEditFile(result: any, args: any): string { return true; }) .sort((a: any, b: any) => { + const aIsChange = a.marker === '-' || a.marker === '+'; + const bIsChange = b.marker === '-' || b.marker === '+'; + // 仅变更行之间优先按 marker 分组(- 在前 + 在后),再按行号 + if (aIsChange && bIsChange) { + const markerDelta = (markerOrder[a.marker] ?? 9) - (markerOrder[b.marker] ?? 9); + return markerDelta || (a.lineNo ?? Number.MAX_SAFE_INTEGER) - (b.lineNo ?? Number.MAX_SAFE_INTEGER); + } + // 上下文行或跨类型:按行号优先 const lineDelta = (a.lineNo ?? Number.MAX_SAFE_INTEGER) - (b.lineNo ?? Number.MAX_SAFE_INTEGER); return lineDelta || (markerOrder[a.marker] ?? 9) - (markerOrder[b.marker] ?? 9); }) diff --git a/static/src/components/overlay/VersioningDialog.vue b/static/src/components/overlay/VersioningDialog.vue index 24d1c21..0235015 100644 --- a/static/src/components/overlay/VersioningDialog.vue +++ b/static/src/components/overlay/VersioningDialog.vue @@ -764,7 +764,7 @@ const formatTime = (value: string) => { .diff-line { padding: 2px 4px; - margin: 1px 0; + margin: 0; white-space: pre-wrap; word-wrap: break-word; }