public DiffFormatter::format(Diff $diff)
Format a diff.
Parameters
\Drupal\Component\Diff\Diff $diff: A Diff object.
Return value
string The formatted output.
File
- core/lib/Drupal/Component/Diff/DiffFormatter.php, line 48
Class
- DiffFormatter
- A class to format Diffs
Namespace
Drupal\Component\Diff
Code
public function format(Diff $diff) { $xi = $yi = 1; $block = FALSE; $context = array(); $nlead = $this->leading_context_lines; $ntrail = $this->trailing_context_lines; $this->_start_diff(); foreach ($diff->getEdits() as $edit) { if ($edit->type == 'copy') { if (is_array($block)) { if (sizeof($edit->orig) <= $nlead + $ntrail) { $block[] = $edit; } else { if ($ntrail) { $context = array_slice($edit->orig, 0, $ntrail); $block[] = new DiffOpCopy($context); } $this->_block($x0, $ntrail + $xi - $x0, $y0, $ntrail + $yi - $y0, $block); $block = FALSE; } } $context = $edit->orig; } else { if (!is_array($block)) { $context = array_slice($context, sizeof($context) - $nlead); $x0 = $xi - sizeof($context); $y0 = $yi - sizeof($context); $block = array(); if ($context) { $block[] = new DiffOpCopy($context); } } $block[] = $edit; } if ($edit->orig) { $xi += sizeof($edit->orig); } if ($edit->closing) { $yi += sizeof($edit->closing); } } if (is_array($block)) { $this->_block($x0, $xi - $x0, $y0, $yi - $y0, $block); } $end = $this->_end_diff(); if (!empty($xi)) { $this->line_stats['counter']['x'] += $xi; } if (!empty($yi)) { $this->line_stats['counter']['y'] += $yi; } return $end; }
Please login to continue.