@@ -1267,10 +1267,10 @@ index 0000000000..56331ff1fc
12671267+ require('../../bootstrap-amd').load('vs/server/entry');
12681268diff --git a/src/vs/server/ipc.d.ts b/src/vs/server/ipc.d.ts
12691269new file mode 100644
1270- index 0000000000..7e1cd270c8
1270+ index 0000000000..16ed214d94
12711271--- /dev/null
12721272+++ b/src/vs/server/ipc.d.ts
1273- @@ -0,0 +1,115 @@
1273+ @@ -0,0 +1,119 @@
12741274+ /**
12751275+ * External interfaces for integration into code-server over IPC. No vs imports
12761276+ * should be made in this file.
@@ -1319,6 +1319,7 @@ index 0000000000..7e1cd270c8
13191319+ export interface Args {
13201320+ 'user-data-dir'?: string;
13211321+
1322+ + 'enable-proposed-api'?: string[];
13221323+ 'extensions-dir'?: string;
13231324+ 'builtin-extensions-dir'?: string;
13241325+ 'extra-extensions-dir'?: string[];
@@ -1366,7 +1367,10 @@ index 0000000000..7e1cd270c8
13661367+ readonly workspaceUri?: UriComponents;
13671368+ readonly logLevel?: number;
13681369+ readonly workspaceProvider?: {
1369- + payload: [["userDataPath", string]];
1370+ + payload: [
1371+ + ["userDataPath", string],
1372+ + ["enableProposedApi", string],
1373+ + ];
13701374+ };
13711375+ };
13721376+ readonly remoteUserDataUri: UriComponents;
@@ -2475,10 +2479,10 @@ index 0000000000..3c74512192
24752479+ }
24762480diff --git a/src/vs/server/node/server.ts b/src/vs/server/node/server.ts
24772481new file mode 100644
2478- index 0000000000..f2c16b9f81
2482+ index 0000000000..4b88fedb2f
24792483--- /dev/null
24802484+++ b/src/vs/server/node/server.ts
2481- @@ -0,0 +1,282 @@
2485+ @@ -0,0 +1,285 @@
24822486+ import * as fs from 'fs';
24832487+ import * as net from 'net';
24842488+ import * as path from 'path';
@@ -2578,7 +2582,10 @@ index 0000000000..f2c16b9f81
25782582+ remoteAuthority: options.remoteAuthority,
25792583+ logLevel: getLogLevel(environment),
25802584+ workspaceProvider: {
2581- + payload: [["userDataPath", environment.userDataPath]],
2585+ + payload: [
2586+ + ["userDataPath", environment.userDataPath],
2587+ + ["enableProposedApi", JSON.stringify(options.args["enable-proposed-api"] || [])]
2588+ + ],
25822589+ },
25832590+ },
25842591+ remoteUserDataUri: transformer.transformOutgoing(URI.file(environment.userDataPath)),
@@ -3073,7 +3080,7 @@ index 6e3182a696..7df85da165 100644
30733080 };
30743081
30753082diff --git a/src/vs/workbench/services/environment/browser/environmentService.ts b/src/vs/workbench/services/environment/browser/environmentService.ts
3076- index ba2701ec54..efea3bd5bc 100644
3083+ index ba2701ec54..4d4aaa6958 100644
30773084--- a/src/vs/workbench/services/environment/browser/environmentService.ts
30783085+++ b/src/vs/workbench/services/environment/browser/environmentService.ts
30793086@@ -121,8 +121,18 @@ export class BrowserWorkbenchEnvironmentService implements IWorkbenchEnvironment
@@ -3096,6 +3103,20 @@ index ba2701ec54..efea3bd5bc 100644
30963103
30973104 @memoize
30983105 get settingsResource(): URI { return joinPath(this.userRoamingDataHome, 'settings.json'); }
3106+ @@ -284,7 +294,12 @@ export class BrowserWorkbenchEnvironmentService implements IWorkbenchEnvironment
3107+ extensionHostDebugEnvironment.params.port = parseInt(value);
3108+ break;
3109+ case 'enableProposedApi':
3110+ - extensionHostDebugEnvironment.extensionEnabledProposedApi = [];
3111+ + try {
3112+ + extensionHostDebugEnvironment.extensionEnabledProposedApi = JSON.parse(value);
3113+ + } catch (error) {
3114+ + console.error(error);
3115+ + extensionHostDebugEnvironment.extensionEnabledProposedApi = [];
3116+ + }
3117+ break;
3118+ }
3119+ }
30993120diff --git a/src/vs/workbench/services/extensionManagement/common/extensionEnablementService.ts b/src/vs/workbench/services/extensionManagement/common/extensionEnablementService.ts
31003121index c28b147740..6090200d9c 100644
31013122--- a/src/vs/workbench/services/extensionManagement/common/extensionEnablementService.ts
0 commit comments