protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind(T_DOC_COMMENT)) {
                continue;
            }

            $nextIndex = $tokens->getNextMeaningfulToken($index);

            // skip if there is no next token or if next token is block end `}`
            if (null === $nextIndex || $tokens[$nextIndex]->equals('}')) {
                continue;
            }

            $prevIndex = $index - 1;
            $prevToken = $tokens[$prevIndex];

            // ignore inline docblocks
            if (
                $prevToken->isGivenKind(T_OPEN_TAG)
                || ($prevToken->isWhitespace(" \t") && !$tokens[$index - 2]->isGivenKind(T_OPEN_TAG))
                || $prevToken->equalsAny([';', ',', '{', '('])
            ) {
                continue;
            }

            $indent = '';
            if ($tokens[$nextIndex - 1]->isWhitespace()) {
                $indent = Utils::calculateTrailingWhitespaceIndent($tokens[$nextIndex - 1]);
            }

            $newPrevContent = $this->fixWhitespaceBeforeDocblock($prevToken->getContent(), $indent);
            if ($newPrevContent) {
                if ($prevToken->isArray()) {
                    $tokens[$prevIndex] = new Token([$prevToken->getId(), $newPrevContent]);
                } else {
                    $tokens[$prevIndex] = new Token($newPrevContent);
                }
            } else {
                $tokens->clearAt($prevIndex);
            }

            $tokens[$index] = new Token([T_DOC_COMMENT, $this->fixDocBlock($token->getContent(), $indent)]);
        }
    }
protected function applyFix(\SplFileInfo $file, Tokens $tokens)
    {
        foreach ($tokens as $index => $token) {
            if (!$token->isGivenKind(T_DOC_COMMENT)) {
                continue;
            }

            $nextIndex = $tokens->getNextMeaningfulToken($index);

            
            if (null === $nextIndex || $tokens[$nextIndex]->equals('}')) {
                continue;
            }

            $prevIndex = $index - 1;
            $prevToken = $tokens[$prevIndex];

            
            if (
                $prevToken->isGivenKind(T_OPEN_TAG)
                || ($prevToken->isWhitespace(" \t") && !$tokens[$index - 2]->isGivenKind(T_OPEN_TAG))
                || $prevToken->equalsAny([';', ',', '{', '('])
            ) {
                continue;
            }

            $indent = '';
            if ($tokens[$nextIndex - 1]->isWhitespace()) {
                $indent = Utils::calculateTrailingWhitespaceIndent($tokens[$nextIndex - 1]);
            }

            $newPrevContent = $this->fixWhitespaceBeforeDocblock($prevToken->getContent(), $indent);
            if ($newPrevContent) {
                if ($prevToken->isArray()) {
                    $tokens[$prevIndex] = new Token([$prevToken->getId(), $newPrevContent]);
                } else {
                    $tokens[$prevIndex] = new Token($newPrevContent);
                }
            } else {
                $tokens->clearAt($prevIndex);
            }

            $tokens[$index] = new Token([T_DOC_COMMENT, $this->fixDocBlock($token->getContent(), $indent)]);
        }
    }
protected function applyFix ( \ SplFileInfo $ file , Tokens $ tokens ) { foreach ( $ tokens as $ index => $ token ) { if ( ! $ token -> isGivenKind ( T_DOC_COMMENT ) ) { continue ; } $ nextIndex = $ tokens -> getNextMeaningfulToken ( $ index ) ; // skip if there is no next token or if next token is block end `}` if ( null === $ nextIndex || $ tokens [ $ nextIndex ] -> equals ( '}' ) ) { continue ; } $ prevIndex = $ index - 1 ; $ prevToken = $ tokens [ $ prevIndex ] ; // ignore inline docblocks if ( $ prevToken -> isGivenKind ( T_OPEN_TAG ) || ( $ prevToken -> isWhitespace ( " \t" ) && ! $ tokens [ $ index - 2 ] -> isGivenKind ( T_OPEN_TAG ) ) || $ prevToken -> equalsAny ( [ ';' , ',' , '{' , '(' ] ) ) { continue ; } $ indent = '' ; if ( $ tokens [ $ nextIndex - 1 ] -> isWhitespace ( ) ) { $ indent = Utils :: calculateTrailingWhitespaceIndent ( $ tokens [ $ nextIndex - 1 ] ) ; } $ newPrevContent = $ this -> fixWhitespaceBeforeDocblock ( $ prevToken -> getContent ( ) , $ indent ) ; if ( $ newPrevContent ) { if ( $ prevToken -> isArray ( ) ) { $ tokens [ $ prevIndex ] = new Token ( [ $ prevToken -> getId ( ) , $ newPrevContent ] ) ; } else { $ tokens [ $ prevIndex ] = new Token ( $ newPrevContent ) ; } } else { $ tokens -> clearAt ( $ prevIndex ) ; } $ tokens [ $ index ] = new Token ( [ T_DOC_COMMENT , $ this -> fixDocBlock ( $ token -> getContent ( ) , $ indent ) ] ) ; } }
{@inheritdoc}
{