From 68446d13d02901e5d9e4392450d6c5e8012f2f0f Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Tue, 18 Sep 2018 17:45:07 +0200 Subject: [PATCH] fixes #42909 --- .../api/electron-browser/mainThreadEditors.ts | 12 +++++++++--- .../scm/electron-browser/dirtydiffDecorator.ts | 14 ++++++++++++++ 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/vs/workbench/api/electron-browser/mainThreadEditors.ts b/src/vs/workbench/api/electron-browser/mainThreadEditors.ts index 232670fbde7..d302c348567 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadEditors.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadEditors.ts @@ -247,11 +247,17 @@ export class MainThreadTextEditors implements MainThreadTextEditorsShape { const diffEditors = this._codeEditorService.listDiffEditors(); const [diffEditor] = diffEditors.filter(d => d.getOriginalEditor().getId() === codeEditorId || d.getModifiedEditor().getId() === codeEditorId); - if (!diffEditor) { - return TPromise.as([]); + if (diffEditor) { + return TPromise.as(diffEditor.getLineChanges()); } - return TPromise.as(diffEditor.getLineChanges()); + const dirtyDiffContribution = codeEditor.getContribution('editor.contrib.dirtydiff'); + + if (dirtyDiffContribution) { + return TPromise.as((dirtyDiffContribution as any).getChanges()); + } + + return TPromise.as([]); } } diff --git a/src/vs/workbench/parts/scm/electron-browser/dirtydiffDecorator.ts b/src/vs/workbench/parts/scm/electron-browser/dirtydiffDecorator.ts index d37e7934556..b694bf98a1a 100644 --- a/src/vs/workbench/parts/scm/electron-browser/dirtydiffDecorator.ts +++ b/src/vs/workbench/parts/scm/electron-browser/dirtydiffDecorator.ts @@ -775,6 +775,20 @@ export class DirtyDiffController implements IEditorContribution { } } + getChanges(): IChange[] { + if (!this.modelRegistry) { + return []; + } + + const model = this.modelRegistry.getModel(this.editor.getModel()); + + if (!model) { + return []; + } + + return model.changes; + } + dispose(): void { this.disposables = dispose(this.disposables); } -- GitLab