193
194
async removeExtensionsFromProfile(extensions: IExtensionIdentifier[], profileLocation: URI): Promise<void> {
196
>
try {
197
>
await this.withProfileExtensions(profileLocation, profileExtensions => {
198
>
const result: IScannedProfileExtension[] = [];
199
>
for (const e of profileExtensions) {
200
>
if (extensions.some(extension => areSameExtensions(e.identifier, extension))) {
201
>
extensionsToRemove.push(e);
202
>
} else {
203
result.push(e);
204
}
206
>
if (extensionsToRemove.length) {
207
>
this._onRemoveExtensions.fire({ extensions: extensionsToRemove, profileLocation });
208
>
}
209
>
return result;
210
>
});
211
>
if (extensionsToRemove.length) {
212
>
this._onDidRemoveExtensions.fire({ extensions: extensionsToRemove, profileLocation });
213
>
}
214
>
} catch (error) {
215
if (extensionsToRemove.length) {
216
this._onDidRemoveExtensions.fire({ extensions: extensionsToRemove, error, profileLocation });