src/vs/workbench/contrib/extensions/browser/extensionRecommendationsService.ts/ExtensionRecommendationsService/constructor
class ExtensionRecommendationsService:	constructor(
		@IInstantiationService instantiationService: IInstantiationService,
		@ILifecycleService private readonly lifecycleService: ILifecycleService,
		@IExtensionGalleryService private readonly galleryService: IExtensionGalleryService,
		@ITelemetryService private readonly telemetryService: ITelemetryService,
		@IEnvironmentService private readonly environmentService: IEnvironmentService,
		@IExtensionManagementService private readonly extensionManagementService: IExtensionManagementService,
		@IExtensionIgnoredRecommendationsService private readonly extensionRecommendationsManagementService: IExtensionIgnoredRecommendationsService,
		@IExtensionRecommendationNotificationService private readonly extensionRecommendationNotificationService: IExtensionRecommendationNotificationService,
		@IExtensionsWorkbenchService private readonly extensionsWorkbenchService: IExtensionsWorkbenchService,
	) {
		super();

		this.workspaceRecommendations = instantiationService.createInstance(WorkspaceRecommendations);
		this.fileBasedRecommendations = instantiationService.createInstance(FileBasedRecommendations);
		this.experimentalRecommendations = instantiationService.createInstance(ExperimentalRecommendations);
		this.configBasedRecommendations = instantiationService.createInstance(ConfigBasedRecommendations);
		this.exeBasedRecommendations = instantiationService.createInstance(ExeBasedRecommendations);
		this.dynamicWorkspaceRecommendations = instantiationService.createInstance(DynamicWorkspaceRecommendations);
		this.keymapRecommendations = instantiationService.createInstance(KeymapRecommendations);
		this.webRecommendations = instantiationService.createInstance(WebRecommendations);
		this.languageRecommendations = instantiationService.createInstance(LanguageRecommendations);

		if (!this.isEnabled()) {
			this.sessionSeed = 0;
			this.activationPromise = Promise.resolve();
			return;
		}

		this.sessionSeed = +new Date();

		// Activation
		this.activationPromise = this.activate();

		this._register(this.extensionManagementService.onDidInstallExtensions(e => this.onDidInstallExtensions(e)));
	}