diff-so-fancy
difftastic
diff-so-fancy | difftastic | |
---|---|---|
22 | 68 | |
17,083 | 19,530 | |
0.3% | - | |
7.1 | 9.9 | |
17 days ago | 7 days ago | |
Perl | Rust | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
diff-so-fancy
-
Difftastic, a structural diff tool that understands syntax
The diff itself is impressive, but in terms of styling I still prefer diff-so-fancy[1]. It's easier to read at a glance.
[1]: https://github.com/so-fancy/diff-so-fancy/
-
How to improve the readability of diffs? Preferably in Terminal, but a desktop application would be acceptable too
I don't have much hope for this being improved anytime soon in diff-so-fancy given this issue, so I'm wondering if there's something else I can use in Terminal that would allow me to have an experience like GitLab. If that's not possible and I have to rely on a desktop application, that would be acceptable too.
- How to see word-diff and moved lines?
-
Git Learnt
This is actually one that's really easy to write and remember but I hate typing and I run it all the time, so I've aliased it down to gd for git-diff. Also I use diff-so-fancy to make the output of my diffs look frickin sweet and I suggest you do the same.
-
diff: can I increase highlighting of a file name?
I recommend a tool like diff-so-fancy with some custom colors. You will never want to go back to vanilla diffs.
-
TIL: diff-so-fancy; and some funky git config
I just discovered diff-so-fancy, and very nice it is too. I immediately added it to my standard git config, which is semi-automatically installed on every machine I use. However, I've not (yet) installed diff-so-fancy on all the machines I use, and for those platforms for which it's not packaged I probably won't bother installing it from source.
-
Suggestion on how to set up neovim as a diff/merge tool for git with dir-diff in mind
I recently switched to diff-so-fancy for use in the terminal with the following configuration:
-
Let's add Git userdiff defaults for Perl and Perl 6
As the primary author of diff-so-fancy, which is entirely Perl, I fully support this endeavor.
-
A Better Git Diff with Delta
Instead of delta https://github.com/dandavison/delta (shown in the previous video), I've also used diff-so-fancy https://github.com/so-fancy/diff-so-fancy and I've heard difftastic is good as well https://github.com/Wilfred/difftastic Do you use one of those or something else?
-
Post your favorite programs
diff-so-fancy - syntax highlighting for diffs, including highlighting just the part of the line that changed: diff -ru ... | diff-so-fancy | less -R
difftastic
-
Linus Torvalds adds arbitrary tabs to kernel code
i want a diff tool that shows me exactly which tokens have changed, and which haven't, regardless of how they are laid out.
These already exist: https://github.com/Wilfred/difftastic
when we get that, then we should get even less merge conflicts.
Counterintuitively, that is not the case. AST-merge is a much, much, much, much, much harder problem than AST-diff.
https://github.com/Wilfred/difftastic?tab=readme-ov-file#can...
The fact that diffs can be used to drive a 3-way merge is in fact an accidental property that arises due to the sheer crudeness of the diff format. As soon as you start using more-sophisticated diff formats, solutions to "the diff problem" no longer lead directly to solutions to "the merge problem".
- FLaNK AI Weekly 25 March 2025
-
Difftastic, a structural diff tool that understands syntax
Yes there is an `—-override` option you can use to specify the language in which a file should be parsed.
https://github.com/Wilfred/difftastic/blob/master/CHANGELOG....
-
So You Think You Know Git – Git Tips and Tricks by Scott Chacon
Use the fantastic difftastic instead of git's diff. https://difftastic.wilfred.me.uk/
[alias]
- Difftastic: A structural diff tool that understands syntax
-
SemanticDiff now supports Rust
difftastic provides similar capabilities in a free tool based on treesitter
-
My programming language aware diff for VS Code and GitHub now supports Rust
difftastic? https://github.com/Wilfred/difftastic
-
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.
-
Pijul: Version-Control Post-Git • Goto 2023
Shameless plug: I've written difftastic[1], a tool that builds ASTs and then does a structural diff of them. You can use it with git too.
It's an incredibly hard problem though, both from a computational complexity point of view, and trying to build a comprehensible UI once you've done the structural AST diff.
[1]: https://github.com/wilfred/difftastic
-
Always leave a trailing comma in Python lists, dicts, tuples
There is a diff tool called difftastic: https://github.com/Wilfred/difftastic
The idea is that it does not show diff based on text change, but on syntastic meaning. For that, it uses tree-sitter.
I think it still shows the trailing comma in the situation as shown in the article, but it's quite different experience than the standard text based diff.
What are some alternatives?
delta - A syntax-highlighting pager for git, diff, and grep output
vim-gitgutter - A Vim plugin which shows git diff markers in the sign column and stages/previews/undoes hunks and partial hunks.
diffsitter - A tree-sitter based AST difftool to get meaningful semantic diffs
git-split-diffs - Syntax highlighted side-by-side diffs in your terminal
neogit - An interactive and powerful Git interface for Neovim, inspired by Magit
git-extras - GIT utilities -- repo summary, repl, changelog population, author commit percentages and more
Visual Studio Code - Visual Studio Code
vscode-angular-snippets - Angular Snippets for VS Code
gumtree - An awesome code differencing tool
diffview.nvim - Single tabpage interface for easily cycling through diffs for all modified files for any git rev.
tree-sitter-cpp - C++ grammar for tree-sitter