Skip to content

Commit 860e244

Browse files
committed
call OnError, update debug logging
1 parent 10b1e7b commit 860e244

File tree

6 files changed

+33
-25
lines changed

6 files changed

+33
-25
lines changed

src/observers/OmnisharpDebugModeLoggerObserver.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
import { BaseLoggerObserver } from "./BaseLoggerObserver";
77
import * as os from 'os';
8-
import { BaseEvent, OmnisharpRequestMessage, OmnisharpServerEnqueueRequest, OmnisharpServerDequeueRequest, OmnisharpServerRequestCanceled, OmnisharpServerVerboseMessage, OmnisharpServerProcessRequestStart, OmnisharpEventPacketReceived } from "../omnisharp/loggingEvents";
8+
import { BaseEvent, OmnisharpRequestMessage, OmnisharpServerEnqueueRequest, OmnisharpServerDequeueRequest, OmnisharpServerRequestCancelled, OmnisharpServerVerboseMessage, OmnisharpServerProcessRequestStart, OmnisharpEventPacketReceived } from "../omnisharp/loggingEvents";
99
import { EventType } from "../omnisharp/EventType";
1010

1111
export class OmnisharpDebugModeLoggerObserver extends BaseLoggerObserver {
@@ -20,8 +20,8 @@ export class OmnisharpDebugModeLoggerObserver extends BaseLoggerObserver {
2020
case EventType.OmnisharpServerDequeueRequest:
2121
this.handleOmnisharpServerDequeueRequest(<OmnisharpServerDequeueRequest>event);
2222
break;
23-
case EventType.OmnisharpServerRequestCanceled:
24-
this.handleOmnisharpServerRequestCanceled(<OmnisharpServerRequestCanceled>event);
23+
case EventType.OmnisharpServerRequestCancelled:
24+
this.handleOmnisharpServerRequestCancelled(<OmnisharpServerRequestCancelled>event);
2525
break;
2626
case EventType.OmnisharpServerProcessRequestStart:
2727
this.handleOmnisharpProcessRequestStart(<OmnisharpServerProcessRequestStart>event);
@@ -47,17 +47,17 @@ export class OmnisharpDebugModeLoggerObserver extends BaseLoggerObserver {
4747
}
4848

4949
private handleOmnisharpServerEnqueueRequest(event: OmnisharpServerEnqueueRequest) {
50-
this.logger.appendLine(`Enqueue ${event.name} request for ${event.command}.`);
50+
this.logger.appendLine(`Enqueue to ${event.queueName} request for ${event.command}.`);
5151
this.logger.appendLine();
5252
}
5353

5454
private handleOmnisharpServerDequeueRequest(event: OmnisharpServerDequeueRequest) {
55-
this.logger.appendLine(`Dequeue ${event.name} request for ${event.command} (${event.id}).`);
55+
this.logger.appendLine(`Dequeue from ${event.queueName} with status ${event.queueStatus} request for ${event.command}${event.id? ` (${event.id})`: ''}.`);
5656
this.logger.appendLine();
5757
}
5858

59-
private handleOmnisharpServerRequestCanceled(event: OmnisharpServerRequestCanceled) {
60-
this.logger.appendLine(`Canceled request for ${event.command} (${event.id}).`);
59+
private handleOmnisharpServerRequestCancelled(event: OmnisharpServerRequestCancelled) {
60+
this.logger.appendLine(`Cancelled request for ${event.command} (${event.id}).`);
6161
this.logger.appendLine();
6262
}
6363

src/omnisharp/EventType.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ export enum EventType {
8383
DotNetTestRunInContextStart = 76,
8484
DotNetTestDebugInContextStart = 77,
8585
TelemetryErrorEvent = 78,
86-
OmnisharpServerRequestCanceled = 79
86+
OmnisharpServerRequestCancelled = 79
8787
}
8888

8989
//Note that the EventType protocol is shared with Razor.VSCode and the numbers here should not be altered

src/omnisharp/loggingEvents.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -115,16 +115,16 @@ export class OmnisharpServerUnresolvedDependencies implements BaseEvent {
115115

116116
export class OmnisharpServerEnqueueRequest implements BaseEvent {
117117
type = EventType.OmnisharpServerEnqueueRequest;
118-
constructor(public name: string, public command: string) { }
118+
constructor(public queueName: string, public command: string) { }
119119
}
120120

121121
export class OmnisharpServerDequeueRequest implements BaseEvent {
122122
type = EventType.OmnisharpServerDequeueRequest;
123-
constructor(public name: string, public command: string, public id: number) { }
123+
constructor(public queueName: string, public queueStatus: string, public command: string, public id?: number) { }
124124
}
125125

126-
export class OmnisharpServerRequestCanceled implements BaseEvent {
127-
type = EventType.OmnisharpServerRequestCanceled;
126+
export class OmnisharpServerRequestCancelled implements BaseEvent {
127+
type = EventType.OmnisharpServerRequestCancelled;
128128
constructor(public command: string, public id: number) { }
129129
}
130130

src/omnisharp/requestQueue.ts

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ class RequestQueue {
4848

4949
if (request) {
5050
this._waiting.delete(id);
51-
this.eventStream.post(new OmnisharpServerDequeueRequest(this._name, request.command, id));
51+
this.eventStream.post(new OmnisharpServerDequeueRequest(this._name, "waiting", request.command, id));
5252
}
5353

5454
return request;
@@ -58,9 +58,7 @@ class RequestQueue {
5858
let index = this._pending.indexOf(request);
5959
if (index !== -1) {
6060
this._pending.splice(index, 1);
61-
62-
// Note: This calls reject() on the promise returned by OmniSharpServer.makeRequest
63-
request.onError(new Error(`Pending request cancelled: ${request.command}`));
61+
this.eventStream.post(new OmnisharpServerDequeueRequest(this._name, "pending", request.command));
6462
}
6563

6664
if (request.id){
@@ -90,9 +88,9 @@ class RequestQueue {
9088
return;
9189
}
9290

93-
this.eventStream.post(new OmnisharpServerProcessRequestStart(this._name));
94-
9591
const slots = this._maxSize - this._waiting.size;
92+
93+
this.eventStream.post(new OmnisharpServerProcessRequestStart(this._name, slots));
9694

9795
for (let i = 0; i < slots && this._pending.length > 0; i++) {
9896
const item = this._pending.shift();

src/omnisharp/server.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -572,8 +572,10 @@ export class OmniSharpServer {
572572

573573
if (token) {
574574
token.onCancellationRequested(() => {
575-
this.eventStream.post(new ObservableEvents.OmnisharpServerRequestCanceled(request.command, request.id));
575+
this.eventStream.post(new ObservableEvents.OmnisharpServerRequestCancelled(request.command, request.id));
576576
this._requestQueue.cancelRequest(request);
577+
// Note: This calls reject() on the promise returned by OmniSharpServer.makeRequest
578+
request.onError(new Error(`Request ${request.command} cancelled, id: ${request.id}`));
577579
});
578580
}
579581

test/unitTests/logging/OmnisharpDebugModeLoggerObserver.test.ts

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*--------------------------------------------------------------------------------------------*/
55
import { use, should, expect } from 'chai';
66
import { getNullChannel } from '../testAssets/Fakes';
7-
import { OmnisharpServerVerboseMessage, EventWithMessage, OmnisharpRequestMessage, OmnisharpServerEnqueueRequest, OmnisharpServerDequeueRequest, OmnisharpServerProcessRequestStart, OmnisharpEventPacketReceived, OmnisharpServerProcessRequestComplete } from '../../../src/omnisharp/loggingEvents';
7+
import { OmnisharpServerVerboseMessage, EventWithMessage, OmnisharpRequestMessage, OmnisharpServerEnqueueRequest, OmnisharpServerDequeueRequest, OmnisharpServerProcessRequestStart, OmnisharpEventPacketReceived, OmnisharpServerProcessRequestComplete, OmnisharpServerRequestCancelled } from '../../../src/omnisharp/loggingEvents';
88
import { OmnisharpDebugModeLoggerObserver } from '../../../src/observers/OmnisharpDebugModeLoggerObserver';
99

1010
use(require("chai-string"));
@@ -33,25 +33,33 @@ suite("OmnisharpDebugModeLoggerObserver", () => {
3333
test(`OmnisharpServerEnqueueRequest: Name and Command is logged`, () => {
3434
let event = new OmnisharpServerEnqueueRequest("foo", "someCommand");
3535
observer.post(event);
36-
expect(logOutput).to.contain(event.name);
36+
expect(logOutput).to.contain(event.queueName);
3737
expect(logOutput).to.contain(event.command);
3838
});
3939

40-
test(`OmnisharpServerDequeueRequest: Name and Command is logged`, () => {
41-
let event = new OmnisharpServerDequeueRequest("foo", "someCommand", 1);
40+
test(`OmnisharpServerDequeueRequest: QueueName, QueueStatus, Command and Id is logged`, () => {
41+
let event = new OmnisharpServerDequeueRequest("foo", "pending", "someCommand", 1);
4242
observer.post(event);
43-
expect(logOutput).to.contain(event.name);
43+
expect(logOutput).to.contain(event.queueName);
44+
expect(logOutput).to.contain(event.queueStatus);
4445
expect(logOutput).to.contain(event.command);
4546
expect(logOutput).to.contain(event.id);
4647
});
4748

48-
test(`OmnisharpProcessRequestStart: Name is logged`, () => {
49+
test(`OmnisharpProcessRequestStart: Name and slots is logged`, () => {
4950
let event = new OmnisharpServerProcessRequestStart("foobar", 2);
5051
observer.post(event);
5152
expect(logOutput).to.contain(event.name);
5253
expect(logOutput).to.contain(event.slots);
5354
});
5455

56+
test(`OmnisharpServerRequestCancelled: Name and Id is logged`, () => {
57+
let event = new OmnisharpServerRequestCancelled("foobar", 23);
58+
observer.post(event);
59+
expect(logOutput).to.contain(event.command);
60+
expect(logOutput).to.contain(event.id);
61+
});
62+
5563
test(`OmnisharpServer messages increase and decrease indent`, () => {
5664
observer.post(new OmnisharpServerVerboseMessage("!indented_1"));
5765
observer.post(new OmnisharpServerProcessRequestStart("name", 2));

0 commit comments

Comments
 (0)