‘mini.nvim’ now has dual distribution model
Originally posted on Reddit
Hello, Neovim users!
For more than a year I’ve been developing a mini.nvim plugin - library of 20+ independent Lua modules improving overall Neovim experience with minimal effort. Each one can be used separately without any startup and usage overhead. In this post I am announcing its dual distribution: both as current “bundle” and standalone plugins for each module.
Initial motivation behind ‘mini.nvim’ was to share with community a set of small-ish modules which I had developed for myself in spare time for fun. As almost each module initially was mediocre compared to analogues, to gain visibility I had come up with the idea of bundling them together in one “traditional” plugin and ship them as a single Git repository. It kind of worked and in slightly more than a year since initial announcement it hit 1000 GitHub stars, for which I am super grateful! This was only possible with your support and contributions. Thank you!
However, although this “bundle” approach fulfilled (and keeps fulfilling) its purposes, it also immediately got criticised with some legitimate arguments (albeit personally sometimes a little far-fetched). So in the back of my head I kept thinking about addressing this in a way that would make me comfortable continuing improving ‘mini.nvim’. And I think the dual distribution model is the solution here.
In a nutshell, ‘mini.nvim’ will continue its development as before, but at the same time each module will also be distributed as a standalone plugin. This will be done by running a script (first manually; then, hopefully, automatically) which inside each standalone plugin will duplicate ‘mini.nvim’ Git commits relevant to the plugin. This way history of all incremental changes will be preserved. As a slight bonus, each plugin is super lightweight as they come only with the files necessary for their distribution (no testing infrastructure, etc.).
Consider standalone plugins only as an alternative distribution of ‘mini.nvim’ modules. All issues, PRs and other user interaction will be done in ‘mini.nvim’ repo (mostly because all testing infrastructure is set up there).
So please welcome 22 new standalone plugins:
Plugin name and link | Short description |
---|---|
mini.ai | Extend and create a /i textobjects |
mini.align | Align text interactively |
mini.base16 | Base16 colorscheme creation |
mini.bufremove | Remove buffers |
mini.comment | Fast and familiar per-line comment |
mini.completion | Completion and signature help |
mini.cursorword | Autohighlight word under cursor |
mini.doc | Generate Neovim help files |
mini.fuzzy | Fuzzy matching |
mini.indentscope | Visualize and operate on indent scope |
mini.jump | Jump forward/backward to a single character |
mini.jump2d | Jump within visible lines |
mini.map | Window with buffer text overview |
mini.misc | Miscellaneous useful functions |
mini.pairs | Autopairs |
mini.sessions | Session management |
mini.starter | Fast and flexible start screen |
mini.statusline | Statusline |
mini.surround | Fast and feature-rich surround actions |
mini.tabline | Tabline |
mini.test | Test Neovim plugins |
mini.trailspace | Work with trailing whitespace |
If you are looking where to start, I am particularly proud of ‘mini.ai’, ‘mini.align’, ‘mini.indentscope’, ‘mini.starter’, and ‘mini.surround’. For Neovim plugin authors I can not recommend enough ‘mini.doc’ and ‘mini.test’, they were life changers for my workflow.
If you find my work useful, please leave GitHub star for ‘mini.nvim’ itself and/or for its standalone plugins. Or simply share this news so that more people are aware of it. This really motivates my work on ‘mini.nvim’. I am looking forward to implementing some really interesting I have. Thanks!