src/vs/workbench/contrib/preferences/browser/preferencesSearch.ts/RemoteSearchProvider/searchModel
class RemoteSearchProvider:	searchModel(preferencesModel: ISettingsEditorModel, token?: CancellationToken): Promise<ISearchResult | null> {
		return this._remoteSearchP.then<ISearchResult | null>((remoteResult) => {
			if (!remoteResult) {
				return null;
			}

			if (token && token.isCancellationRequested) {
				throw canceled();
			}

			const resultKeys = Object.keys(remoteResult.scoredResults);
			const highScoreKey = top(resultKeys, (a, b) => remoteResult.scoredResults[b].score - remoteResult.scoredResults[a].score, 1)[0];
			const highScore = highScoreKey ? remoteResult.scoredResults[highScoreKey].score : 0;
			const minScore = highScore / 5;
			if (this.options.newExtensionsOnly) {
				return this.installedExtensions.then(installedExtensions => {
					const newExtsMinScore = Math.max(RemoteSearchProvider.NEW_EXTENSIONS_MIN_SCORE, minScore);
					const passingScoreKeys = resultKeys
						.filter(k => {
							const result = remoteResult.scoredResults[k];
							const resultExtId = (result.extensionPublisher + '.' + result.extensionName).toLowerCase();
							return !installedExtensions.some(ext => ext.identifier.id.toLowerCase() === resultExtId);
						})
						.filter(k => remoteResult.scoredResults[k].score >= newExtsMinScore);

					const filterMatches: ISettingMatch[] = passingScoreKeys.map(k => {
						const remoteSetting = remoteResult.scoredResults[k];
						const setting = remoteSettingToISetting(remoteSetting);
						return <ISettingMatch>{
							setting,
							score: remoteSetting.score,
							matches: [] // TODO
						};
					});

					return <ISearchResult>{
						filterMatches,
						metadata: remoteResult
					};
				});
			} else {
				const settingMatcher = this.getRemoteSettingMatcher(remoteResult.scoredResults, minScore, preferencesModel);
				const filterMatches = preferencesModel.filterSettings(this.options.filter, group => null, settingMatcher);
				return <ISearchResult>{
					filterMatches,
					metadata: remoteResult
				};
			}
		});
	}