- Added support for Assembly language
- Trailing punctuation is now treated as insignificant in diffs for Go, Java, JavaScript, Python, Rust, Swift and TypeScript, so foo(1,) and foo(1) are treated as no syntactic changes
- Substantially improved parsing for Perl
- Improved parsing for Clojure, Common Lisp, CSS, Dart, Erlang, F#, OCaml, Python, Rust, Scala, TypeScript and VHDL
- Files starting with <?hh are now treated as text instead of Hack
- Difftastic now considers .gitattributes when deciding if a file is binary, recognising both the -text and binary attributes
- Difftastic now requires Rust 1.85 or later to build
- Removed support for Hack, as the upstream parser is no longer maintained
Difftastic is a structural diff tool that understands syntax. See the manual to get started, and the changelog for historical changes.
Diffing
Difftastic now understands when trailing punctuation isn't significant, so foo(1,) and foo(1) are treated as "no syntactic changes". This is supported for Go, Java, JavaScript, Python, Rust, Swift and TypeScript.
Parsing
Added support for Assembly.
Substantially improved parsing for Perl.
Improved parsing for Clojure, Common Lisp, CSS, Dart, Erlang, F#, OCaml, Python, Rust, Scala, TypeScript and VHDL.
Removed support for Hack, as the upstream parser is no longer maintained. .php files starting with <?hh are now treated as text.
File Detection
Difftastic now considers .gitattributes when deciding if a file is binary, recognising both the -text and binary attributes.
Build
Difftastic now requires Rust 1.85 or later to build.