apheleia
gumtree
apheleia | gumtree | |
---|---|---|
8 | 6 | |
500 | 861 | |
0.6% | 1.3% | |
8.3 | 8.2 | |
3 days ago | 9 days ago | |
Emacs Lisp | Java | |
MIT License | GNU Lesser General Public License v3.0 only |
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.
apheleia
-
setup for python dev?
For black, I can recommend apheleia. It handles not only black but also all the other common formatters (not only for Python), with custom ones being relatively easy to add.
-
Emacs 29 is nigh What can we expect?
1.projectile-kill-buffers or the built-in project-kill-buffers will do that for the current project. You could run that before switching projects.
2. https://github.com/radian-software/apheleia
3. There might be a way to do this but I'm not sure. Emacs being inherently single threaded probably makes this difficult. But yes, I use M-x (re)compile.
4. libvterm is the best still imo. You can definitely do multiple instances and there's even different tab modes in Emacs now.
-
What is your fav IDE (incl AddOns)?
I forgot to mention a third option namely lassik/emacs-format-all-the-code and there are efforts to combine/consolidate the three into a single package which would be great.
-
Looking for emacs package recommendations for code-formatting in emacs?
raxid502/apheleia
-
Is there any package for automatically insert spaces in c++ code?
I use formatters in order to automatically format source code on save. Personally I use apheleia for this. It requires clang-tools installed as it uses clang formatter.
- We should format code on demand
-
JSX return indentation
Generally speaking, emacs does only so much for indenting those mixed mode files, so you might want to use a dedicated JS(X)-formatter (default one would be prettier). I can recommend integrating it using apheleia. It automatically prettifies buffers on save, but without having your cursor jump around like prettier-mode does. It also relies on having the prettier script available (from npm i -g prettier or its likes).
gumtree
-
Pijul: Version-Control Post-Git • Goto 2023
I'm not familiar with Pijul, and haven't finished watching this presentation, but IME the problems with modern version control tools is that they still rely on comparing lines of plain text, something we've been doing for decades. Merge conflicts are an issue because our tools are agnostic about the actual content they're tracking.
Instead, the tools should be smarter and work on the level of functions, classes, packages, sentences, paragraphs, or whatever primitive makes sense for the project and file that is being changed. In the case of code bases, they need to be aware of the language and the AST of the program. For binary files, they need to be aware of the file format and its binary structure. This would allow them to show actually meaningful diffs, and minimize the chances of conflicts, and of producing a corrupt file after an automatic merge.
There has been some research in this area, and there are a few semantic diffing tools[1,2,3], but I'm not aware of this being widely used in any VCS.
Nowadays, with all the machine learning advances, the ideal VCS should also use ML to understand the change at a deeper level, and maybe even suggest improvements. If AI can write code for me, it could surely understand what I'm trying to do, and help me so that version control is entirely hands-free, instead of having to fight with it, and be constantly aware of it, as I have to do now.
I just finished watching the presentation, and Pijul seems like an iterative improvement over Git. Nothing jumped out at me like a killer feature that would make me want to give it a try. It might be because the author focuses too much on technical details, instead of taking a step back and rethinking what a modern VCS tool should look like today.
[1]: https://semanticdiff.com/
[2]: https://github.com/trailofbits/graphtage
[3]: https://github.com/GumTreeDiff/gumtree
-
We should format code on demand
There’s also gumtree: https://github.com/GumTreeDiff/gumtree/wiki/Languages
- Difftastic: Syntax-aware structured diff tool
-
A New Era for Mechanical CAD
GumTree does AST level diffing, hypothetically one could build VCS on top of that. That would work for binary files as long as they are parseable to some sort of sensible AST.
https://github.com/GumTreeDiff/gumtree
- Gumtree: A neat code differencing tool
-
What comes after Git? It's been 15 years since it was created. SVN was created 5 years before Git. CVS was 15 years before SVN
There are a few AST-based diffing programs e.g. GumTreeDiff. I haven't tried any of them though.
What are some alternatives?
black - The uncompromising Python code formatter
difftastic - a structural diff that understands syntax 🟥🟩
emacs-format-all-the-code - Auto-format source code in many languages with one command
locust - "git diff" over abstract syntax trees
prettier - Prettier is an opinionated code formatter.
git-bug - Distributed, offline-first bug tracker embedded in git, with bridges
perspective-el - Perspectives for Emacs.
diffr - Yet another diff highlighting tool
My-Neovim-Config
git-imerge - Incremental merge for git
reformatter.el - Define commands which run reformatters on the current Emacs buffer
mergify - Merge git changes on commit at a time.