Releases: Wilfred/difftastic
0.31.0
Difftastic is a structural diff tool that understands syntax. See the manual to get started, and the changelog for historical changes.
Parsing
Added Hacklang and SQL support.
Updated to the latest tree-sitter parsers for C#, Dart, Elm, Gleam, Haskell, HCL, Java, JSON, OCaml, PHP, Python, Ruby, Scala and TypeScript.
Display
Fixed an issue with inline mode where there was a blank line between every line.
Command Line Interface
Fixed language detection and filename display when one path was /dev/null and difftastic was invoked with two arguments.
0.30.0
Difftastic is a structural diff tool that understands syntax. See the manual to get started, and the changelog for historical changes.
Parsing
Added support for HTML and Julia.
Display
Fixed an issue where line numbers were coloured even when colour was disabled.
Improved alignment when files contain Unicode characters that are more than one column wide.
Improved syntax highlighting for conditionals, particularly for Dart, Elvish and HCL.
Command Line Interface
--node-limit has been replaced by --graph-limit, and the corresponding environment variable DFT_NODE_LIMIT has been replaced with DFT_GRAPH_LIMIT.
--graph-limit makes difftastic give up on structural diffs after traversing this many graph nodes. --node-limit applied a limit based on an estimate of how big the graph would be, leading to very slow diffs when the estimate was wrong.
This new setting sets a more accurate limit on difftastic performance. It also means that difftastic will always try a structural diff first. This will be slower for files that exceed --graph-limit, but guarantees that files with a small number of changes will always get a structural diff.
0.29.1
Difftastic is a diff tool that understands syntax. See the manual to get started, and the changelog for historical changes.
Fixed a major memory regression in 0.29 when performing large line-based diffs (e.g. files of 100 KLOC or more).
0.29.0
Difftastic is a diff tool that understands syntax. See the manual to get started, and the changelog for historical changes.
Performance has improved in 0.29, and larger files typically see a 30% reduction in runtime.
Parsing
Improved detection of binary files, including using /usr/share/mime/magic when available.
Improved handling of comments and regexp literals in Perl.
Added Elvish support.
Diffing
Improved delimiter heuristics in lisp-like languages.
Display
Difftastic now displays information about file renames. Previously, it would only show the new name.
0.28.0
Difftastic is a diff tool that understands syntax. See the manual to get started, and the changelog for historical changes.
Parsing
Added support for HCL, Perl and Swift.
Improved language detection for JSON. More file extensions and file names are recognised as JSON, e.g. .jsonl.
Display
Fixed crash in inline mode.
Added an option --tab-width that controls how many spaces are used to display tabs. The default value is 8, consistent with older versions.
Added an option --syntax-highlight that controls whether the output is syntax highlighted.
Diffing
Difftastic now diffs files in parallel when diffing whole directories, increasing performance.
Directory diffing now correctly handles files that are only in one of the directories.
Command Line Interface
Fixed handling of paths that aren't valid UTF-8.
--missing-as-empty now only applies when diffing files, and has no effect when diffing directories.
Note: Crates.io Is Patched
Due to the 10 MB crate limit, two patches were applied before uploading to crates.io. The source code on crates.io therefore does not exactly match this git tag.
Cargo.toml had the include list changed (committed on master as d9ef270), and the vendored perl parser had whitespace removed with sed "s/^[ \t]*//" -i vendor/tree-sitter-perl-src/parser.c.
0.27.0
Difftastic is a diff tool that understands syntax. See the manual to get started, and the changelog for historical changes.
Parsing
Added support for Kotlin and TOML.
Fixed an issue with YAML and | block strings.
Updated to the latest upstream C++, C#, Elixir, Go, Haskell, Java, Python, Ruby, Rust and TypeScript parsers.
Diffing
Improved performance in large files when changes are clustered together.
Display
Improved syntax highlighting.
Tabs are now rendered with eight spaces.
Command Line Interface
Difftastic now validates environment variables the same way as arguments. DFT_DISPLAY=no-such-mode will now error rather than silently using the default display mode.
Build
The upstream Haskell parser has been ported from C++14 to pure C. This should allow difftastic to build on platforms with older C++ compilers.
0.26.3
Difftastic is a diff tool that understands syntax. See the manual to get started, and the changelog for historical changes.
Build
This release contains no logic changes from 0.26.2. 0.26.3 has a fixed release script to ensure that the release includes Windows binaries.
0.26.2
Difftastic is a diff tool that understands syntax. See the manual to get started, and the changelog for historical changes.
Build
Fixed compilation error on Windows due to GCC extension usage in the tree-sitter-nix library.
0.26.1
Difftastic is a diff tool that understands syntax. See the manual to get started, and the changelog for historical changes.
Build
This version of difftastic is also available as a GitHub release with precompiled binaries available.
Parsing
Fixed Zig parsing of @foo identifiers.
Display
Fixed a crash when inserting newlines in JSX literals.