forge
diffsitter
forge | diffsitter | |
---|---|---|
17 | 15 | |
1,265 | 1,524 | |
1.4% | - | |
9.7 | 8.6 | |
6 days ago | 6 days ago | |
Emacs Lisp | Rust | |
GNU General Public License v3.0 only | 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.
forge
-
Introducing Consult-GH
you can clone, browse, modify, fork, make pull requests from Magit without leaving Emacs a single time. checkout https://github.com/magit/forge
-
Cannot save .authinfo.gpg
However, i'm still unable to create issues or pull requests from within forge, returning error in process filter: Failed to submit post: (error http 404 ((message . "Not Found") (documentation_url . "https://developer.github.com/v3/pulls/#create-a-pull-request"))). Do you know how to solve this as well? I've tried looking around for resources, and so far have only come across issue #273 on magit/forge repo, which was resolved using the correct token permissions. My token was set up with the repo, user, and read:org permissions as per the documentation, but am facing the same issue. I have also run (setq url-debug t) for more verbose debugging, but I'm not seeing any additional help either.
-
What do you use for git integration in neovim?
You can also manage via a holistic UI: - Bisection - Log and reflog, stashes - subtrees, submodules - certain third party subcommands like git-absorb, and extend it with your own - interact with issues and pull requests via forge - pretty much all of the hundreds of CLI flags via a modal UI that got generalized and extracted to a lib called transient - well-integrated diff and conflict resolution (which is mostly just smerge) - the rebase/cherry-pick workflows I liked the best, including support for --update-refs - at any time you can always press a key to see the raw commands and output that it's using, which taught me a ton of corner cases - IMO it has a great manual
-
How can I edit magit forge issue comments in Org Mode?
Following up here with a feature request, in case anyone else reading this is interested: https://github.com/magit/forge/discussions/580
-
How I use Emacs as a non-programmer
Yes :). Basically all you need to be able to fork and pull request is the Forge package. It's made from the author of Magit: https://github.com/magit/forge Just follow the manual, you basically need to create a token on GitHub and share it with Forge through your authinfo. I tested it recently (cloned, forked, made changes, committed, pushed and pull request to original repo) and I didn't have to open Firefox even once. https://magit.vc/manual/forge/
-
lab.el - Simple GitLab interface for Emacs. List and act on projects/pipelines/jobs/merge-requests.
how is it different from forge?
-
Recommended workflow for using org-roam to read source code and take notes?
orgit package, which provides Org link types pointing to Magit buffers (including log and revision buffers). Optionally, magit/forge and orgit-forge packages might be useful too, for noting issues and pull requests.
-
Request: Method To Open Project’s GitHub Repository From Projectile?
Not projectile-specific, but see browse-at-remote and forge (of interest are forge-browse-* commands).
-
How do you guys use forge with magit and github?
There is also https://github.com/magit/forge, which I haven't looked at. Instead, I do all the proprietary github things through their proprietary website.
-
What Comes After Git
For magit users, there's https://github.com/magit/forge - ultimately the store of record is still centralized as it's GitHub/GitLab/etc., but it does integrate a local copy of it nicely with your other git operations.
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
What are some alternatives?
magit - It's Magit! A Git Porcelain inside Emacs.
difftastic - a structural diff that understands syntax 🟥🟩
git-madge - :rocket: Git-aware madge wrapper
semantic-source - Parsing, analyzing, and comparing source code across many languages
Tiling-Assistant - An extension which adds a Windows-like snap assist to GNOME. It also expands GNOME's 2 column tiling layout.
nvim-treesitter-context - Show code context
josh - Just One Single History
tree-sitter-json - JSON grammar for tree-sitter
git-heatmap - :bar_chart: Display a heatmap for oft-edited files
dark - Darklang main repo, including language, backend, and infra
got - Got is like git, but with an 'o'
git-merge-driver - Example of how to configure a custom git merge driver