Skip to content
Extraits de code Groupes Projets
ecs.php 2,4 ko
Newer Older
JamesRezo's avatar
JamesRezo a validé
<?php

// ecs.php
marcimat's avatar
marcimat a validé
use PhpCsFixer\Fixer\Basic\CurlyBracesPositionFixer;
use PhpCsFixer\Fixer\Operator\NotOperatorWithSpaceFixer;
use PhpCsFixer\Fixer\Operator\NotOperatorWithSuccessorSpaceFixer;
use PhpCsFixer\Fixer\Operator\UnaryOperatorSpacesFixer;
use PhpCsFixer\Fixer\Phpdoc\GeneralPhpdocAnnotationRemoveFixer;
use PhpCsFixer\Fixer\Phpdoc\PhpdocNoPackageFixer;
use PhpCsFixer\Fixer\Strict\DeclareStrictTypesFixer;
use PhpCsFixer\Fixer\Strict\StrictComparisonFixer;
use PhpCsFixer\Fixer\StringNotation\ExplicitStringVariableFixer;
JamesRezo's avatar
JamesRezo a validé
use PhpCsFixer\Fixer\Whitespace\NoExtraBlankLinesFixer;
marcimat's avatar
marcimat a validé
use PHP_CodeSniffer\Standards\Generic\Sniffs\Arrays\DisallowLongArraySyntaxSniff;
use PHP_CodeSniffer\Standards\Generic\Sniffs\CodeAnalysis\AssignmentInConditionSniff;
use Symplify\CodingStandard\Fixer\ArrayNotation\ArrayListItemNewlineFixer;
use Symplify\CodingStandard\Fixer\ArrayNotation\ArrayOpenerAndCloserNewlineFixer;
use Symplify\CodingStandard\Fixer\Spacing\MethodChainingNewlineFixer;
use Symplify\CodingStandard\Fixer\Spacing\SpaceAfterCommaHereNowDocFixer;
JamesRezo's avatar
JamesRezo a validé
use Symplify\EasyCodingStandard\Config\ECSConfig;
use Symplify\EasyCodingStandard\ValueObject\Set\SetList;

return static function (ECSConfig $ecsConfig): void {
marcimat's avatar
marcimat a validé
	// A. full sets
	$ecsConfig->sets([SetList::PSR_12, SetList::SYMPLIFY, SetList::COMMON, SetList::CLEAN_CODE]);
JamesRezo's avatar
JamesRezo a validé
	$ecsConfig->rule(NoExtraBlankLinesFixer::class);
marcimat's avatar
marcimat a validé
	$ecsConfig->rule(DisallowLongArraySyntaxSniff::class);
	$ecsConfig->ruleWithConfiguration(CurlyBracesPositionFixer::class, [
		'functions_opening_brace' => 'same_line',
		'anonymous_functions_opening_brace' => 'same_line',
	]);
	$ecsConfig->ruleWithConfiguration(GeneralPhpdocAnnotationRemoveFixer::class, [
		'annotations' => ['throws', 'group', 'covers', 'category']
	]);

JamesRezo's avatar
JamesRezo a validé
	$ecsConfig->indentation('tab');

marcimat's avatar
marcimat a validé
	$ecsConfig->paths([
		__DIR__ . '/ecrire/tests',
		# __DIR__ . '/index.php',
		# __DIR__ . '/spip.php',
		# __DIR__ . '/ecrire',
		# __DIR__ . '/prive',
	]);
marcimat's avatar
marcimat a validé
	$ecsConfig->skip([
		__DIR__ . '/ecrire/lang',
		ArrayListItemNewlineFixer::class,
		ArrayOpenerAndCloserNewlineFixer::class,
		AssignmentInConditionSniff::class,
		DeclareStrictTypesFixer::class,
		ExplicitStringVariableFixer::class,
		MethodChainingNewlineFixer::class,
		NotOperatorWithSuccessorSpaceFixer::class,
		NotOperatorWithSpaceFixer::class,
		UnaryOperatorSpacesFixer::class,
		PhpdocNoPackageFixer::class,
		SpaceAfterCommaHereNowDocFixer::class,
		StrictComparisonFixer::class,
	]);
JamesRezo's avatar
JamesRezo a validé
};