From fe22f6d8f2d51e12d19994ec1c2d0ac62026cabb Mon Sep 17 00:00:00 2001 From: Alexander Schnitzler Date: Thu, 18 Jun 2026 11:42:27 +0200 Subject: [PATCH] [BUGFIX] Replace usage of UnifiedDiffOutputBuilder with StrictUnifiedDiffOutputBuilder Resolves: #408 --- .../src/Differ/DifferFactory.php | 11 ++--------- .../src/Printer/Markdown/MarkdownDiffer.php | 3 +-- packages/fractor/src/Differ/ConsoleDiffer.php | 7 +++++-- 3 files changed, 8 insertions(+), 13 deletions(-) diff --git a/packages/fractor-doc-generator/src/Differ/DifferFactory.php b/packages/fractor-doc-generator/src/Differ/DifferFactory.php index 840fbfb0..ccca8579 100644 --- a/packages/fractor-doc-generator/src/Differ/DifferFactory.php +++ b/packages/fractor-doc-generator/src/Differ/DifferFactory.php @@ -4,20 +4,13 @@ namespace a9f\FractorDocGenerator\Differ; -use ReflectionProperty; use SebastianBergmann\Diff\Differ; -use SebastianBergmann\Diff\Output\UnifiedDiffOutputBuilder; +use SebastianBergmann\Diff\Output\DiffOnlyOutputBuilder; final class DifferFactory { public static function create(): Differ { - $unifiedDiffOutputBuilder = new UnifiedDiffOutputBuilder(''); - - // this is required to show full diffs from start to end - $contextLinesReflectionProperty = new ReflectionProperty($unifiedDiffOutputBuilder, 'contextLines'); - $contextLinesReflectionProperty->setValue($unifiedDiffOutputBuilder, 10000); - - return new Differ($unifiedDiffOutputBuilder); + return new Differ(new DiffOnlyOutputBuilder('')); } } diff --git a/packages/fractor-doc-generator/src/Printer/Markdown/MarkdownDiffer.php b/packages/fractor-doc-generator/src/Printer/Markdown/MarkdownDiffer.php index c417f0de..6efba47f 100644 --- a/packages/fractor-doc-generator/src/Printer/Markdown/MarkdownDiffer.php +++ b/packages/fractor-doc-generator/src/Printer/Markdown/MarkdownDiffer.php @@ -33,14 +33,13 @@ public function diff(string $old, string $new): string } $diff = $this->differ->diff($old, $new); - $diff = $this->clearUnifiedDiffOutputFirstLine($diff); $diff = $this->removeTrailingWhitespaces($diff); return $this->warpToDiffCode($diff); } /** - * Removes UnifiedDiffOutputBuilder generated pre-spaces " \n" => "\n" + * Removes StrictUnifiedDiffOutputBuilder generated pre-spaces " \n" => "\n" */ private function removeTrailingWhitespaces(string $diff): string { diff --git a/packages/fractor/src/Differ/ConsoleDiffer.php b/packages/fractor/src/Differ/ConsoleDiffer.php index d5763fc9..ae170465 100644 --- a/packages/fractor/src/Differ/ConsoleDiffer.php +++ b/packages/fractor/src/Differ/ConsoleDiffer.php @@ -8,7 +8,7 @@ use a9f\Fractor\Differ\Formatter\ColorConsoleDiffFormatter; use a9f\Fractor\Differ\ValueObject\Diff; use SebastianBergmann\Diff\Differ as CoreDiffer; -use SebastianBergmann\Diff\Output\UnifiedDiffOutputBuilder; +use SebastianBergmann\Diff\Output\StrictUnifiedDiffOutputBuilder; final readonly class ConsoleDiffer implements Differ { @@ -17,7 +17,10 @@ public function __construct( private ColorConsoleDiffFormatter $colorConsoleDiffFormatter ) { - $unifiedDiffOutputBuilder = new UnifiedDiffOutputBuilder(); + $unifiedDiffOutputBuilder = new StrictUnifiedDiffOutputBuilder([ + 'fromFile' => '', + 'toFile' => '', + ]); $this->differ = new CoreDiffer($unifiedDiffOutputBuilder); }