Skip to content

Commit 88f93ee

Browse files
committed
💄 use resource map
1 parent ab8cf00 commit 88f93ee

1 file changed

Lines changed: 8 additions & 16 deletions

File tree

src/vs/workbench/contrib/notebook/browser/notebookServiceImpl.ts

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { Emitter, Event } from 'vs/base/common/event';
99
import * as glob from 'vs/base/common/glob';
1010
import { Iterable } from 'vs/base/common/iterator';
1111
import { Disposable, DisposableStore, IDisposable, toDisposable } from 'vs/base/common/lifecycle';
12+
import { ResourceMap } from 'vs/base/common/map';
1213
import { basename } from 'vs/base/common/path';
1314
import { URI } from 'vs/base/common/uri';
1415
import { RedoCommand, UndoCommand } from 'vs/editor/browser/editorExtensions';
@@ -35,10 +36,6 @@ import { ICustomEditorInfo, ICustomEditorViewTypesHandler, IEditorService } from
3536
import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions';
3637
import { IExtensionPointUser } from 'vs/workbench/services/extensions/common/extensionsRegistry';
3738

38-
function MODEL_ID(resource: URI): string {
39-
return resource.toString();
40-
}
41-
4239
export class NotebookKernelProviderInfoStore extends Disposable {
4340
private readonly _notebookKernelProviders: INotebookKernelProvider[] = [];
4441

@@ -236,7 +233,7 @@ export class NotebookService extends Disposable implements INotebookService, ICu
236233
notebookProviderInfoStore: NotebookProviderInfoStore;
237234
notebookRenderersInfoStore: NotebookOutputRendererInfoStore = new NotebookOutputRendererInfoStore();
238235
notebookKernelProviderInfoStore: NotebookKernelProviderInfoStore = new NotebookKernelProviderInfoStore();
239-
private readonly _models = new Map<string, ModelData>();
236+
private readonly _models = new ResourceMap<ModelData>();
240237
private _onDidChangeActiveEditor = new Emitter<string | null>();
241238
onDidChangeActiveEditor: Event<string | null> = this._onDidChangeActiveEditor.event;
242239
private _activeEditorDisposables = new DisposableStore();
@@ -664,12 +661,10 @@ export class NotebookService extends Disposable implements INotebookService, ICu
664661
return undefined;
665662
}
666663

667-
const modelId = MODEL_ID(uri);
668-
669664
let notebookModel: NotebookTextModel | undefined = undefined;
670-
if (this._models.has(modelId)) {
665+
if (this._models.has(uri)) {
671666
// the model already exists
672-
notebookModel = this._models.get(modelId)!.model;
667+
notebookModel = this._models.get(uri)!.model;
673668
if (forceReload) {
674669
await provider.controller.reloadNotebook(notebookModel);
675670
}
@@ -690,7 +685,7 @@ export class NotebookService extends Disposable implements INotebookService, ICu
690685
(model) => this._onWillDisposeDocument(model),
691686
);
692687

693-
this._models.set(modelId, modelData);
688+
this._models.set(uri, modelData);
694689
this._onNotebookDocumentAdd.fire([notebookModel!.uri]);
695690
// after the document is added to the store and sent to ext host, we transform the ouputs
696691
await this.transformTextModelOutputs(notebookModel!);
@@ -703,9 +698,7 @@ export class NotebookService extends Disposable implements INotebookService, ICu
703698
}
704699

705700
getNotebookTextModel(uri: URI): NotebookTextModel | undefined {
706-
const modelId = MODEL_ID(uri);
707-
708-
return this._models.get(modelId)?.model;
701+
return this._models.get(uri)?.model;
709702
}
710703

711704
private async transformTextModelOutputs(textModel: NotebookTextModel) {
@@ -1000,10 +993,9 @@ export class NotebookService extends Disposable implements INotebookService, ICu
1000993
}
1001994

1002995
private _onWillDisposeDocument(model: INotebookTextModel): void {
1003-
const modelId = MODEL_ID(model.uri);
1004996

1005-
const modelData = this._models.get(modelId);
1006-
this._models.delete(modelId);
997+
const modelData = this._models.get(model.uri);
998+
this._models.delete(model.uri);
1007999

10081000
if (modelData) {
10091001
// delete editors and documents

0 commit comments

Comments
 (0)