@@ -934,10 +934,10 @@ index 0000000000..56331ff1fc
934
934
+ require('../../bootstrap-amd').load('vs/server/entry');
935
935
diff --git a/src/vs/server/ipc.d.ts b/src/vs/server/ipc.d.ts
936
936
new file mode 100644
937
- index 0000000000..3bfef75d81
937
+ index 0000000000..f3e358096f
938
938
--- /dev/null
939
939
+++ b/src/vs/server/ipc.d.ts
940
- @@ -0,0 +1,91 @@
940
+ @@ -0,0 +1,102 @@
941
941
+ /**
942
942
+ * External interfaces for integration into code-server over IPC. No vs imports
943
943
+ * should be made in this file.
@@ -976,6 +976,17 @@ index 0000000000..3bfef75d81
976
976
+ }
977
977
+
978
978
+ export interface Args {
979
+ + 'user-data-dir'?: string;
980
+ +
981
+ + 'extensions-dir'?: string;
982
+ + 'builtin-extensions-dir'?: string;
983
+ + 'extra-extensions-dir'?: string[];
984
+ + 'extra-builtin-extensions-dir'?: string[];
985
+ +
986
+ + log?: string;
987
+ + trace?: boolean;
988
+ + verbose?: boolean;
989
+ +
979
990
+ _: string[];
980
991
+ }
981
992
+
@@ -1378,87 +1389,6 @@ index 0000000000..9c240b992d
1378
1389
+ this._$onMessage.fire(message);
1379
1390
+ }
1380
1391
+ }
1381
- diff --git a/src/vs/server/node/cli.ts b/src/vs/server/node/cli.ts
1382
- new file mode 100644
1383
- index 0000000000..117cc4900a
1384
- --- /dev/null
1385
- +++ b/src/vs/server/node/cli.ts
1386
- @@ -0,0 +1,75 @@
1387
- + import * as os from 'os';
1388
- + import * as path from 'path';
1389
- + import { main as vsCli } from 'vs/code/node/cliProcessMain';
1390
- + import { validatePaths } from 'vs/code/node/paths';
1391
- + import { ParsedArgs } from 'vs/platform/environment/common/environment';
1392
- + import { buildHelpMessage, buildVersionMessage, OPTIONS } from 'vs/platform/environment/node/argv';
1393
- + import { parseMainProcessArgv } from 'vs/platform/environment/node/argvHelper';
1394
- + import product from 'vs/platform/product/common/product';
1395
- + import { logger } from 'vs/server/node/logger';
1396
- + import { xdgLocalDir } from 'vs/server/node/util';
1397
- +
1398
- + export const parseArgs = (rawArgs: string[]): ParsedArgs => {
1399
- + // Remove options that won't work or don't make sense.
1400
- + for (let key in OPTIONS) {
1401
- + switch (key) {
1402
- + case 'add':
1403
- + case 'diff':
1404
- + case 'file-uri':
1405
- + case 'folder-uri':
1406
- + case 'goto':
1407
- + case 'new-window':
1408
- + case 'reuse-window':
1409
- + case 'wait':
1410
- + case 'disable-gpu':
1411
- + // TODO: pretty sure these don't work but not 100%.
1412
- + case 'prof-startup':
1413
- + case 'inspect-extensions':
1414
- + case 'inspect-brk-extensions':
1415
- + delete OPTIONS[key];
1416
- + break;
1417
- + }
1418
- + }
1419
- +
1420
- + const args = parseMainProcessArgv(rawArgs);
1421
- + if (!args['user-data-dir']) {
1422
- + args['user-data-dir'] = xdgLocalDir;
1423
- + }
1424
- + if (!args['extensions-dir']) {
1425
- + args['extensions-dir'] = path.join(args['user-data-dir'], 'extensions');
1426
- + }
1427
- +
1428
- + if (!args.verbose && !args.log && process.env.LOG_LEVEL) {
1429
- + args.log = process.env.LOG_LEVEL;
1430
- + }
1431
- +
1432
- + return validatePaths(args);
1433
- + };
1434
- +
1435
- + export const startCli = (args: ParsedArgs): boolean | Promise<void> => {
1436
- + if (args.help) {
1437
- + const executable = `${product.applicationName}${os.platform() === 'win32' ? '.exe' : ''}`;
1438
- + console.log(buildHelpMessage(product.nameLong, executable, product.version, OPTIONS, false));
1439
- + return true;
1440
- + }
1441
- +
1442
- + if (args.version) {
1443
- + buildVersionMessage(product.version, product.commit).split('\n').map((line) => logger.info(line));
1444
- + return true;
1445
- + }
1446
- +
1447
- + const shouldSpawnCliProcess = (): boolean => {
1448
- + return !!args['install-source']
1449
- + || !!args['list-extensions']
1450
- + || !!args['install-extension']
1451
- + || !!args['uninstall-extension']
1452
- + || !!args['locate-extension']
1453
- + || !!args['telemetry'];
1454
- + };
1455
- +
1456
- + if (shouldSpawnCliProcess()) {
1457
- + return vsCli(args);
1458
- + }
1459
- +
1460
- + return false;
1461
- + };
1462
1392
diff --git a/src/vs/server/node/connection.ts b/src/vs/server/node/connection.ts
1463
1393
new file mode 100644
1464
1394
index 0000000000..3b42933419
@@ -2468,12 +2398,10 @@ index 0000000000..fc69441cf0
2468
2398
+ };
2469
2399
diff --git a/src/vs/server/node/util.ts b/src/vs/server/node/util.ts
2470
2400
new file mode 100644
2471
- index 0000000000..ac950994b9
2401
+ index 0000000000..06b080044c
2472
2402
--- /dev/null
2473
2403
+++ b/src/vs/server/node/util.ts
2474
- @@ -0,0 +1,27 @@
2475
- + import * as path from 'path';
2476
- + import * as os from 'os';
2404
+ @@ -0,0 +1,9 @@
2477
2405
+ import { getPathFromAmdModule } from 'vs/base/common/amd';
2478
2406
+ import { URITransformer, IRawURITransformer } from 'vs/base/common/uriIpc';
2479
2407
+
@@ -2483,22 +2411,6 @@ index 0000000000..ac950994b9
2483
2411
+ const rawURITransformer = <IRawURITransformer>rawURITransformerFactory(remoteAuthority);
2484
2412
+ return new URITransformer(rawURITransformer);
2485
2413
+ };
2486
- +
2487
- + const getXdgDataDir = (): string => {
2488
- + switch (process.platform) {
2489
- + case 'win32':
2490
- + return path.join(process.env.XDG_DATA_HOME || path.join(os.homedir(), 'AppData/Local'), 'code-server/Data');
2491
- + case 'darwin':
2492
- + return path.join(
2493
- + process.env.XDG_DATA_HOME || path.join(os.homedir(), 'Library/Application Support'),
2494
- + 'code-server'
2495
- + );
2496
- + default:
2497
- + return path.join(process.env.XDG_DATA_HOME || path.join(os.homedir(), '.local/share'), 'code-server');
2498
- + }
2499
- + };
2500
- +
2501
- + export const xdgLocalDir = getXdgDataDir();
2502
2414
diff --git a/src/vs/workbench/api/browser/extensionHost.contribution.ts b/src/vs/workbench/api/browser/extensionHost.contribution.ts
2503
2415
index 2905c52411..6ecfae2634 100644
2504
2416
--- a/src/vs/workbench/api/browser/extensionHost.contribution.ts
0 commit comments