difftastic
neogit
Our great sponsors
difftastic | neogit | |
---|---|---|
68 | 54 | |
19,450 | 3,240 | |
- | 8.8% | |
9.9 | 9.9 | |
5 days ago | 5 days ago | |
Rust | Lua | |
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.
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.
-
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.
neogit
-
Neovim: creating keymaps in lua
I would use this feature of lazy.nvim in a plugin that I rarely need. Something neogit for example. I can spend hours coding without using it. In that particular case I think is nice to have the option to load it when I actually call it.
-
GitUI
This looks very much like the Noevim plugin I began using about a month ago: neogit[0].
The keybindings were a bit rough, and it took me about an hour of use before I was really comfortable with the overall workflow. Once I was, though, I’ve found it to be much faster than my previous workflow (suspending neovim and using git directly in the shell).
-
Is there a discard all option in neogit?
Edit: FYI: I made a feature request and got the answer, that it it possible to visually select the files and discard them like this together.
- Massive Update to Neogit and New Home!
-
What IDEA or Vscode feature/function you want to have in neovim eco-system?
This is what I use for general git interaction and it‘s pretty neat: neogit. Also integrates diffview
-
Magit
For neovim users, there's a work-in-progress clone, neogit: https://github.com/timUntersberger/neogit/
Some of my colleagues use emacs/magit, and after seeing how absolutely lovely the workflow is, I've put in a lot of work over the last few months expanding it. You can check out my fork here: https://github.com/ckolkey/neogit/
One thing I particularly like to tease my emacs' colleagues about is that my magit is faster than theirs thanks to neovim's async capabilities.
- Your favourite Neovim plugins?
-
What do you use for git integration in neovim?
You could use neogit (https://github.com/TimUntersberger/neogit) for basic commands however I have found it's easier / more versatile to just use lazygit in either another tmux tmux window or within neovim itself.
-
Switching from Emacs. My experience
The only thing I truly miss from Emacs is [Magit](https://magit.vc/) since I still consider it the best git wrapper available. It is just too good. Unfortunately [Neogit](https://github.com/TimUntersberger/neogit) is not quite there yet although I hope it makes it at some point. I didn't like [Fugitive]https://github.com/tpope/vim-fugitive), but I ended up finding a good enough workaround by using [Lazygit](https://github.com/jesseduffield/lazygit) through [Toggleterm](https://github.com/akinsho/toggleterm.nvim).
- Neovim vs VSCode Neovim - what are the tradeoffs?
What are some alternatives?
delta - A syntax-highlighting pager for git, diff, and grep output
vim-fugitive - fugitive.vim: A Git wrapper so awesome, it should be illegal
diffsitter - A tree-sitter based AST difftool to get meaningful semantic diffs
lazygit.nvim - Plugin for calling lazygit from within neovim.
Visual Studio Code - Visual Studio Code
octo.nvim - Edit and review GitHub issues and pull requests from the comfort of your favorite editor
gumtree - An awesome code differencing tool
lazygit - simple terminal UI for git commands
tree-sitter-cpp - C++ grammar for tree-sitter
gitsigns.nvim - Git integration for buffers
git-split-diffs - Syntax highlighted side-by-side diffs in your terminal
diffview.nvim - Single tabpage interface for easily cycling through diffs for all modified files for any git rev.