Skip to content

Commit eebb8bb

Browse files
Add proposed API flag (#2002)
Co-authored-by: giddyuptiger <[email protected]>
1 parent 6cc9186 commit eebb8bb

File tree

2 files changed

+33
-7
lines changed

2 files changed

+33
-7
lines changed

ci/dev/vscode.patch

+28-7
Original file line numberDiff line numberDiff line change
@@ -1267,10 +1267,10 @@ index 0000000000..56331ff1fc
12671267
+require('../../bootstrap-amd').load('vs/server/entry');
12681268
diff --git a/src/vs/server/ipc.d.ts b/src/vs/server/ipc.d.ts
12691269
new 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
+}
24762480
diff --git a/src/vs/server/node/server.ts b/src/vs/server/node/server.ts
24772481
new 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

30753082
diff --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+
}
30993120
diff --git a/src/vs/workbench/services/extensionManagement/common/extensionEnablementService.ts b/src/vs/workbench/services/extensionManagement/common/extensionEnablementService.ts
31003121
index c28b147740..6090200d9c 100644
31013122
--- a/src/vs/workbench/services/extensionManagement/common/extensionEnablementService.ts

src/node/cli.ts

+5
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,11 @@ const options: Options<Required<Args>> = {
130130
description:
131131
"Install or update a VS Code extension by id or vsix. The identifier of an extension is `${publisher}.${name}`. To install a specific version provide `@${version}`. For example: '[email protected]'.",
132132
},
133+
"enable-proposed-api": {
134+
type: "string[]",
135+
description:
136+
"Enable proposed API features for extensions. Can receive one or more extension IDs to enable individually.",
137+
},
133138
"uninstall-extension": { type: "string[]", description: "Uninstall a VS Code extension by id." },
134139
"show-versions": { type: "boolean", description: "Show VS Code extension versions." },
135140
"proxy-domain": { type: "string[]", description: "Domain used for proxying ports." },

0 commit comments

Comments
 (0)