function MultiLineArrayEndBracketPlacementSniff::process
* @phpcsSuppress SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint *
Parameters
int $stackPointer:
Overrides Sniff::process
File
-
vendor/
slevomat/ coding-standard/ SlevomatCodingStandard/ Sniffs/ Arrays/ MultiLineArrayEndBracketPlacementSniff.php, line 28
Class
Namespace
SlevomatCodingStandard\Sniffs\ArraysCode
public function process(File $phpcsFile, $stackPointer) : void {
$tokens = $phpcsFile->getTokens();
if (ArrayHelper::isMultiLine($phpcsFile, $stackPointer) === false) {
return;
}
[
$arrayOpenerPointer,
$arrayCloserPointer,
] = ArrayHelper::openClosePointers($tokens[$stackPointer]);
$nextEffective = TokenHelper::findNextEffective($phpcsFile, $arrayOpenerPointer + 1, $arrayCloserPointer);
if ($nextEffective === null || in_array($tokens[$nextEffective]['code'], TokenHelper::$arrayTokenCodes, true) === false) {
return;
}
[
$nextPointerOpener,
$nextPointerCloser,
] = ArrayHelper::openClosePointers($tokens[$nextEffective]);
$arraysStartAtSameLine = $tokens[$arrayOpenerPointer]['line'] === $tokens[$nextPointerOpener]['line'];
$arraysEndAtSameLine = $tokens[$arrayCloserPointer]['line'] === $tokens[$nextPointerCloser]['line'];
if (!$arraysStartAtSameLine || $arraysEndAtSameLine) {
return;
}
$error = "Expected nested array to end at the same line as it's parent. Either put the nested array's end at the same line as the parent's end, or put the nested array start on it's own line.";
$fix = $phpcsFile->addFixableError($error, $arrayOpenerPointer, self::CODE_ARRAY_END_WRONG_PLACEMENT);
if (!$fix) {
return;
}
$phpcsFile->fixer
->addContent($arrayOpenerPointer, $phpcsFile->eolChar);
}