Difftastic is a structural diff tool that understands syntax. See the manual to get started, and the changelog for historical changes.
Diffing
Improved preprocessing heuristics, so difftastic should be faster and fall back to text diffing less often.
Parsing
Updated Haskell (the previous version was prone to crashing) and Kotlin parsers.
Improved delimiter and trailing punctuation handling in: C, C++, C#, Elixir, Erlang, Gleam, Go, Java, JavaScript, Kotlin, Haskell, Nix, OCaml, Python, TypeScript and YAML.
Removed Smali support (upstream parser is no longer maintained).
Removed support for Verilog and F# due to the very large parser size making the difft binary big. Adding support for dynamically loading parsers in a future release should allow users to parse these languages again.
Display
Fixed an issue with inline display where unchanged lines between two nearby changes were not shown.
Fixed an issue (introduced in 0.71) where the terminal width wasn't detected when stdin, stdout and stderr were all redirected. This was most noticeable when using difft with jj.