ML extension - Improving predict parameter mapping experience (#10264)

This commit is contained in:
Leila Lali
2020-05-10 18:10:17 -07:00
committed by GitHub
parent f6e7b56946
commit 3d2d791f18
44 changed files with 782 additions and 388 deletions

View File

@@ -13,17 +13,16 @@ export class EventEmitterCollection extends vscode.Disposable {
*/
constructor() {
super(() => this.dispose());
}
public on(evt: string, listener: (e: any) => any, thisArgs?: any) {
public on(evt: string, listener: (e: any) => any, thisArgs?: any): vscode.EventEmitter<any> {
if (!this._events.has(evt)) {
this._events.set(evt, []);
}
let eventEmitter = new vscode.EventEmitter<any>();
eventEmitter.event(listener, thisArgs);
this._events.get(evt)?.push(eventEmitter);
return this;
return eventEmitter;
}
public fire(evt: string, arg?: any) {
@@ -35,6 +34,16 @@ export class EventEmitterCollection extends vscode.Disposable {
});
}
public disposeEvent(evt: string, emitter: vscode.EventEmitter<any>): void {
if (this._events.has(evt)) {
const emitters = this._events.get(evt);
if (emitters) {
this._events.set(evt, emitters.filter(x => x !== emitter));
}
}
emitter.dispose();
}
public dispose(): any {
this._events.forEach(events => {
events.forEach(event => {