diff --git a/src/vs/editor/browser/widget/diffNavigator.ts b/src/vs/editor/browser/widget/diffNavigator.ts index 051efeac72f0ab764a9ec3a398b37a761116a39e..795a77175b9694a1a81a0a6be31fca776bf10f3a 100644 --- a/src/vs/editor/browser/widget/diffNavigator.ts +++ b/src/vs/editor/browser/widget/diffNavigator.ts @@ -76,6 +76,7 @@ export class DiffNavigator { if (this._options.alwaysRevealFirst) { this._disposables.push(this._editor.getModifiedEditor().onDidChangeModel((e) => { this.revealFirst = true; + console.log('diff model changed. revealFirst', this.revealFirst); })); } @@ -94,12 +95,16 @@ export class DiffNavigator { this._init(); this._compute(this._editor.getLineChanges()); + console.log('_onDiffUpdated, revealFirst', this.revealFirst); if (this.revealFirst) { // Only reveal first on first non-null changes if (this._editor.getLineChanges() !== null) { this.revealFirst = false; this.nextIdx = -1; this.next(ScrollType.Immediate); + console.log('having line changes, going to next'); + } else { + console.log('not having any line changes!'); } } } @@ -169,8 +174,10 @@ export class DiffNavigator { private _move(fwd: boolean, scrollType: ScrollType): void { assert.ok(!this.disposed, 'Illegal State - diff navigator has been disposed'); + console.log('_move'); if (!this.canNavigate()) { + console.log('!this.canNavigate()'); return; } @@ -193,6 +200,7 @@ export class DiffNavigator { this.ignoreSelectionChange = true; try { let pos = info.range.getStartPosition(); + console.log('setting new position: ', pos); this._editor.setPosition(pos); this._editor.revealPositionInCenter(pos, scrollType); } finally { diff --git a/src/vs/workbench/browser/parts/editor/textDiffEditor.ts b/src/vs/workbench/browser/parts/editor/textDiffEditor.ts index 8dacac617d375b70aaef0f1c72f3645bdd25343b..6c3f9d87366646e97de16cab80e3ca8bca66e870 100644 --- a/src/vs/workbench/browser/parts/editor/textDiffEditor.ts +++ b/src/vs/workbench/browser/parts/editor/textDiffEditor.ts @@ -157,12 +157,17 @@ export class TextDiffEditor extends BaseTextEditor implements ITextDiffEditor { optionsGotApplied = (options).apply(diffEditor, ScrollType.Immediate); } + console.log('Diff Editor: setInput()'); + // Otherwise restore View State let hasPreviousViewState = false; if (!optionsGotApplied) { hasPreviousViewState = this.restoreTextDiffEditorViewState(input); } + console.log('optionsGotApplied', optionsGotApplied); + console.log('hasPreviousViewState', hasPreviousViewState); + this.diffNavigator = new DiffNavigator(diffEditor, { alwaysRevealFirst: !optionsGotApplied && !hasPreviousViewState // only reveal first change if we had no options or viewstate }); @@ -204,6 +209,7 @@ export class TextDiffEditor extends BaseTextEditor implements ITextDiffEditor { if (resource) { const viewState = this.loadTextEditorViewState(resource); if (viewState) { + console.log('restoring viewState', viewState); this.getControl().restoreViewState(viewState); return true;