public function fix(\SplFileInfo $file, Tokens $tokens)
{
for ($index = count($tokens) - 1; 0 <= $index; --$index) {
$token = $tokens[$index];
if (!$token->isGivenKind(T_NAMESPACE)) {
continue;
}
$beforeNamespace = $tokens[$index - 1];
if (!$beforeNamespace->isWhitespace()) {
if (!self::endsWithWhitespace($beforeNamespace->getContent())) {
$tokens->insertAt($index, new Token(array(T_WHITESPACE, $this->whitespacesConfig->getLineEnding())));
}
continue;
}
$lastNewline = strrpos($beforeNamespace->getContent(), "\n");
if (false === $lastNewline) {
$beforeBeforeNamespace = $tokens[$index - 2];
if (self::endsWithWhitespace($beforeBeforeNamespace->getContent())) {
$beforeNamespace->clear();
} else {
$beforeNamespace->setContent(' ');
}
} else {
$beforeNamespace->setContent(substr($beforeNamespace->getContent(), 0, $lastNewline + 1));
}
}
}