source)) { return false; } $source = $r->source; // Trim empty lines from the start and end of the source foreach ($source as $linenum => $line) { if (\trim($line) || $linenum === $r->line) { break; } unset($source[$linenum]); } foreach (\array_reverse($source, true) as $linenum => $line) { if (\trim($line) || $linenum === $r->line) { break; } unset($source[$linenum]); } $start = ''; $highlight = ''; $end = ''; foreach ($source as $linenum => $line) { if ($linenum < $r->line) { $start .= $line."\n"; } elseif ($linenum === $r->line) { $highlight = '
'.$this->renderer->escape($line).'
'; } else { $end .= $line."\n"; } } $output = $this->renderer->escape($start).$highlight.$this->renderer->escape(\substr($end, 0, -1)); if ($output) { \reset($source); $marker = '@@ '.((int) \key($source)).','.\count($source).' @@'; return '
'.$output.'
'; } } }