diff --git a/src/vs/editor/common/services/resolverService.ts b/src/vs/editor/common/services/resolverService.ts index 173713e7018b4..56dca5511ff7c 100644 --- a/src/vs/editor/common/services/resolverService.ts +++ b/src/vs/editor/common/services/resolverService.ts @@ -42,4 +42,6 @@ export interface ITextEditorModel extends IEditorModel { * Provides access to the underlying `ITextModel`. */ textEditorModel: ITextModel; + + isReadonly(): boolean; } diff --git a/src/vs/editor/standalone/browser/simpleServices.ts b/src/vs/editor/standalone/browser/simpleServices.ts index 231c2e182c381..e73c429819fa3 100644 --- a/src/vs/editor/standalone/browser/simpleServices.ts +++ b/src/vs/editor/standalone/browser/simpleServices.ts @@ -69,6 +69,10 @@ export class SimpleModel implements ITextEditorModel { return this.model; } + public isReadonly(): boolean { + return false; + } + public dispose(): void { this._onDispose.fire(); } diff --git a/src/vs/workbench/services/bulkEdit/electron-browser/bulkEditService.ts b/src/vs/workbench/services/bulkEdit/electron-browser/bulkEditService.ts index e120c966d99e4..e7ab928dda60a 100644 --- a/src/vs/workbench/services/bulkEdit/electron-browser/bulkEditService.ts +++ b/src/vs/workbench/services/bulkEdit/electron-browser/bulkEditService.ts @@ -180,6 +180,9 @@ class BulkEditModel implements IDisposable { if (!model || !model.textEditorModel) { throw new Error(`Cannot load file ${key}`); } + if (model.isReadonly) { + throw new Error(localize('editorIsReadonly', "Cannot edit a read-only editor.")); + } let task: ModelEditTask; if (this._editor && this._editor.getModel().uri.toString() === model.textEditorModel.uri.toString()) { diff --git a/src/vs/workbench/services/textfile/common/textfiles.ts b/src/vs/workbench/services/textfile/common/textfiles.ts index 132e8b15c477c..008c6d191555a 100644 --- a/src/vs/workbench/services/textfile/common/textfiles.ts +++ b/src/vs/workbench/services/textfile/common/textfiles.ts @@ -254,8 +254,6 @@ export interface ITextFileEditorModel extends ITextEditorModel, IEncodingSupport isResolved(): boolean; - isReadonly(): boolean; - isDisposed(): boolean; }