withPaths([ __DIR__ . '/app', __DIR__ . '/modules', __DIR__ . '/plugins', __DIR__ . '/themes', __DIR__ . '/tests', __DIR__ . '/public', __DIR__ . '/builds', __DIR__ . '/spark', ]) ->withRootFiles() ->withPreparedSets(cleanCode: true, common: true, symplify: true, strict: true, psr12: true) ->withSkip([ // skip specific generated files __DIR__ . '/modules/Admin/Language/*/PersonsTaxonomy.php', LineLengthFixer::class => [__DIR__ . '/app/Views/*', __DIR__ . '/modules/**/Views/*', __DIR__ . '/themes/*'], IndentationTypeFixer::class => [ __DIR__ . '/app/Views/*', __DIR__ . '/modules/**/Views/*', __DIR__ . '/themes/*', ], MethodChainingNewlineFixer::class => [ __DIR__ . '/app/Views/*', __DIR__ . '/modules/**/Views/*', __DIR__ . '/themes/*', ], // crowdin enforces its own style for translation files // remove SingleQuoteFixer for Language files to prevent conflicts SingleQuoteFixer::class => [__DIR__ . '/app/Language/*', __DIR__ . '/modules/**/Language/*'], BinaryOperatorSpacesFixer::class => [__DIR__ . '/app/Language/*', __DIR__ . '/modules/**/Language/*'], ]) ->withConfiguredRule(BinaryOperatorSpacesFixer::class, [ 'operators' => [ '=>' => 'align_single_space_minimal', ], ]) ->withConfiguredRule(TrailingCommaInMultilineFixer::class, [ 'elements' => ['arguments', 'array_destructuring', 'arrays', 'match', 'parameters'], ]);