class AbstractChunkOutputBuilder
Hierarchy
- class \SebastianBergmann\Diff\Output\AbstractChunkOutputBuilder implements \SebastianBergmann\Diff\Output\DiffOutputBuilderInterface
Expanded class hierarchy of AbstractChunkOutputBuilder
File
-
vendor/
sebastian/ diff/ src/ Output/ AbstractChunkOutputBuilder.php, line 14
Namespace
SebastianBergmann\Diff\OutputView source
abstract class AbstractChunkOutputBuilder implements DiffOutputBuilderInterface {
/**
* Takes input of the diff array and returns the common parts.
* Iterates through diff line by line.
*/
protected function getCommonChunks(array $diff, int $lineThreshold = 5) : array {
$diffSize = count($diff);
$capturing = false;
$chunkStart = 0;
$chunkSize = 0;
$commonChunks = [];
for ($i = 0; $i < $diffSize; $i++) {
if ($diff[$i][1] === 0) {
if ($capturing === false) {
$capturing = true;
$chunkStart = $i;
$chunkSize = 0;
}
else {
$chunkSize++;
}
}
elseif ($capturing !== false) {
if ($chunkSize >= $lineThreshold) {
$commonChunks[$chunkStart] = $chunkStart + $chunkSize;
}
$capturing = false;
}
}
if ($capturing !== false && $chunkSize >= $lineThreshold) {
$commonChunks[$chunkStart] = $chunkStart + $chunkSize;
}
return $commonChunks;
}
}
Members
Title Sort descending | Modifiers | Object type | Summary | Overrides |
---|---|---|---|---|
AbstractChunkOutputBuilder::getCommonChunks | protected | function | Takes input of the diff array and returns the common parts. Iterates through diff line by line. |
|
DiffOutputBuilderInterface::getDiff | public | function | 4 |