diffsitter
nvim-treesitter-context
Our great sponsors
diffsitter | nvim-treesitter-context | |
---|---|---|
15 | 33 | |
1,516 | 2,117 | |
- | 6.1% | |
8.7 | 8.8 | |
5 days ago | 6 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.
diffsitter
-
AST-grep(sg) is a CLI tool for code structural search, lint, and rewriting
Or https://github.com/afnanenayet/diffsitter. I've tried both and I like them. No preference or notable opinions on them yet!
-
Enable new diff option linematch (#14537) · neovim/neovim@04fbb1d
For git diff's I've been using https://github.com/afnanenayet/diffsitter
-
Difftastic, the Fantastic Diff: How it works
One more tree-sitter based diffing tool - diffsitter
-
What Comes After Git
Several threads here point to difftastic: https://github.com/Wilfred/difftastic
I know a lot of people who have a lot of hope for diffsitter (or something like it): https://github.com/afnanenayet/diffsitter
Personally, I think the reason most "good" semantic diff tools are proprietary is that they are huge amounts of effort that are mostly "hacks" and "heuristics" bandaged together in ways that people don't want to let out how the sausage was made.
But I also "general, language agnostic AST-based semantic diff" is a mountain peak we cannot reach (probably ever), and I believe my experiments found an interesting local maxima that people are maybe sleeping on (lexer-based diffs rather than parser-based diffs): https://github.com/WorldMaker/tokdiff
-
Fast Kernel Headers: Tree -v1: Eliminate the Linux kernel's "Dependency Hell"
https://github.com/afnanenayet/diffsitter there are quiet a few projects such as this one, attempting to solve the issue. :)
-
Thinking about programming systems and not just languages and environments
There’s an interesting project in the semantic diff/merge space that I have been keeping an eye out for https://github.com/afnanenayet/diffsitter
-
What if Git worked with Programming Languages?
I have never used any of them, but it look like tree-sitter based diff tools are exactly what you are searching for (like difftastic, gumtree or diffsitter).
I believe Unison is the only attempt to do this at a programming language/environment level.
For Git diffs, there is Diffsitter, which uses Tree Sitter to generate semantic diffs of code files: https://github.com/afnanenayet/diffsitter
I have not used it, but it is high on my todo list.
-
Difftastic: A syntactic diff tool
Looks great, I'll try it! FYI, there is a very similar project called diffsitter https://github.com/afnanenayet/diffsitter
- diffsitter - a tree-sitter based AST difftool to get meaningful semantic diffs
nvim-treesitter-context
-
TreePin! A prototype of my plugin for pinning parts of code to the edges of the screen (Apologies for the GIF artifacts)
Very cool! Sort of reminds me of treesitter-context. Any chance for compatibility? An example could be you either would disable context when something is pinned or somehow displace it other, depending on which is "on top" could be neat.
-
[New plugin] Introducing dropbar.nvim, an out-of-the-box, IDE-like winbar with drop-down menu support and multiple backends
It's for context and navigation, not completions. So it wouldn't replace nvim-cmp. It probably doesn't replace anything you already have unless you are already using a winbar. It combines features of treesitter-context, symbols-outline, and a file navigator but in a different presentation.
-
Plugin for virtual text around parantheses ?
Not quite the same thing, but arguably a better alternative : https://github.com/nvim-treesitter/nvim-treesitter-context
-
Looking for some kinda specific plugins for visibility
For 2: https://github.com/nvim-treesitter/nvim-treesitter-context
-
Please inform me of the plugin(s) enabling these two features
I really like nvim-treesitter-context as an alternative for 1.
-
I’m a vscode user who wants to migrate to neovim but still can’t get all the features I want, I’m trying out lazyvim, which plug-ins should I use?
nvim-treesitter-context implements "sticky scroll" where, depending on where your cursor is placed, the top lines of your window will be replaced by the otherwise offscreen lines that declare what function you're in (e.g function test(...), the line that begins the current class (e.g. public class Student implements Person {), the variable name of the current table (e.g. local planets = {), etc.
- I have reached Vim nirvana
-
Anything like Blockman in Neovim?
Very different in my eyes, but I love nvim-treesitter-context. Definitely another tool in helping the brain parse code -- I think of it as helping with long range context, whereas blockman helps me focus on local context and makes scoping relationships more subconciously available.
-
Plugin to show current function?
You are looking for this: https://github.com/nvim-treesitter/nvim-treesitter-context
-
what is the plugin for showing the function context on top of buffer?
I have seen https://github.com/nvim-treesitter/nvim-treesitter-context is recommended, and it works similar. But the way the context info are displayed in AstroNvim is much nicer
What are some alternatives?
difftastic - a structural diff that understands syntax 🟥🟩
context.vim - Vim plugin that shows the context of the currently visible buffer contents
semantic-source - Parsing, analyzing, and comparing source code across many languages
nvim-treesitter-textobjects
tree-sitter-json - JSON grammar for tree-sitter
nvim-treehopper - Region selection with hints on the AST nodes of a document powered by treesitter
dark - Darklang main repo, including language, backend, and infra
nvim-gps - Simple statusline component that shows what scope you are working inside
git-merge-driver - Example of how to configure a custom git merge driver
format.nvim - A wrapper around Neovims native LSP formatting. [Moved to: https://github.com/lukas-reineke/lsp-format.nvim]
locust - "git diff" over abstract syntax trees
indent-blankline.nvim - Indent guides for Neovim