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
Namespace
SlevomatCodingStandard\Sniffs\NamespacesCode
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();
}