Skip to content
This repository has been archived by the owner on Dec 3, 2023. It is now read-only.

Commit

Permalink
[CodingStandard] first fixer fix?
Browse files Browse the repository at this point in the history
  • Loading branch information
TomasVotruba committed May 6, 2017
1 parent 73cffaf commit a32fba2
Showing 1 changed file with 36 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,37 @@
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
{
// analyze only properties with comments
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)) {
Expand All @@ -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
Expand All @@ -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, ' ']));
}
}

0 comments on commit a32fba2

Please sign in to comment.