diff --git a/src/sql/parts/notebook/notebookInput.ts b/src/sql/parts/notebook/notebookInput.ts index bed7002d4d..1137cea8f5 100644 --- a/src/sql/parts/notebook/notebookInput.ts +++ b/src/sql/parts/notebook/notebookInput.ts @@ -132,6 +132,7 @@ export class NotebookInput extends EditorInput { private _parentContainer: HTMLElement; private readonly _layoutChanged: Emitter = this._register(new Emitter()); private _model: NotebookEditorModel; + private _untitledEditorModel: UntitledEditorModel; private _contentManager: IContentManager; private _providersLoaded: Promise; @@ -246,13 +247,21 @@ export class NotebookInput extends EditorInput { return this.resource; } + public get untitledEditorModel() : UntitledEditorModel { + return this._untitledEditorModel; + } + + public set untitledEditorModel(value : UntitledEditorModel) { + this._untitledEditorModel = value; + } + async resolve(): Promise { if (this._model && this._model.isModelCreated()) { return Promise.resolve(this._model); } else { let textOrUntitledEditorModel: UntitledEditorModel | IEditorModel; if (this.resource.scheme === Schemas.untitled) { - textOrUntitledEditorModel = await this._textInput.resolve(); + textOrUntitledEditorModel = this._untitledEditorModel ? this._untitledEditorModel : await this._textInput.resolve(); } else { const textEditorModelReference = await this.textModelService.createModelReference(this.resource); diff --git a/src/sql/workbench/api/node/mainThreadNotebookDocumentsAndEditors.ts b/src/sql/workbench/api/node/mainThreadNotebookDocumentsAndEditors.ts index 83ddbe3ea0..bb1a18e800 100644 --- a/src/sql/workbench/api/node/mainThreadNotebookDocumentsAndEditors.ts +++ b/src/sql/workbench/api/node/mainThreadNotebookDocumentsAndEditors.ts @@ -371,12 +371,16 @@ export class MainThreadNotebookDocumentsAndEditors extends Disposable implements let isUntitled: boolean = uri.scheme === Schemas.untitled; const fileInput = isUntitled ? this._untitledEditorService.createOrGet(uri, notebookModeId) : - this._editorService.createInput({resource: uri, language: notebookModeId}); + this._editorService.createInput({ resource: uri, language: notebookModeId }); let input = this._instantiationService.createInstance(NotebookInput, path.basename(uri.fsPath), uri, fileInput); input.isTrusted = isUntitled; input.defaultKernel = options.defaultKernel; input.connectionProfile = new ConnectionProfile(this._capabilitiesService, options.connectionProfile); - + if (isUntitled) { + let untitledModel = await input.textInput.resolve(); + untitledModel.load(); + input.untitledEditorModel = untitledModel; + } let editor = await this._editorService.openEditor(input, editorOptions, viewColumnToEditorGroup(this._editorGroupService, options.position)); if (!editor) { return undefined;