Skip to content

Commit 4a6fe08

Browse files
committed
1 parent f69263f commit 4a6fe08

File tree

6 files changed

+1771
-6
lines changed

6 files changed

+1771
-6
lines changed

src/vs/editor/common/diff/algorithms/joinSequenceDiffs.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,16 @@ export function smoothenSequenceDiffs(sequence1: ISequence, sequence2: ISequence
4545
* Improved diff: [{Add ", Foo" after Bar}]
4646
*/
4747
export function joinSequenceDiffs(sequence1: ISequence, sequence2: ISequence, sequenceDiffs: SequenceDiff[]): SequenceDiff[] {
48-
const result: SequenceDiff[] = [];
49-
if (sequenceDiffs.length > 0) {
50-
result.push(sequenceDiffs[0]);
48+
if (sequenceDiffs.length === 0) {
49+
return sequenceDiffs;
5150
}
5251

52+
const result: SequenceDiff[] = [];
53+
result.push(sequenceDiffs[0]);
54+
5355
// First move them all to the left as much as possible and join them if possible
5456
for (let i = 1; i < sequenceDiffs.length; i++) {
55-
const prevResult = sequenceDiffs[i - 1];
57+
const prevResult = result[result.length - 1];
5658
let cur = sequenceDiffs[i];
5759

5860
if (cur.seq1Range.isEmpty || cur.seq2Range.isEmpty) {

src/vs/editor/test/node/diffing/diffingFixture.test.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@ suite('diff fixtures', () => {
4040

4141
const diffingAlgo = diffingAlgoName === 'legacy' ? new SmartLinesDiffComputer() : new StandardLinesDiffComputer();
4242

43-
const diff = diffingAlgo.computeDiff(firstContentLines, secondContentLines, { ignoreTrimWhitespace: false, maxComputationTimeMs: Number.MAX_SAFE_INTEGER, computeMoves: false });
43+
const ignoreTrimWhitespace = folder.indexOf('trimws') >= 0;
44+
const diff = diffingAlgo.computeDiff(firstContentLines, secondContentLines, { ignoreTrimWhitespace, maxComputationTimeMs: Number.MAX_SAFE_INTEGER, computeMoves: false });
4445

4546
function getDiffs(changes: readonly LineRangeMapping[]): IDetailedDiff[] {
4647
return changes.map<IDetailedDiff>(c => ({
@@ -112,7 +113,7 @@ suite('diff fixtures', () => {
112113
}
113114

114115
test(`test`, () => {
115-
runTest('issue-185779', 'advanced');
116+
runTest('invalid-diff-trimws', 'advanced');
116117
});
117118

118119
for (const folder of folders) {

0 commit comments

Comments
 (0)