提交 e7ee83ef 编写于 作者: A Alex Dima

Emit an event when the set of available extensions has changed

上级 ae72d698
......@@ -19,6 +19,7 @@ class SimpleExtensionService implements IExtensionService {
return this._onDidRegisterExtensions.event;
}
onDidChangeExtensionsStatus = null!;
onDidChangeExtensions = null!;
onWillActivateByEvent = null!;
onDidChangeResponsiveChange = null!;
activateByEvent(activationEvent: string): Promise<void> {
......
......@@ -143,6 +143,11 @@ export interface IExtensionService extends ICpuProfilerTarget {
*/
onDidChangeExtensionsStatus: Event<ExtensionIdentifier[]>;
/**
* Fired when the available extensions change (i.e. when extensions are added or removed).
*/
onDidChangeExtensions: Event<void>;
/**
* An event that is fired when activation happens.
*/
......
......@@ -75,6 +75,9 @@ export class ExtensionService extends Disposable implements IExtensionService {
private readonly _onDidChangeExtensionsStatus: Emitter<ExtensionIdentifier[]> = this._register(new Emitter<ExtensionIdentifier[]>());
public readonly onDidChangeExtensionsStatus: Event<ExtensionIdentifier[]> = this._onDidChangeExtensionsStatus.event;
private readonly _onDidChangeExtensions: Emitter<void> = this._register(new Emitter<void>());
public readonly onDidChangeExtensions: Event<void> = this._onDidChangeExtensions.event;
private readonly _onWillActivateByEvent = this._register(new Emitter<IWillActivateEvent>());
public readonly onWillActivateByEvent: Event<IWillActivateEvent> = this._onWillActivateByEvent.event;
......@@ -226,6 +229,8 @@ export class ExtensionService extends Disposable implements IExtensionService {
await this._extensionHostProcessManagers[0].deltaExtensions(toAdd, toRemove.map(e => e.identifier));
}
this._onDidChangeExtensions.fire(undefined);
for (let i = 0; i < toAdd.length; i++) {
this._activateAddedExtensionIfNeeded(toAdd[i]);
}
......
......@@ -310,6 +310,7 @@ export class TestExtensionService implements IExtensionService {
_serviceBrand: any;
onDidRegisterExtensions: Event<void> = Event.None;
onDidChangeExtensionsStatus: Event<ExtensionIdentifier[]> = Event.None;
onDidChangeExtensions: Event<void> = Event.None;
onWillActivateByEvent: Event<IWillActivateEvent> = Event.None;
onDidChangeResponsiveChange: Event<IResponsiveStateChangeEvent> = Event.None;
activateByEvent(_activationEvent: string): Promise<void> { return Promise.resolve(undefined); }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册