fix: edit_file diff 显示修复 — 多行替换排序 & 行间间隙

This commit is contained in:
JOJO 2026-06-07 23:48:08 +08:00
parent 84336b1802
commit b6818bc0d0
3 changed files with 10 additions and 2 deletions

View File

@ -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;
}

View File

@ -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);
})

View File

@ -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;
}