1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
<?php
namespace MediaWiki\Extension\AbuseFilter;
use Wikimedia\Diff\Diff;
use Wikimedia\Diff\TableDiffFormatter;
/**
* Like TableDiffFormatter, but will always render the full context (even for empty diffs).
*
* @todo Consider moving to MW core (as a separate class, or as an option to TableDiffFormatter)
*
* @internal
*/
class TableDiffFormatterFullContext extends TableDiffFormatter {
/**
* Format a diff.
*
* @param Diff $diff
* @return string The formatted output.
*/
public function format( $diff ) {
$xlen = $ylen = 0;
// Calculate the length of the left and the right side
foreach ( $diff->edits as $edit ) {
if ( $edit->orig ) {
$xlen += count( $edit->orig );
}
if ( $edit->closing ) {
$ylen += count( $edit->closing );
}
}
// Just render the diff with no preprocessing
$this->startDiff();
$this->block( 1, $xlen, 1, $ylen, $diff->edits );
return $this->endDiff();
}
}
|