Merge pull request #167868 from microsoft/hediet/diffing-improvements

Diffing improvements
This commit is contained in:
Henning Dieterichs 2022-12-02 14:29:12 +01:00 committed by GitHub
commit c80c0bdb41
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
25 changed files with 300 additions and 945 deletions

View file

@ -46,6 +46,10 @@ export class OffsetRange {
public toString() {
return `[${this.start}, ${this.endExclusive})`;
}
public join(other: OffsetRange): OffsetRange {
return new OffsetRange(Math.min(this.start, other.start), Math.max(this.endExclusive, other.endExclusive));
}
}
export interface ISequence {

View file

@ -34,7 +34,7 @@ export class DynamicProgrammingDiffing implements IDiffAlgorithm {
}
if (s1 > 0 && s2 > 0 && directions.get(s1 - 1, s2 - 1) === 3) {
// Prefer consecutive diagonals
extendedSeqScore += 0.1;
extendedSeqScore += lengths.get(s1 - 1, s2 - 1);
}
extendedSeqScore += (equalityScore ? equalityScore(s1, s2) : 1);
} else {

View file

@ -12,6 +12,25 @@ export function optimizeSequenceDiffs(sequence1: ISequence, sequence2: ISequence
return result;
}
export function smoothenSequenceDiffs(sequence1: ISequence, sequence2: ISequence, sequenceDiffs: SequenceDiff[]): SequenceDiff[] {
const result: SequenceDiff[] = [];
for (const s of sequenceDiffs) {
const last = result[result.length - 1];
if (!last) {
result.push(s);
continue;
}
if (s.seq1Range.start - last.seq1Range.endExclusive <= 2 || s.seq2Range.start - last.seq2Range.endExclusive <= 2) {
result[result.length - 1] = new SequenceDiff(last.seq1Range.join(s.seq1Range), last.seq2Range.join(s.seq2Range));
} else {
result.push(s);
}
}
return result;
}
/**
* This function fixes issues like this:
* ```

View file

@ -9,7 +9,7 @@ import { Position } from 'vs/editor/common/core/position';
import { Range } from 'vs/editor/common/core/range';
import { OffsetRange, SequenceDiff, ISequence } from 'vs/editor/common/diff/algorithms/diffAlgorithm';
import { DynamicProgrammingDiffing } from 'vs/editor/common/diff/algorithms/dynamicProgrammingDiffing';
import { optimizeSequenceDiffs } from 'vs/editor/common/diff/algorithms/joinSequenceDiffs';
import { optimizeSequenceDiffs, smoothenSequenceDiffs } from 'vs/editor/common/diff/algorithms/joinSequenceDiffs';
import { MyersDiffAlgorithm } from 'vs/editor/common/diff/algorithms/myersDiffAlgorithm';
import { ILinesDiff, ILinesDiffComputer, ILinesDiffComputerOptions, LineRange, LineRangeMapping, RangeMapping } from 'vs/editor/common/diff/linesDiffComputer';
@ -116,7 +116,8 @@ export class StandardLinesDiffComputer implements ILinesDiffComputer {
? this.dynamicProgrammingDiffing.compute(sourceSlice, targetSlice)
: this.myersDiffingAlgorithm.compute(sourceSlice, targetSlice);
const diffs = optimizeSequenceDiffs(sourceSlice, targetSlice, originalDiffs);
let diffs = optimizeSequenceDiffs(sourceSlice, targetSlice, originalDiffs);
diffs = smoothenSequenceDiffs(sourceSlice, targetSlice, diffs);
const result = diffs.map(
(d) =>
new RangeMapping(

View file

@ -47,35 +47,45 @@ suite('diff fixtures', () => {
const expectedFilePath = join(folderPath, `${diffingAlgoName}.expected.diff.json`);
const invalidFilePath = join(folderPath, `${diffingAlgoName}.invalid.diff.json`);
const expectedFileContentFromActual = JSON.stringify(actualDiffingResult, null, '\t');
const invalidExists = existsSync(invalidFilePath);
const actualJsonStr = JSON.stringify(actualDiffingResult, null, '\t');
if (!existsSync(expectedFilePath)) {
writeFileSync(expectedFilePath, expectedFileContentFromActual);
// New test, create expected file
writeFileSync(expectedFilePath, actualJsonStr);
// Create invalid file so that this test fails on a re-run
writeFileSync(invalidFilePath, '');
throw new Error('No expected file! Expected and invalid files were written. Delete the invalid file to make the test pass.');
} else {
const expectedFileContent = readFileSync(invalidExists ? invalidFilePath : expectedFilePath, 'utf8');
if (invalidExists && expectedFileContent === '') {
throw new Error('Delete the invalid file to make the test pass.');
} if (existsSync(invalidFilePath)) {
const invalidJsonStr = readFileSync(invalidFilePath, 'utf8');
if (invalidJsonStr === '') {
// Update expected file
writeFileSync(expectedFilePath, actualJsonStr);
throw new Error(`Delete the invalid ${invalidFilePath} file to make the test pass.`);
} else {
const expectedFileDiffResult: DiffingResult = JSON.parse(invalidJsonStr);
try {
assert.deepStrictEqual(actualDiffingResult, expectedFileDiffResult);
} catch (e) {
writeFileSync(expectedFilePath, actualJsonStr);
throw e;
}
// Test succeeded with the invalid file, restore expected file from invalid
writeFileSync(expectedFilePath, invalidJsonStr);
rmSync(invalidFilePath);
}
const expectedFileDiffResult: DiffingResult = JSON.parse(expectedFileContent);
} else {
const expectedJsonStr = readFileSync(expectedFilePath, 'utf8');
const expectedFileDiffResult: DiffingResult = JSON.parse(expectedJsonStr);
try {
assert.deepStrictEqual(actualDiffingResult, expectedFileDiffResult);
} catch (e) {
if (!invalidExists) {
writeFileSync(invalidFilePath, expectedFileContent);
}
writeFileSync(expectedFilePath, expectedFileContentFromActual);
// Backup expected file
writeFileSync(invalidFilePath, expectedJsonStr);
// Update expected file
writeFileSync(expectedFilePath, actualJsonStr);
throw e;
}
}
if (invalidExists) {
rmSync(invalidFilePath);
}
}
for (const folder of folders) {
@ -85,10 +95,6 @@ suite('diff fixtures', () => {
});
}
}
test(`debug`, () => {
runTest('penalize-fragmentation', 'experimental');
});
});
interface DiffingResult {

View file

@ -7,72 +7,16 @@
"modifiedRange": "[6,8)",
"innerChanges": [
{
"originalRange": "[6,3 -> 6,6]",
"modifiedRange": "[6,3 -> 6,4]"
},
{
"originalRange": "[6,7 -> 6,8]",
"modifiedRange": "[6,5 -> 6,9]"
},
{
"originalRange": "[6,9 -> 6,9]",
"modifiedRange": "[6,10 -> 6,11]"
"originalRange": "[6,3 -> 6,9]",
"modifiedRange": "[6,3 -> 6,11]"
},
{
"originalRange": "[6,12 -> 6,18]",
"modifiedRange": "[6,14 -> 6,14]"
},
{
"originalRange": "[6,29 -> 6,32]",
"modifiedRange": "[6,25 -> 6,26]"
},
{
"originalRange": "[6,33 -> 6,34]",
"modifiedRange": "[6,27 -> 6,27]"
},
{
"originalRange": "[6,35 -> 6,35]",
"modifiedRange": "[6,28 -> 6,37]"
},
{
"originalRange": "[6,36 -> 6,37]",
"modifiedRange": "[6,38 -> 6,39]"
},
{
"originalRange": "[6,38 -> 6,38]",
"modifiedRange": "[6,40 -> 6,48]"
},
{
"originalRange": "[6,39 -> 6,39]",
"modifiedRange": "[6,49 -> 6,50]"
},
{
"originalRange": "[6,40 -> 6,42]",
"modifiedRange": "[6,51 -> 6,68]"
},
{
"originalRange": "[6,43 -> 6,44]",
"modifiedRange": "[6,69 -> 6,72]"
},
{
"originalRange": "[6,45 -> 6,45]",
"modifiedRange": "[6,73 -> 6,75]"
},
{
"originalRange": "[6,46 -> 6,46]",
"modifiedRange": "[6,76 -> 6,82]"
},
{
"originalRange": "[6,48 -> 6,51]",
"modifiedRange": "[6,84 -> 6,84]"
},
{
"originalRange": "[6,52 -> 6,52]",
"modifiedRange": "[6,85 -> 6,88]"
},
{
"originalRange": "[6,53 -> 6,54]",
"modifiedRange": "[6,89 -> 6,91]"
"originalRange": "[6,29 -> 6,54]",
"modifiedRange": "[6,25 -> 6,91]"
},
{
"originalRange": "[6,58 -> 6,63]",
@ -83,176 +27,28 @@
"modifiedRange": "[6,105 -> 6,118]"
},
{
"originalRange": "[7,9 -> 7,13]",
"modifiedRange": "[7,9 -> 7,12]"
"originalRange": "[7,9 -> 7,38]",
"modifiedRange": "[7,9 -> 7,27]"
},
{
"originalRange": "[7,14 -> 7,18]",
"modifiedRange": "[7,13 -> 7,15]"
"originalRange": "[7,64 -> 7,105]",
"modifiedRange": "[7,53 -> 7,85]"
},
{
"originalRange": "[7,19 -> 7,22]",
"modifiedRange": "[7,16 -> 7,19]"
"originalRange": "[7,112 -> 8,11]",
"modifiedRange": "[7,92 -> 7,131]"
},
{
"originalRange": "[7,23 -> 7,28]",
"modifiedRange": "[7,20 -> 7,21]"
"originalRange": "[8,15 -> 8,23]",
"modifiedRange": "[7,135 -> 7,142]"
},
{
"originalRange": "[7,29 -> 7,29]",
"modifiedRange": "[7,22 -> 7,23]"
"originalRange": "[8,29 -> 8,51]",
"modifiedRange": "[7,148 -> 7,170]"
},
{
"originalRange": "[7,30 -> 7,38]",
"modifiedRange": "[7,24 -> 7,27]"
},
{
"originalRange": "[7,64 -> 7,66]",
"modifiedRange": "[7,53 -> 7,54]"
},
{
"originalRange": "[7,67 -> 7,69]",
"modifiedRange": "[7,55 -> 7,60]"
},
{
"originalRange": "[7,70 -> 7,70]",
"modifiedRange": "[7,61 -> 7,62]"
},
{
"originalRange": "[7,71 -> 7,74]",
"modifiedRange": "[7,63 -> 7,65]"
},
{
"originalRange": "[7,75 -> 7,80]",
"modifiedRange": "[7,66 -> 7,68]"
},
{
"originalRange": "[7,81 -> 7,81]",
"modifiedRange": "[7,69 -> 7,71]"
},
{
"originalRange": "[7,82 -> 7,83]",
"modifiedRange": "[7,72 -> 7,73]"
},
{
"originalRange": "[7,84 -> 7,85]",
"modifiedRange": "[7,74 -> 7,74]"
},
{
"originalRange": "[7,86 -> 7,91]",
"modifiedRange": "[7,75 -> 7,78]"
},
{
"originalRange": "[7,92 -> 7,97]",
"modifiedRange": "[7,79 -> 7,82]"
},
{
"originalRange": "[7,98 -> 7,98]",
"modifiedRange": "[7,83 -> 7,84]"
},
{
"originalRange": "[7,99 -> 7,105]",
"modifiedRange": "[7,85 -> 7,85]"
},
{
"originalRange": "[7,112 -> 7,116]",
"modifiedRange": "[7,92 -> 7,92]"
},
{
"originalRange": "[7,117 -> 7,119]",
"modifiedRange": "[7,93 -> 7,96]"
},
{
"originalRange": "[7,120 -> 7,120]",
"modifiedRange": "[7,97 -> 7,104]"
},
{
"originalRange": "[7,121 -> 7,124]",
"modifiedRange": "[7,105 -> 7,105]"
},
{
"originalRange": "[7,125 -> 7,130]",
"modifiedRange": "[7,106 -> 7,106]"
},
{
"originalRange": "[7,131 -> 7,132]",
"modifiedRange": "[7,107 -> 7,108]"
},
{
"originalRange": "[7,133 -> 7,133]",
"modifiedRange": "[7,109 -> 7,111]"
},
{
"originalRange": "[7,134 -> 7,137]",
"modifiedRange": "[7,112 -> 7,115]"
},
{
"originalRange": "[7,138 -> 7,138]",
"modifiedRange": "[7,116 -> 7,117]"
},
{
"originalRange": "[7,139 -> 7,139]",
"modifiedRange": "[7,118 -> 7,119]"
},
{
"originalRange": "[7,140 -> 7,141]",
"modifiedRange": "[7,120 -> 7,123]"
},
{
"originalRange": "[7,142 -> 7,144]",
"modifiedRange": "[7,124 -> 7,126]"
},
{
"originalRange": "[7,145 -> 7,148]",
"modifiedRange": "[7,127 -> 7,127]"
},
{
"originalRange": "[7,149 -> 7,149]",
"modifiedRange": "[7,128 -> 7,129]"
},
{
"originalRange": "[7,150 -> 8,5]",
"modifiedRange": "[7,130 -> 7,130]"
},
{
"originalRange": "[8,6 -> 8,11]",
"modifiedRange": "[7,131 -> 7,131]"
},
{
"originalRange": "[8,15 -> 8,21]",
"modifiedRange": "[7,135 -> 7,135]"
},
{
"originalRange": "[8,23 -> 8,23]",
"modifiedRange": "[7,137 -> 7,142]"
},
{
"originalRange": "[8,29 -> 8,44]",
"modifiedRange": "[7,148 -> 7,148]"
},
{
"originalRange": "[8,45 -> 8,45]",
"modifiedRange": "[7,149 -> 7,152]"
},
{
"originalRange": "[8,46 -> 8,46]",
"modifiedRange": "[7,153 -> 7,160]"
},
{
"originalRange": "[8,48 -> 8,48]",
"modifiedRange": "[7,162 -> 7,164]"
},
{
"originalRange": "[8,50 -> 8,51]",
"modifiedRange": "[7,166 -> 7,170]"
},
{
"originalRange": "[8,62 -> 8,65]",
"modifiedRange": "[7,181 -> 7,182]"
},
{
"originalRange": "[9,1 -> 10,1]",
"modifiedRange": "[8,1 -> 8,1]"
"originalRange": "[8,62 -> 10,1]",
"modifiedRange": "[7,181 -> 8,1]"
}
]
},

View file

@ -17,12 +17,8 @@
"modifiedRange": "[5,6)",
"innerChanges": [
{
"originalRange": "[5,2 -> 5,2]",
"modifiedRange": "[5,2 -> 5,56]"
},
{
"originalRange": "[5,4 -> 5,4]",
"modifiedRange": "[5,58 -> 5,61]"
"originalRange": "[5,2 -> 5,4]",
"modifiedRange": "[5,2 -> 5,61]"
}
]
}

View file

@ -7,40 +7,12 @@
"modifiedRange": "[1,3)",
"innerChanges": [
{
"originalRange": "[1,11 -> 1,14]",
"modifiedRange": "[1,11 -> 1,17]"
"originalRange": "[1,1 -> 1,1]",
"modifiedRange": "[1,1 -> 2,1]"
},
{
"originalRange": "[1,15 -> 1,20]",
"modifiedRange": "[1,18 -> 1,19]"
},
{
"originalRange": "[1,24 -> 1,25]",
"modifiedRange": "[1,23 -> 1,25]"
},
{
"originalRange": "[1,26 -> 1,27]",
"modifiedRange": "[1,26 -> 1,32]"
},
{
"originalRange": "[1,28 -> 1,31]",
"modifiedRange": "[1,33 -> 1,33]"
},
{
"originalRange": "[1,35 -> 1,36]",
"modifiedRange": "[1,37 -> 1,50]"
},
{
"originalRange": "[1,37 -> 1,38]",
"modifiedRange": "[1,51 -> 1,72]"
},
{
"originalRange": "[1,39 -> 1,40]",
"modifiedRange": "[1,73 -> 2,6]"
},
{
"originalRange": "[1,42 -> 1,42]",
"modifiedRange": "[2,8 -> 2,18]"
"originalRange": "[1,17 -> 1,41]",
"modifiedRange": "[2,17 -> 2,17]"
},
{
"originalRange": "[1,72 -> 1,73]",

View file

@ -0,0 +1 @@
const sourceActions = notebookKernelService.getSourceActions(notebook, editor.scopedContextKeyService);

View file

@ -0,0 +1 @@
const sourceActions = notebookKernelService.getSourceActions(notebookTextModel, scopedContextKeyService);

View file

@ -0,0 +1,16 @@
{
"originalFileName": "./1.tst",
"modifiedFileName": "./2.tst",
"diffs": [
{
"originalRange": "[1,2)",
"modifiedRange": "[1,2)",
"innerChanges": [
{
"originalRange": "[1,70 -> 1,79]",
"modifiedRange": "[1,70 -> 1,81]"
}
]
}
]
}

View file

@ -0,0 +1,16 @@
{
"originalFileName": "./1.tst",
"modifiedFileName": "./2.tst",
"diffs": [
{
"originalRange": "[1,2)",
"modifiedRange": "[1,2)",
"innerChanges": [
{
"originalRange": "[1,70 -> 1,79]",
"modifiedRange": "[1,70 -> 1,81]"
}
]
}
]
}

View file

@ -0,0 +1,7 @@
if (!all.length && !sourceActions.length) {
const activeNotebookModel = getNotebookEditorFromEditorPane(editorService.activeEditorPane)?.textModel;
if (activeNotebookModel) {
const language = this.getSuggestedLanguage(activeNotebookModel);
suggestedExtension = language ? this.getSuggestedKernelFromLanguage(activeNotebookModel.viewType, language) : undefined;
}
if (suggestedExtension) {

View file

@ -0,0 +1,4 @@
if (!all.length && !sourceActions.length) {
const language = this.getSuggestedLanguage(notebookTextModel);
suggestedExtension = language ? this.getSuggestedKernelFromLanguage(notebookTextModel.viewType, language) : undefined;
if (suggestedExtension) {

View file

@ -0,0 +1,40 @@
{
"originalFileName": "./1.tst",
"modifiedFileName": "./2.tst",
"diffs": [
{
"originalRange": "[2,7)",
"modifiedRange": "[2,4)",
"innerChanges": [
{
"originalRange": "[2,8 -> 4,11]",
"modifiedRange": "[2,8 -> 2,10]"
},
{
"originalRange": "[4,46 -> 4,53]",
"modifiedRange": "[2,45 -> 2,46]"
},
{
"originalRange": "[4,60 -> 4,60]",
"modifiedRange": "[2,53 -> 2,57]"
},
{
"originalRange": "[5,1 -> 5,2]",
"modifiedRange": "[3,1 -> 3,1]"
},
{
"originalRange": "[5,71 -> 5,78]",
"modifiedRange": "[3,70 -> 3,71]"
},
{
"originalRange": "[5,85 -> 5,85]",
"modifiedRange": "[3,78 -> 3,82]"
},
{
"originalRange": "[6,1 -> 7,1]",
"modifiedRange": "[4,1 -> 4,1]"
}
]
}
]
}

View file

@ -0,0 +1,40 @@
{
"originalFileName": "./1.tst",
"modifiedFileName": "./2.tst",
"diffs": [
{
"originalRange": "[2,7)",
"modifiedRange": "[2,4)",
"innerChanges": [
{
"originalRange": "[2,1 -> 4,2]",
"modifiedRange": "[2,1 -> 2,1]"
},
{
"originalRange": "[4,46 -> 4,53]",
"modifiedRange": "[2,45 -> 2,46]"
},
{
"originalRange": "[4,60 -> 4,60]",
"modifiedRange": "[2,53 -> 2,57]"
},
{
"originalRange": "[5,2 -> 5,3]",
"modifiedRange": "[3,2 -> 3,2]"
},
{
"originalRange": "[5,71 -> 5,78]",
"modifiedRange": "[3,70 -> 3,71]"
},
{
"originalRange": "[5,85 -> 5,85]",
"modifiedRange": "[3,78 -> 3,82]"
},
{
"originalRange": "[5,123 -> 6,3]",
"modifiedRange": "[3,120 -> 3,120]"
}
]
}
]
}

View file

@ -0,0 +1 @@
const { selected, all, suggestions, hidden } = notebookKernelService.getMatchingKernel(notebook);

View file

@ -0,0 +1,3 @@
const scopedContextKeyService = editor.scopedContextKeyService;
const matchResult = notebookKernelService.getMatchingKernel(notebook);
const { selected, all } = matchResult;

View file

@ -0,0 +1,24 @@
{
"originalFileName": "./1.tst",
"modifiedFileName": "./2.tst",
"diffs": [
{
"originalRange": "[1,2)",
"modifiedRange": "[1,4)",
"innerChanges": [
{
"originalRange": "[1,6 -> 1,32]",
"modifiedRange": "[1,6 -> 2,2]"
},
{
"originalRange": "[1,35 -> 1,45]",
"modifiedRange": "[2,5 -> 2,18]"
},
{
"originalRange": "[2,1 -> 2,1]",
"modifiedRange": "[3,1 -> 4,1]"
}
]
}
]
}

View file

@ -0,0 +1,24 @@
{
"originalFileName": "./1.tst",
"modifiedFileName": "./2.tst",
"diffs": [
{
"originalRange": "[1,2)",
"modifiedRange": "[1,4)",
"innerChanges": [
{
"originalRange": "[1,7 -> 1,32]",
"modifiedRange": "[1,7 -> 2,2]"
},
{
"originalRange": "[1,35 -> 1,45]",
"modifiedRange": "[2,5 -> 2,18]"
},
{
"originalRange": "[1,98 -> 1,98]",
"modifiedRange": "[2,71 -> 3,39]"
}
]
}
]
}

View file

@ -17,28 +17,8 @@
"modifiedRange": "[4,5)",
"innerChanges": [
{
"originalRange": "[4,69 -> 4,69]",
"modifiedRange": "[4,69 -> 4,72]"
},
{
"originalRange": "[4,70 -> 4,71]",
"modifiedRange": "[4,73 -> 4,74]"
},
{
"originalRange": "[4,72 -> 4,84]",
"modifiedRange": "[4,75 -> 4,75]"
},
{
"originalRange": "[4,85 -> 4,89]",
"modifiedRange": "[4,76 -> 4,76]"
},
{
"originalRange": "[4,91 -> 4,95]",
"modifiedRange": "[4,78 -> 4,82]"
},
{
"originalRange": "[4,96 -> 4,103]",
"modifiedRange": "[4,83 -> 4,88]"
"originalRange": "[4,69 -> 4,103]",
"modifiedRange": "[4,69 -> 4,88]"
},
{
"originalRange": "[4,109 -> 4,110]",
@ -55,16 +35,8 @@
"modifiedRange": "[11,12)",
"innerChanges": [
{
"originalRange": "[11,61 -> 11,87]",
"modifiedRange": "[11,61 -> 11,61]"
},
{
"originalRange": "[11,88 -> 11,89]",
"modifiedRange": "[11,62 -> 11,62]"
},
{
"originalRange": "[11,90 -> 11,93]",
"modifiedRange": "[11,63 -> 11,63]"
"originalRange": "[11,61 -> 11,93]",
"modifiedRange": "[11,61 -> 11,63]"
},
{
"originalRange": "[11,97 -> 11,101]",
@ -77,68 +49,12 @@
"modifiedRange": "[14,18)",
"innerChanges": [
{
"originalRange": "[14,120 -> 14,120]",
"modifiedRange": "[14,120 -> 14,123]"
"originalRange": "[14,120 -> 14,154]",
"modifiedRange": "[14,120 -> 14,162]"
},
{
"originalRange": "[14,121 -> 14,123]",
"modifiedRange": "[14,124 -> 14,124]"
},
{
"originalRange": "[14,124 -> 14,125]",
"modifiedRange": "[14,125 -> 14,133]"
},
{
"originalRange": "[14,126 -> 14,128]",
"modifiedRange": "[14,134 -> 14,136]"
},
{
"originalRange": "[14,129 -> 14,129]",
"modifiedRange": "[14,137 -> 14,141]"
},
{
"originalRange": "[14,130 -> 14,133]",
"modifiedRange": "[14,142 -> 14,144]"
},
{
"originalRange": "[14,135 -> 14,136]",
"modifiedRange": "[14,146 -> 14,148]"
},
{
"originalRange": "[14,137 -> 14,143]",
"modifiedRange": "[14,149 -> 14,151]"
},
{
"originalRange": "[14,144 -> 14,148]",
"modifiedRange": "[14,152 -> 14,152]"
},
{
"originalRange": "[14,149 -> 14,150]",
"modifiedRange": "[14,153 -> 14,156]"
},
{
"originalRange": "[14,151 -> 14,154]",
"modifiedRange": "[14,157 -> 14,162]"
},
{
"originalRange": "[14,165 -> 14,168]",
"modifiedRange": "[14,173 -> 14,174]"
},
{
"originalRange": "[14,169 -> 14,170]",
"modifiedRange": "[14,175 -> 14,179]"
},
{
"originalRange": "[14,171 -> 14,171]",
"modifiedRange": "[14,180 -> 16,5]"
},
{
"originalRange": "[14,172 -> 14,176]",
"modifiedRange": "[16,6 -> 16,17]"
},
{
"originalRange": "[14,177 -> 14,178]",
"modifiedRange": "[16,18 -> 16,22]"
"originalRange": "[14,165 -> 14,178]",
"modifiedRange": "[14,173 -> 16,22]"
},
{
"originalRange": "[14,181 -> 14,181]",
@ -149,40 +65,8 @@
"modifiedRange": "[16,40 -> 16,47]"
},
{
"originalRange": "[14,196 -> 14,198]",
"modifiedRange": "[16,51 -> 16,51]"
},
{
"originalRange": "[14,199 -> 14,200]",
"modifiedRange": "[16,52 -> 16,58]"
},
{
"originalRange": "[14,201 -> 14,201]",
"modifiedRange": "[16,59 -> 16,63]"
},
{
"originalRange": "[14,202 -> 14,202]",
"modifiedRange": "[16,64 -> 16,66]"
},
{
"originalRange": "[14,203 -> 14,204]",
"modifiedRange": "[16,67 -> 16,70]"
},
{
"originalRange": "[14,205 -> 14,205]",
"modifiedRange": "[16,71 -> 16,80]"
},
{
"originalRange": "[14,206 -> 14,207]",
"modifiedRange": "[16,81 -> 16,83]"
},
{
"originalRange": "[14,208 -> 14,208]",
"modifiedRange": "[16,84 -> 16,118]"
},
{
"originalRange": "[14,210 -> 14,211]",
"modifiedRange": "[16,120 -> 17,1]"
"originalRange": "[14,196 -> 14,211]",
"modifiedRange": "[16,51 -> 17,1]"
}
]
},
@ -215,164 +99,16 @@
"modifiedRange": "[21,74 -> 22,1]"
},
{
"originalRange": "[18,3 -> 18,4]",
"modifiedRange": "[23,3 -> 23,6]"
},
{
"originalRange": "[18,5 -> 18,9]",
"modifiedRange": "[23,7 -> 23,10]"
},
{
"originalRange": "[18,10 -> 18,15]",
"modifiedRange": "[23,11 -> 23,13]"
},
{
"originalRange": "[18,16 -> 18,19]",
"modifiedRange": "[23,14 -> 23,16]"
},
{
"originalRange": "[18,20 -> 18,29]",
"modifiedRange": "[23,17 -> 23,20]"
},
{
"originalRange": "[18,30 -> 18,31]",
"modifiedRange": "[23,21 -> 23,22]"
},
{
"originalRange": "[18,32 -> 18,33]",
"modifiedRange": "[23,23 -> 23,23]"
},
{
"originalRange": "[18,34 -> 19,4]",
"modifiedRange": "[23,24 -> 23,24]"
},
{
"originalRange": "[19,5 -> 19,7]",
"modifiedRange": "[23,25 -> 23,25]"
},
{
"originalRange": "[19,9 -> 19,13]",
"modifiedRange": "[23,27 -> 23,27]"
},
{
"originalRange": "[19,14 -> 19,17]",
"modifiedRange": "[23,28 -> 23,29]"
},
{
"originalRange": "[19,18 -> 19,26]",
"modifiedRange": "[23,30 -> 23,30]"
"originalRange": "[18,3 -> 19,26]",
"modifiedRange": "[23,3 -> 23,30]"
},
{
"originalRange": "[19,32 -> 19,32]",
"modifiedRange": "[23,36 -> 23,56]"
},
{
"originalRange": "[19,35 -> 20,4]",
"modifiedRange": "[23,59 -> 23,61]"
},
{
"originalRange": "[20,5 -> 20,6]",
"modifiedRange": "[23,62 -> 23,65]"
},
{
"originalRange": "[20,7 -> 20,9]",
"modifiedRange": "[23,66 -> 23,66]"
},
{
"originalRange": "[20,10 -> 20,15]",
"modifiedRange": "[23,67 -> 23,67]"
},
{
"originalRange": "[20,16 -> 20,17]",
"modifiedRange": "[23,68 -> 23,71]"
},
{
"originalRange": "[20,18 -> 20,24]",
"modifiedRange": "[23,72 -> 23,72]"
},
{
"originalRange": "[20,25 -> 20,29]",
"modifiedRange": "[23,73 -> 23,75]"
},
{
"originalRange": "[20,30 -> 20,32]",
"modifiedRange": "[23,76 -> 23,78]"
},
{
"originalRange": "[20,33 -> 20,35]",
"modifiedRange": "[23,79 -> 23,83]"
},
{
"originalRange": "[20,36 -> 20,39]",
"modifiedRange": "[23,84 -> 23,84]"
},
{
"originalRange": "[20,41 -> 20,44]",
"modifiedRange": "[23,86 -> 23,87]"
},
{
"originalRange": "[20,45 -> 20,49]",
"modifiedRange": "[23,88 -> 23,89]"
},
{
"originalRange": "[20,50 -> 20,51]",
"modifiedRange": "[23,90 -> 23,92]"
},
{
"originalRange": "[20,52 -> 21,6]",
"modifiedRange": "[23,93 -> 23,96]"
},
{
"originalRange": "[21,7 -> 21,9]",
"modifiedRange": "[23,97 -> 23,97]"
},
{
"originalRange": "[21,10 -> 21,13]",
"modifiedRange": "[23,98 -> 23,98]"
},
{
"originalRange": "[21,14 -> 21,25]",
"modifiedRange": "[23,99 -> 23,101]"
},
{
"originalRange": "[21,26 -> 22,4]",
"modifiedRange": "[23,102 -> 23,102]"
},
{
"originalRange": "[22,5 -> 22,8]",
"modifiedRange": "[23,103 -> 23,103]"
},
{
"originalRange": "[22,9 -> 22,15]",
"modifiedRange": "[23,104 -> 23,107]"
},
{
"originalRange": "[22,16 -> 22,18]",
"modifiedRange": "[23,108 -> 23,110]"
},
{
"originalRange": "[22,19 -> 22,21]",
"modifiedRange": "[23,111 -> 23,111]"
},
{
"originalRange": "[22,22 -> 22,26]",
"modifiedRange": "[23,112 -> 23,112]"
},
{
"originalRange": "[22,27 -> 22,32]",
"modifiedRange": "[23,113 -> 23,113]"
},
{
"originalRange": "[22,33 -> 22,36]",
"modifiedRange": "[23,114 -> 23,115]"
},
{
"originalRange": "[22,37 -> 22,41]",
"modifiedRange": "[23,116 -> 23,117]"
},
{
"originalRange": "[22,42 -> 23,4]",
"modifiedRange": "[23,118 -> 23,120]"
"originalRange": "[19,35 -> 23,4]",
"modifiedRange": "[23,59 -> 23,120]"
}
]
},
@ -399,108 +135,20 @@
"modifiedRange": "[27,15 -> 27,16]"
},
{
"originalRange": "[29,4 -> 29,7]",
"modifiedRange": "[28,4 -> 28,7]"
},
{
"originalRange": "[29,8 -> 29,8]",
"modifiedRange": "[28,8 -> 28,18]"
},
{
"originalRange": "[29,9 -> 29,10]",
"modifiedRange": "[28,19 -> 28,20]"
},
{
"originalRange": "[29,11 -> 29,11]",
"modifiedRange": "[28,21 -> 28,47]"
},
{
"originalRange": "[29,13 -> 29,14]",
"modifiedRange": "[28,49 -> 28,71]"
},
{
"originalRange": "[29,15 -> 29,15]",
"modifiedRange": "[28,72 -> 28,76]"
},
{
"originalRange": "[29,16 -> 29,16]",
"modifiedRange": "[28,77 -> 28,90]"
},
{
"originalRange": "[29,17 -> 29,17]",
"modifiedRange": "[28,91 -> 28,94]"
},
{
"originalRange": "[29,18 -> 29,18]",
"modifiedRange": "[28,95 -> 28,124]"
},
{
"originalRange": "[29,19 -> 29,19]",
"modifiedRange": "[28,125 -> 28,129]"
},
{
"originalRange": "[29,20 -> 29,20]",
"modifiedRange": "[28,130 -> 28,134]"
},
{
"originalRange": "[29,21 -> 29,21]",
"modifiedRange": "[28,135 -> 28,176]"
},
{
"originalRange": "[29,22 -> 29,22]",
"modifiedRange": "[28,177 -> 29,13]"
},
{
"originalRange": "[29,24 -> 29,24]",
"modifiedRange": "[29,15 -> 29,36]"
"originalRange": "[29,4 -> 29,24]",
"modifiedRange": "[28,4 -> 29,36]"
},
{
"originalRange": "[30,4 -> 30,6]",
"modifiedRange": "[30,4 -> 30,16]"
},
{
"originalRange": "[30,10 -> 30,10]",
"modifiedRange": "[30,20 -> 30,21]"
"originalRange": "[30,10 -> 30,26]",
"modifiedRange": "[30,20 -> 34,16]"
},
{
"originalRange": "[30,11 -> 30,13]",
"modifiedRange": "[30,22 -> 31,23]"
},
{
"originalRange": "[30,14 -> 30,14]",
"modifiedRange": "[31,24 -> 33,10]"
},
{
"originalRange": "[30,16 -> 30,17]",
"modifiedRange": "[33,12 -> 33,15]"
},
{
"originalRange": "[30,18 -> 30,18]",
"modifiedRange": "[33,16 -> 33,19]"
},
{
"originalRange": "[30,19 -> 30,19]",
"modifiedRange": "[33,20 -> 33,21]"
},
{
"originalRange": "[30,20 -> 30,22]",
"modifiedRange": "[33,22 -> 33,22]"
},
{
"originalRange": "[30,23 -> 30,23]",
"modifiedRange": "[33,23 -> 34,6]"
},
{
"originalRange": "[30,24 -> 30,26]",
"modifiedRange": "[34,7 -> 34,16]"
},
{
"originalRange": "[30,30 -> 30,30]",
"modifiedRange": "[34,20 -> 34,21]"
},
{
"originalRange": "[30,31 -> 30,31]",
"modifiedRange": "[34,22 -> 37,9]"
"originalRange": "[30,30 -> 30,31]",
"modifiedRange": "[34,20 -> 37,9]"
}
]
}

View file

@ -17,40 +17,12 @@
"modifiedRange": "[10,12)",
"innerChanges": [
{
"originalRange": "[10,11 -> 10,14]",
"modifiedRange": "[10,11 -> 10,17]"
"originalRange": "[10,1 -> 10,1]",
"modifiedRange": "[10,1 -> 11,1]"
},
{
"originalRange": "[10,15 -> 10,20]",
"modifiedRange": "[10,18 -> 10,19]"
},
{
"originalRange": "[10,24 -> 10,25]",
"modifiedRange": "[10,23 -> 10,25]"
},
{
"originalRange": "[10,26 -> 10,27]",
"modifiedRange": "[10,26 -> 10,32]"
},
{
"originalRange": "[10,28 -> 10,31]",
"modifiedRange": "[10,33 -> 10,33]"
},
{
"originalRange": "[10,35 -> 10,36]",
"modifiedRange": "[10,37 -> 10,50]"
},
{
"originalRange": "[10,37 -> 10,38]",
"modifiedRange": "[10,51 -> 10,72]"
},
{
"originalRange": "[10,39 -> 10,40]",
"modifiedRange": "[10,73 -> 11,6]"
},
{
"originalRange": "[10,42 -> 10,42]",
"modifiedRange": "[11,8 -> 11,18]"
"originalRange": "[10,17 -> 10,41]",
"modifiedRange": "[11,17 -> 11,17]"
},
{
"originalRange": "[10,72 -> 10,73]",
@ -63,44 +35,8 @@
"modifiedRange": "[19,20)",
"innerChanges": [
{
"originalRange": "[18,50 -> 18,50]",
"modifiedRange": "[19,50 -> 19,53]"
},
{
"originalRange": "[18,51 -> 18,52]",
"modifiedRange": "[19,54 -> 19,55]"
},
{
"originalRange": "[18,53 -> 18,65]",
"modifiedRange": "[19,56 -> 19,56]"
},
{
"originalRange": "[18,66 -> 18,70]",
"modifiedRange": "[19,57 -> 19,57]"
},
{
"originalRange": "[18,72 -> 18,73]",
"modifiedRange": "[19,59 -> 19,61]"
},
{
"originalRange": "[18,74 -> 18,76]",
"modifiedRange": "[19,62 -> 19,65]"
},
{
"originalRange": "[18,77 -> 18,78]",
"modifiedRange": "[19,66 -> 19,66]"
},
{
"originalRange": "[18,79 -> 18,85]",
"modifiedRange": "[19,67 -> 19,74]"
},
{
"originalRange": "[18,86 -> 18,87]",
"modifiedRange": "[19,75 -> 19,81]"
},
{
"originalRange": "[18,88 -> 18,91]",
"modifiedRange": "[19,82 -> 19,82]"
"originalRange": "[18,50 -> 18,91]",
"modifiedRange": "[19,50 -> 19,82]"
},
{
"originalRange": "[18,95 -> 18,107]",

View file

@ -25,200 +25,20 @@
"modifiedRange": "[17,80)",
"innerChanges": [
{
"originalRange": "[13,10 -> 13,11]",
"modifiedRange": "[17,10 -> 17,20]"
"originalRange": "[13,10 -> 13,20]",
"modifiedRange": "[17,10 -> 21,62]"
},
{
"originalRange": "[13,12 -> 13,12]",
"modifiedRange": "[17,21 -> 17,26]"
"originalRange": "[13,25 -> 13,41]",
"modifiedRange": "[21,67 -> 35,18]"
},
{
"originalRange": "[13,13 -> 13,13]",
"modifiedRange": "[17,27 -> 17,61]"
"originalRange": "[14,2 -> 14,3]",
"modifiedRange": "[36,2 -> 39,3]"
},
{
"originalRange": "[13,14 -> 13,14]",
"modifiedRange": "[17,62 -> 19,5]"
},
{
"originalRange": "[13,15 -> 13,15]",
"modifiedRange": "[19,6 -> 19,34]"
},
{
"originalRange": "[13,16 -> 13,16]",
"modifiedRange": "[19,35 -> 20,8]"
},
{
"originalRange": "[13,17 -> 13,18]",
"modifiedRange": "[20,9 -> 21,18]"
},
{
"originalRange": "[13,20 -> 13,20]",
"modifiedRange": "[21,20 -> 21,62]"
},
{
"originalRange": "[13,25 -> 13,25]",
"modifiedRange": "[21,67 -> 21,74]"
},
{
"originalRange": "[13,26 -> 13,26]",
"modifiedRange": "[21,75 -> 26,19]"
},
{
"originalRange": "[13,28 -> 13,29]",
"modifiedRange": "[26,21 -> 27,37]"
},
{
"originalRange": "[13,30 -> 13,30]",
"modifiedRange": "[27,38 -> 28,12]"
},
{
"originalRange": "[13,31 -> 13,31]",
"modifiedRange": "[28,13 -> 29,3]"
},
{
"originalRange": "[13,32 -> 13,32]",
"modifiedRange": "[29,4 -> 29,6]"
},
{
"originalRange": "[13,33 -> 13,33]",
"modifiedRange": "[29,7 -> 30,6]"
},
{
"originalRange": "[13,35 -> 13,37]",
"modifiedRange": "[30,8 -> 31,4]"
},
{
"originalRange": "[13,38 -> 13,38]",
"modifiedRange": "[31,5 -> 31,6]"
},
{
"originalRange": "[13,39 -> 13,39]",
"modifiedRange": "[31,7 -> 31,10]"
},
{
"originalRange": "[13,40 -> 13,40]",
"modifiedRange": "[31,11 -> 34,50]"
},
{
"originalRange": "[13,41 -> 13,41]",
"modifiedRange": "[34,51 -> 35,18]"
},
{
"originalRange": "[14,2 -> 14,2]",
"modifiedRange": "[36,2 -> 36,7]"
},
{
"originalRange": "[14,3 -> 14,3]",
"modifiedRange": "[36,8 -> 39,3]"
},
{
"originalRange": "[14,13 -> 14,14]",
"modifiedRange": "[39,13 -> 40,4]"
},
{
"originalRange": "[14,15 -> 14,15]",
"modifiedRange": "[40,5 -> 40,16]"
},
{
"originalRange": "[14,16 -> 14,16]",
"modifiedRange": "[40,17 -> 42,3]"
},
{
"originalRange": "[14,17 -> 14,17]",
"modifiedRange": "[42,4 -> 42,6]"
},
{
"originalRange": "[14,18 -> 14,18]",
"modifiedRange": "[42,7 -> 44,12]"
},
{
"originalRange": "[14,19 -> 14,19]",
"modifiedRange": "[44,13 -> 48,21]"
},
{
"originalRange": "[14,20 -> 14,20]",
"modifiedRange": "[48,22 -> 48,28]"
},
{
"originalRange": "[14,21 -> 14,21]",
"modifiedRange": "[48,29 -> 48,30]"
},
{
"originalRange": "[14,22 -> 14,22]",
"modifiedRange": "[48,31 -> 48,43]"
},
{
"originalRange": "[14,23 -> 14,24]",
"modifiedRange": "[48,44 -> 49,12]"
},
{
"originalRange": "[14,26 -> 14,26]",
"modifiedRange": "[49,14 -> 51,20]"
},
{
"originalRange": "[14,27 -> 14,27]",
"modifiedRange": "[51,21 -> 51,28]"
},
{
"originalRange": "[14,28 -> 14,28]",
"modifiedRange": "[51,29 -> 51,60]"
},
{
"originalRange": "[14,29 -> 14,29]",
"modifiedRange": "[51,61 -> 57,21]"
},
{
"originalRange": "[14,30 -> 14,30]",
"modifiedRange": "[57,22 -> 58,5]"
},
{
"originalRange": "[14,31 -> 14,31]",
"modifiedRange": "[58,6 -> 58,26]"
},
{
"originalRange": "[14,32 -> 14,32]",
"modifiedRange": "[58,27 -> 58,28]"
},
{
"originalRange": "[14,33 -> 14,33]",
"modifiedRange": "[58,29 -> 62,7]"
},
{
"originalRange": "[14,34 -> 14,34]",
"modifiedRange": "[62,8 -> 63,27]"
},
{
"originalRange": "[14,35 -> 14,35]",
"modifiedRange": "[63,28 -> 69,4]"
},
{
"originalRange": "[14,36 -> 14,36]",
"modifiedRange": "[69,5 -> 69,17]"
},
{
"originalRange": "[14,37 -> 14,37]",
"modifiedRange": "[69,18 -> 70,4]"
},
{
"originalRange": "[14,38 -> 14,38]",
"modifiedRange": "[70,5 -> 70,11]"
},
{
"originalRange": "[14,39 -> 14,39]",
"modifiedRange": "[70,12 -> 75,9]"
},
{
"originalRange": "[14,40 -> 14,40]",
"modifiedRange": "[75,10 -> 75,13]"
},
{
"originalRange": "[14,41 -> 14,42]",
"modifiedRange": "[75,14 -> 75,48]"
},
{
"originalRange": "[14,43 -> 14,43]",
"modifiedRange": "[75,49 -> 79,2]"
"originalRange": "[14,13 -> 14,43]",
"modifiedRange": "[39,13 -> 79,2]"
}
]
}

View file

@ -11,16 +11,12 @@
"modifiedRange": "[6,10 -> 6,19]"
},
{
"originalRange": "[6,33 -> 6,33]",
"modifiedRange": "[6,41 -> 7,12]"
"originalRange": "[6,33 -> 6,34]",
"modifiedRange": "[6,41 -> 6,50]"
},
{
"originalRange": "[6,37 -> 6,37]",
"modifiedRange": "[7,16 -> 12,39]"
},
{
"originalRange": "[6,46 -> 6,46]",
"modifiedRange": "[12,48 -> 16,35]"
"originalRange": "[7,1 -> 7,1]",
"modifiedRange": "[7,1 -> 17,1]"
}
]
},

View file

@ -17,12 +17,8 @@
"modifiedRange": "[31,32)",
"innerChanges": [
{
"originalRange": "[32,59 -> 32,59]",
"modifiedRange": "[31,59 -> 31,60]"
},
{
"originalRange": "[32,60 -> 32,60]",
"modifiedRange": "[31,61 -> 31,66]"
"originalRange": "[32,59 -> 32,60]",
"modifiedRange": "[31,59 -> 31,66]"
}
]
},
@ -55,12 +51,8 @@
"modifiedRange": "[81,1 -> 82,1]"
},
{
"originalRange": "[84,60 -> 84,60]",
"modifiedRange": "[82,60 -> 82,61]"
},
{
"originalRange": "[84,61 -> 84,61]",
"modifiedRange": "[82,62 -> 82,67]"
"originalRange": "[84,60 -> 84,61]",
"modifiedRange": "[82,60 -> 82,67]"
}
]
},
@ -73,12 +65,8 @@
"modifiedRange": "[93,1 -> 94,1]"
},
{
"originalRange": "[95,60 -> 95,60]",
"modifiedRange": "[94,60 -> 94,61]"
},
{
"originalRange": "[95,61 -> 95,61]",
"modifiedRange": "[94,62 -> 94,67]"
"originalRange": "[95,60 -> 95,61]",
"modifiedRange": "[94,60 -> 94,67]"
}
]
},
@ -91,12 +79,8 @@
"modifiedRange": "[104,1 -> 105,1]"
},
{
"originalRange": "[105,60 -> 105,60]",
"modifiedRange": "[105,60 -> 105,61]"
},
{
"originalRange": "[105,61 -> 105,61]",
"modifiedRange": "[105,62 -> 105,67]"
"originalRange": "[105,60 -> 105,61]",
"modifiedRange": "[105,60 -> 105,67]"
}
]
}