Skip to content

Commit a8a6675

Browse files
committed
debt - remove AMD support of VSCode for web
1 parent 8244c9f commit a8a6675

File tree

10 files changed

+236
-388
lines changed

10 files changed

+236
-388
lines changed

.vscode/settings.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@
107107
"@xterm/headless",
108108
"node-pty",
109109
"vscode-notebook-renderer",
110+
"src/vs/workbench/workbench.web.main.ts",
110111
"src/vs/workbench/workbench.web.main.internal.ts"
111112
],
112113

build/gulpfile.vscode.web.ts

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,6 @@ const vscodeWebEntryPoints = [
8282
buildfile.workerBackgroundTokenization,
8383
buildfile.keyboardMaps,
8484
buildfile.workbenchWeb,
85-
buildfile.entrypoint('vs/workbench/workbench.web.main.internal') // TODO@esm remove line when we stop supporting web-amd-esm-bridge
8685
].flat();
8786

8887
/**
@@ -143,20 +142,20 @@ function packageTask(sourceFolderName: string, destinationFolderName: string) {
143142

144143
const extensions = gulp.src('.build/web/extensions/**', { base: '.build/web', dot: true });
145144

146-
const loader = gulp.src('build/loader.min', { base: 'build', dot: true }).pipe(rename('out/vs/loader.js')); // TODO@esm remove line when we stop supporting web-amd-esm-bridge
147-
148-
const sources = es.merge(src, extensions, loader)
145+
const sources = es.merge(src, extensions)
149146
.pipe(filter(['**', '!**/*.{js,css}.map'], { dot: true }))
150-
// TODO@esm remove me once we stop supporting our web-esm-bridge
151147
.pipe(es.through(function (file) {
152-
if (file.relative === 'out/vs/workbench/workbench.web.main.internal.css') {
148+
// Our embedders expect a copy of `workbench.web.main.js` named `workbench.web.main.internal.js`
149+
// so we provide it here and remove the original file from the stream because it is not needed.
150+
if (file.relative === 'out/vs/workbench/workbench.web.main.js') {
153151
this.emit('data', new VinylFile({
154152
contents: file.contents,
155-
path: file.path.replace('workbench.web.main.internal.css', 'workbench.web.main.css'),
153+
path: file.path.replace('workbench.web.main.js', 'workbench.web.main.internal.js'),
156154
base: file.base
157155
}));
156+
} else {
157+
this.emit('data', file);
158158
}
159-
this.emit('data', file);
160159
}));
161160

162161
const name = product.nameShort;

build/lib/optimize.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ function bundleESMTask(opts: IBundleESMTaskOpts): NodeJS.ReadWriteStream {
152152
'.sh': 'file',
153153
},
154154
assetNames: 'media/[name]', // moves media assets into a sub-folder "media"
155-
banner: entryPoint.name === 'vs/workbench/workbench.web.main' ? undefined : banner, // TODO@esm remove line when we stop supporting web-amd-esm-bridge
155+
banner,
156156
entryPoints: [
157157
{
158158
in: path.join(REPO_ROOT_PATH, opts.src, `${entryPoint.name}.js`),

eslint.config.js

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -771,7 +771,6 @@ export default tseslint.config(
771771
'src/vs/workbench/test/browser/workbenchTestServices.ts',
772772
'src/vs/workbench/test/common/workbenchTestServices.ts',
773773
'src/vs/workbench/test/electron-browser/workbenchTestServices.ts',
774-
'src/vs/workbench/workbench.web.main.internal.ts',
775774
'src/vs/workbench/workbench.web.main.ts',
776775
// Server
777776
'src/vs/server/node/remoteAgentEnvironmentImpl.ts',
@@ -1850,17 +1849,7 @@ export default tseslint.config(
18501849
'target': 'src/vs/workbench/workbench.web.main.internal.ts',
18511850
'layer': 'browser',
18521851
'restrictions': [
1853-
'vs/base/~',
1854-
'vs/base/parts/*/~',
1855-
'vs/platform/*/~',
1856-
'vs/editor/~',
1857-
'vs/editor/contrib/*/~',
1858-
'vs/editor/editor.all.js',
1859-
'vs/workbench/~',
1860-
'vs/workbench/api/~',
1861-
'vs/workbench/services/*/~',
1862-
'vs/workbench/contrib/*/~',
1863-
'vs/workbench/workbench.common.main.js'
1852+
'vs/workbench/workbench.web.main.js'
18641853
]
18651854
},
18661855
{
@@ -1887,7 +1876,7 @@ export default tseslint.config(
18871876
]
18881877
},
18891878
{
1890-
'target': 'src/vs/{loader.d.ts,monaco.d.ts,nls.ts,nls.messages.ts}',
1879+
'target': 'src/vs/{loader.d.ts,monaco.d.ts,nls.ts}',
18911880
'restrictions': []
18921881
},
18931882
{

src/vs/code/browser/workbench/workbench.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import { isFolderToOpen, isWorkspaceToOpen } from '../../../platform/window/comm
2121
import type { IWorkbenchConstructionOptions, IWorkspace, IWorkspaceProvider } from '../../../workbench/browser/web.api.js';
2222
import { AuthenticationSessionInfo } from '../../../workbench/services/authentication/browser/authenticationService.js';
2323
import type { IURLCallbackProvider } from '../../../workbench/services/url/browser/urlService.js';
24-
import { create } from '../../../workbench/workbench.web.main.internal.js';
24+
import { create } from '../../../workbench/workbench.web.main.js';
2525

2626
interface ISecretStorageCrypto {
2727
seal(data: string): Promise<string>;

src/vs/nls.messages.ts

Lines changed: 0 additions & 19 deletions
This file was deleted.

src/vs/nls.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,13 @@
33
* Licensed under the MIT License. See License.txt in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6-
// eslint-disable-next-line local/code-import-patterns
7-
import { getNLSLanguage, getNLSMessages } from './nls.messages.js';
8-
// eslint-disable-next-line local/code-import-patterns
9-
export { getNLSLanguage, getNLSMessages } from './nls.messages.js';
6+
export function getNLSMessages(): string[] {
7+
return globalThis._VSCODE_NLS_MESSAGES;
8+
}
9+
10+
export function getNLSLanguage(): string | undefined {
11+
return globalThis._VSCODE_NLS_LANGUAGE;
12+
}
1013

1114
declare const document: { location?: { hash?: string } } | undefined;
1215
const isPseudo = getNLSLanguage() === 'pseudo' || (typeof document !== 'undefined' && document.location && typeof document.location.hash === 'string' && document.location.hash.indexOf('pseudo=true') >= 0);

src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ export class ChatStatusBarEntry extends Disposable implements IWorkbenchContribu
8383
this._register(this.editorService.onDidActiveEditorChange(() => this.onDidActiveEditorChange()));
8484

8585
this._register(this.configurationService.onDidChangeConfiguration(e => {
86-
if (e.affectsConfiguration(product.defaultChatAgent.completionsEnablementSetting)) {
86+
if (e.affectsConfiguration(product.defaultChatAgent?.completionsEnablementSetting)) {
8787
this.update();
8888
}
8989
}));

src/vs/workbench/workbench.web.main.internal.ts

Lines changed: 1 addition & 240 deletions
Original file line numberDiff line numberDiff line change
@@ -3,180 +3,6 @@
33
* Licensed under the MIT License. See License.txt in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6-
7-
// #######################################################################
8-
// ### ###
9-
// ### !!! PLEASE ADD COMMON IMPORTS INTO WORKBENCH.COMMON.MAIN.TS !!! ###
10-
// ### ###
11-
// #######################################################################
12-
13-
14-
//#region --- workbench common
15-
16-
import './workbench.common.main.js';
17-
18-
//#endregion
19-
20-
21-
//#region --- workbench parts
22-
23-
import './browser/parts/dialogs/dialog.web.contribution.js';
24-
25-
//#endregion
26-
27-
28-
//#region --- workbench (web main)
29-
30-
import './browser/web.main.js';
31-
32-
//#endregion
33-
34-
35-
//#region --- workbench services
36-
37-
import './services/integrity/browser/integrityService.js';
38-
import './services/search/browser/searchService.js';
39-
import './services/textfile/browser/browserTextFileService.js';
40-
import './services/keybinding/browser/keyboardLayoutService.js';
41-
import './services/extensions/browser/extensionService.js';
42-
import './services/extensionManagement/browser/extensionsProfileScannerService.js';
43-
import './services/extensions/browser/extensionsScannerService.js';
44-
import './services/extensionManagement/browser/webExtensionsScannerService.js';
45-
import './services/extensionManagement/common/extensionManagementServerService.js';
46-
import './services/mcp/browser/mcpWorkbenchManagementService.js';
47-
import './services/extensionManagement/browser/extensionGalleryManifestService.js';
48-
import './services/telemetry/browser/telemetryService.js';
49-
import './services/url/browser/urlService.js';
50-
import './services/update/browser/updateService.js';
51-
import './services/workspaces/browser/workspacesService.js';
52-
import './services/workspaces/browser/workspaceEditingService.js';
53-
import './services/dialogs/browser/fileDialogService.js';
54-
import './services/host/browser/browserHostService.js';
55-
import './services/lifecycle/browser/lifecycleService.js';
56-
import './services/clipboard/browser/clipboardService.js';
57-
import './services/localization/browser/localeService.js';
58-
import './services/path/browser/pathService.js';
59-
import './services/themes/browser/browserHostColorSchemeService.js';
60-
import './services/encryption/browser/encryptionService.js';
61-
import './services/imageResize/browser/imageResizeService.js';
62-
import './services/secrets/browser/secretStorageService.js';
63-
import './services/workingCopy/browser/workingCopyBackupService.js';
64-
import './services/tunnel/browser/tunnelService.js';
65-
import './services/files/browser/elevatedFileService.js';
66-
import './services/workingCopy/browser/workingCopyHistoryService.js';
67-
import './services/userDataSync/browser/webUserDataSyncEnablementService.js';
68-
import './services/userDataProfile/browser/userDataProfileStorageService.js';
69-
import './services/configurationResolver/browser/configurationResolverService.js';
70-
import '../platform/extensionResourceLoader/browser/extensionResourceLoaderService.js';
71-
import './services/auxiliaryWindow/browser/auxiliaryWindowService.js';
72-
import './services/browserElements/browser/webBrowserElementsService.js';
73-
74-
import { InstantiationType, registerSingleton } from '../platform/instantiation/common/extensions.js';
75-
import { IAccessibilityService } from '../platform/accessibility/common/accessibility.js';
76-
import { IContextMenuService } from '../platform/contextview/browser/contextView.js';
77-
import { ContextMenuService } from '../platform/contextview/browser/contextMenuService.js';
78-
import { IExtensionTipsService } from '../platform/extensionManagement/common/extensionManagement.js';
79-
import { ExtensionTipsService } from '../platform/extensionManagement/common/extensionTipsService.js';
80-
import { IWorkbenchExtensionManagementService } from './services/extensionManagement/common/extensionManagement.js';
81-
import { ExtensionManagementService } from './services/extensionManagement/common/extensionManagementService.js';
82-
import { LogLevel } from '../platform/log/common/log.js';
83-
import { UserDataSyncMachinesService, IUserDataSyncMachinesService } from '../platform/userDataSync/common/userDataSyncMachines.js';
84-
import { IUserDataSyncStoreService, IUserDataSyncService, IUserDataAutoSyncService, IUserDataSyncLocalStoreService, IUserDataSyncResourceProviderService } from '../platform/userDataSync/common/userDataSync.js';
85-
import { UserDataSyncStoreService } from '../platform/userDataSync/common/userDataSyncStoreService.js';
86-
import { UserDataSyncLocalStoreService } from '../platform/userDataSync/common/userDataSyncLocalStoreService.js';
87-
import { UserDataSyncService } from '../platform/userDataSync/common/userDataSyncService.js';
88-
import { IUserDataSyncAccountService, UserDataSyncAccountService } from '../platform/userDataSync/common/userDataSyncAccount.js';
89-
import { UserDataAutoSyncService } from '../platform/userDataSync/common/userDataAutoSyncService.js';
90-
import { AccessibilityService } from '../platform/accessibility/browser/accessibilityService.js';
91-
import { ICustomEndpointTelemetryService } from '../platform/telemetry/common/telemetry.js';
92-
import { NullEndpointTelemetryService } from '../platform/telemetry/common/telemetryUtils.js';
93-
import { ITitleService } from './services/title/browser/titleService.js';
94-
import { BrowserTitleService } from './browser/parts/titlebar/titlebarPart.js';
95-
import { ITimerService, TimerService } from './services/timer/browser/timerService.js';
96-
import { IDiagnosticsService, NullDiagnosticsService } from '../platform/diagnostics/common/diagnostics.js';
97-
import { ILanguagePackService } from '../platform/languagePacks/common/languagePacks.js';
98-
import { WebLanguagePacksService } from '../platform/languagePacks/browser/languagePacks.js';
99-
import { IWebContentExtractorService, NullWebContentExtractorService, ISharedWebContentExtractorService, NullSharedWebContentExtractorService } from '../platform/webContentExtractor/common/webContentExtractor.js';
100-
import { IMcpGalleryManifestService } from '../platform/mcp/common/mcpGalleryManifest.js';
101-
import { WorkbenchMcpGalleryManifestService } from './services/mcp/browser/mcpGalleryManifestService.js';
102-
103-
registerSingleton(IWorkbenchExtensionManagementService, ExtensionManagementService, InstantiationType.Delayed);
104-
registerSingleton(IAccessibilityService, AccessibilityService, InstantiationType.Delayed);
105-
registerSingleton(IContextMenuService, ContextMenuService, InstantiationType.Delayed);
106-
registerSingleton(IUserDataSyncStoreService, UserDataSyncStoreService, InstantiationType.Delayed);
107-
registerSingleton(IUserDataSyncMachinesService, UserDataSyncMachinesService, InstantiationType.Delayed);
108-
registerSingleton(IUserDataSyncLocalStoreService, UserDataSyncLocalStoreService, InstantiationType.Delayed);
109-
registerSingleton(IUserDataSyncAccountService, UserDataSyncAccountService, InstantiationType.Delayed);
110-
registerSingleton(IUserDataSyncService, UserDataSyncService, InstantiationType.Delayed);
111-
registerSingleton(IUserDataSyncResourceProviderService, UserDataSyncResourceProviderService, InstantiationType.Delayed);
112-
registerSingleton(IUserDataAutoSyncService, UserDataAutoSyncService, InstantiationType.Eager /* Eager to start auto sync */);
113-
registerSingleton(ITitleService, BrowserTitleService, InstantiationType.Eager);
114-
registerSingleton(IExtensionTipsService, ExtensionTipsService, InstantiationType.Delayed);
115-
registerSingleton(ITimerService, TimerService, InstantiationType.Delayed);
116-
registerSingleton(ICustomEndpointTelemetryService, NullEndpointTelemetryService, InstantiationType.Delayed);
117-
registerSingleton(IDiagnosticsService, NullDiagnosticsService, InstantiationType.Delayed);
118-
registerSingleton(ILanguagePackService, WebLanguagePacksService, InstantiationType.Delayed);
119-
registerSingleton(IWebContentExtractorService, NullWebContentExtractorService, InstantiationType.Delayed);
120-
registerSingleton(ISharedWebContentExtractorService, NullSharedWebContentExtractorService, InstantiationType.Delayed);
121-
registerSingleton(IMcpGalleryManifestService, WorkbenchMcpGalleryManifestService, InstantiationType.Delayed);
122-
123-
//#endregion
124-
125-
126-
//#region --- workbench contributions
127-
128-
// Logs
129-
import './contrib/logs/browser/logs.contribution.js';
130-
131-
// Localization
132-
import './contrib/localization/browser/localization.contribution.js';
133-
134-
// Performance
135-
import './contrib/performance/browser/performance.web.contribution.js';
136-
137-
// Preferences
138-
import './contrib/preferences/browser/keyboardLayoutPicker.js';
139-
140-
// Debug
141-
import './contrib/debug/browser/extensionHostDebugService.js';
142-
143-
// Welcome Banner
144-
import './contrib/welcomeBanner/browser/welcomeBanner.contribution.js';
145-
146-
// Webview
147-
import './contrib/webview/browser/webview.web.contribution.js';
148-
149-
// Extensions Management
150-
import './contrib/extensions/browser/extensions.web.contribution.js';
151-
152-
// Terminal
153-
import './contrib/terminal/browser/terminal.web.contribution.js';
154-
import './contrib/externalTerminal/browser/externalTerminal.contribution.js';
155-
import './contrib/terminal/browser/terminalInstanceService.js';
156-
157-
// Tasks
158-
import './contrib/tasks/browser/taskService.js';
159-
160-
// Tags
161-
import './contrib/tags/browser/workspaceTagsService.js';
162-
163-
// Issues
164-
import './contrib/issue/browser/issue.contribution.js';
165-
166-
// Splash
167-
import './contrib/splash/browser/splash.contribution.js';
168-
169-
// Remote Start Entry for the Web
170-
import './contrib/remote/browser/remoteStartEntry.contribution.js';
171-
172-
// Process Explorer
173-
import './contrib/processExplorer/browser/processExplorer.web.contribution.js';
174-
175-
//#endregion
176-
177-
178-
//#region --- export workbench factory
179-
1806
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1817
//
1828
// Do NOT change these exports in a way that something is removed unless
@@ -185,69 +11,4 @@ import './contrib/processExplorer/browser/processExplorer.web.contribution.js';
18511
//
18612
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
18713

188-
import { create, commands, env, window, workspace, logger } from './browser/web.factory.js';
189-
import { Menu } from './browser/web.api.js';
190-
import { URI } from '../base/common/uri.js';
191-
import { Event, Emitter } from '../base/common/event.js';
192-
import { Disposable } from '../base/common/lifecycle.js';
193-
import { GroupOrientation } from './services/editor/common/editorGroupsService.js';
194-
import { UserDataSyncResourceProviderService } from '../platform/userDataSync/common/userDataSyncResourceProvider.js';
195-
import { RemoteAuthorityResolverError, RemoteAuthorityResolverErrorCode } from '../platform/remote/common/remoteAuthorityResolver.js';
196-
197-
// TODO@esm remove me once we stop supporting our web-esm-bridge
198-
// eslint-disable-next-line local/code-no-any-casts
199-
if ((globalThis as any).__VSCODE_WEB_ESM_PROMISE) {
200-
const exports = {
201-
202-
// Factory
203-
create: create,
204-
205-
// Basic Types
206-
URI: URI,
207-
Event: Event,
208-
Emitter: Emitter,
209-
Disposable: Disposable,
210-
// GroupOrientation,
211-
LogLevel: LogLevel,
212-
RemoteAuthorityResolverError: RemoteAuthorityResolverError,
213-
RemoteAuthorityResolverErrorCode: RemoteAuthorityResolverErrorCode,
214-
215-
// Facade API
216-
env: env,
217-
window: window,
218-
workspace: workspace,
219-
commands: commands,
220-
logger: logger,
221-
Menu: Menu
222-
};
223-
// eslint-disable-next-line local/code-no-any-casts
224-
(globalThis as any).__VSCODE_WEB_ESM_PROMISE(exports);
225-
// eslint-disable-next-line local/code-no-any-casts
226-
delete (globalThis as any).__VSCODE_WEB_ESM_PROMISE;
227-
}
228-
229-
export {
230-
231-
// Factory
232-
create,
233-
234-
// Basic Types
235-
URI,
236-
Event,
237-
Emitter,
238-
Disposable,
239-
GroupOrientation,
240-
LogLevel,
241-
RemoteAuthorityResolverError,
242-
RemoteAuthorityResolverErrorCode,
243-
244-
// Facade API
245-
env,
246-
window,
247-
workspace,
248-
commands,
249-
logger,
250-
Menu
251-
};
252-
253-
//#endregion
14+
export * from './workbench.web.main.js';

0 commit comments

Comments
 (0)