mirror of
https://github.com/Microsoft/vscode
synced 2024-08-27 04:49:35 +00:00
parent
3167b3f222
commit
7139abe4d5
|
@ -45,13 +45,13 @@ export class ExtensionsWatcher extends Disposable {
|
|||
|
||||
private async initialize(): Promise<void> {
|
||||
await this.extensionsScannerService.initializeDefaultProfileExtensions();
|
||||
await this.onDidChangeProfiles(this.userDataProfilesService.profiles, []);
|
||||
await this.onDidChangeProfiles(this.userDataProfilesService.profiles);
|
||||
this.registerListeners();
|
||||
await this.uninstallExtensionsNotInProfiles();
|
||||
}
|
||||
|
||||
private registerListeners(): void {
|
||||
this._register(this.userDataProfilesService.onDidChangeProfiles(e => this.onDidChangeProfiles(e.added, e.removed)));
|
||||
this._register(this.userDataProfilesService.onDidChangeProfiles(e => this.onDidChangeProfiles(e.added)));
|
||||
this._register(this.extensionsProfileScannerService.onAddExtensions(e => this.onAddExtensions(e)));
|
||||
this._register(this.extensionsProfileScannerService.onDidAddExtensions(e => this.onDidAddExtensions(e)));
|
||||
this._register(this.extensionsProfileScannerService.onRemoveExtensions(e => this.onRemoveExtensions(e)));
|
||||
|
@ -59,13 +59,8 @@ export class ExtensionsWatcher extends Disposable {
|
|||
this._register(this.fileService.onDidFilesChange(e => this.onDidFilesChange(e)));
|
||||
}
|
||||
|
||||
private async onDidChangeProfiles(added: readonly IUserDataProfile[], removed: readonly IUserDataProfile[]): Promise<void> {
|
||||
private async onDidChangeProfiles(added: readonly IUserDataProfile[]): Promise<void> {
|
||||
try {
|
||||
await Promise.all(removed.map(profile => {
|
||||
this.extensionsProfileWatchDisposables.deleteAndDispose(profile.id);
|
||||
return this.removeExtensionsFromProfile(profile.extensionsResource);
|
||||
}));
|
||||
|
||||
if (added.length) {
|
||||
await Promise.all(added.map(profile => {
|
||||
this.extensionsProfileWatchDisposables.set(profile.id, combinedDisposable(
|
||||
|
@ -184,13 +179,6 @@ export class ExtensionsWatcher extends Disposable {
|
|||
}
|
||||
}
|
||||
|
||||
private async removeExtensionsFromProfile(removedProfile: URI): Promise<void> {
|
||||
for (const key of [...this.allExtensions.keys()]) {
|
||||
this.removeExtensionWithKey(key, removedProfile);
|
||||
}
|
||||
await this.uninstallExtensionsNotInProfiles();
|
||||
}
|
||||
|
||||
private async uninstallExtensionsNotInProfiles(toUninstall?: IExtension[]): Promise<void> {
|
||||
if (!toUninstall) {
|
||||
const installed = await this.extensionManagementService.scanAllUserInstalledExtensions();
|
||||
|
|
|
@ -416,16 +416,6 @@ export class UserDataProfilesService extends Disposable implements IUserDataProf
|
|||
this.logService.error(error);
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
if (this.profiles.length === 1) {
|
||||
await this.fileService.del(this.profilesHome, { recursive: true });
|
||||
} else {
|
||||
await this.fileService.del(profile.location, { recursive: true });
|
||||
}
|
||||
} catch (error) {
|
||||
this.logService.error(error);
|
||||
}
|
||||
}
|
||||
|
||||
async setProfileForWorkspace(workspaceIdentifier: IAnyWorkspaceIdentifier, profileToSet: IUserDataProfile): Promise<void> {
|
||||
|
|
Loading…
Reference in a new issue