src/vs/workbench/contrib/extensions/browser/extensionEditor.ts/ExtensionEditor/setRecommendationText
class ExtensionEditor:	private setRecommendationText(extension: IExtension, template: IExtensionEditorTemplate): void {
		const updateRecommendationText = (layout: boolean) => {
			const extRecommendations = this.extensionRecommendationsService.getAllRecommendationsWithReason();
			if (extRecommendations[extension.identifier.id.toLowerCase()]) {
				const reasonText = extRecommendations[extension.identifier.id.toLowerCase()].reasonText;
				if (reasonText) {
					append(template.recommendation, $(`div${ThemeIcon.asCSSSelector(starEmptyIcon)}`));
					append(template.recommendation, $(`div.recommendation-text`, undefined, reasonText));
				}
			} else if (this.extensionIgnoredRecommendationsService.globalIgnoredRecommendations.indexOf(extension.identifier.id.toLowerCase()) !== -1) {
				append(template.recommendation, $(`div.recommendation-text`, undefined, localize('recommendationHasBeenIgnored', "You have chosen not to receive recommendations for this extension.")));
			}
			if (layout && this.dimension) {
				this.layout(this.dimension);
			}
		};
		reset(template.recommendation);
		if (extension.state === ExtensionState.Installed) {
			return;
		}
		updateRecommendationText(false);
		this.transientDisposables.add(this.extensionRecommendationsService.onDidChangeRecommendations(() => updateRecommendationText(true)));
	}