Merge from vscode 7653d836944892f83ce9e1f95c1204bafa1aec31

This commit is contained in:
ADS Merger
2020-05-08 03:58:34 +00:00
parent dac1970c43
commit fa62ec1f34
209 changed files with 5131 additions and 2480 deletions

View File

@@ -11,7 +11,7 @@ import { notebookProviderExtensionPoint, notebookRendererExtensionPoint } from '
import { NotebookProviderInfo } from 'vs/workbench/contrib/notebook/common/notebookProvider';
import { NotebookExtensionDescription } from 'vs/workbench/api/common/extHost.protocol';
import { Emitter, Event } from 'vs/base/common/event';
import { INotebookTextModel, INotebookMimeTypeSelector, INotebookRendererInfo } from 'vs/workbench/contrib/notebook/common/notebookCommon';
import { INotebookTextModel, INotebookMimeTypeSelector, INotebookRendererInfo, NotebookDocumentMetadata, CellEditType, ICellDto2 } from 'vs/workbench/contrib/notebook/common/notebookCommon';
import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions';
import { NotebookOutputRendererInfo } from 'vs/workbench/contrib/notebook/common/notebookOutputRenderer';
import { Iterable } from 'vs/base/common/iterator';
@@ -202,13 +202,13 @@ export class NotebookService extends Disposable implements INotebookService, ICu
return undefined; // {{SQL CARBON EDIT}} strict-null-check
}
async resolveNotebook(viewType: string, uri: URI): Promise<NotebookTextModel | undefined> {
async createNotebookFromBackup(viewType: string, uri: URI, metadata: NotebookDocumentMetadata, languages: string[], cells: ICellDto2[]): Promise<NotebookTextModel | undefined> {
const provider = this._notebookProviders.get(viewType);
if (!provider) {
return undefined;
}
const notebookModel = await provider.controller.resolveNotebook(viewType, uri);
const notebookModel = await provider.controller.createNotebook(viewType, uri, true, false);
if (!notebookModel) {
return undefined;
}
@@ -219,6 +219,39 @@ export class NotebookService extends Disposable implements INotebookService, ICu
notebookModel,
(model) => this._onWillDispose(model),
);
this._models[modelId] = modelData;
notebookModel.metadata = metadata;
notebookModel.languages = languages;
notebookModel.applyEdit(notebookModel.versionId, [
{
editType: CellEditType.Insert,
index: 0,
cells: cells
}
]);
return modelData.model;
}
async resolveNotebook(viewType: string, uri: URI, forceReload: boolean): Promise<NotebookTextModel | undefined> {
const provider = this._notebookProviders.get(viewType);
if (!provider) {
return undefined;
}
let notebookModel: NotebookTextModel | undefined;
notebookModel = await provider.controller.createNotebook(viewType, uri, false, forceReload);
// new notebook model created
const modelId = MODEL_ID(uri);
const modelData = new ModelData(
notebookModel!,
(model) => this._onWillDispose(model),
);
this._models[modelId] = modelData;
return modelData.model;
}
@@ -265,7 +298,7 @@ export class NotebookService extends Disposable implements INotebookService, ICu
let provider = this._notebookProviders.get(viewType);
if (provider) {
provider.controller.destoryNotebookDocument(notebook);
provider.controller.removeNotebookDocument(notebook);
}
}
@@ -291,6 +324,16 @@ export class NotebookService extends Disposable implements INotebookService, ICu
return false;
}
async saveAs(viewType: string, resource: URI, target: URI, token: CancellationToken): Promise<boolean> {
let provider = this._notebookProviders.get(viewType);
if (provider) {
return provider.controller.saveAs(resource, target, token);
}
return false;
}
onDidReceiveMessage(viewType: string, uri: URI, message: any): void {
let provider = this._notebookProviders.get(viewType);