protected function getPluginsConfig()
	{
		$plugins = new Dictionary;

		foreach ($this->config['plugins'] as $pluginName => $pluginConfig)
		{
			if (!isset($pluginConfig['js']))
			{
				// Skip this plugin
				continue;
			}
			$js = $pluginConfig['js'];
			unset($pluginConfig['js']);

			// Not needed in JavaScript
			unset($pluginConfig['className']);

			// Ensure that quickMatch is UTF-8 if present
			if (isset($pluginConfig['quickMatch']))
			{
				// Well-formed UTF-8 sequences
				$valid = [
					'[[:ascii:]]',
					// [1100 0000-1101 1111] [1000 0000-1011 1111]
					'[\\xC0-\\xDF][\\x80-\\xBF]',
					// [1110 0000-1110 1111] [1000 0000-1011 1111]{2}
					'[\\xE0-\\xEF][\\x80-\\xBF]{2}',
					// [1111 0000-1111 0111] [1000 0000-1011 1111]{3}
					'[\\xF0-\\xF7][\\x80-\\xBF]{3}'
				];

				$regexp = '#(?>' . implode('|', $valid) . ')+#';

				// Keep only the first valid sequence of UTF-8, or unset quickMatch if none is found
				if (preg_match($regexp, $pluginConfig['quickMatch'], $m))
				{
					$pluginConfig['quickMatch'] = $m[0];
				}
				else
				{
					unset($pluginConfig['quickMatch']);
				}
			}

			/**
			* @var array Keys of elements that are kept in the global scope. Everything else will be
			*            moved into the plugin's parser
			*/
			$globalKeys = [
				'quickMatch'  => 1,
				'regexp'      => 1,
				'regexpLimit' => 1
			];

			$globalConfig = array_intersect_key($pluginConfig, $globalKeys);
			$localConfig  = array_diff_key($pluginConfig, $globalKeys);

			if (isset($globalConfig['regexp']) && !($globalConfig['regexp'] instanceof Code))
			{
				$globalConfig['regexp'] = new Code(RegexpConvertor::toJS($globalConfig['regexp'], true));
			}

			$globalConfig['parser'] = new Code(
				'/**
				* @param {!string} text
				* @param {!Array.<Array>} matches
				*/
				function(text, matches)
				{
					/** @const */
					var config=' . $this->encode($localConfig) . ';
					' . $js . '
				}'
			);

			$plugins[$pluginName] = $globalConfig;
		}

		return $plugins;
	}
protected function getPluginsConfig()
	{
		$plugins = new Dictionary;

		foreach ($this->config['plugins'] as $pluginName => $pluginConfig)
		{
			if (!isset($pluginConfig['js']))
			{
				// Skip this plugin
				continue;
			}
			$js = $pluginConfig['js'];
			unset($pluginConfig['js']);

			// Not needed in JavaScript
			unset($pluginConfig['className']);

			// Ensure that quickMatch is UTF-8 if present
			if (isset($pluginConfig['quickMatch']))
			{
				// Well-formed UTF-8 sequences
				$valid = [
					'[[:ascii:]]',
					// [1100 0000-1101 1111] [1000 0000-1011 1111]
					'[\\xC0-\\xDF][\\x80-\\xBF]',
					// [1110 0000-1110 1111] [1000 0000-1011 1111]{2}
					'[\\xE0-\\xEF][\\x80-\\xBF]{2}',
					// [1111 0000-1111 0111] [1000 0000-1011 1111]{3}
					'[\\xF0-\\xF7][\\x80-\\xBF]{3}'
				];

				$regexp = '#(?>' . implode('|', $valid) . ')+#';

				// Keep only the first valid sequence of UTF-8, or unset quickMatch if none is found
				if (preg_match($regexp, $pluginConfig['quickMatch'], $m))
				{
					$pluginConfig['quickMatch'] = $m[0];
				}
				else
				{
					unset($pluginConfig['quickMatch']);
				}
			}

			/**
			* @var array Keys of elements that are kept in the global scope. Everything else will be
			*            moved into the plugin's parser
			*/
			$globalKeys = [
				'quickMatch'  => 1,
				'regexp'      => 1,
				'regexpLimit' => 1
			];

			$globalConfig = array_intersect_key($pluginConfig, $globalKeys);
			$localConfig  = array_diff_key($pluginConfig, $globalKeys);

			if (isset($globalConfig['regexp']) && !($globalConfig['regexp'] instanceof Code))
			{
				$globalConfig['regexp'] = new Code(RegexpConvertor::toJS($globalConfig['regexp'], true));
			}

			$globalConfig['parser'] = new Code(
				'/**
				* @param {!string} text
				* @param {!Array.<Array>} matches
				*/
				function(text, matches)
				{
					/** @const */
					var config=' . $this->encode($localConfig) . ';
					' . $js . '
				}'
			);

			$plugins[$pluginName] = $globalConfig;
		}

		return $plugins;
	}
protected function getPluginsConfig ( ) { $ plugins = new Dictionary ; foreach ( $ this -> config [ 'plugins' ] as $ pluginName => $ pluginConfig ) { if ( ! isset ( $ pluginConfig [ 'js' ] ) ) { // Skip this plugin continue ; } $ js = $ pluginConfig [ 'js' ] ; unset ( $ pluginConfig [ 'js' ] ) ; // Not needed in JavaScript unset ( $ pluginConfig [ 'className' ] ) ; // Ensure that quickMatch is UTF-8 if present if ( isset ( $ pluginConfig [ 'quickMatch' ] ) ) { // Well-formed UTF-8 sequences $ valid = [ '[[:ascii:]]' , // [1100 0000-1101 1111] [1000 0000-1011 1111] '[\\xC0-\\xDF][\\x80-\\xBF]' , // [1110 0000-1110 1111] [1000 0000-1011 1111]{2} '[\\xE0-\\xEF][\\x80-\\xBF]{2}' , // [1111 0000-1111 0111] [1000 0000-1011 1111]{3} '[\\xF0-\\xF7][\\x80-\\xBF]{3}' ] ; $ regexp = '#(?>' . implode ( '|' , $ valid ) . ')+#' ; // Keep only the first valid sequence of UTF-8, or unset quickMatch if none is found if ( preg_match ( $ regexp , $ pluginConfig [ 'quickMatch' ] , $ m ) ) { $ pluginConfig [ 'quickMatch' ] = $ m [ 0 ] ; } else { unset ( $ pluginConfig [ 'quickMatch' ] ) ; } } /**
			* @var array Keys of elements that are kept in the global scope. Everything else will be
			*            moved into the plugin's parser
			*/ $ globalKeys = [ 'quickMatch' => 1 , 'regexp' => 1 , 'regexpLimit' => 1 ] ; $ globalConfig = array_intersect_key ( $ pluginConfig , $ globalKeys ) ; $ localConfig = array_diff_key ( $ pluginConfig , $ globalKeys ) ; if ( isset ( $ globalConfig [ 'regexp' ] ) && ! ( $ globalConfig [ 'regexp' ] instanceof Code ) ) { $ globalConfig [ 'regexp' ] = new Code ( RegexpConvertor :: toJS ( $ globalConfig [ 'regexp' ] , true ) ) ; } $ globalConfig [ 'parser' ] = new Code ( '/**
				* @param {!string} text
				* @param {!Array.<Array>} matches
				*/
				function(text, matches)
				{
					/** @const */
					var config=' . $ this -> encode ( $ localConfig ) . ';
					' . $ js . '
				}' ) ; $ plugins [ $ pluginName ] = $ globalConfig ; } return $ plugins ; }
Return the plugins' config

@return Dictionary
Return the plugins config