453
return [];
454
}
456
>
this.logService.trace('Started scanning dev system extensions');
457
>
const builtinExtensionControl = checkControlFile ? await this.getBuiltInExtensionControl() : {};
458
const devSystemExtensionsLocations: URI[] = [];
459
const devSystemExtensionsLocation = URI.file(path.normalize(path.join(FileAccess.asFileUri('').fsPath, '..', '.build', 'builtInExtensions')));
460
for (const extension of devSystemExtensionsList) {
462
>
switch (controlState) {
463
>
case 'disabled':
464
>
break;
465
>
case 'marketplace':
466
devSystemExtensionsLocations.push(joinPath(devSystemExtensionsLocation, extension.name));
467
break;
469
>
devSystemExtensionsLocations.push(URI.file(controlState));
470
>
break;
471
>
}
472
>
}
473
>
const result = await Promise.all(devSystemExtensionsLocations.map(async location => this.extensionsScanner.scanExtension((await this.createExtensionScannerInput(location, false, ExtensionType.System, language, true, undefined, this.getProductVersion())))));
474
>
this.logService.trace('Scanned dev system extensions:', result.length);
475
>
return coalesce(result);
476
}
477
478
private async getBuiltInExtensionControl(): Promise<IBuiltInExtensionControl> {
480
>
const content = await this.fileService.readFile(this.extensionsControlLocation);
481
>
return JSON.parse(content.value.toString());
482
>
} catch (error) {
483
return {};
484
}
486
487
private async createExtensionScannerInput(location: URI, profile: boolean, type: ExtensionType, language: string | undefined, validate: boolean, profileScanOptions: IProfileExtensionsScanOptions | undefined, productVersion: IProductVersion): Promise<ExtensionScannerInput> {