There are following change types:
Evolve- change in previously intended functionality while adding a new one.Refine- change in previously intended functionality without adding new one. This is usually described as a "breaking change", but used here in a sense that it might break user's expectations about existing functionality.Expand- adding new functionality without affecting existing ones. This is essentially new features.
Version 0.17.0
All
Evolve
-
Move repository hosting from personal 'echasnovski' GitHub account to the 'nvim-mini' organization. All
git pullandgit cloneshould be automatically redirected from previous to new locations without breaking user configurations. Yet updating source links to point to new locations (like'echasnovski/mini.nvim'->'nvim-mini/mini.nvim'and standalone repos) is recommended.This change is made to improve long term project stability. See more details here.
-
Start setting custom Neovim method implementation during
setup()(if module provides one). This is usually the expected behavior for majority of use cases and should improve "out of the box" experience. Modules should still export a function to manually adjust the implementation.It is a breaking change only if the implementation was not explicitly used. Can still be done if set or restored after calling module's
setup().Affected modules:
- 'mini.notify' sets
vim.notify. - 'mini.pick' sets
vim.ui.select.
- 'mini.notify' sets
Refine
- Stop official support of Neovim 0.8.
Expand
- Add new bundled color schemes based on 'mini.hues':
miniwinter: "icy winter" palette with azure background.minispring: "blooming spring" palette with green background.minisummer: "hot summer" palette with brown/yellow background.miniautumn: "cooling autumn" palette with purple background.
mini.ai
Refine
- Update
gen_spec.treesitter()to haveuse_nvim_treesitter = falseas default option value (instead oftrue). It used to implement more advanced behavior, but as built-invim.treesitteris capable enough, there is no need in extra dependency. The option will be removed after the release.
Expand
- Add
gen_spec.user_promptthat acts the same as?built-in textobject. It can be used for using this textobject under another identifier.
mini.basics
Refine
- Change default value of
options.win_borderto be'auto'.
Expand
- Update
options.win_borderto allow value'auto'which infers target 'fillchars' values from 'winborder' option.
mini.colors
- Update
add_transparency()color scheme method to adjust more groups:XxxMsggroups in case ofopts.general = true.DiagnosticSignXxxgroups in case ofopts.statuscolumn = true.
mini.completion
Evolve
- Update
setup()to remove "t" flag from 'complete' option (if not previously set and fallback action is default) as it leads to visible lags.
Expand
-
Add
MiniCompletionWindowOpenandMiniCompletionWindowUpdateevents. -
Add support for highlighting LSP item label via setting
abbr_hlgroupfield as part of an LSP item (like insideconfig.lsp_completion.process_items).
mini.clue
Evolve
- Use current query clue (if not immediately after trigger) as a window title instead of showing keys verbatim. This shows extra context when navigating through mappings.
Expand
-
Add
gen_clues.square_bracketsto generate clues for[and]keys. By @TheLeoP, PR #1937. -
Ensure triggers for 'mini.starter' buffers, but not override its query updaters (like for "g" and "z" triggers).
mini.cmdline
- Introduction of a new module.
mini.diff
Expand
- Add support for working with files containing BOM bytes.
mini.doc
Refine
- Update default
write_prehook to remove===and---delimiters from the top of the file to better comply with:h local-additions.
mini.extra
Expand
-
Add
workspace_symbol_livescope topickers.lsppicker. It allows searching for LSP symbols in the workspace with live feedback. Relates toworkspace_symbolscope similarly to howMiniPick.builtin.grep_live()relates toMiniPick.builtin.grep(). -
Add
<C-e>mapping forpickers.historypicker to edit commands or searches in cmdline. By @TheLeoP, PR #1960.
mini.files
Evolve
- Allow appending
/to a file name to mean "delete file" + "create directory". This is useful when initial intention was to create a directory but there was no/at the end.
Refine
- Ensure preview window is never hidden, even if cursor is on the line for a not (yet) existing file system entry. This reduces flickering of preview window when creating new files in Insert mode.
Expand
- Add
config.content.highlightto customize how file system entry is highlighted. Defaults to a newdefault_highlight()function.
mini.hues
Evolve
- Add auto adjusting of highlight groups based on certain events. It can be disabled via new
autoadjustconfig setting oropts.autoadjustinapply_palette(). Affected groups:MsgSeparatordepends onmsgsepflag of 'fillchars' option.Pmenudepends on 'pumborder' option value (on Neovim>=0.12).
Refine
- Make black (0 and 8) and white (7 and 15) colors for built-in terminal different from regular background and foreground. This improves color coverage and does not affect default uncolored text (it is highlighted as
Normal).
Expand
- Add
get_palette()function.
mini.jump
Expand
- Trigger dedicated events during steps of jumping life cycle. See
:h MiniJump-events.
mini.jump2d
Evolve
- Update
builtin_opts.word_startto use built-in notion of "keyword" (see:h 'iskeyword') when computing word start.
Refine
-
Move
gen_xxx_spotterinto separategen_spottertable for consistency with other modules:gen_pattern_spotter->gen_spotter.patterngen_union_spotter->gen_spotter.union
The
gen_xxx_spotterfunctions will work (with warning) until at least next release. -
Not focusable windows are now ignored when computing jump spots.
Expand
- Add
gen_spotter.vimpattern()that can generate spotter based on Vimscript (not Lua) pattern.
mini.map
Expand
- Update
gen_integration.builtin_search()to react to change ofv:hlsearch.
mini.misc
Expand
-
Update
zoom()to return whether current buffer is zoomed in. By @loichyan, PR #1954. -
Add
log_add()and related functions (log_get(),log_show(),log_clear()) to work with a special in-memory log array. Useful when debugging Lua code (instead ofprint()).
mini.pick
Evolve
- Pickers
grepandgrep_livewithrgtool now respect Neovim's'ignorecase'and'smartcase'options. This forces corresponding case matching flag (thus overriding global configuration) in favor of a more consistent user experience.
Expand
-
"Paste" action now supports special registers:
<C-w>(word at cursor),<C-a>(WORD at cursor),<C-l>(line at cursor),<C-f>(filename at cursor). -
Key query process now respects most language mappings. By @yehorb, PR #2026.
mini.sessions
Refine
- Update
read()to write currently read session only ifMiniSessions.config.autowriteis set totrue.
mini.surround
Evolve
-
Stop creating
update_n_linesmapping: it occupies "mapping real estate" while being rarely needed and straightforward to create manually usingMiniSurround.update_n_lines(). -
Automatically map
skey to<Nop>if the key is not already mapped and any of created mappings starts with it. This prevents accidental trigger of built-insif there is a long delay between pressing "s" and the next key.
Refine
- Update
gen_spec.inpuf.treesitter()to haveuse_nvim_treesitter = falseas default option value (instead oftrue). It used to implement more advanced behavior, but as built-invim.treesitteris capable enough, there is no need in extra dependency. The option will be removed after the release.
mini.test
Refine
-
Soft deprecate
ignore_linesoption inexpect.reference_screenshot()in favor of more capableignore_textandignore_attroptions. For example,ignore_lines = { 1 }is the same as supplying bothignore_text = { 1 }andignore_attr = { 1 }.It will work at least until the next release, after which its support will be removed. Sorry for the inconvenience.
Expand
- Update
expect.reference_screenshot()to support separate ignoring of text and attribute screenshot data via newignore_textandignore_attroptions.