55
66import * as _path from 'path'
77import * as vscode from 'vscode'
8- import { getTabSizeSetting } from './editorUtilities'
8+ import { disposeOnEditorClose , getTabSizeSetting } from './editorUtilities'
99import { tempDirPath } from '../filesystemUtilities'
1010import { getLogger } from '../logger'
1111import fs from '../fs/fs'
@@ -228,6 +228,7 @@ class ReadonlyTextDocumentProvider implements vscode.TextDocumentContentProvider
228228 private content = ''
229229
230230 setContent ( content : string ) {
231+ getLogger ( ) . debug ( 'ReadonlyTextDocumentProvider.setContent: %s' , content )
231232 this . content = content
232233 }
233234
@@ -247,13 +248,10 @@ class ReadonlyDocument {
247248 private readonly scheme = 'AWStoolkit-readonly'
248249 private readonly provider = new ReadonlyTextDocumentProvider ( )
249250
250- constructor ( ) {
251- vscode . workspace . registerTextDocumentContentProvider ( this . scheme , this . provider )
252- }
253-
254251 public async show ( content : string , filename : string ) {
252+ const disposable = vscode . workspace . registerTextDocumentContentProvider ( this . scheme , this . provider )
255253 this . provider . setContent ( content )
256- const uri = vscode . Uri . parse ( `${ this . scheme } :/ ${ filename } .txt` )
254+ const uri = vscode . Uri . parse ( `${ this . scheme } :${ filename } .txt` )
257255 const options : vscode . TextDocumentShowOptions = {
258256 viewColumn : vscode . ViewColumn . Beside ,
259257 preserveFocus : true ,
@@ -263,6 +261,8 @@ class ReadonlyDocument {
263261 // Open the document with the updated content
264262 const document = await vscode . workspace . openTextDocument ( uri )
265263 await vscode . window . showTextDocument ( document , options )
264+
265+ disposeOnEditorClose ( uri , disposable )
266266 }
267267}
268268
0 commit comments