Skip to content

Commit

Permalink
Manage aliases
Browse files Browse the repository at this point in the history
Adds both aliases and real fixers if set. PHP-CS-Fixer would not take care if not existing.

Better compatibility between PHP-CS-Fixer 1.x and 2.x.
  • Loading branch information
soullivaneuh committed Sep 25, 2015
1 parent b6b2df6 commit dc397ad
Showing 1 changed file with 29 additions and 1 deletion.
30 changes: 29 additions & 1 deletion src/ConfigBridge.php
Expand Up @@ -11,6 +11,7 @@
use Symfony\Component\Yaml\Yaml;
use Symfony\CS\Config\Config;
use Symfony\CS\Finder\DefaultFinder;
use Symfony\CS\Fixer;
use Symfony\CS\Fixer\Contrib\HeaderCommentFixer;
use Symfony\CS\FixerInterface;

Expand Down Expand Up @@ -116,11 +117,16 @@ public function getFixers()
$enabledFixer = isset($this->styleCIConfig['enabled']) ? $this->styleCIConfig['enabled'] : array();
$disabledFixer = isset($this->styleCIConfig['disabled']) ? $this->styleCIConfig['disabled'] : array();

$invalidFixers = array_diff(array_merge($enabledFixer, $disabledFixer), Fixers::$valid);
// Aliases should be included as valid fixers
$invalidFixers = array_diff(array_merge($enabledFixer, $disabledFixer), array_merge(Fixers::$valid, array_keys(Fixers::$aliases)));
if (count($invalidFixers) > 0) {
throw new FixersConfigException(sprintf('The following fixers are invalid: "%s".', implode('", "', $invalidFixers)));
}

$presetFixers = $this->resolveAliases($presetFixers);
$enabledFixer = $this->resolveAliases($enabledFixer);
$disabledFixer = $this->resolveAliases($disabledFixer);

$fixers = array_merge(
$enabledFixer,
array_map(function ($disabledFixer) {
Expand Down Expand Up @@ -160,6 +166,28 @@ private function getPresetFixers()
return $validPresets[$preset];
}

/**
* Adds both aliases and real fixers if set. PHP-CS-Fixer would not take care if not existing.
* Better compatibility between PHP-CS-Fixer 1.x and 2.x.
*
* @param string[] $fixers
*
* @return string[]
*/
private function resolveAliases(array $fixers)
{
foreach (Fixers::$aliases as $alias => $name) {
if (in_array($alias, $fixers, true) && !in_array($name, $fixers, true)) {
array_push($fixers, $name);
}
if (in_array($name, $fixers, true) && !in_array($alias, $fixers, true)) {
array_push($fixers, $alias);
}
}

return $fixers;
}

private function parseStyleCIConfig()
{
if (null === $this->styleCIConfig) {
Expand Down

0 comments on commit dc397ad

Please sign in to comment.