src/vs/workbench/contrib/codeEditor/browser/languageConfigurationExtensionPoint.ts/LanguageConfigurationFileHandler/_handleConfig
class LanguageConfigurationFileHandler:	private _handleConfig(languageIdentifier: LanguageIdentifier, configuration: ILanguageConfiguration): void {

		const richEditConfig: LanguageConfiguration = {};

		const comments = this._extractValidCommentRule(languageIdentifier, configuration);
		if (comments) {
			richEditConfig.comments = comments;
		}

		const brackets = this._extractValidBrackets(languageIdentifier, configuration);
		if (brackets) {
			richEditConfig.brackets = brackets;
		}

		const autoClosingPairs = this._extractValidAutoClosingPairs(languageIdentifier, configuration);
		if (autoClosingPairs) {
			richEditConfig.autoClosingPairs = autoClosingPairs;
		}

		const surroundingPairs = this._extractValidSurroundingPairs(languageIdentifier, configuration);
		if (surroundingPairs) {
			richEditConfig.surroundingPairs = surroundingPairs;
		}

		const autoCloseBefore = configuration.autoCloseBefore;
		if (typeof autoCloseBefore === 'string') {
			richEditConfig.autoCloseBefore = autoCloseBefore;
		}

		if (configuration.wordPattern) {
			const wordPattern = this._parseRegex(languageIdentifier, `wordPattern`, configuration.wordPattern);
			if (wordPattern) {
				richEditConfig.wordPattern = wordPattern;
			}
		}

		if (configuration.indentationRules) {
			const indentationRules = this._mapIndentationRules(languageIdentifier, configuration.indentationRules);
			if (indentationRules) {
				richEditConfig.indentationRules = indentationRules;
			}
		}

		if (configuration.folding) {
			const markers = configuration.folding.markers;

			richEditConfig.folding = {
				offSide: configuration.folding.offSide,
				markers: markers ? { start: new RegExp(markers.start), end: new RegExp(markers.end) } : undefined
			};
		}

		const onEnterRules = this._extractValidOnEnterRules(languageIdentifier, configuration);
		if (onEnterRules) {
			richEditConfig.onEnterRules = onEnterRules;
		}

		LanguageConfigurationRegistry.register(languageIdentifier, richEditConfig, 50);
	}