awesome-structure-editors
vim-indent-object
Our great sponsors
awesome-structure-editors | vim-indent-object | |
---|---|---|
10 | 15 | |
303 | 729 | |
- | - | |
4.8 | 3.3 | |
about 1 month ago | 3 months ago | |
Python | Vim Script | |
Creative Commons Zero v1.0 Universal | 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.
awesome-structure-editors
-
Ask HN: Can we do better than Git for version control?
Yes, I think that we can do better than plain text as the source of truth, and thus git would probably need to change.
There's work around a bunch of languages that are not based on text, some have their own editor or a tool to manage a canonical representation in text for you that would make them friendlier to git.
- https://github.com/yairchu/awesome-structure-editors/blob/main/README.md
- Structure Editors: A list of projectional code editor projects
-
Pijul: Version-Control Post-Git • Goto 2023
There's many more akin projects listed in https://github.com/yairchu/awesome-structure-editors/blob/ma...
I can't wait fast enough for these ideas to reshape how we deal with programs and build stuff.
-
Is Haskell gaining or losing popularity?
Haskell seems to be pretty big. For example in this list of projects it appears to be the second most popular language (after TypeScript) :)
-
Ask HN: Any IDEs or text editor plugins with AST-driven navigation?
See https://github.com/yairchu/awesome-structure-editors
-
A Block-Based Functional Programming Language
You could submit a pull request to get it added to awesome-structure-editors by /u/yairchu
-
Emacs Is Not Enough
It would be interesting to have such a general project go somewhere.
While in principle structural editing sounds like an incredible advance, there are 'good enough' advantages to plain-text tools that make it a much more practical solution. The other issue is of course integration with existing tooling, which you either skip entirely or compromise on the design.
What I feel is missing, between the description of "old, bad state of things" and "utopian vision" is a review of some of the projects that already tried to achieve this ideal state. It turns out there are a number of them, and most of them failed to achieve any traction or impact [0].
The rants are very long, so I skimmed quickly the one about git; I understand the complaints, although git is only bringing me joy and no pain --interactive rebase, absorb and a few aliases made it a breeze. But in a similar fashion there are projects trying to solve its fundamental issues, like pijul(.org); what are they missing?
[0] https://github.com/yairchu/awesome-structure-editors/blob/ma...
- Ask HN: Is Vim still worth learning?
- Structure Editors
-
Ask HN: More “experimental“ UIs for editing/writing code?
Some good ones pops up in Projectional Programming [1] once in a while. The pinned thread links to the structure-editors github list [2] too.
[1] https://www.reddit.com/r/nosyntax/
[2] https://github.com/yairchu/awesome-structure-editors
vim-indent-object
-
Is there a plugin to select the parent block of code I am in?
I tried https://github.com/michaeljsmith/vim-indent-object and while it was somewhat promising, it doesn't work correctly.
- Select indented lines in markdown todo list
- Ask HN: Is Vim still worth learning?
- How can it select the inner/outer tag of yaml block
-
Easier way to delete a whole function?
If your function is nicely indented (like your example), you can use an indent object daI delete it. Indent objects are provided by vim-indent-object (more well-known but inactive) and vindent.vim (an extended version by me).
-
vindent.vim v3.0.0
vindent.vim is an alternative to both vim-indentwise and vim-indent-object. The latest version v3.0.0 reimplements every functionality that the two plugin offer, but improved!
-
vindent.vim: a new plugin for indent motions and text objects
I use indent objects from vim-indent-object and indent jumps vim-indentwise alot, but they seem to be dormant for a long time. Also, vim-indentwise provides a lot of unnecessary functionalities IMO, making modifying the source code a bit difficult.
-
Vimrc - How would I set `do` and `end` as delimiter pairs and then have `yid` yank between them?
This isn't exactly what you're looking for, but assuming you've indented everything between do and end, you can use the vim indent object plugin (https://github.com/michaeljsmith/vim-indent-object), then do something like yii, or dii to do it inside the indent.
-
Using Vim for Everything!
I just saw a nice post in /u/medwatt about using vim for VHDL/Verilog and thought I'd contribute a little! * Syntax and error highlight: https://github.com/autozimu/LanguageClient-neovim * Column align: https://github.com/junegunn/vim-easy-align * Remove annoying whitespaces: https://github.com/ntpeters/vim-better-whitespace * Partial (fuzzy) filename search: https://github.com/junegunn/fzf.vim * Outline all declarations inside a file: ⠀https://github.com/preservim/tagbar * Treat indentations as vim-objects (useful for languages that don't use { }): https://github.com/michaeljsmith/vim-indent-object There is also mouse support in vim for those who want it. Try typing :set mouse=a. Very useful for resizing windows. I also highly recommend you get good at using folds (https://vim.fandom.com/wiki/Folding). It makes it a LOT easier to navigate files. You can save your fold config per-file with :mkview and load it later with :loadview. If I come up with more hints - I'll mention them in the comments!
-
Any vim-indent-object alternative?
Some of the forks https://github.com/michaeljsmith/vim-indent-object/network seem to be quite ahead, you can probably choose and pick a lot of improvements to your fork, then you take over the world!
What are some alternatives?
lisperanto - Lisperanto is a spatial canvas for programming; Lisperanto is a spatial canvas for knowledge; Lisperanto is a spatial canvas for ideas;
vim-textobj-user - Vim plugin: Create your own text objects
unit - Next Generation Visual Programming System
LanguageClient-neovim - Language Server Protocol (LSP) support for vim and neovim.
metadesk
vim-textobj-indent - Vim plugin: Text objects for indented blocks of lines
git-stack - Stacked branch management for Git
neovim-config
gtoolkit - Glamorous Toolkit is the Moldable Development environment. It empowers you to make systems explainable through experiences tailored for each problem.
vim-indentwise - A Vim plugin for indent-level based motion.
git-machete - Probably the sharpest git repository organizer & rebase/merge workflow automation tool you've ever seen
nvim-treesitter-textobjects