src/vs/workbench/contrib/notebook/browser/diff/notebookTextDiffEditor.ts/NotebookTextDiffEditor/prettyChanges
class NotebookTextDiffEditor:	static prettyChanges(model: INotebookDiffEditorModel, diffResult: IDiffResult) {
		const changes = diffResult.changes;
		for (let i = 0; i < diffResult.changes.length - 1; i++) {
			// then we know there is another change after current one
			const curr = changes[i];
			const next = changes[i + 1];
			const x = curr.originalStart;
			const y = curr.modifiedStart;

			if (
				curr.originalLength === 1
				&& curr.modifiedLength === 0
				&& next.originalStart === x + 2
				&& next.originalLength === 0
				&& next.modifiedStart === y + 1
				&& next.modifiedLength === 1
				&& model.original.notebook.cells[x].getHashValue() === model.modified.notebook.cells[y + 1].getHashValue()
				&& model.original.notebook.cells[x + 1].getHashValue() === model.modified.notebook.cells[y].getHashValue()
			) {
				// this is a swap
				curr.originalStart = x;
				curr.originalLength = 0;
				curr.modifiedStart = y;
				curr.modifiedLength = 1;

				next.originalStart = x + 1;
				next.originalLength = 1;
				next.modifiedStart = y + 2;
				next.modifiedLength = 0;

				i++;
			}
		}
	}