evil-textobj-tree-sitter
symex.el
Our great sponsors
evil-textobj-tree-sitter | symex.el | |
---|---|---|
12 | 18 | |
184 | 254 | |
- | 0.8% | |
6.6 | 6.2 | |
7 days ago | 8 days ago | |
Scheme | Emacs Lisp | |
Apache License 2.0 | GNU General Public License v3.0 or later |
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.
evil-textobj-tree-sitter
-
Let's write an Emacs treesitter major mode
You may be aware but the author of TFA also has a tree-sitter based minor mode called Combobulate for exactly that:
https://www.masteringemacs.org/article/combobulate-structure...
There is also evil-textobj-tree-sitter for tree-sitter based text objects for Evil mode:
https://github.com/meain/evil-textobj-tree-sitter
-
How to Get Started with Tree-Sitter
here are the structural editing tools, and they're great - https://github.com/meain/evil-textobj-tree-sitter
- evil-textobj-tree-sitter: Tree-sitter powered textobjects for evil mode in Emacs
-
Tree-sitter starter guide
evil-mode users already have options, and there seems to be a new package with general applicability too.
-
Best packages to use with evil mode .
evil-textobj-tree-sitter: provides new textobjects to evil-mode, thanks to treesitter
-
Are we living in the golden age of Emacs?
I have a package which lets you target language level constructs like functions, classes, conditionals etc for text objects using tree-sitter. This is specific to evil mode as of now, though making it work outside evil would not be that big an effort. https://github.com/meain/evil-textobj-tree-sitter
-
Tree Sitter and the Complications of Parsing Languages
Other than combobulate, these packages also use tree-sitter for changing code (not just highlighting): * https://codeberg.org/FelipeLema/tree-sitter-indent.el * https://github.com/meain/evil-textobj-tree-sitter
-
Using tree-sitter to create better snippets
this might interest you: https://github.com/meain/evil-textobj-tree-sitter
-
The State of Structural Editing in Emacs?
not lsp, treesitter is the way to go. lsp does not provide AST ATM. There is already https://github.com/meain/evil-textobj-tree-sitter . As a side note, smartparens work on non-lispy code. I am very happy with using in combination with evil-cleverparens.
symex.el
-
Sapling: A highly experimental vi-inspired editor where you edit code, not text
I also recommend symex[1]. Although it is more “locked-in” to s-expressions than other solutions (which takes some getting used to at first), I find that for me this is exactly what makes movement feel much more intuitive and editing much more precise.
The one thing I don’t like is that symex depends on so many other plugins (especially Evil, which I am trying to swap out with the more lightweight meow), but this will apparently change soon. They are also working towards support for non-Lisp languages via tree-sitter, but I don’t know how well it works.
[1]: https://github.com/drym-org/symex.el
-
We've launched Attribution Based Economics
The pilot projects (including Symex.el) are accepting financial contributions and will distribute them to sources of value including contributors and antecedent projects in a process that we all have a say in.
-
Tree-sitter starter guide
This is a really useful synopsis. symex has recently had TS support merged in, and apparently includes navigation and structural editing similar to its lisp-like language capabilities. I think it's still early going and I haven't tested, but may be worth a look.
- Learn Lisp the Hard Way
-
What modal sexp editing mode should I switch to?
Has anyone used symex.el without evil? I just learned it can be use with vanilla emacs (despite the 2nd word in its tagline). I also learned they have a tree-sitter branch which will expand its powers to many languages.
-
Advice on config hacking / yak shaving / bikeshedding
I started out using evil, but now I mostly use Symex. (Structural editing. non-lisps support wip for those sad moments you can't use lisp). For now depends on evil, but could be separated.
-
You are invited to the First Congress for Attribution-Based Economics!
The purpose of this congress is to engage in the process of Dialectical Inheritance Attribution, which is a collective process by which we apply agreed-upon standards to the task of appraising and attributing the value of work done in the world. At this initial congress, there are two open source projects on the agenda to be appraised: Symex.el which is an Emacs extension, and Qi, which is a functional DSL on the Racket platform.
- symex.el: An evil way to edit Lisp symbolic expressions ("symexes") as trees in Emacs
-
paredit based on treesitter
symex has a branch that’s been working on integrating with tree-sitter.
-
Paredit 25 Released
If you want to go nuts with structural editing you may also want to check out symex mode: https://github.com/drym-org/symex.el
It uses paredit (among others) for its low level functionality, but the vim-style modal interface allows you to manipulate the tree structure with single keystrokes in a precise and very expressive way. Keep in mind that you have to actively learn how to use it and it will feel awkward at first (similar to how vim feels for beginners), but I find the editing experience very pleasent and smooth after I got used to it.
Another thing I really like about it is that you can still switch to normal mode and it doesn’t get in your way like other plugins where I had to change my keybindings all the time because the amount of convenient shortcuts is still quite limited in the end. This modal switching to different editing contexts (or languages?) is something I feel should be explored much further.
What are some alternatives?
doom-emacs - An Emacs framework for the stubborn martian hacker [Moved to: https://github.com/doomemacs/doomemacs]
lispy - Short and sweet LISP editing
combobulate - Structured Editing and Navigation in Emacs with Tree-Sitter
elisp-tree-sitter - Emacs Lisp bindings for tree-sitter
smartparens - Minor mode for Emacs that deals with parens pairs and tries to be smart about it.
nvim-gps - Simple statusline component that shows what scope you are working inside
gopcaml-mode
things.el - Extensions to thingatpt.el
emacs - Mirror of GNU Emacs
evil-cleverparens - Evil normal-state minor-mode for editing lisp-like languages
typescript.el - TypeScript-support for Emacs