提交 50d1626b 编写于 作者: S Sandeep Somavarapu

Fix enablement event

上级 fd9a908d
...@@ -28,6 +28,7 @@ export class GlobalExtensionEnablementService extends Disposable implements IGlo ...@@ -28,6 +28,7 @@ export class GlobalExtensionEnablementService extends Disposable implements IGlo
async enableExtension(extension: IExtensionIdentifier): Promise<boolean> { async enableExtension(extension: IExtensionIdentifier): Promise<boolean> {
if (this._removeFromDisabledExtensions(extension)) { if (this._removeFromDisabledExtensions(extension)) {
this._onDidChangeEnablement.fire([extension]);
return true; return true;
} }
return false; return false;
...@@ -35,6 +36,7 @@ export class GlobalExtensionEnablementService extends Disposable implements IGlo ...@@ -35,6 +36,7 @@ export class GlobalExtensionEnablementService extends Disposable implements IGlo
async disableExtension(extension: IExtensionIdentifier): Promise<boolean> { async disableExtension(extension: IExtensionIdentifier): Promise<boolean> {
if (this._addToDisabledExtensions(extension)) { if (this._addToDisabledExtensions(extension)) {
this._onDidChangeEnablement.fire([extension]);
return true; return true;
} }
return false; return false;
......
...@@ -44,9 +44,10 @@ export class ExtensionsSynchroniser extends AbstractSynchroniser implements IUse ...@@ -44,9 +44,10 @@ export class ExtensionsSynchroniser extends AbstractSynchroniser implements IUse
super(SyncSource.Extensions, fileService, environmentService, userDataSyncStoreService); super(SyncSource.Extensions, fileService, environmentService, userDataSyncStoreService);
this._register( this._register(
Event.debounce( Event.debounce(
Event.any( Event.any<any>(
Event.filter(this.extensionManagementService.onDidInstallExtension, (e => !!e.gallery)), Event.filter(this.extensionManagementService.onDidInstallExtension, (e => !!e.gallery)),
Event.filter(this.extensionManagementService.onDidUninstallExtension, (e => !e.error))), Event.filter(this.extensionManagementService.onDidUninstallExtension, (e => !e.error)),
this.extensionEnablementService.onDidChangeEnablement),
() => undefined, 500)(() => this._onDidChangeLocal.fire())); () => undefined, 500)(() => this._onDidChangeLocal.fire()));
} }
...@@ -241,15 +242,17 @@ export class ExtensionsSynchroniser extends AbstractSynchroniser implements IUse ...@@ -241,15 +242,17 @@ export class ExtensionsSynchroniser extends AbstractSynchroniser implements IUse
await Promise.all([...added, ...updated].map(async e => { await Promise.all([...added, ...updated].map(async e => {
const extension = await this.extensionGalleryService.getCompatibleExtension(e.identifier, e.version); const extension = await this.extensionGalleryService.getCompatibleExtension(e.identifier, e.version);
if (extension) { if (extension) {
this.logService.info('Extensions: Installing local extension.', e.identifier.id, extension.version);
try { try {
if (e.enabled) { if (e.enabled) {
this.logService.info('Extensions: Enabling extension.', e.identifier.id, extension.version);
await this.extensionEnablementService.enableExtension(extension.identifier); await this.extensionEnablementService.enableExtension(extension.identifier);
} else { } else {
this.logService.info('Extensions: Disabling extension.', e.identifier.id, extension.version);
await this.extensionEnablementService.disableExtension(extension.identifier); await this.extensionEnablementService.disableExtension(extension.identifier);
} }
// Install only if the extension does not exist // Install only if the extension does not exist
if (!installedExtensions.some(installed => areSameExtensions(installed.identifier, extension.identifier) && installed.manifest.version === extension.version)) { if (!installedExtensions.some(installed => areSameExtensions(installed.identifier, extension.identifier) && installed.manifest.version === extension.version)) {
this.logService.info('Extensions: Installing extension.', e.identifier.id, extension.version);
await this.extensionManagementService.installFromGallery(extension); await this.extensionManagementService.installFromGallery(extension);
removeFromSkipped.push(extension.identifier); removeFromSkipped.push(extension.identifier);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册