This is an automated archive made by the Lemmit Bot.

The original was posted on /r/neovim by /u/echasnovski on 2024-09-26 17:34:28+00:00.


Hello, Neovim users!

Today is the day for yet another stable release of mini.nvim, now version 0.14.0 (they grow up so fast). Here is a full release description if you are curious.


This release marks only a single module coming out of beta-testing:

  • mini.icons - a general icons provider. It is meant to be a more versatile ‘nvim-tree/nvim-web-devicons’ replacement which relies on built-in vim.filetype.match() for a more fine-grained icon detection rules and which implements highlight group design with easier blending for any color scheme. You can also read this release post.

This module came with a lot of extra burden:

  • Switch existing modules which rely on ‘nvim-web-devicons’ to prefer ‘mini.icons’ instead. Those are ‘mini.files’, ‘mini.pick’, ‘mini.statusline’, ‘mini.tabline’.
  • Update popular color schemes to define ‘mini.icons’ highlight groups for a better “out of the box” experience for most users.
  • Make changes to Neovim itself for a faster vim.filetype.match(). Unfortunately, this took a lot of mental effort to both get right and debate with core maintainers that it is even worth merging.

The rest of release cycle I decided to dedicate to clean up feature backlog and do overall maintenance. As a result, a lot of existing plugins got new and exciting features. Here are the highlights:

  • ‘mini.files’ got the most attention: bookmarks, better file manipulation, and more. Here is a separate post about it.

  • ‘mini.completion’ now also integrates with ‘mini.icons’:

    • It can show icons near LSP item kind (like “Function”, “Class”, etc.) after an indirect call to MiniIcons.tweak_lsp_kind().
    • It can highlight LSP item kind. Requires set up ‘mini.icons’ and Neovim>=0.11 (current Nightly).
  • ‘mini.misc’ got new setup_termbg_sync() function which can set up terminal background synchronization to remove possible “frame” around current Neovim instance.

  • ‘mini.pick’ now uses full height character “│” instead of previous “:” to separate file name, line, column, and text. The full change is slightly more complicated, though, so see changelog.

  • Many pickers from ‘mini.extra’ now also integrate ‘mini.icons’: both for file and LSP kind.

  • ‘mini.test’ now can work on Windows thanks to the (essentially) a one line change PR.

  • And many more.


Overall maintenance also was fruitful:

  • Help pages now use Neovim-specific way of highlighting code blocks.
  • Thanks to ‘mini.test’ PR, I was finally able to set up CI tests for Windows (and also decided to add MacOS). Updating tests themselves required a gruesome amount of tedious effort (as I don’t have local access to any of those OSs), but it was worth it.
  • All modules now uniformly ensure that their highlight groups are defined for any color scheme. It was not the case previously as usually the :colorscheme ... call clears all highlight groups before defining its own and ‘mini.nvim’ did not account for that.

Thanks for expressing an ever growing interest in ‘mini.nvim’ project!

Hope to see you soon with some exciting updates!