@@ -9,6 +9,7 @@ import { Emitter, Event } from 'vs/base/common/event';
99import * as glob from 'vs/base/common/glob' ;
1010import { Iterable } from 'vs/base/common/iterator' ;
1111import { Disposable , DisposableStore , IDisposable , toDisposable } from 'vs/base/common/lifecycle' ;
12+ import { ResourceMap } from 'vs/base/common/map' ;
1213import { basename } from 'vs/base/common/path' ;
1314import { URI } from 'vs/base/common/uri' ;
1415import { RedoCommand , UndoCommand } from 'vs/editor/browser/editorExtensions' ;
@@ -35,10 +36,6 @@ import { ICustomEditorInfo, ICustomEditorViewTypesHandler, IEditorService } from
3536import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions' ;
3637import { IExtensionPointUser } from 'vs/workbench/services/extensions/common/extensionsRegistry' ;
3738
38- function MODEL_ID ( resource : URI ) : string {
39- return resource . toString ( ) ;
40- }
41-
4239export 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