Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. UseSpacingSniff.php

function UseSpacingSniff::checkLinesAfterLastUse

1 call to UseSpacingSniff::checkLinesAfterLastUse()
UseSpacingSniff::process in vendor/slevomat/coding-standard/SlevomatCodingStandard/Sniffs/Namespaces/UseSpacingSniff.php
* @phpcsSuppress SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint *

File

vendor/slevomat/coding-standard/SlevomatCodingStandard/Sniffs/Namespaces/UseSpacingSniff.php, line 134

Class

UseSpacingSniff

Namespace

SlevomatCodingStandard\Sniffs\Namespaces

Code

private function checkLinesAfterLastUse(File $phpcsFile, UseStatement $lastUse) : void {
    $tokens = $phpcsFile->getTokens();
    
    /** @var int $useEndPointer */
    $useEndPointer = TokenHelper::findNextLocal($phpcsFile, T_SEMICOLON, $lastUse->getPointer() + 1);
    $pointerAfterWhitespaceEnd = TokenHelper::findNextNonWhitespace($phpcsFile, $useEndPointer + 1);
    if ($pointerAfterWhitespaceEnd === null) {
        return;
    }
    if (in_array($tokens[$pointerAfterWhitespaceEnd]['code'], Tokens::$commentTokens, true) && $tokens[$pointerAfterWhitespaceEnd]['code'] !== T_DOC_COMMENT_OPEN_TAG && ($tokens[$useEndPointer]['line'] === $tokens[$pointerAfterWhitespaceEnd]['line'] || $tokens[$useEndPointer]['line'] + 1 === $tokens[$pointerAfterWhitespaceEnd]['line'])) {
        $useEndPointer = CommentHelper::getMultilineCommentEndPointer($phpcsFile, $pointerAfterWhitespaceEnd);
        
        /** @var int $pointerAfterWhitespaceEnd */
        $pointerAfterWhitespaceEnd = TokenHelper::findNextNonWhitespace($phpcsFile, $useEndPointer + 1);
    }
    $actualLinesCountAfterLastUse = $tokens[$pointerAfterWhitespaceEnd]['line'] - $tokens[$useEndPointer]['line'] - 1;
    if ($actualLinesCountAfterLastUse === $this->linesCountAfterLastUse) {
        return;
    }
    $fix = $phpcsFile->addFixableError(sprintf('Expected %d line%s after last use statement, found %d.', $this->linesCountAfterLastUse, $this->linesCountAfterLastUse === 1 ? '' : 's', $actualLinesCountAfterLastUse), $lastUse->getPointer(), self::CODE_INCORRECT_LINES_COUNT_AFTER_LAST_USE);
    if (!$fix) {
        return;
    }
    $phpcsFile->fixer
        ->beginChangeset();
    FixerHelper::removeBetween($phpcsFile, $useEndPointer, $pointerAfterWhitespaceEnd);
    $linesToAdd = $this->linesCountAfterLastUse;
    if (CommentHelper::isLineComment($phpcsFile, $useEndPointer)) {
        $linesToAdd--;
    }
    for ($i = 0; $i <= $linesToAdd; $i++) {
        $phpcsFile->fixer
            ->addNewline($useEndPointer);
    }
    $phpcsFile->fixer
        ->endChangeset();
}
RSS feed
Powered by Drupal