diff --git a/.node-version b/.node-version index e2228113dd09..442c7587a99a 100644 --- a/.node-version +++ b/.node-version @@ -1 +1 @@ -22.19.0 +22.20.0 diff --git a/lib/vscode b/lib/vscode index 7d842fb85a02..ac4cbdf48759 160000 --- a/lib/vscode +++ b/lib/vscode @@ -1 +1 @@ -Subproject commit 7d842fb85a0275a4a8e4d7e040d2625abbf7f084 +Subproject commit ac4cbdf48759c7d8c3eb91ffe6bb04316e263c57 diff --git a/patches/base-path.diff b/patches/base-path.diff index 5c6e5b8b1e31..e225437eb164 100644 --- a/patches/base-path.diff +++ b/patches/base-path.diff @@ -10,7 +10,7 @@ Index: code-server/lib/vscode/src/vs/base/common/network.ts =================================================================== --- code-server.orig/lib/vscode/src/vs/base/common/network.ts +++ code-server/lib/vscode/src/vs/base/common/network.ts -@@ -232,7 +232,9 @@ class RemoteAuthoritiesImpl { +@@ -237,7 +237,9 @@ class RemoteAuthoritiesImpl { return URI.from({ scheme: platform.isWeb ? this._preferredWebSchema : Schemas.vscodeRemoteResource, authority: `${host}:${port}`, @@ -99,7 +99,7 @@ Index: code-server/lib/vscode/src/vs/platform/remote/browser/browserSocketFactor =================================================================== --- code-server.orig/lib/vscode/src/vs/platform/remote/browser/browserSocketFactory.ts +++ code-server/lib/vscode/src/vs/platform/remote/browser/browserSocketFactory.ts -@@ -281,6 +281,7 @@ export class BrowserSocketFactory implem +@@ -282,6 +282,7 @@ export class BrowserSocketFactory implem connect({ host, port }: WebSocketRemoteConnection, path: string, query: string, debugLabel: string): Promise { return new Promise((resolve, reject) => { const webSocketSchema = (/^https:/.test(mainWindow.location.href) ? 'wss' : 'ws'); @@ -253,7 +253,7 @@ Index: code-server/lib/vscode/src/vs/code/browser/workbench/workbench.ts =================================================================== --- code-server.orig/lib/vscode/src/vs/code/browser/workbench/workbench.ts +++ code-server/lib/vscode/src/vs/code/browser/workbench/workbench.ts -@@ -338,7 +338,8 @@ class LocalStorageURLCallbackProvider ex +@@ -339,7 +339,8 @@ class LocalStorageURLCallbackProvider ex this.startListening(); } @@ -263,7 +263,7 @@ Index: code-server/lib/vscode/src/vs/code/browser/workbench/workbench.ts } private startListening(): void { -@@ -583,17 +584,6 @@ class WorkspaceProvider implements IWork +@@ -584,17 +585,6 @@ class WorkspaceProvider implements IWork } } @@ -281,7 +281,7 @@ Index: code-server/lib/vscode/src/vs/code/browser/workbench/workbench.ts (function () { // Find config by checking for DOM -@@ -602,8 +592,8 @@ function readCookie(name: string): strin +@@ -604,8 +594,8 @@ function readCookie(name: string): strin if (!configElement || !configElementAttribute) { throw new Error('Missing web configuration element'); } diff --git a/patches/clipboard.diff b/patches/clipboard.diff index ecf6a09e30f3..e39498a100e2 100644 --- a/patches/clipboard.diff +++ b/patches/clipboard.diff @@ -78,7 +78,7 @@ Index: code-server/lib/vscode/src/vs/platform/environment/common/argv.ts =================================================================== --- code-server.orig/lib/vscode/src/vs/platform/environment/common/argv.ts +++ code-server/lib/vscode/src/vs/platform/environment/common/argv.ts -@@ -136,6 +136,7 @@ export interface NativeParsedArgs { +@@ -137,6 +137,7 @@ export interface NativeParsedArgs { 'disable-chromium-sandbox'?: boolean; sandbox?: boolean; 'enable-coi'?: boolean; diff --git a/patches/external-file-actions.diff b/patches/external-file-actions.diff index ef92e1c46361..c09325780369 100644 --- a/patches/external-file-actions.diff +++ b/patches/external-file-actions.diff @@ -239,8 +239,8 @@ Index: code-server/lib/vscode/src/vs/workbench/services/dialogs/browser/simpleFi @IRemoteAgentService private readonly remoteAgentService: IRemoteAgentService, @IPathService protected readonly pathService: IPathService, @IKeybindingService private readonly keybindingService: IKeybindingService, -@@ -310,20 +310,22 @@ export class SimpleFileDialog extends Di - this.filePickBox.ignoreFocusOut = true; +@@ -311,20 +311,22 @@ export class SimpleFileDialog extends Di + this.filePickBox.placeholder = nls.localize('remoteFileDialog.placeholder', "Folder path"); this.filePickBox.ok = true; this.filePickBox.okLabel = typeof this.options.openLabel === 'string' ? this.options.openLabel : this.options.openLabel?.withoutMnemonic; - if ((this.scheme !== Schemas.file) && this.options && this.options.availableFileSystems && (this.options.availableFileSystems.length > 1) && (this.options.availableFileSystems.indexOf(Schemas.file) > -1)) { @@ -288,7 +288,7 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/files/browser/views/explo import { WorkbenchCompressibleAsyncDataTree } from '../../../../../platform/list/browser/listService.js'; import { ISearchService, QueryType, getExcludes, ISearchConfiguration, ISearchComplete, IFileQuery } from '../../../../services/search/common/search.js'; import { CancellationToken } from '../../../../../base/common/cancellation.js'; -@@ -1601,7 +1602,8 @@ export class FileDragAndDrop implements +@@ -1594,7 +1595,8 @@ export class FileDragAndDrop implements @IConfigurationService private configurationService: IConfigurationService, @IInstantiationService private instantiationService: IInstantiationService, @IWorkspaceEditingService private workspaceEditingService: IWorkspaceEditingService, @@ -298,7 +298,7 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/files/browser/views/explo ) { const updateDropEnablement = (e: IConfigurationChangeEvent | undefined) => { if (!e || e.affectsConfiguration('explorer.enableDragAndDrop')) { -@@ -1826,15 +1828,17 @@ export class FileDragAndDrop implements +@@ -1819,15 +1821,17 @@ export class FileDragAndDrop implements // External file DND (Import/Upload file) if (data instanceof NativeDragAndDropData) { diff --git a/patches/getting-started.diff b/patches/getting-started.diff index c5fd5d6ccbac..df82c64089e2 100644 --- a/patches/getting-started.diff +++ b/patches/getting-started.diff @@ -19,7 +19,7 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/welcomeGettingStarted/bro import { renderFormattedText } from '../../../../base/browser/formattedTextRenderer.js'; import { StandardKeyboardEvent } from '../../../../base/browser/keyboardEvent.js'; import { Button } from '../../../../base/browser/ui/button/button.js'; -@@ -54,7 +54,7 @@ import { IRecentFolder, IRecentWorkspace +@@ -53,7 +53,7 @@ import { IRecentFolder, IRecentWorkspace import { OpenRecentAction } from '../../../browser/actions/windowActions.js'; import { OpenFileFolderAction, OpenFolderAction, OpenFolderViaWorkspaceAction } from '../../../browser/actions/workspaceActions.js'; import { EditorPane } from '../../../browser/parts/editor/editorPane.js'; @@ -28,7 +28,7 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/welcomeGettingStarted/bro import { IEditorOpenContext, IEditorSerializer } from '../../../common/editor.js'; import { IWebviewElement, IWebviewService } from '../../webview/browser/webview.js'; import './gettingStartedColors.js'; -@@ -872,6 +872,72 @@ export class GettingStartedPage extends +@@ -902,6 +902,72 @@ export class GettingStartedPage extends $('p.subtitle.description', {}, localize({ key: 'gettingStarted.editingEvolved', comment: ['Shown as subtitle on the Welcome page.'] }, "Editing evolved")) ); @@ -101,7 +101,7 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/welcomeGettingStarted/bro const leftColumn = $('.categories-column.categories-column-left', {},); const rightColumn = $('.categories-column.categories-column-right', {},); -@@ -907,6 +973,9 @@ export class GettingStartedPage extends +@@ -937,6 +1003,9 @@ export class GettingStartedPage extends recentList.setLimit(5); reset(leftColumn, startList.getDomElement(), recentList.getDomElement()); } diff --git a/patches/integration.diff b/patches/integration.diff index 553fa4f4dd10..3824e0c75fb2 100644 --- a/patches/integration.diff +++ b/patches/integration.diff @@ -265,7 +265,7 @@ Index: code-server/lib/vscode/src/server-main.ts +++ code-server/lib/vscode/src/server-main.ts @@ -22,6 +22,9 @@ import { IServerAPI } from './vs/server/ perf.mark('code/server/start'); - (globalThis as any).vscodeServerStartTime = performance.now(); + (globalThis as { vscodeServerStartTime?: number }).vscodeServerStartTime = performance.now(); +// This is not indented to make the diff less noisy. We need to move this out +// of the top-level so it will not run immediately and we can control the start. @@ -279,7 +279,7 @@ Index: code-server/lib/vscode/src/server-main.ts } +} - function sanitizeStringArg(val: any): string | undefined { + function sanitizeStringArg(val: unknown): string | undefined { if (Array.isArray(val)) { // if an argument is passed multiple times, minimist creates an array @@ -283,3 +287,22 @@ function prompt(question: string): Promi }); diff --git a/patches/local-storage.diff b/patches/local-storage.diff index 081c9c503020..097be4d692d6 100644 --- a/patches/local-storage.diff +++ b/patches/local-storage.diff @@ -32,7 +32,7 @@ Index: code-server/lib/vscode/src/vs/workbench/browser/web.api.ts +++ code-server/lib/vscode/src/vs/workbench/browser/web.api.ts @@ -298,6 +298,11 @@ export interface IWorkbenchConstructionO */ - readonly configurationDefaults?: Record; + readonly configurationDefaults?: Record; + /** + * Path to the user data directory. @@ -79,7 +79,7 @@ Index: code-server/lib/vscode/src/vs/workbench/services/configuration/browser/co }); })); -@@ -555,6 +557,12 @@ export class WorkspaceService extends Di +@@ -556,6 +558,12 @@ export class WorkspaceService extends Di previousFolders = this.workspace.folders; this.workspace.update(workspace); } else { diff --git a/patches/proxy-uri.diff b/patches/proxy-uri.diff index 96ad99b9a104..c2a8fa621e70 100644 --- a/patches/proxy-uri.diff +++ b/patches/proxy-uri.diff @@ -83,7 +83,7 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/terminal/common/terminalE =================================================================== --- code-server.orig/lib/vscode/src/vs/workbench/contrib/terminal/common/terminalEnvironment.ts +++ code-server/lib/vscode/src/vs/workbench/contrib/terminal/common/terminalEnvironment.ts -@@ -291,7 +291,7 @@ export async function createTerminalEnvi +@@ -292,7 +292,7 @@ export async function createTerminalEnvi // Sanitize the environment, removing any undesirable VS Code and Electron environment // variables @@ -104,7 +104,7 @@ Index: code-server/lib/vscode/src/vs/code/browser/workbench/workbench.ts import type { IURLCallbackProvider } from '../../../workbench/services/url/browser/urlService.js'; import { create } from '../../../workbench/workbench.web.main.internal.js'; -@@ -604,6 +605,39 @@ class WorkspaceProvider implements IWork +@@ -606,6 +607,39 @@ class WorkspaceProvider implements IWork settingsSyncOptions: config.settingsSyncOptions ? { enabled: config.settingsSyncOptions.enabled, } : undefined, workspaceProvider: WorkspaceProvider.create(config), urlCallbackProvider: new LocalStorageURLCallbackProvider(config.callbackRoute), diff --git a/patches/store-socket.diff b/patches/store-socket.diff index ca12a0bdbfbf..10061e2011c0 100644 --- a/patches/store-socket.diff +++ b/patches/store-socket.diff @@ -96,7 +96,7 @@ Index: code-server/lib/vscode/src/vs/workbench/api/node/extensionHostProcess.ts import minimist from 'minimist'; import * as nativeWatchdog from 'native-watchdog'; import * as net from 'net'; -@@ -449,7 +450,28 @@ async function startExtensionHostProcess +@@ -451,7 +452,28 @@ async function startExtensionHostProcess ); // rewrite onTerminate-function to be a proper shutdown