@@ -11,14 +11,16 @@ import {
1111 RegisteredReadOnlyFile ,
1212 createIndexedDBProviders ,
1313 registerHTMLFileSystemProvider ,
14+ createHTMLFileSystemProvider ,
1415 registerFileSystemOverlay ,
1516 initFile
1617} from '@codingame/monaco-vscode-files-service-override'
1718import * as monaco from 'monaco-editor'
1819import {
1920 IWorkbenchConstructionOptions ,
2021 LogLevel ,
21- IEditorOverrideServices
22+ IEditorOverrideServices ,
23+ IWorkspace
2224} from '@codingame/monaco-vscode-api'
2325import * as vscode from 'vscode'
2426import getModelServiceOverride from '@codingame/monaco-vscode-model-service-override'
@@ -104,12 +106,14 @@ params.delete('resetLayout')
104106
105107window . history . replaceState ( { } , document . title , url . href )
106108
107- export let workspaceFile = monaco . Uri . file ( '/workspace.code-workspace' )
109+ let workspace : IWorkspace = {
110+ workspaceUri : monaco . Uri . file ( '/workspace.code-workspace' )
111+ }
108112
109113export const userDataProvider = await createIndexedDBProviders ( )
110114
111115if ( useHtmlFileSystemProvider ) {
112- workspaceFile = monaco . Uri . from ( { scheme : 'tmp' , path : '/test.code-workspace' } )
116+ const workspaceFile = monaco . Uri . from ( { scheme : 'tmp' , path : '/test.code-workspace' } )
113117 await initFile (
114118 workspaceFile ,
115119 JSON . stringify (
@@ -120,7 +124,9 @@ if (useHtmlFileSystemProvider) {
120124 2
121125 )
122126 )
123-
127+ workspace = {
128+ workspaceUri : workspaceFile
129+ }
124130 registerHTMLFileSystemProvider ( )
125131} else {
126132 const fileSystemProvider = new RegisteredFileSystemProvider ( false )
235241 )
236242 )
237243
244+ const workspaceFile = monaco . Uri . file ( '/workspace.code-workspace' )
238245 // Use a workspace file to be able to add another folder later (for the "Attach filesystem" button)
239246 fileSystemProvider . registerFile (
240247 new RegisteredMemoryFile (
252259 )
253260 )
254261 )
262+ workspace = {
263+ workspaceUri : workspaceFile
264+ }
255265
256266 fileSystemProvider . registerFile (
257267 new RegisteredMemoryFile (
@@ -267,6 +277,12 @@ h1 {
267277 )
268278
269279 registerFileSystemOverlay ( 1 , fileSystemProvider )
280+
281+ const htmlFileProvider = createHTMLFileSystemProvider ( )
282+ htmlFileProvider . registerDirectoryHandle (
283+ await ( await navigator . storage . getDirectory ( ) ) . getDirectoryHandle ( 'workspace' , { create : true } )
284+ )
285+ registerFileSystemOverlay ( 2 , htmlFileProvider )
270286}
271287
272288// Workers
@@ -336,9 +352,7 @@ export const constructOptions: IWorkbenchConstructionOptions = {
336352 } ,
337353 workspace :
338354 remotePath == null
339- ? {
340- workspaceUri : workspaceFile
341- }
355+ ? workspace
342356 : {
343357 folderUri : monaco . Uri . from ( {
344358 scheme : 'vscode-remote' ,
0 commit comments