@@ -2445,10 +2445,10 @@ index 0000000000000000000000000000000000000000..693174ee0d21353c3a08a42fd30eaad1
24452445+ }
24462446diff --git a/src/vs/server/node/connection.ts b/src/vs/server/node/connection.ts
24472447new file mode 100644
2448- index 0000000000000000000000000000000000000000..93062cadc627c61e0829c27a72894b81e6a0e039
2448+ index 0000000000000000000000000000000000000000..5c3caf4d12cbf9b7228699ec4fa40cb406aa6307
24492449--- /dev/null
24502450+++ b/src/vs/server/node/connection.ts
2451- @@ -0,0 +1,171 @@
2451+ @@ -0,0 +1,189 @@
24522452+ import { field, Logger, logger } from '@coder/logger';
24532453+ import * as cp from 'child_process';
24542454+ import { VSBuffer } from 'vs/base/common/buffer';
@@ -2459,6 +2459,7 @@ index 0000000000000000000000000000000000000000..93062cadc627c61e0829c27a72894b81
24592459+ import { INativeEnvironmentService } from 'vs/platform/environment/common/environment';
24602460+ import { getNlsConfiguration } from 'vs/server/node/nls';
24612461+ import { Protocol } from 'vs/server/node/protocol';
2462+ + import { IExtHostReadyMessage } from 'vs/workbench/services/extensions/common/extensionHostProtocol';
24622463+
24632464+ export abstract class Connection {
24642465+ private readonly _onClose = new Emitter<void>();
@@ -2520,6 +2521,19 @@ index 0000000000000000000000000000000000000000..93062cadc627c61e0829c27a72894b81
25202521+ }
25212522+ }
25222523+
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+ +
25232537+ export class ExtensionHostConnection extends Connection {
25242538+ private process?: cp.ChildProcess;
25252539+ private readonly logger: Logger;
@@ -2596,11 +2610,15 @@ index 0000000000000000000000000000000000000000..93062cadc627c61e0829c27a72894b81
25962610+ proc.stderr.setEncoding('utf8').on('data', (d) => this.logger.error(d));
25972611+ }
25982612+
2599- + proc.on('message', (event) => {
2600- + switch (event && event .type) {
2613+ + proc.on('message', (event: ExtHostMessage ) => {
2614+ + switch (event.type) {
26012615+ 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+ + }
26042622+ break;
26052623+ case 'VSCODE_EXTHOST_DISCONNECTED':
26062624+ this.logger.trace('Going offline');
0 commit comments