322
private userExtensionsIgnoredSettings: Promise<string[]> | undefined = undefined;
323
private async getIgnoredSettings(content?: string): Promise<string[]> {
325
>
this.coreIgnoredSettings = this.userDataSyncUtilService.resolveDefaultCoreIgnoredSettings();
326
>
}
327
>
if (!this.systemExtensionsIgnoredSettings) {
328
>
this.systemExtensionsIgnoredSettings = this.getIgnoredSettingForSystemExtensions();
329
>
}
330
>
if (!this.userExtensionsIgnoredSettings) {
331
>
this.userExtensionsIgnoredSettings = this.getIgnoredSettingForUserExtensions();
332
>
const disposable = this._register(Event.any<any>(
333
>
Event.filter(this.extensionManagementService.onDidInstallExtensions, (e => e.some(({ local }) => !!local))),
334
>
Event.filter(this.extensionManagementService.onDidUninstallExtension, (e => !e.error)))(() => {
335
disposable.dispose();
336
this.userExtensionsIgnoredSettings = undefined;
338
>
}
339
>
const defaultIgnoredSettings = (await Promise.all([this.coreIgnoredSettings, this.systemExtensionsIgnoredSettings, this.userExtensionsIgnoredSettings])).flat();
340
>
return getIgnoredSettings(defaultIgnoredSettings, this.configurationService, content);
341
>
}
342
343
private async getIgnoredSettingForSystemExtensions(): Promise<string[]> {
344
>
const systemExtensions = await this.extensionManagementService.getInstalled(ExtensionType.System);
settingsSync.ts
345
>
return distinct(systemExtensions.map(e => getIgnoredSettingsForExtension(e.manifest)).flat());
346
>
}
347
348
private async getIgnoredSettingForUserExtensions(): Promise<string[]> {
349
>
const userExtensions = await this.extensionManagementService.getInstalled(ExtensionType.User, this.profile.extensionsResource);
settingsSync.ts
350
>
return distinct(userExtensions.map(e => getIgnoredSettingsForExtension(e.manifest)).flat());
351
>
}
352
353
private validateContent(content: string): void {
355
throw new UserDataSyncError(localize('errorInvalidSettings', "Unable to sync settings as there are errors/warning in settings file."), UserDataSyncErrorCode.LocalInvalidContent, this.resource);
356
}
358
359
}