提交 bb2f59b0 编写于 作者: A Andre Weinand

adapt to proposed API

上级 cf81214e
......@@ -2810,39 +2810,28 @@ export class Event extends Message implements DebugProtocol.Event {
//--------------------------------------------------------------------------------------------------------------------------------
export interface IDaTransport {
start(cb: (msg: DebugProtocol.ProtocolMessage) => void, errorcb: (event: DebugProtocol.Event) => void): void;
send(message: DebugProtocol.ProtocolMessage): void;
stop(): void;
}
export class ProtocolServer {
export class ProtocolServer implements vscode.DebugAdapter {
private close = new vscode.EventEmitter<void>();
onClose: vscode.Event<void> = this.close.event;
private error = new vscode.EventEmitter<Event>();
onError: vscode.Event<Event> = this.error.event;
private error = new vscode.EventEmitter<Error>();
onError: vscode.Event<Error> = this.error.event;
private sendMessage = new vscode.EventEmitter<DebugProtocol.ProtocolMessage>();
readonly onSendMessage: vscode.Event<DebugProtocol.ProtocolMessage> = this.sendMessage.event;
private _sequence: number = 1;
private _pendingRequests = new Map<number, (response: DebugProtocol.Response) => void>();
private _transport?: IDaTransport;
constructor() {
}
public __setTransport(transport: IDaTransport): void {
this._sequence = 1;
this._transport = transport;
this._transport.start(msg => { this.dispatch(msg); }, event => { this.error.fire(event); });
public handleMessage(message: DebugProtocol.ProtocolMessage): void {
this.dispatch(message);
}
public stop(): void {
if (this._transport) {
this._transport.stop();
}
}
public sendEvent(event: DebugProtocol.Event): void {
......@@ -2866,11 +2855,6 @@ export class ProtocolServer {
request.arguments = args;
}
if (!this._transport) {
this.error.fire(new Event('error', 'sendRequest: no transport'));
return;
}
this._send('request', request);
if (cb) {
......@@ -2912,9 +2896,7 @@ export class ProtocolServer {
message.type = typ;
message.seq = this._sequence++;
if (this._transport) {
this._transport.send(message);
}
this.sendMessage.fire(message);
}
}
......@@ -3835,11 +3817,7 @@ export class MockDebugAdapterDescriptorFactory implements vscode.DebugAdapterDes
}
createDebugAdapterDescriptor(_session: vscode.DebugSession, _executable: vscode.DebugAdapterExecutable | undefined): vscode.ProviderResult<vscode.DebugAdapterDescriptor> {
// TODO@AW: we need some extension API for connecting a DA implementation with a vscode.DebugAdapterDescriptor
const descriptor = new vscode.DebugAdapterExecutable('dummy');
const a = <any>descriptor;
a['implementation'] = new MockDebugSession(this.memfs);
return descriptor;
return new vscode.DebugAdapterInlineImplementation(new MockDebugSession(this.memfs));
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册