diff --git a/composer.json b/composer.json index f574321c0..dee3ba20c 100644 --- a/composer.json +++ b/composer.json @@ -5,18 +5,18 @@ "require": { "php": ">=8.2", "nette/utils": "^3.2", - "friendsofphp/php-cs-fixer": "^3.45", + "friendsofphp/php-cs-fixer": "^3.49", "symplify/rule-doc-generator-contracts": "^11.1" }, "require-dev": { - "symplify/easy-coding-standard": "^12.0.11", - "squizlabs/php_codesniffer": "^3.8.0", + "symplify/easy-coding-standard": "^12.1", + "squizlabs/php_codesniffer": "^3.8.1", "phpunit/phpunit": "^10.5", "symplify/rule-doc-generator": "^12.0", "phpstan/extension-installer": "^1.3", - "phpstan/phpstan": "^1.10.50", - "rector/rector": "^0.18", - "symplify/phpstan-extensions": "^11.2", + "phpstan/phpstan": "^1.10.58", + "rector/rector": "^1.0", + "symplify/phpstan-extensions": "^11.4", "tomasvotruba/class-leak": "^0.2", "tracy/tracy": "^2.10" }, diff --git a/ecs.php b/ecs.php index a66f62e83..eb2b3132f 100644 --- a/ecs.php +++ b/ecs.php @@ -3,19 +3,12 @@ declare(strict_types=1); use Symplify\EasyCodingStandard\Config\ECSConfig; -use Symplify\EasyCodingStandard\ValueObject\Set\SetList; -return static function (ECSConfig $ecsConfig): void { - $ecsConfig->paths([ - __DIR__ . '/ecs.php', - __DIR__ . '/rector.php', +return ECSConfig::configure() + ->withPaths([ __DIR__ . '/config', __DIR__ . '/src', __DIR__ . '/tests', - ]); - - $ecsConfig->sets([ - SetList::COMMON, - SetList::PSR_12, - ]); -}; + ]) + ->withRootFiles() + ->withPreparedSets(psr12: true, common: true); diff --git a/rector.php b/rector.php index 7bf8b84b7..e13eff1d9 100644 --- a/rector.php +++ b/rector.php @@ -3,35 +3,13 @@ declare(strict_types=1); use Rector\Config\RectorConfig; -use Rector\PHPUnit\Set\PHPUnitSetList; -use Rector\Set\ValueObject\LevelSetList; -use Rector\Set\ValueObject\SetList; -return static function (RectorConfig $rectorConfig): void { - $rectorConfig->sets([ - LevelSetList::UP_TO_PHP_82, - SetList::CODE_QUALITY, - SetList::DEAD_CODE, - SetList::CODING_STYLE, - SetList::TYPE_DECLARATION, - SetList::NAMING, - SetList::PRIVATIZATION, - SetList::EARLY_RETURN, - PHPUnitSetList::PHPUNIT_CODE_QUALITY, - PHPUnitSetList::PHPUNIT_100, - ]); - - $rectorConfig->paths([ - __DIR__ . '/config', - __DIR__ . '/src', - __DIR__ . '/tests', - ]); - - $rectorConfig->importNames(); - - $rectorConfig->skip([ - '*/scoper.php', +return RectorConfig::configure() + ->withPaths([__DIR__ . '/config', __DIR__ . '/src', __DIR__ . '/tests']) + ->withPhpSets() + ->withPreparedSets(codeQuality: true, codingStyle: true, naming: true, earlyReturn: true, privatization: true) + ->withImportNames(removeUnusedImports: true) + ->withSkip([ '*/Source/*', '*/Fixture/*', ]); -}; diff --git a/src/Fixer/Commenting/RemoveUselessDefaultCommentFixer.php b/src/Fixer/Commenting/RemoveUselessDefaultCommentFixer.php index ef1f503e5..877e371c9 100644 --- a/src/Fixer/Commenting/RemoveUselessDefaultCommentFixer.php +++ b/src/Fixer/Commenting/RemoveUselessDefaultCommentFixer.php @@ -45,6 +45,12 @@ public function isCandidate(Tokens $tokens): bool return $tokens->isAnyTokenKindsFound([T_DOC_COMMENT, T_COMMENT]); } + public function getPriority(): int + { + /** must run before @see \PhpCsFixer\Fixer\Basic\BracesFixer to cleanup spaces */ + return 40; + } + /** * @param Tokens $tokens */ @@ -63,13 +69,10 @@ public function fix(SplFileInfo $fileInfo, Tokens $tokens): void $token ); - if ($cleanedDocContent !== '') { - continue; + if ($cleanedDocContent === '') { + // remove token + $tokens->clearTokenAndMergeSurroundingWhitespace($index); } - - // remove token - $tokens->clearAt($index); - $tokens->removeTrailingWhitespace($index, "\n"); } } diff --git a/src/Fixer/Spacing/StandaloneLineConstructorParamFixer.php b/src/Fixer/Spacing/StandaloneLineConstructorParamFixer.php index 858512b86..d902bb612 100644 --- a/src/Fixer/Spacing/StandaloneLineConstructorParamFixer.php +++ b/src/Fixer/Spacing/StandaloneLineConstructorParamFixer.php @@ -4,7 +4,6 @@ namespace Symplify\CodingStandard\Fixer\Spacing; -use PhpCsFixer\Fixer\Basic\BracesFixer; use PhpCsFixer\FixerDefinition\FixerDefinition; use PhpCsFixer\FixerDefinition\FixerDefinitionInterface; use PhpCsFixer\Tokenizer\Token; @@ -36,7 +35,7 @@ public function __construct( /** * Must run before * - * @see BracesFixer::getPriority() + * @see \PhpCsFixer\Fixer\Basic\BracesFixer::getPriority() */ public function getPriority(): int { diff --git a/src/Fixer/Spacing/StandaloneLinePromotedPropertyFixer.php b/src/Fixer/Spacing/StandaloneLinePromotedPropertyFixer.php index 9c6a12e28..bfd036508 100644 --- a/src/Fixer/Spacing/StandaloneLinePromotedPropertyFixer.php +++ b/src/Fixer/Spacing/StandaloneLinePromotedPropertyFixer.php @@ -4,7 +4,6 @@ namespace Symplify\CodingStandard\Fixer\Spacing; -use PhpCsFixer\Fixer\Basic\BracesFixer; use PhpCsFixer\FixerDefinition\FixerDefinition; use PhpCsFixer\FixerDefinition\FixerDefinitionInterface; use PhpCsFixer\Tokenizer\CT; @@ -37,7 +36,7 @@ public function __construct( /** * Must run before * - * @see BracesFixer::getPriority() + * @see \PhpCsFixer\Fixer\Basic\BracesFixer::getPriority() */ public function getPriority(): int { diff --git a/tests/Fixer/Commenting/RemoveUselessDefaultCommentFixer/Fixture/todo_change_autogenerated_comment.php.inc b/tests/Fixer/Commenting/RemoveUselessDefaultCommentFixer/Fixture/todo_change_autogenerated_comment.php.inc index 45bbfb3cf..84b83da35 100644 --- a/tests/Fixer/Commenting/RemoveUselessDefaultCommentFixer/Fixture/todo_change_autogenerated_comment.php.inc +++ b/tests/Fixer/Commenting/RemoveUselessDefaultCommentFixer/Fixture/todo_change_autogenerated_comment.php.inc @@ -10,5 +10,6 @@ namespace Symplify\CodingStandard\Tests\Fixer\Commenting\RemovePHPStormTodoComme namespace Symplify\CodingStandard\Tests\Fixer\Commenting\RemovePHPStormTodoCommentFixer\Fixture; + // TODO some other notes ?> diff --git a/tests/Fixer/Commenting/RemoveUselessDefaultCommentFixer/Fixture/useless_class_comment.php.inc b/tests/Fixer/Commenting/RemoveUselessDefaultCommentFixer/Fixture/useless_class_comment.php.inc index 87e95f09f..8679af82b 100644 --- a/tests/Fixer/Commenting/RemoveUselessDefaultCommentFixer/Fixture/useless_class_comment.php.inc +++ b/tests/Fixer/Commenting/RemoveUselessDefaultCommentFixer/Fixture/useless_class_comment.php.inc @@ -1,6 +1,6 @@ rule(RemoveUselessDefaultCommentFixer::class); - $ecsConfig->rule(StatementIndentationFixer::class); + $ecsConfig->rules([ + BracesFixer::class, + RemoveUselessDefaultCommentFixer::class, + StatementIndentationFixer::class, + ]); }; diff --git a/tests/bootstrap.php b/tests/bootstrap.php index 855f0f8d5..a046756d5 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -21,7 +21,6 @@ define('T_ENUM', 5015); } - // required for PHP_CodeSniffer in packages/EasyCodingStandard/tests/* if (! defined('PHP_CODESNIFFER_VERBOSITY')) { define('PHP_CODESNIFFER_VERBOSITY', 0); @@ -29,7 +28,6 @@ new Tokens(); } - // prefer local coding-standard over old, vendor one exec('rm -rf vendor/symplify/easy-coding-standard/vendor/symplify/coding-standard/src'); exec('ln -s $PWD/src vendor/symplify/easy-coding-standard/vendor/symplify/coding-standard/');