All
Evolve
-
Prefer using 'mini.input' functionality (if module is enabled) to get user input asynchronously. Affected modules:
- mini.ai
- mini.align
- mini.jump2d
- mini.pick
- mini.surround
Refine
- Soft deprecate support for Neovim 0.9. It will be fully deprecated in next release.
mini.base16
Expand
- Add new plugin integrations:
- 'folke/snacks.nvim'
- 'saghen/blink.cmp'
mini.clue
Expand
- Allow mode arrays for clues and triggers for parity with
modesparameter ofvim.keymap.set. By @pkazmier, PR #2202.
mini.completion
Expand
- Add support for executing
completionItem.commandin LSP completion.
mini.deps
Evolve
- Development of 'mini.deps' is frozen in favor of suggesting to use vim.pack. See 'mini.deps' README for more details.
mini.extra
Expand
- Add
pickers.manpagespicker.
Refine
- Update
pickers.lspto highlight (if 'mini.icons' is enabled) workspace symbols after prepended position. This makes easier to quickly locate the symbol data.
mini.files
Evolve
- Do not treat focus as lost if it has changed from the explorer during
vim.ui.select()orvim.ui.input(). These functions are useful during text editing inside the explorer and are often reimplemented via a separate floating window and dedicated buffer (like in 'mini.pick').
Expand
-
Add LSP integration (on Neovim>=0.11), i.e. make some files system actions (create, delete, rename) LSP aware. The information is forwarded to all active LSP servers for them to perform additional actions (like update imports after renaming a file).
This also adds
config.options.lsp_timeoutto control or disable LSP integration.
mini.hipatterns
Evolve
- Add
max_numberoption togen_highlighter.hex_color()andcompute_hex_color_group(). It controls how many different highlight groups these functions are allowed to create. The default is 10000, which is useful to reasonably prevent reaching the maximum number of allowed highlight groups (19999), like when there are too many hex colors to show.
mini.hues
Expand
- Add new plugin integrations:
- 'folke/snacks.nvim'
- 'saghen/blink.cmp'
mini.input
- Introduction of a new module.
mini.jump
Evolve
- Make dot-repeat behave exactly as in clean Neovim, i.e. make it less interfere with regular jumping. This allows doing something like
dte->fx->.to performdteagain and notdfx(which is the latest regular jumping state). By @abeldekat, PR #2284.
mini.misc
Evolve
-
Update
setup_termbg_sync()to use OSC 111 control sequence to reset terminal emulator's background color. This provides a more robust behavior across platforms (liketmux).The previous "reset by explicitly setting initial background color" behavior is available by setting the new
opts.explicit_resetoption totrue.
Expand
-
Add
safely()to execute a function reporting its possible error as warning. It can also postpone execution until certain condition (like event, fixed delay, etc.).It is intended to be a future replacement for
MiniDeps.now()andMiniDeps.later().
mini.pairs
Refine
- Update neighborhood patterns for default mappings to work better with multibyte characters. Their meaning is the same, just the form is adjusted to be more versatile.
mini.pick
Expand
-
Allow
source.previewto directly set another buffer into picker's main window. The recommended way is still to adjust the providedbuf_idbuffer, but there is now a workaround if this is not reasonably possible. -
Allow
opts.preview_iteminui_selectto also return a dedicated data about preview. This preview interface for a generalvim.ui.selectimplementation is added and documented in Neovim=0.12.3. -
Describe alternative move keys (
<Down>,<Up>,<Home>) as "hard-coded but overridable" (instead of a previous not very precise "non-overridable") and show them in the info view. -
Update
ui_selectto wait until currently active picker is stopped before opening a new one. This behavior allows to call severalvim.ui.select()in a row and is more aligned with how it is assumed to work. -
Update
grepandgrep_livepickers to allowmethodlocal option which describes a pattern matching method ('regex'or'plain'). Thegrep_livepicker also has custom<C-e>mapping to switch method. -
Allow non-streaming paste from system clipboard when a picker is active. It will insert text at caret similar to built-in
pasteaction.
Refine
-
Stop forcing redraw every
config.delay.asyncmilliseconds while the picker is active. It added visible CPU usage and code/test lines for its benefit (mostly to show "background" changes/notifications).One side effect of this is that previews with an asynchronous highlighting (like after
vim.treesitter.start()) might require extra care. There are built-in several (but limited) number of explicit:redrawwithconfig.delay.asyncmilliseconds apart. If that is not enough, make sure to explicitly redraw when needed.
mini.sessions
Expand
- Add
restart()function that restarts Neovim>=0.12 while preserving current session.
mini.surround
Expand
- Create Visual and Operator-pending mode mappings for
findandfind_leftactions.
mini.test
Refine
-
Update
expect.errorandexpect.no_errorto not accept extra arguments for tested function. It will mostly work until the next 'mini.nvim' release, but not after that.Use them explicitly inside anonymous function:
expect.error(f, "", 1, 2)->expect.error(function() f(1, 2) end, "")andexpect.no_error(f, 1, 2)->expect.no_error(function() f(1, 2) end).Sorry for the inconvenience.
-
Update all built-in reporters (
gen_reporter.bufferandgen_reporter.stdout) to first show all fails followed by all notes. This makes it easier to find failed cases when there are many notes (like fromMiniTest.skip()).
Expand
-
Update all
MiniTest.expectexpectations to allow customization of failure reason instead of default "Failed expectation for ...". This also consistently introducesoptslast argument. -
Update
MiniTest.expect.equalityto show more detailed cause of failed equality. Like which character is different in two string or which values are different in two tables and at what key branch.
mini.visits
Refine
- Update
add_labelandremove_labelto usevim.ui.inputto ask user for not supplied label instead of previous non-customizablevim.fn.input().