src/vs/platform/extensionManagement/common/extensionsScannerService.ts/AbstractExtensionsScannerService/scanUserExtensions
class AbstractExtensionsScannerService:	async scanUserExtensions(scanOptions: ScanOptions): Promise<IScannedExtension[]> {
		this.logService.trace('Started scanning user extensions');
		const extensionsScannerInput = await this.createExtensionScannerInput(scanOptions.profileLocation ?? this.userExtensionsLocation, !!scanOptions.profileLocation, ExtensionType.User, !scanOptions.includeUninstalled, scanOptions.language);
		const extensionsScanner = scanOptions.useCache && !extensionsScannerInput.devMode && extensionsScannerInput.excludeObsolete ? this.userExtensionsCachedScanner : this.extensionsScanner;
		let extensions = await extensionsScanner.scanExtensions(extensionsScannerInput);
		extensions = await this.applyScanOptions(extensions, ExtensionType.User, scanOptions, true);
		this.logService.trace('Scanned user extensions:', extensions.length);
		return extensions;
	}