Write access problems are not handled clean (fixes #11504)

This commit is contained in:
Benjamin Pasero 2016-09-05 16:48:10 +02:00
parent e12fc1103e
commit 41aa92e4c8

View file

@ -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);
}));
}