Skip to content

Commit 3fd920a

Browse files
authored
Collapse empty sides of diffs (#281)
* collapse empty sides of diffs * test case * format
1 parent ed0bf28 commit 3fd920a

4 files changed

Lines changed: 31 additions & 1 deletion

File tree

testdata/manyfiles/left/drop.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
100
2+
101
3+
102
4+
103
5+
104
6+
105
7+
106
8+
107
9+
108
10+
109
11+
110

testdata/manyfiles/right/add.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
200
2+
201
3+
202
4+
203
5+
204
6+
205
7+
206
8+
207
9+
208
10+
209
11+
210

ts/codediff/codediff.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,9 @@ const CodeDiffView = React.memo((props: CodeDiffViewProps) => {
316316
copyOnlyMatching(e.nativeEvent, 'td.' + (isLeft ? 'before' : 'after'));
317317
};
318318

319-
const divClassName = 'diff' + (selectingState ? ` selecting-${selectingState}` : '');
319+
const diffType = beforeLines.length === 0 ? 'add' : afterLines.length === 0 ? 'delete' : 'change';
320+
const divClassName =
321+
`diff diff-${diffType}` + (selectingState ? ` selecting-${selectingState}` : '');
320322
const tableClassName = 'diff' + (params.wordWrap ? ' word-wrap' : '');
321323
return (
322324
<div className={divClassName} onMouseDown={handleMouseDown} onCopy={handleCopy}>

webdiff/static/codediff.js/codediff.css

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,12 @@ table.diff tr.skip-row td {
6666
padding: 0.5em;
6767
}
6868

69+
/* Partially collapse empty sides of diffs */
70+
.diff.diff-add td.before,
71+
.diff.diff-delete td.after {
72+
width: 51ch;
73+
}
74+
6975
.line-no, .code {
7076
padding: 2px;
7177
height: 1.11em;

0 commit comments

Comments
 (0)