Skip to content

Add structured diff highlighting - #215

Open
fabpot wants to merge 1 commit into
tempestphp:mainfrom
fabpot:fix/diff-terminal-highlighting
Open

Add structured diff highlighting#215
fabpot wants to merge 1 commit into
tempestphp:mainfrom
fabpot:fix/diff-terminal-highlighting

Conversation

@fabpot

@fabpot fabpot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

This adds structured unified and Git diff highlighting.

It handles metadata, file and hunk headers, combined-diff status columns, changed and context lines, and special markers using language-scoped tokens and linear parsing.

@github-actions

Copy link
Copy Markdown

Benchmark Results

Comparison of fix/diff-terminal-highlighting against main (a65bd95f70d01e082285e3c3f01cc33b6ddac1dd).

Open to see the benchmark results
benchmark subject set revs its mem_peak mode rstdev
HighlighterBench benchParse apache 100 5 2.066mb +0.21% 73.482270μs +1.23% ±1.47% +69.29%
HighlighterBench benchParse bash 100 5 2.097mb +0.20% 205.892877μs +0.26% ±0.95% +48.61%
HighlighterBench benchParse bbcode 100 5 2.054mb +0.21% 74.936575μs -0.65% ±0.45% -4.59%
HighlighterBench benchParse blade 100 5 2.670mb +0.16% 1,084.493053μs -0.64% ±0.95% +44.41%
HighlighterBench benchParse css 100 5 2.084mb +0.20% 141.552114μs -0.11% ±0.48% -44.85%
HighlighterBench benchParse diff 100 5 2.049mb +2.13% 97.368219μs +261.64% ±1.04% -12.64%
HighlighterBench benchParse dockerfile 100 5 2.066mb +0.21% 88.645225μs -0.08% ±2.37% +243.82%
HighlighterBench benchParse dotenv 100 5 2.070mb +0.21% 76.989472μs -0.38% ±0.29% -51.38%
HighlighterBench benchParse gdscript 100 5 2.164mb +0.20% 333.823268μs -0.31% ±0.71% -17.30%
HighlighterBench benchParse graphql 100 5 2.085mb +0.20% 155.401722μs +1.64% ±2.47% +30.58%
HighlighterBench benchParse html 100 5 2.088mb +0.20% 117.798200μs +0.52% ±0.77% +14.44%
HighlighterBench benchParse http 100 5 2.058mb +0.21% 24.430548μs +0.70% ±1.63% +194.59%
HighlighterBench benchParse ini 100 5 2.073mb +0.20% 87.204247μs -0.60% ±0.87% -12.40%
HighlighterBench benchParse javascript 100 5 2.152mb +0.20% 272.574168μs -0.21% ±0.28% -80.20%
HighlighterBench benchParse json 100 5 2.127mb +0.20% 240.961977μs +0.15% ±0.98% +41.87%
HighlighterBench benchParse markdown 100 5 2.075mb +0.20% 76.028904μs -0.03% ±0.41% -30.84%
HighlighterBench benchParse nginx 100 5 2.139mb +0.20% 268.652877μs +0.19% ±0.50% +24.26%
HighlighterBench benchParse php 100 5 2.431mb +0.17% 756.136947μs -0.59% ±1.83% +126.30%
HighlighterBench benchParse python 100 5 2.328mb +0.18% 423.174716μs -0.68% ±0.78% +82.99%
HighlighterBench benchParse scss 100 5 2.100mb +0.20% 183.216223μs +0.10% ±1.10% +46.14%
HighlighterBench benchParse sql 100 5 2.099mb +0.20% 158.435264μs -0.18% ±0.47% +15.87%
HighlighterBench benchParse svelte 100 5 2.301mb +0.33% 1,081.087926μs -0.28% ±1.38% +13.11%
HighlighterBench benchParse terminal 100 5 2.094mb +0.20% 188.404462μs -0.38% ±0.46% +35.74%
HighlighterBench benchParse terraform 100 5 2.099mb +0.20% 175.525382μs +0.43% ±1.00% -40.50%
HighlighterBench benchParse typescript 100 5 2.525mb +0.17% 253.350489μs +1.72% ±0.67% -6.80%
HighlighterBench benchParse txt 100 5 2.045mb 0.00% 8.597280μs +0.58% ±0.92% -55.05%
HighlighterBench benchParse twig 100 5 19.206mb +0.02% 1,476.884618μs -1.17% ±0.53% -59.58%
HighlighterBench benchParse vue 100 5 2.382mb +0.18% 414.760568μs -0.22% ±0.33% -68.34%
HighlighterBench benchParse xml 100 5 2.102mb +0.20% 180.225910μs +0.08% ±0.37% -30.75%
HighlighterBench benchParse yaml 100 5 2.160mb +0.20% 321.749119μs -0.38% ±0.27% -27.62%

Generated by phpbench against commit f555969

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant