@@ -2445,10 +2445,10 @@ index 0000000000000000000000000000000000000000..693174ee0d21353c3a08a42fd30eaad1
2445
2445
+ }
2446
2446
diff --git a/src/vs/server/node/connection.ts b/src/vs/server/node/connection.ts
2447
2447
new file mode 100644
2448
- index 0000000000000000000000000000000000000000..93062cadc627c61e0829c27a72894b81e6a0e039
2448
+ index 0000000000000000000000000000000000000000..5c3caf4d12cbf9b7228699ec4fa40cb406aa6307
2449
2449
--- /dev/null
2450
2450
+++ b/src/vs/server/node/connection.ts
2451
- @@ -0,0 +1,171 @@
2451
+ @@ -0,0 +1,189 @@
2452
2452
+ import { field, Logger, logger } from '@coder/logger';
2453
2453
+ import * as cp from 'child_process';
2454
2454
+ import { VSBuffer } from 'vs/base/common/buffer';
@@ -2459,6 +2459,7 @@ index 0000000000000000000000000000000000000000..93062cadc627c61e0829c27a72894b81
2459
2459
+ import { INativeEnvironmentService } from 'vs/platform/environment/common/environment';
2460
2460
+ import { getNlsConfiguration } from 'vs/server/node/nls';
2461
2461
+ import { Protocol } from 'vs/server/node/protocol';
2462
+ + import { IExtHostReadyMessage } from 'vs/workbench/services/extensions/common/extensionHostProtocol';
2462
2463
+
2463
2464
+ export abstract class Connection {
2464
2465
+ private readonly _onClose = new Emitter<void>();
@@ -2520,6 +2521,19 @@ index 0000000000000000000000000000000000000000..93062cadc627c61e0829c27a72894b81
2520
2521
+ }
2521
2522
+ }
2522
2523
+
2524
+ + interface DisconnectedMessage {
2525
+ + type: 'VSCODE_EXTHOST_DISCONNECTED';
2526
+ + }
2527
+ +
2528
+ + interface ConsoleMessage {
2529
+ + type: '__$console';
2530
+ + // See bootstrap-fork.js#L135.
2531
+ + severity: 'log' | 'warn' | 'error';
2532
+ + arguments: any[];
2533
+ + }
2534
+ +
2535
+ + type ExtHostMessage = DisconnectedMessage | ConsoleMessage | IExtHostReadyMessage;
2536
+ +
2523
2537
+ export class ExtensionHostConnection extends Connection {
2524
2538
+ private process?: cp.ChildProcess;
2525
2539
+ private readonly logger: Logger;
@@ -2596,11 +2610,15 @@ index 0000000000000000000000000000000000000000..93062cadc627c61e0829c27a72894b81
2596
2610
+ proc.stderr.setEncoding('utf8').on('data', (d) => this.logger.error(d));
2597
2611
+ }
2598
2612
+
2599
- + proc.on('message', (event) => {
2600
- + switch (event && event .type) {
2613
+ + proc.on('message', (event: ExtHostMessage ) => {
2614
+ + switch (event.type) {
2601
2615
+ case '__$console':
2602
- + const severity = (<any>this.logger)[event.severity] || 'info';
2603
- + (<any>this.logger)[severity]('console', field('arguments', event.arguments));
2616
+ + const fn = this.logger[event.severity === 'log' ? 'info' : event.severity];
2617
+ + if (fn) {
2618
+ + fn('console', field('arguments', event.arguments));
2619
+ + } else {
2620
+ + this.logger.error('Unexpected severity', field('event', event));
2621
+ + }
2604
2622
+ break;
2605
2623
+ case 'VSCODE_EXTHOST_DISCONNECTED':
2606
2624
+ this.logger.trace('Going offline');
0 commit comments