@@ -85,16 +85,6 @@ export interface IUntitledTextEditorModelManager {
8585 */
8686 readonly onDidDisposeModel : Event < URI > ;
8787
88- /**
89- * Returns if an untitled resource with the given URI exists.
90- */
91- exists ( resource : URI ) : boolean ;
92-
93- /**
94- * Returns an existing untitled input if already created before.
95- */
96- get ( resource : URI ) : UntitledTextEditorInput | undefined ;
97-
9888 /**
9989 * Creates a new untitled input with the provided options. If the `untitledResource`
10090 * property is provided and the untitled input exists, it will return that existing
@@ -104,6 +94,11 @@ export interface IUntitledTextEditorModelManager {
10494 create ( options ?: INewUntitledTextEditorWithAssociatedResourceOptions ) : UntitledTextEditorInput ;
10595 create ( options ?: IExistingUntitledTextEditorOptions ) : UntitledTextEditorInput ;
10696
97+ /**
98+ * Returns an existing untitled model if already created before.
99+ */
100+ get ( resource : URI ) : IUntitledTextEditorModel | undefined ;
101+
107102 /**
108103 * Resolves an untitled editor model from the provided options. If the `untitledResource`
109104 * property is provided and the untitled input exists, it will return that existing
@@ -112,11 +107,6 @@ export interface IUntitledTextEditorModelManager {
112107 resolve ( options ?: INewUntitledTextEditorOptions ) : Promise < IUntitledTextEditorModel & IResolvedTextEditorModel > ;
113108 resolve ( options ?: INewUntitledTextEditorWithAssociatedResourceOptions ) : Promise < IUntitledTextEditorModel & IResolvedTextEditorModel > ;
114109 resolve ( options ?: IExistingUntitledTextEditorOptions ) : Promise < IUntitledTextEditorModel & IResolvedTextEditorModel > ;
115-
116- /**
117- * A check to find out if a untitled resource has a file path associated or not.
118- */
119- hasAssociatedFilePath ( resource : URI ) : boolean ;
120110}
121111
122112export interface IUntitledTextEditorService extends IUntitledTextEditorModelManager {
@@ -141,7 +131,6 @@ export class UntitledTextEditorService extends Disposable implements IUntitledTe
141131 readonly onDidChangeLabel = this . _onDidChangeLabel . event ;
142132
143133 private readonly mapResourceToInput = new ResourceMap < UntitledTextEditorInput > ( ) ;
144- private readonly mapResourceToAssociatedFilePath = new ResourceMap < boolean > ( ) ;
145134
146135 constructor (
147136 @IInstantiationService private readonly instantiationService : IInstantiationService ,
@@ -150,12 +139,8 @@ export class UntitledTextEditorService extends Disposable implements IUntitledTe
150139 super ( ) ;
151140 }
152141
153- exists ( resource : URI ) : boolean {
154- return this . mapResourceToInput . has ( resource ) ;
155- }
156-
157- get ( resource : URI ) : UntitledTextEditorInput | undefined {
158- return this . mapResourceToInput . get ( resource ) ;
142+ get ( resource : URI ) : UntitledTextEditorModel | undefined {
143+ return this . mapResourceToInput . get ( resource ) ?. model ;
159144 }
160145
161146 resolve ( options ?: IInternalUntitledTextEditorOptions ) : Promise < UntitledTextEditorModel & IResolvedTextEditorModel > {
@@ -229,17 +214,22 @@ export class UntitledTextEditorService extends Disposable implements IUntitledTe
229214 // Create new input with provided options
230215 const input = this . instantiationService . createInstance ( UntitledTextEditorInput , untitledResource , ! ! options . associatedResource , options . mode , options . initialValue , options . encoding ) ;
231216
232- const dirtyListener = input . onDidChangeDirty ( ( ) => this . _onDidChangeDirty . fire ( input . getResource ( ) ) ) ;
233- const labelListener = input . onDidChangeLabel ( ( ) => this . _onDidChangeLabel . fire ( input . getResource ( ) ) ) ;
234- const encodingListener = input . onDidModelChangeEncoding ( ( ) => this . _onDidChangeEncoding . fire ( input . getResource ( ) ) ) ;
235- const disposeListener = input . onDispose ( ( ) => this . _onDidDisposeModel . fire ( input . getResource ( ) ) ) ;
217+ this . register ( input ) ;
218+
219+ return input ;
220+ }
221+
222+ private register ( editor : UntitledTextEditorInput ) : void {
223+ const dirtyListener = editor . onDidChangeDirty ( ( ) => this . _onDidChangeDirty . fire ( editor . getResource ( ) ) ) ;
224+ const labelListener = editor . onDidChangeLabel ( ( ) => this . _onDidChangeLabel . fire ( editor . getResource ( ) ) ) ;
225+ const encodingListener = editor . onDidModelChangeEncoding ( ( ) => this . _onDidChangeEncoding . fire ( editor . getResource ( ) ) ) ;
226+ const disposeListener = editor . onDispose ( ( ) => this . _onDidDisposeModel . fire ( editor . getResource ( ) ) ) ;
236227
237228 // Remove from cache on dispose
238- Event . once ( input . onDispose ) ( ( ) => {
229+ Event . once ( editor . onDispose ) ( ( ) => {
239230
240231 // Registry
241- this . mapResourceToInput . delete ( input . getResource ( ) ) ;
242- this . mapResourceToAssociatedFilePath . delete ( input . getResource ( ) ) ;
232+ this . mapResourceToInput . delete ( editor . getResource ( ) ) ;
243233
244234 // Listeners
245235 dirtyListener . dispose ( ) ;
@@ -249,16 +239,7 @@ export class UntitledTextEditorService extends Disposable implements IUntitledTe
249239 } ) ;
250240
251241 // Add to cache
252- this . mapResourceToInput . set ( untitledResource , input ) ;
253- if ( options . associatedResource ) {
254- this . mapResourceToAssociatedFilePath . set ( untitledResource , true ) ;
255- }
256-
257- return input ;
258- }
259-
260- hasAssociatedFilePath ( resource : URI ) : boolean {
261- return this . mapResourceToAssociatedFilePath . has ( resource ) ;
242+ this . mapResourceToInput . set ( editor . getResource ( ) , editor ) ;
262243 }
263244}
264245
0 commit comments