Вход Регистрация
Файл: vendor/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php
Строк: 64
<?php declare(strict_types=1);
/*
 * This file is part of sebastian/diff.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace SebastianBergmannDiffOutput;

use function 
count;

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 $diffint $lineThreshold 5): array
    {
        
$diffSize     count($diff);
        
$capturing    false;
        
$chunkStart   0;
        
$chunkSize    0;
        
$commonChunks = [];

        for (
$i 0$i $diffSize; ++$i) {
            if (
$diff[$i][1] === /* OLD */) {
                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;
    }
}
Онлайн: 1
Реклама