From a32fba28c61dd7d20839818c0553401045fc5699 Mon Sep 17 00:00:00 2001 From: TomasVotruba Date: Sat, 6 May 2017 23:21:42 +0200 Subject: [PATCH] [CodingStandard] first fixer fix? --- .../ArrayPropertyDefaultValueFixer.php | 51 +++++++++++++------ 1 file changed, 36 insertions(+), 15 deletions(-) diff --git a/packages/CodingStandard/src/Fixer/Property/ArrayPropertyDefaultValueFixer.php b/packages/CodingStandard/src/Fixer/Property/ArrayPropertyDefaultValueFixer.php index 96671d14a59..067ff5e0706 100644 --- a/packages/CodingStandard/src/Fixer/Property/ArrayPropertyDefaultValueFixer.php +++ b/packages/CodingStandard/src/Fixer/Property/ArrayPropertyDefaultValueFixer.php @@ -3,15 +3,16 @@ namespace Symplify\CodingStandard\Fixer\Property; use Nette\Utils\Strings; -use PhpCsFixer\AbstractFixer; use PhpCsFixer\DocBlock\DocBlock; +use PhpCsFixer\Fixer\FixerInterface; use PhpCsFixer\FixerDefinition\FixerDefinition; use PhpCsFixer\FixerDefinition\FixerDefinitionInterface; +use PhpCsFixer\Tokenizer\CT; use PhpCsFixer\Tokenizer\Token; use PhpCsFixer\Tokenizer\Tokens; use SplFileInfo; -final class ArrayPropertyDefaultValueFixer extends AbstractFixer +final class ArrayPropertyDefaultValueFixer implements FixerInterface { public function isCandidate(Tokens $tokens): bool { @@ -19,7 +20,20 @@ public function isCandidate(Tokens $tokens): bool return $tokens->isAllTokenKindsFound([T_DOC_COMMENT, T_VARIABLE]); } - protected function applyFix(SplFileInfo $file, Tokens $tokens): void + public function getDefinition(): FixerDefinitionInterface + { + return new FixerDefinition( + 'Array property should have default value, to prevent undefined array issues.', + [] + ); + } + + public function isRisky(): bool + { + return false; + } + + public function fix(SplFileInfo $file, Tokens $tokens): void { foreach ($tokens as $index => $token) { if (! $token->isGivenKind(T_DOC_COMMENT)) { @@ -42,12 +56,20 @@ protected function applyFix(SplFileInfo $file, Tokens $tokens): void } } - public function getDefinition(): FixerDefinitionInterface + + public function getName(): string { - return new FixerDefinition( - 'Array property should have default value, to prevent undefined array issues.', - [] - ); + return self::class; + } + + public function getPriority(): int + { + return 0; + } + + public function supports(SplFileInfo $file): bool + { + return true; } private function isArrayPropertyDocComment(Token $token): bool @@ -70,13 +92,12 @@ private function isArrayPropertyDocComment(Token $token): bool return true; } - private function addDefaultValueForArrayProperty(Tokens $tokens,int $semicolonPosition): void + private function addDefaultValueForArrayProperty(Tokens $tokens, int $semicolonPosition): void { - $tokens->insertAt($semicolonPosition, new Token(']')); - $tokens->insertAt($semicolonPosition, new Token('[')); - $tokens->insertAt($semicolonPosition, new Token(' ')); - $tokens->insertAt($semicolonPosition, new Token('=')); - $tokens->insertAt($semicolonPosition, new Token(' ')); + $tokens->insertAt($semicolonPosition, new Token([CT::T_ARRAY_SQUARE_BRACE_CLOSE, ']'])); + $tokens->insertAt($semicolonPosition, new Token([CT::T_ARRAY_SQUARE_BRACE_OPEN, '['])); + $tokens->insertAt($semicolonPosition, new Token([T_WHITESPACE, ' '])); + $tokens->insertAt($semicolonPosition, new Token([T_EQUAL, '='])); + $tokens->insertAt($semicolonPosition, new Token([T_WHITESPACE, ' '])); } } -