function AbstractChunkOutputBuilder::getCommonChunks
Takes input of the diff array and returns the common parts. Iterates through diff line by line.
File
-
vendor/
sebastian/ diff/ src/ Output/ AbstractChunkOutputBuilder.php, line 20
Class
Namespace
SebastianBergmann\Diff\OutputCode
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;
}