diff --git a/src/vs/workbench/parts/files/browser/saveErrorHandler.ts b/src/vs/workbench/parts/files/browser/saveErrorHandler.ts index ad3577e68ad..92c2f14852a 100644 --- a/src/vs/workbench/parts/files/browser/saveErrorHandler.ts +++ b/src/vs/workbench/parts/files/browser/saveErrorHandler.ts @@ -74,23 +74,25 @@ export class SaveErrorHandler implements ISaveErrorHandler { actions.push(new Action('workbench.files.action.saveAs', SaveFileAsAction.LABEL, null, true, () => { const saveAsAction = this.instantiationService.createInstance(SaveFileAsAction, SaveFileAsAction.ID, SaveFileAsAction.LABEL); saveAsAction.setResource(resource); + saveAsAction.run().done(() => saveAsAction.dispose(), errors.onUnexpectedError); - return saveAsAction.run().then(() => { saveAsAction.dispose(); return true; }); + return TPromise.as(true); })); // Discard actions.push(new Action('workbench.files.action.discard', nls.localize('discard', "Discard"), null, true, () => { const revertFileAction = this.instantiationService.createInstance(RevertFileAction, RevertFileAction.ID, RevertFileAction.LABEL); revertFileAction.setResource(resource); + revertFileAction.run().done(() => revertFileAction.dispose(), errors.onUnexpectedError); - return revertFileAction.run().then(() => { revertFileAction.dispose(); return true; }); + return TPromise.as(true); })); // Retry if (isReadonly) { actions.push(new Action('workbench.files.action.overwrite', nls.localize('overwrite', "Overwrite"), null, true, () => { if (!model.isDisposed()) { - return model.save(true /* overwrite readonly */).then(() => true); + model.save(true /* overwrite readonly */).done(null, errors.onUnexpectedError); } return TPromise.as(true); @@ -99,8 +101,9 @@ export class SaveErrorHandler implements ISaveErrorHandler { actions.push(new Action('workbench.files.action.retry', nls.localize('retry', "Retry"), null, true, () => { const saveFileAction = this.instantiationService.createInstance(SaveFileAction, SaveFileAction.ID, SaveFileAction.LABEL); saveFileAction.setResource(resource); + saveFileAction.run().done(() => saveFileAction.dispose(), errors.onUnexpectedError); - return saveFileAction.run().then(() => { saveFileAction.dispose(); return true; }); + return TPromise.as(true); })); }