function getFormatters()

in src/emmetHelper.ts [843:914]


function getFormatters(syntax: string, preferences: any): any {
	if (!preferences || typeof preferences !== 'object') {
		return {};
	}

	if (!isStyleSheet(syntax)) {
		const commentFormatter: any = {};
		for (const key in preferences) {
			switch (key) {
				case 'filter.commentAfter':
					commentFormatter['after'] = preferences[key];
					break;
				case 'filter.commentBefore':
					commentFormatter['before'] = preferences[key];
					break;
				case 'filter.commentTrigger':
					commentFormatter['trigger'] = preferences[key];
					break;
				default:
					break;
			}
		}
		return {
			comment: commentFormatter
		};
	}
	let fuzzySearchMinScore = typeof preferences?.['css.fuzzySearchMinScore'] === 'number' ? preferences['css.fuzzySearchMinScore'] : 0.3;
	if (fuzzySearchMinScore > 1) {
		fuzzySearchMinScore = 1
	} else if (fuzzySearchMinScore < 0) {
		fuzzySearchMinScore = 0
	}
	const stylesheetFormatter: any = {
		'fuzzySearchMinScore': fuzzySearchMinScore
	};
	for (const key in preferences) {
		switch (key) {
			case 'css.floatUnit':
				stylesheetFormatter['floatUnit'] = preferences[key];
				break;
			case 'css.intUnit':
				stylesheetFormatter['intUnit'] = preferences[key];
				break;
			case 'css.unitAliases':
				const unitAliases: any = {};
				preferences[key].split(',').forEach((alias: string) => {
					if (!alias || !alias.trim() || !alias.includes(':')) {
						return;
					}
					const aliasName = alias.substr(0, alias.indexOf(':'));
					const aliasValue = alias.substr(aliasName.length + 1);
					if (!aliasName.trim() || !aliasValue) {
						return;
					}
					unitAliases[aliasName.trim()] = aliasValue;
				});
				stylesheetFormatter['unitAliases'] = unitAliases;
				break;
			case `${syntax}.valueSeparator`:
				stylesheetFormatter['between'] = preferences[key];
				break;
			case `${syntax}.propertyEnd`:
				stylesheetFormatter['after'] = preferences[key];
				break;
			default:
				break;
		}
	}
	return {
		stylesheet: stylesheetFormatter
	};
}