SaaSHub helps you find the best software and product alternatives Learn more →
SemanticDiff Alternatives
Similar projects and alternatives to SemanticDiff
-
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
-
-
age
A simple, modern and secure encryption tool (and Go library) with small explicit keys, no config options, and UNIX-style composability.
-
-
WebKit
Home of the WebKit project, the browser engine used by Safari, Mail, App Store and many other applications on macOS, iOS and Linux.
-
-
-
-
-
biome
A toolchain for web projects, aimed to provide functionalities to maintain them. Biome offers formatter and linter, usable via CLI and LSP.
-
-
diff-so-fancy
Make your diffs human readable for improved code quality and faster defect detection. :tada:
-
-
graphtage
A semantic diff utility and library for tree-like files such as JSON, JSON5, XML, HTML, YAML, and CSV.
-
-
-
-
-
SemanticDiff discussion
SemanticDiff reviews and mentions
- Diff Algorithms
-
Software development topics I've changed my mind on after 10 years
> What we should have instead is syntax-aware diffs that can ignore meaningless changes like curly braces moving into another line or lines getting wrapped for reasons.
These diffs already exist (at least for some languages) but aren't yet integrated into the standard tools. For example, if you want a command line tool, you can use https://github.com/Wilfred/difftastic or if you are interested in a VS Code extension / GitHub App instead, you can give https://semanticdiff.com a try.
-
Mergiraf: a syntax-aware merge driver for Git
Looking at the architecture, they will probably run into some issues. We are doing something similar with SemanticDiff [1] and also started out using tree-sitter grammars for parsing and GumTree for matching. Both choices turned out to be problematic.
Tree sitter grammars are primarily written to support syntax highlighting and often use a best effort approach to parsing. This is perfectly fine for syntax highlighting, since the worst that can happen is that a few characters are highlighted incorrectly. However, when diffing or modifying code you really want the code to be parsed according to the upstream grammar, not something that mostly resembles it. We are currently in the process of moving away from tree-sitter and instead using the parsers provided by the languages themselves where possible.
GumTree is good at returning a result quickly, but there are quite a few cases where it always returned bad matches for us, no matter how many follow-up papers with improvements we tried to implement. In the end we switched over to a dijkstra based approach that tries to minimize the cost of the mapping, which is more computationally expensive but gives much better results. Difftastic uses a similar approach as well.
[1]: https://semanticdiff.com/
-
How far should a programming language aware diff go?
Hi, author of SemanticDiff here.
I'm sorry you didn't have a good experience testing the tool. If it doesn't work / makes things worse than a standard diff, that's definitely considered a bug. It is probably something specific to your code and not a general issue. It would therefore be great if you could open an issue [1] or support ticket [2], ideally with some sample code, so we can take a look. Thanks in advance!
[1] https://github.com/Sysmagine/SemanticDiff/issues
-
Difftastic, a structural diff tool that understands syntax
Semantic Diff is probably the closest for now, although I don't think it uses tree-sitter.
https://semanticdiff.com/
Found via https://github.com/Wilfred/difftastic/issues/194.
-
My programming language aware diff for VS Code and GitHub now supports Rust
I am working on SemanticDiff, a programming language aware diff that hides style-only changes, detects moved code and refactorings. I just added support for Rust and would like to know what you think!
-
Prettier $20k Bounty was Claimed
If you're looking for a VS Code extension or a GitHub app, check out https://semanticdiff.com/. I'm a co-founder of this project.
If you prefer a CLI tool, check out https://github.com/Wilfred/difftastic. It supports more languages, but doesn't recognize when code has been replaced by an equivalent version ("invariances"). So it will show some changes (e.g. replacing a character in a string with an escape sequence) even though they are technically equivalent.
-
Large pull requests slow down development
There are some tools that can separate actual code changes from reformatting changes. I am working on https://semanticdiff.com, a VS Code Extension / GitHub App that can help you with this. There is also difftastic if you prefer a CLI based solution. It supports more languages but can detect fewer types of reformatting changes.
- Pijul: Version-Control Post-Git • Goto 2023
-
I added Go support to my VS Code extension for programming language aware diffs
You mean copying chunks from one file/side to the other? If that is the case, you might want to subscribe to this issue that was opened a few days ago. Since the extension does not work on a line-by-line level, it is a bit more difficult than for normal diffs. For example, what should happen if the formatting differs between both files. Should SemanticDiff copy it over as well or try to merge the changes? I will try to post an update on/in this issue soon and maybe have a discussion about the expected behavior.
-
A note from our sponsor - SaaSHub
www.saashub.com | 6 Jun 2026