diffsitter
watchman
diffsitter | watchman | |
---|---|---|
15 | 31 | |
1,531 | 12,294 | |
- | 0.6% | |
8.6 | 9.0 | |
2 days ago | 4 days ago | |
Rust | C++ | |
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
https://github.com/afnanenayet/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
watchman
- Watchman – A File Watching Service
-
Dev Container for React Native with Expo
postCreateCommand This section permit to execute a command after the build of the container. I've used this command to execute a script to install Expo and other dependencies like watchman
- Using Bun.js as a Bundler
- How To Monitor a Folder On Startup
-
changedetection for file shares
Facebook open source product: https://github.com/facebook/watchman to get notified when configuration, file or other change
- [Media] OnChange: CLI utility to automatically run commands on file change (details in comments)
-
Any else using Meta's née Facebook's Watchman service?
Facebook Meta's Watchman Service looks very useful for watching for changes in files and directories to kick off automation. Still, there seem to be a bunch of gotchas with it that only come to light after trying to mess with it. The docs seem lacking, the Python library needs to be updated, and even the installation on non-Ubuntu or Red Hat distros requires a rebuild, which has been somewhat problematic given the build tools. Also, no official Docker container.
- Show HN: I built a tool to get instant test results (
- Watchman: A File Watching Service
-
Watchman: Execute a command when something changes
Not to be confused with Facebook’s file watch daemon, which does the same sort of thing but is more complicated. There’s a bunch of tools that integrate Facebook’s watchman for more efficient change tracking.
https://facebook.github.io/watchman/
What are some alternatives?
difftastic - a structural diff that understands syntax 🟥🟩
wireguard-ui - Wireguard web interface
semantic-source - Parsing, analyzing, and comparing source code across many languages
watchexec - Executes commands in response to file modifications
nvim-treesitter-context - Show code context
nvim-lsp-ts-utils - Utilities to improve the TypeScript development experience for Neovim's built-in LSP client.
tree-sitter-json - JSON grammar for tree-sitter
lush.nvim - Create Neovim themes with real-time feedback, export anywhere.
dark - Darklang main repo, including language, backend, and infra
Lsyncd - Lsyncd (Live Syncing Daemon) synchronizes local directories with remote targets
git-merge-driver - Example of how to configure a custom git merge driver
go-git - A highly extensible Git implementation in pure Go.