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

[EasyCodingStandard] cleanup duplicated rules + fix line reporting for Fixer #152

Merged
merged 6 commits into from
Apr 27, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
40 changes: 15 additions & 25 deletions easy-coding-standard.neon
Original file line number Diff line number Diff line change
Expand Up @@ -19,18 +19,25 @@ checkers:
- PHP_CodeSniffer\Standards\Squiz\Sniffs\ControlStructures\ForEachLoopDeclarationSniff
- PHP_CodeSniffer\Standards\Squiz\Sniffs\ControlStructures\ForLoopDeclarationSniff
- PHP_CodeSniffer\Standards\Squiz\Sniffs\ControlStructures\LowercaseDeclarationSniff
- Symplify\CodingStandard\Sniffs\ControlStructures\NewClassSniff
- SlevomatCodingStandard\Sniffs\ControlStructures\DisallowEqualOperatorsSniff
- SlevomatCodingStandard\Sniffs\ControlStructures\YodaComparisonSniff
- SlevomatCodingStandard\Sniffs\Exceptions\DeadCatchSniff
- SlevomatCodingStandard\Sniffs\Exceptions\ReferenceThrowableOnlySniff

# Files
- PHP_CodeSniffer\Standards\Generic\Sniffs\Files\ByteOrderMarkSniff
PHP_CodeSniffer\Standards\Generic\Sniffs\Files\LineLengthSniff:
lineLimit: 120
absoluteLineLimit: 120
- PHP_CodeSniffer\Standards\Generic\Sniffs\Files\OneClassPerFileSniff # already PSR4 fixer?

# PSR-4
- PhpCsFixer\Fixer\Basic\Psr4Fixer
- PHP_CodeSniffer\Standards\Generic\Sniffs\Files\OneClassPerFileSniff
- PHP_CodeSniffer\Standards\Generic\Sniffs\Files\OneInterfacePerFileSniff

# Formatting
- PHP_CodeSniffer\Standards\Generic\Sniffs\Formatting\SpaceAfterCastSniff

- PHP_CodeSniffer\Standards\Generic\Sniffs\Functions\FunctionCallArgumentSpacingSniff
- PHP_CodeSniffer\Standards\PEAR\Sniffs\Functions\ValidDefaultValueSniff
PHP_CodeSniffer\Standards\Squiz\Sniffs\Functions\FunctionDeclarationSniff:
Expand Down Expand Up @@ -65,7 +72,7 @@ checkers:
- ObjectCalisthenics\Sniffs\NamingConventions\ElementNameMinimalLengthSniff

# PHP
- PHP_CodeSniffer\Standards\Generic\Sniffs\PHP\DisallowShortOpenTagSniff
- PhpCsFixer\Fixer\PhpTag\FullOpeningTagFixer
- PHP_CodeSniffer\Standards\MySource\Sniffs\PHP\EvalObjectFactorySniff
- PHP_CodeSniffer\Standards\MySource\Sniffs\PHP\GetRequestDataSniff
- PHP_CodeSniffer\Standards\Squiz\Sniffs\PHP\NonExecutableCodeSniff
Expand All @@ -77,31 +84,26 @@ checkers:
PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace\SuperfluousWhitespaceSniff:
ignoreBlankLines: false

# Symplify: Commenting
# Commenting
- Symplify\CodingStandard\Sniffs\Commenting\BlockPropertyCommentSniff
- Symplify\CodingStandard\Sniffs\Commenting\VarPropertyCommentSniff
- Symplify\CodingStandard\Sniffs\Commenting\VarConstantCommentSniff

# Symplify: Control Structures
- Symplify\CodingStandard\Sniffs\ControlStructures\NewClassSniff

# Symplify: Debug and dev
# Debug and dev
- Symplify\CodingStandard\Sniffs\Debug\DebugFunctionCallSniff
- Symplify\CodingStandard\Sniffs\Debug\CommentedOutCodeSniff

# Namespaces
- Symplify\CodingStandard\Sniffs\Namespaces\ClassNamesWithoutPreSlashSniff

- PhpCsFixer\Fixer\NamespaceNotation\SingleBlankLineBeforeNamespaceFixer
- PhpCsFixer\Fixer\NamespaceNotation\BlankLineAfterNamespaceFixer

# Symplify: Naming
# Naming
- Symplify\CodingStandard\Sniffs\Naming\AbstractClassNameSniff
- Symplify\CodingStandard\Sniffs\Naming\InterfaceNameSniff
- Symplify\CodingStandard\Sniffs\Naming\TraitNameSniff

# Slevomat
- SlevomatCodingStandard\Sniffs\Classes\ClassConstantVisibilitySniff
- SlevomatCodingStandard\Sniffs\Classes\UnusedPrivateElementsSniff
SlevomatCodingStandard\Sniffs\Commenting\ForbiddenAnnotationsSniff:
forbiddenAnnotations:
Expand All @@ -113,10 +115,7 @@ checkers:
- @throws
- @version

- SlevomatCodingStandard\Sniffs\ControlStructures\DisallowEqualOperatorsSniff
- SlevomatCodingStandard\Sniffs\ControlStructures\YodaComparisonSniff
- SlevomatCodingStandard\Sniffs\Exceptions\DeadCatchSniff
- SlevomatCodingStandard\Sniffs\Exceptions\ReferenceThrowableOnlySniff
# Type Hints
- SlevomatCodingStandard\Sniffs\TypeHints\LongTypeHintsSniff
- SlevomatCodingStandard\Sniffs\TypeHints\ParameterTypeHintSpacingSniff
- SlevomatCodingStandard\Sniffs\TypeHints\NullableTypeForNullDefaultValueSniff
Expand All @@ -137,7 +136,6 @@ checkers:
spacing: one
PhpCsFixer\Fixer\ArrayNotation\ArraySyntaxFixer:
syntax: short
- PhpCsFixer\Fixer\Basic\Psr4Fixer
- PhpCsFixer\Fixer\ClassNotation\OrderedClassElementsFixer
- PhpCsFixer\Fixer\LanguageConstruct\DirConstantFixer
- PhpCsFixer\Fixer\CastNotation\ModernizeTypesCastingFixer
Expand All @@ -150,7 +148,6 @@ checkers:
- PhpCsFixer\Fixer\Import\OrderedImportsFixer
- PhpCsFixer\Fixer\LanguageConstruct\CombineConsecutiveUnsetsFixer
- PhpCsFixer\Fixer\Strict\StrictComparisonFixer
- PhpCsFixer\Fixer\PhpTag\NoShortEchoTagFixer
- PhpCsFixer\Fixer\Alias\EregToPregFixer
- PhpCsFixer\Fixer\Phpdoc\GeneralPhpdocAnnotationRemoveFixer

Expand All @@ -161,14 +158,10 @@ checkers:

# PSR1 (official)
- PhpCsFixer\Fixer\Basic\EncodingFixer
- PhpCsFixer\Fixer\PhpTag\FullOpeningTagFixer

# PSR2 (official)
- PhpCsFixer\Fixer\NamespaceNotation\BlankLineAfterNamespaceFixer
- PhpCsFixer\Fixer\ClassNotation\ClassDefinitionFixer
- PhpCsFixer\Fixer\ControlStructure\ElseifFixer
- PhpCsFixer\Fixer\FunctionNotation\FunctionDeclarationFixer
- PhpCsFixer\Fixer\FunctionNotation\FunctionDeclarationFixer
- PhpCsFixer\Fixer\Whitespace\IndentationTypeFixer
- PhpCsFixer\Fixer\Whitespace\LineEndingFixer
- PhpCsFixer\Fixer\Casing\LowercaseKeywordsFixer
Expand Down Expand Up @@ -237,7 +230,6 @@ checkers:
- PhpCsFixer\Fixer\Phpdoc\PhpdocNoEmptyReturnFixer
- PhpCsFixer\Fixer\Phpdoc\PhpdocNoPackageFixer
- PhpCsFixer\Fixer\Phpdoc\PhpdocNoUselessInheritdocFixer
- PhpCsFixer\Fixer\Phpdoc\PhpdocReturnSelfReferenceFixer
- PhpCsFixer\Fixer\Phpdoc\PhpdocScalarFixer
- PhpCsFixer\Fixer\Phpdoc\PhpdocSingleLineVarSpacingFixer
- PhpCsFixer\Fixer\Phpdoc\PhpdocSummaryFixer
Expand All @@ -249,8 +241,6 @@ checkers:
- PhpCsFixer\Fixer\FunctionNotation\ReturnTypeDeclarationFixer
- PhpCsFixer\Fixer\ClassNotation\SelfAccessorFixer
- PhpCsFixer\Fixer\CastNotation\ShortScalarCastFixer
- PhpCsFixer\Fixer\NamespaceNotation\SingleBlankLineBeforeNamespaceFixer
- PhpCsFixer\Fixer\ClassNotation\SingleClassElementPerStatementFixer
- PhpCsFixer\Fixer\StringNotation\SingleQuoteFixer
- PhpCsFixer\Fixer\Semicolon\SpaceAfterSemicolonFixer
- PhpCsFixer\Fixer\Operator\StandardizeNotEqualsFixer
Expand All @@ -269,7 +259,6 @@ checkers:
- method

# new since PhpCsFixer 2.1/2.2
- PhpCsFixer\Fixer\Phpdoc\PhpdocNoUselessInheritdocFixer
- PhpCsFixer\Fixer\Phpdoc\PhpdocReturnSelfReferenceFixer
- PhpCsFixer\Fixer\LanguageConstruct\IsNullFixer
- PhpCsFixer\Fixer\LanguageConstruct\FunctionToConstantFixer
Expand All @@ -279,6 +268,7 @@ checkers:
# Architecture
- Symplify\CodingStandard\Sniffs\Architecture\ForbiddenTraitSniff
- Symplify\CodingStandard\Sniffs\Classes\EqualInterfaceImplementationSniff
- Symplify\CodingStandard\Sniffs\Classes\FinalInterfaceSniff

parameters:
skip:
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,10 @@ private function trimCommentStart(string $tokenContent): string
$tokenContent = substr($tokenContent, 2);
}

if (substr($tokenContent, 0, 1) === '#') {
$tokenContent = substr($tokenContent, 1);
}

if (substr($tokenContent, 0, 3) === '/**') {
$tokenContent = substr($tokenContent, 3);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
* This class is duplicated due to autoloading.
* Only that way we can get reflection from SomeInterface and its methods.
*/
class SomeClass implements SomeInterface
final class SomeClass implements SomeInterface
{
public function resolve(): void
{
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?php declare(strict_types=1);

require __DIR__ . '/../vendor/autoload.php';

# This is simple php code comment
Symplify\EasyCodingStandard\SniffRunner\Legacy\LegacyCompatibilityLayer::add();
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

namespace Symplify\EasyCodingStandard\Configuration;

use Symplify\EasyCodingStandard\Configuration\Exception\DuplicatedCheckerFoundException;

final class CheckerConfigurationNormalizer
{
/**
Expand All @@ -19,9 +21,27 @@ public static function normalize(array $classes): array
$config = [];
}

self::ensureThereAreNoDuplications($configuredClasses, $name);
$configuredClasses[$name] = $config;
}

return $configuredClasses;
}

/**
* @param string[] $configuredClasses
* @param string $name
*/
private static function ensureThereAreNoDuplications(array $configuredClasses, string $name): void
{
if (! isset($configuredClasses[$name])) {
return;
}

throw new DuplicatedCheckerFoundException(sprintf(
'Checker "%s" is being registered twice.'
. ' Keep it only once, so configuration is clear and performance better.',
$name
));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?php declare(strict_types=1);

namespace Symplify\EasyCodingStandard\Configuration\Exception;

use Exception;

final class DuplicatedCheckerFoundException extends Exception
{
}
Original file line number Diff line number Diff line change
Expand Up @@ -115,15 +115,15 @@ public function processFile(SplFileInfo $file): void

private function detectChangedLineFromTokens(Tokens $tokens): int
{
$line = 1;
$line = 0;
foreach ($tokens as $token) {
$line += substr_count($token->getContent(), PHP_EOL);
if ($token->isChanged()) {
return $line;
return ++$line;
}
}

return 0;
return $line;
}

private function addErrorToErrorMessageCollector(SplFileInfo $file, FixerInterface $fixer, Tokens $tokens): void
Expand Down