Skip to content

Commit f26aeb0

Browse files
committed
Fix exthost error and warn logging
Previously anything that wasn't "log" such as "warn" would end up doing `logger[logger.warn]`. Would have caught this if I hadn't used `any`... Fixes #2364.
1 parent eca4448 commit f26aeb0

File tree

1 file changed

+24
-6
lines changed

1 file changed

+24
-6
lines changed

ci/dev/vscode.patch

+24-6
Original file line numberDiff line numberDiff line change
@@ -2445,10 +2445,10 @@ index 0000000000000000000000000000000000000000..693174ee0d21353c3a08a42fd30eaad1
24452445
+}
24462446
diff --git a/src/vs/server/node/connection.ts b/src/vs/server/node/connection.ts
24472447
new 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

Comments
 (0)