v0.6.7
Note: these release notes are not a comprehensive list of changes, just some that we thought are notable.
Performance
This release implements some performance improvements since we switched to using the Myers diff algorithm rather than the more naive DP-table approach (#192). This significantly reduces memory usage and allows you to run diffs on much larger files that would previously cause diffsitter
to OOM. Profiling had shown that the biggest bottleneck in diffsitter
was allocating memory in the previous release.
Features
We've also implemented support for dynamically loading grammars (#177), which should make this easier to package if you don't want to build diffsitter
with the bundled grammars. Now you can build the tree-sitter grammars and have diffsitter
load the shared library objects.
We also support a new fallback mode that allows you to set a command that will be invoked if diffsitter
is called on an unsupported filetype, so you could invoke diff
for a regular text diff if diffsitter
can't parse the given files, for example (#212). This allows you to use diffsitter
as a git diff handler.
Testing
We have more robust testing set up with cargo insta so it should be easier to add new tests and also test for regressions. We've also added more tests since the last release.