src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedList.ts/GettingStartedIndexList/setEntries
class GettingStartedIndexList:	setEntries(entries: undefined | T[]) {
		let entryList = entries ?? [];

		this.itemCount = 0;

		const ranker = this.options.rankElement;
		if (ranker) {
			entryList = entryList.filter(e => ranker(e) !== null);
			entryList.sort((a, b) => ranker(b)! - ranker(a)!);
		}

		const activeEntries = entryList.filter(e => !e.when || this.contextService.contextMatchesRules(e.when));
		const limitedEntries = activeEntries.slice(0, this.options.limit);

		const toRender = limitedEntries.map(e => e.id);

		if (this.entries === entries && equals(toRender, this.lastRendered)) { return; }
		this.entries = entries;

		this.contextKeysToWatch.clear();
		entryList.forEach(e => {
			const keys = e.when?.keys();
			keys?.forEach(key => this.contextKeysToWatch.add(key));
		});

		this.lastRendered = toRender;
		this.itemCount = limitedEntries.length;


		while (this.list.firstChild) {
			this.list.removeChild(this.list.firstChild);
		}

		this.itemCount = limitedEntries.length;
		for (const entry of limitedEntries) {
			const rendered = this.options.renderElement(entry);
			this.list.appendChild(rendered);
		}

		if (activeEntries.length > limitedEntries.length && this.options.more) {
			this.list.appendChild(this.options.more);
		}
		else if (entries !== undefined && this.itemCount === 0 && this.options.empty) {
			this.list.appendChild(this.options.empty);
		}
		else if (this.options.footer) {
			this.list.appendChild(this.options.footer);
		}

		this._onDidChangeEntries.fire();
	}