提交 50fad85b 编写于 作者: J Joao Moreno

fixes #11174

上级 1730ac63
...@@ -273,6 +273,7 @@ export class ExtensionsWorkbenchService implements IExtensionsWorkbenchService { ...@@ -273,6 +273,7 @@ export class ExtensionsWorkbenchService implements IExtensionsWorkbenchService {
private uninstalling: IActiveExtension[] = []; private uninstalling: IActiveExtension[] = [];
private installed: Extension[] = []; private installed: Extension[] = [];
private syncDelayer: ThrottledDelayer<void>; private syncDelayer: ThrottledDelayer<void>;
private autoUpdateDelayer: ThrottledDelayer<void>;
private disposables: IDisposable[] = []; private disposables: IDisposable[] = [];
private _onChange: Emitter<void> = new Emitter<void>(); private _onChange: Emitter<void> = new Emitter<void>();
...@@ -296,6 +297,7 @@ export class ExtensionsWorkbenchService implements IExtensionsWorkbenchService { ...@@ -296,6 +297,7 @@ export class ExtensionsWorkbenchService implements IExtensionsWorkbenchService {
extensionService.onDidUninstallExtension(this.onDidUninstallExtension, this, this.disposables); extensionService.onDidUninstallExtension(this.onDidUninstallExtension, this, this.disposables);
this.syncDelayer = new ThrottledDelayer<void>(ExtensionsWorkbenchService.SyncPeriod); this.syncDelayer = new ThrottledDelayer<void>(ExtensionsWorkbenchService.SyncPeriod);
this.autoUpdateDelayer = new ThrottledDelayer<void>(1000);
chain(urlService.onOpenURL) chain(urlService.onOpenURL)
.filter(uri => /^extension/.test(uri.path)) .filter(uri => /^extension/.test(uri.path))
...@@ -347,6 +349,7 @@ export class ExtensionsWorkbenchService implements IExtensionsWorkbenchService { ...@@ -347,6 +349,7 @@ export class ExtensionsWorkbenchService implements IExtensionsWorkbenchService {
if (installed) { if (installed) {
installed.gallery = gallery; installed.gallery = gallery;
this._onChange.fire(); this._onChange.fire();
this.eventuallyAutoUpdateExtensions();
return installed; return installed;
} }
...@@ -371,16 +374,28 @@ export class ExtensionsWorkbenchService implements IExtensionsWorkbenchService { ...@@ -371,16 +374,28 @@ export class ExtensionsWorkbenchService implements IExtensionsWorkbenchService {
return TPromise.as(null); return TPromise.as(null);
} }
return this.queryGallery({ ids, pageSize: ids.length }).then(() => { return this.queryGallery({ ids, pageSize: ids.length }) as TPromise<any>;
}
private eventuallyAutoUpdateExtensions(): void {
this.autoUpdateDelayer.trigger(() => this.autoUpdateExtensions())
.done(null, err => this.onError(err));
}
private autoUpdateExtensions(): TPromise<void> {
const config = this.configurationService.getConfiguration<IExtensionsConfiguration>(ConfigurationKey); const config = this.configurationService.getConfiguration<IExtensionsConfiguration>(ConfigurationKey);
if (!config.autoUpdate) { if (!config.autoUpdate) {
return; return TPromise.as(null);
} }
const action = this.instantiationService.createInstance(UpdateAllAction, UpdateAllAction.ID, UpdateAllAction.LABEL); const action = this.instantiationService.createInstance(UpdateAllAction, UpdateAllAction.ID, UpdateAllAction.LABEL);
return action.enabled && action.run();
}); if (!action.enabled) {
return TPromise.as(null);
}
return action.run();
} }
canInstall(extension: IExtension): boolean { canInstall(extension: IExtension): boolean {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册