|
3 | 3 | * Licensed under the MIT License. See LICENSE in the package root for license information. |
4 | 4 | * ------------------------------------------------------------------------------------------ */ |
5 | 5 |
|
6 | | -import * as vscode from 'vscode'; |
7 | 6 | import { LogLevel } from '@codingame/monaco-vscode-api'; |
8 | | -import { RegisteredFileSystemProvider, registerFileSystemOverlay, RegisteredMemoryFile } from '@codingame/monaco-vscode-files-service-override'; |
| 7 | +import getEnvironmentServiceOverride from '@codingame/monaco-vscode-environment-service-override'; |
| 8 | +import getExplorerServiceOverride from '@codingame/monaco-vscode-explorer-service-override'; |
| 9 | +import { InMemoryFileSystemProvider, registerFileSystemOverlay, type IFileWriteOptions } from '@codingame/monaco-vscode-files-service-override'; |
9 | 10 | import getKeybindingsServiceOverride from '@codingame/monaco-vscode-keybindings-service-override'; |
10 | 11 | import getLifecycleServiceOverride from '@codingame/monaco-vscode-lifecycle-service-override'; |
11 | 12 | import getLocalizationServiceOverride from '@codingame/monaco-vscode-localization-service-override'; |
12 | | -import getBannerServiceOverride from '@codingame/monaco-vscode-view-banner-service-override'; |
13 | | -import getStatusBarServiceOverride from '@codingame/monaco-vscode-view-status-bar-service-override'; |
14 | | -import getTitleBarServiceOverride from '@codingame/monaco-vscode-view-title-bar-service-override'; |
15 | | -import getExplorerServiceOverride from '@codingame/monaco-vscode-explorer-service-override'; |
16 | 13 | import getRemoteAgentServiceOverride from '@codingame/monaco-vscode-remote-agent-service-override'; |
17 | | -import getEnvironmentServiceOverride from '@codingame/monaco-vscode-environment-service-override'; |
| 14 | +import getSearchServiceOverride from '@codingame/monaco-vscode-search-service-override'; |
18 | 15 | import getSecretStorageServiceOverride from '@codingame/monaco-vscode-secret-storage-service-override'; |
19 | 16 | import getStorageServiceOverride from '@codingame/monaco-vscode-storage-service-override'; |
20 | | -import getSearchServiceOverride from '@codingame/monaco-vscode-search-service-override'; |
| 17 | +import getBannerServiceOverride from '@codingame/monaco-vscode-view-banner-service-override'; |
| 18 | +import getStatusBarServiceOverride from '@codingame/monaco-vscode-view-status-bar-service-override'; |
| 19 | +import getTitleBarServiceOverride from '@codingame/monaco-vscode-view-title-bar-service-override'; |
| 20 | +import * as vscode from 'vscode'; |
21 | 21 |
|
22 | 22 | // this is required syntax highlighting |
| 23 | +import '@codingame/monaco-vscode-search-result-default-extension'; |
23 | 24 | import '@codingame/monaco-vscode-typescript-basics-default-extension'; |
24 | 25 | import '@codingame/monaco-vscode-typescript-language-features-default-extension'; |
25 | | -import '@codingame/monaco-vscode-search-result-default-extension'; |
26 | 26 |
|
27 | 27 | import '../../resources/vsix/open-collaboration-tools.vsix'; |
28 | 28 |
|
29 | | -import { createDefaultLocaleConfiguration } from 'monaco-languageclient/vscode/services'; |
| 29 | +import type { WrapperConfig } from 'monaco-editor-wrapper'; |
30 | 30 | import { defaultHtmlAugmentationInstructions, defaultViewsInit } from 'monaco-editor-wrapper/vscode/services'; |
31 | 31 | import { configureDefaultWorkerFactory } from 'monaco-editor-wrapper/workers/workerLoaders'; |
32 | | -import { createDefaultWorkspaceFile } from '../common/client/utils.js'; |
| 32 | +import { createDefaultLocaleConfiguration } from 'monaco-languageclient/vscode/services'; |
33 | 33 | import helloTsCode from '../../resources/appPlayground/hello.ts?raw'; |
34 | 34 | import testerTsCode from '../../resources/appPlayground/tester.ts?raw'; |
35 | | -import type { WrapperConfig } from 'monaco-editor-wrapper'; |
| 35 | +import { createDefaultWorkspaceContent } from '../common/client/utils.js'; |
36 | 36 |
|
37 | 37 | export type ConfigResult = { |
38 | 38 | wrapperConfig: WrapperConfig |
39 | | - workspaceFile: vscode.Uri; |
| 39 | + workspaceFileUri: vscode.Uri; |
40 | 40 | helloTsUri: vscode.Uri; |
41 | 41 | testerTsUri: vscode.Uri; |
42 | 42 | }; |
43 | 43 |
|
44 | | -export const configure = (htmlContainer?: HTMLElement): ConfigResult => { |
45 | | - const workspaceFile = vscode.Uri.file('/workspace/.vscode/workspace.code-workspace'); |
| 44 | +export const configure = async (htmlContainer?: HTMLElement): Promise<ConfigResult> => { |
| 45 | + const workspaceFileUri = vscode.Uri.file('/workspace.code-workspace'); |
46 | 46 |
|
47 | 47 | const wrapperConfig: WrapperConfig = { |
48 | 48 | $type: 'extended', |
@@ -84,7 +84,7 @@ export const configure = (htmlContainer?: HTMLElement): ConfigResult => { |
84 | 84 | return true; |
85 | 85 | }, |
86 | 86 | workspace: { |
87 | | - workspaceUri: workspaceFile |
| 87 | + workspaceUri: workspaceFileUri |
88 | 88 | } |
89 | 89 | }, |
90 | 90 | configurationDefaults: { |
@@ -122,17 +122,27 @@ export const configure = (htmlContainer?: HTMLElement): ConfigResult => { |
122 | 122 | } |
123 | 123 | }; |
124 | 124 |
|
| 125 | + const workspaceUri = vscode.Uri.file('/workspace'); |
125 | 126 | const helloTsUri = vscode.Uri.file('/workspace/hello.ts'); |
126 | 127 | const testerTsUri = vscode.Uri.file('/workspace/tester.ts'); |
127 | | - const fileSystemProvider = new RegisteredFileSystemProvider(false); |
128 | | - fileSystemProvider.registerFile(new RegisteredMemoryFile(helloTsUri, helloTsCode)); |
129 | | - fileSystemProvider.registerFile(new RegisteredMemoryFile(testerTsUri, testerTsCode)); |
130 | | - fileSystemProvider.registerFile(createDefaultWorkspaceFile(workspaceFile, '/workspace')); |
| 128 | + const fileSystemProvider = new InMemoryFileSystemProvider(); |
| 129 | + const textEncoder = new TextEncoder(); |
| 130 | + |
| 131 | + const options: IFileWriteOptions = { |
| 132 | + atomic: false, |
| 133 | + unlock: false, |
| 134 | + create: true, |
| 135 | + overwrite: true |
| 136 | + }; |
| 137 | + await fileSystemProvider.mkdir(workspaceUri); |
| 138 | + await fileSystemProvider.writeFile(helloTsUri, textEncoder.encode(helloTsCode), options); |
| 139 | + await fileSystemProvider.writeFile(testerTsUri, textEncoder.encode(testerTsCode), options); |
| 140 | + await fileSystemProvider.writeFile(workspaceFileUri, textEncoder.encode(createDefaultWorkspaceContent('/workspace')), options); |
131 | 141 | registerFileSystemOverlay(1, fileSystemProvider); |
132 | 142 |
|
133 | 143 | return { |
134 | 144 | wrapperConfig, |
135 | | - workspaceFile, |
| 145 | + workspaceFileUri, |
136 | 146 | helloTsUri, |
137 | 147 | testerTsUri |
138 | 148 | }; |
|
0 commit comments