Skip to content

Commit 21d6445

Browse files
author
Loïc Mangeonjean
committed
feat(demo): use vscode storage service
1 parent 81d5ec1 commit 21d6445

File tree

2 files changed

+6
-23
lines changed

2 files changed

+6
-23
lines changed

demo/src/main.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ document.querySelector('#customEditorPanel')!.addEventListener('click', async ()
191191
})
192192

193193
document.querySelector('#clearStorage')!.addEventListener('click', async () => {
194-
clearStorage()
194+
await clearStorage()
195195
})
196196

197197
document.querySelector('#togglePanel')!.addEventListener('click', async () => {

demo/src/setup.ts

Lines changed: 5 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ILogService, LogLevel, StandaloneServices, initialize as initializeMonacoService } from 'vscode/services'
1+
import { ILogService, IStorageService, LogLevel, StandaloneServices, getService, initialize as initializeMonacoService } from 'vscode/services'
22
import { initialize as initializeVscodeExtensions } from 'vscode/extensions'
33
import getModelServiceOverride from 'vscode/service-override/model'
44
import getNotificationServiceOverride from 'vscode/service-override/notifications'
@@ -26,7 +26,7 @@ import getSearchServiceOverride from 'vscode/service-override/search'
2626
import getMarkersServiceOverride from 'vscode/service-override/markers'
2727
import getAccessibilityServiceOverride from 'vscode/service-override/accessibility'
2828
import getLanguageDetectionWorkerServiceOverride from 'vscode/service-override/languageDetectionWorker'
29-
import getStorageServiceOverride, { IStorageItemsChangeEvent, StorageScope } from 'vscode/service-override/storage'
29+
import getStorageServiceOverride, { BrowserStorageService } from 'vscode/service-override/storage'
3030
import getExtensionServiceOverride from 'vscode/service-override/extensions'
3131
import EditorWorker from 'monaco-editor/esm/vs/editor/editor.worker.js?worker'
3232
import TextMateWorker from 'vscode/workers/textMate.worker?worker'
@@ -56,8 +56,6 @@ window.MonacoEnvironment = {
5656
}
5757
}
5858

59-
const onStorageChange = new monaco.Emitter<IStorageItemsChangeEvent>()
60-
6159
// Override services
6260
await initializeMonacoService({
6361
...getExtensionServiceOverride(toWorkerConfig(ExtensionHostWorker)),
@@ -84,27 +82,12 @@ await initializeMonacoService({
8482
...getMarkersServiceOverride(),
8583
...getAccessibilityServiceOverride(),
8684
...getLanguageDetectionWorkerServiceOverride(),
87-
...getStorageServiceOverride({
88-
read (scope) {
89-
return new Map(Object.entries(JSON.parse(localStorage.getItem(`storage-${scope}`) ?? '{}')))
90-
},
91-
async write (scope, data) {
92-
localStorage.setItem(`storage-${scope}`, JSON.stringify(Object.fromEntries(data.entries())))
93-
},
94-
onDidChange: onStorageChange.event
95-
})
85+
...getStorageServiceOverride()
9686
})
9787
StandaloneServices.get(ILogService).setLevel(LogLevel.Off)
9888

99-
export function clearStorage (): void {
100-
const allKeys = new Set([StorageScope.APPLICATION, StorageScope.PROFILE, StorageScope.WORKSPACE].flatMap(scope => Object.keys(JSON.parse(localStorage.getItem(`storage-${scope}`) ?? '{}'))))
101-
localStorage.removeItem(`storage-${StorageScope.APPLICATION}`)
102-
localStorage.removeItem(`storage-${StorageScope.PROFILE}`)
103-
localStorage.removeItem(`storage-${StorageScope.WORKSPACE}`)
104-
onStorageChange.fire({
105-
deleted: allKeys,
106-
changed: new Map()
107-
})
89+
export async function clearStorage (): Promise<void> {
90+
await (await getService(IStorageService) as BrowserStorageService).clear()
10891
}
10992

11093
await initializeVscodeExtensions()

0 commit comments

Comments
 (0)