All notable changes are documented in this file using the Keep a CHANGELOG principles.
SebastianBergmann\Diff\Chunk::start()
, SebastianBergmann\Diff\Chunk::startRange()
, SebastianBergmann\Diff\Chunk::end()
, SebastianBergmann\Diff\Chunk::endRange()
, and SebastianBergmann\Diff\Chunk::lines()
SebastianBergmann\Diff\Diff::from()
, SebastianBergmann\Diff\Diff::to()
, and SebastianBergmann\Diff\Diff::chunks()
SebastianBergmann\Diff\Line::content()
and SebastianBergmann\Diff\Diff::type()
SebastianBergmann\Diff\Line::isAdded()
,SebastianBergmann\Diff\Line::isRemoved()
, and SebastianBergmann\Diff\Line::isUnchanged()
SebastianBergmann\Diff\Diff
now implements IteratorAggregate
, iterating over it yields the aggregated SebastianBergmann\Diff\Chunk
objectsSebastianBergmann\Diff\Chunk
now implements IteratorAggregate
, iterating over it yields the aggregated SebastianBergmann\Diff\Line
objectsSebastianBergmann\Diff\Chunk::getStart()
, SebastianBergmann\Diff\Chunk::getStartRange()
, SebastianBergmann\Diff\Chunk::getEnd()
, SebastianBergmann\Diff\Chunk::getEndRange()
, and SebastianBergmann\Diff\Chunk::getLines()
SebastianBergmann\Diff\Diff::getFrom()
, SebastianBergmann\Diff\Diff::getTo()
, and SebastianBergmann\Diff\Diff::getChunks()
SebastianBergmann\Diff\Line::getContent()
and SebastianBergmann\Diff\Diff::getType()
TimeEfficientLongestCommonSubsequenceCalculator
MemoryEfficientLongestCommonSubsequenceCalculator
Parser::parseFileDiff()
does not handle diffs correctly that only add lines or only remove linesDiffOutputBuilderInterface
instance to Differ::__construct()
is no longer optionalSebastianBergmann\Diff\Exception
now correctly extends \Throwable
composer.json
from ^7.3 || ^8.0
to >=7.3
Chunk::setLines()
now ensures that the $lines
array only contains Line
objects"minimum-stability": "dev",
from composer.json
StrictUnifiedDiffOutputBuilder
implementation of the DiffOutputBuilderInterface
was addedDiffOutputBuilderInterface
implementation now generates context lines (unchanged lines)