1- import { ILogService , LogLevel , StandaloneServices , initialize as initializeMonacoService } from 'vscode/services'
1+ import { ILogService , IStorageService , LogLevel , StandaloneServices , getService , initialize as initializeMonacoService } from 'vscode/services'
22import { initialize as initializeVscodeExtensions } from 'vscode/extensions'
33import getModelServiceOverride from 'vscode/service-override/model'
44import getNotificationServiceOverride from 'vscode/service-override/notifications'
@@ -9,7 +9,13 @@ import getTextmateServiceOverride from 'vscode/service-override/textmate'
99import getThemeServiceOverride from 'vscode/service-override/theme'
1010import getLanguagesServiceOverride from 'vscode/service-override/languages'
1111import getAudioCueServiceOverride from 'vscode/service-override/audioCue'
12- import getViewsServiceOverride , { isEditorPartVisible , renderSidebarPart , renderActivitybarPar , renderEditorPart , renderPanelPart , renderStatusBarPart } from 'vscode/service-override/views'
12+ import getViewsServiceOverride , {
13+ isEditorPartVisible ,
14+ Parts ,
15+ onPartVisibilityChange ,
16+ isPartVisibile ,
17+ attachPart
18+ } from 'vscode/service-override/views'
1319import getDebugServiceOverride from 'vscode/service-override/debug'
1420import getPreferencesServiceOverride from 'vscode/service-override/preferences'
1521import getSnippetServiceOverride from 'vscode/service-override/snippets'
@@ -20,7 +26,7 @@ import getSearchServiceOverride from 'vscode/service-override/search'
2026import getMarkersServiceOverride from 'vscode/service-override/markers'
2127import getAccessibilityServiceOverride from 'vscode/service-override/accessibility'
2228import getLanguageDetectionWorkerServiceOverride from 'vscode/service-override/languageDetectionWorker'
23- import getStorageServiceOverride , { IStorageItemsChangeEvent , StorageScope } from 'vscode/service-override/storage'
29+ import getStorageServiceOverride , { BrowserStorageService } from 'vscode/service-override/storage'
2430import getExtensionServiceOverride from 'vscode/service-override/extensions'
2531import EditorWorker from 'monaco-editor/esm/vs/editor/editor.worker.js?worker'
2632import TextMateWorker from 'vscode/workers/textMate.worker?worker'
@@ -50,8 +56,6 @@ window.MonacoEnvironment = {
5056 }
5157}
5258
53- const onStorageChange = new monaco . Emitter < IStorageItemsChangeEvent > ( )
54-
5559// Override services
5660await initializeMonacoService ( {
5761 ...getExtensionServiceOverride ( toWorkerConfig ( ExtensionHostWorker ) ) ,
@@ -78,33 +82,32 @@ await initializeMonacoService({
7882 ...getMarkersServiceOverride ( ) ,
7983 ...getAccessibilityServiceOverride ( ) ,
8084 ...getLanguageDetectionWorkerServiceOverride ( ) ,
81- ...getStorageServiceOverride ( {
82- read ( scope ) {
83- return new Map ( Object . entries ( JSON . parse ( localStorage . getItem ( `storage-${ scope } ` ) ?? '{}' ) ) )
84- } ,
85- async write ( scope , data ) {
86- localStorage . setItem ( `storage-${ scope } ` , JSON . stringify ( Object . fromEntries ( data . entries ( ) ) ) )
87- } ,
88- onDidChange : onStorageChange . event
89- } )
85+ ...getStorageServiceOverride ( )
9086} )
9187StandaloneServices . get ( ILogService ) . setLevel ( LogLevel . Off )
9288
93- export function clearStorage ( ) : void {
94- const allKeys = new Set ( [ StorageScope . APPLICATION , StorageScope . PROFILE , StorageScope . WORKSPACE ] . flatMap ( scope => Object . keys ( JSON . parse ( localStorage . getItem ( `storage-${ scope } ` ) ?? '{}' ) ) ) )
95- localStorage . removeItem ( `storage-${ StorageScope . APPLICATION } ` )
96- localStorage . removeItem ( `storage-${ StorageScope . PROFILE } ` )
97- localStorage . removeItem ( `storage-${ StorageScope . WORKSPACE } ` )
98- onStorageChange . fire ( {
99- deleted : allKeys ,
100- changed : new Map ( )
101- } )
89+ export async function clearStorage ( ) : Promise < void > {
90+ await ( await getService ( IStorageService ) as BrowserStorageService ) . clear ( )
10291}
10392
10493await initializeVscodeExtensions ( )
10594
106- renderSidebarPart ( document . querySelector < HTMLDivElement > ( '#sidebar' ) ! )
107- renderActivitybarPar ( document . querySelector < HTMLDivElement > ( '#activityBar' ) ! )
108- renderPanelPart ( document . querySelector < HTMLDivElement > ( '#panel' ) ! )
109- renderEditorPart ( document . querySelector < HTMLDivElement > ( '#editors' ) ! )
110- renderStatusBarPart ( document . querySelector < HTMLDivElement > ( '#statusBar' ) ! )
95+ for ( const { part, element } of [
96+ { part : Parts . SIDEBAR_PART , element : '#sidebar' } ,
97+ { part : Parts . ACTIVITYBAR_PART , element : '#activityBar' } ,
98+ { part : Parts . PANEL_PART , element : '#panel' } ,
99+ { part : Parts . EDITOR_PART , element : '#editors' } ,
100+ { part : Parts . STATUSBAR_PART , element : '#statusBar' } ,
101+ { part : Parts . AUXILIARYBAR_PART , element : '#auxiliaryBar' }
102+ ] ) {
103+ const el = document . querySelector < HTMLDivElement > ( element ) !
104+ attachPart ( part , el )
105+
106+ if ( ! isPartVisibile ( part ) ) {
107+ el . style . display = 'none'
108+ }
109+
110+ onPartVisibilityChange ( part , visible => {
111+ el . style . display = visible ? 'block' : 'none'
112+ } )
113+ }
0 commit comments