/** * @param TokenStream\AbstractToken $token * @param array<array<string|integer>> $tokens */ public function insertAllBefore(AbstractToken $token, array $tokens) { $newTokens = array(); $line = $token->getLine(); foreach ($tokens as $rawToken) { $newTokens[] = array($rawToken[0], isset($rawToken[1]) ? $rawToken[1] : null, $line); if (isset($rawToken[1])) { $line += substr_count($rawToken[1], "\n"); } } $this->insertAllTokensBefore($token, $newTokens); }
private function isSafeEndToken(AbstractToken $token) { $nextNoWhitespace = $token->findNextToken('NO_WHITESPACE')->get(); // If the end token is followed by a comment on the same same line, // we consider it unsafe for rewriting. if ($nextNoWhitespace->matches('COMMENT') && $token->getLine() === $nextNoWhitespace->getLine()) { return false; } return true; }
private function checkLeftCurlyPlacement(AbstractToken $startToken, AbstractToken $endToken, AbstractToken $curlyToken, $config) { if ('new line on wrap' === $config) { $config = $startToken->getLine() === $endToken->getLine() ? 'same line' : 'new line'; } switch ($config) { case 'same line': if ($endToken->getLine() !== $curlyToken->getLine()) { $this->phpFile->addComment($curlyToken->getLine(), Comment::warning('coding_style.token_should_be_on_same_line', '``%token%`` should probably be on the same line like ``%end_token%``.', array('token' => $curlyToken->getContent(), 'end_token' => $endToken->getContent()))->varyIn(array())); } break; case 'new line': if ($endToken->getLine() + 1 !== $curlyToken->getLine()) { $this->phpFile->addComment($curlyToken->getLine(), Comment::warning('coding_style.token_should_be_on_new_line', '``%token`` should probably be on a new line after ``%end_token%``.', array('token' => $curlyToken->getContent(), 'end_token' => $endToken->getContent()))->varyIn(array())); } break; default: throw new \InvalidArgumentException(sprintf('Unknown left curly setting "%s".', $config)); } }