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

Breadcrumb

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

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

MultiLineArrayEndBracketPlacementSniff

Namespace

SlevomatCodingStandard\Sniffs\Arrays

Code

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);
}
RSS feed
Powered by Drupal