github echasnovski/mini.nvim v0.14.0
Version 0.14.0

one month ago
  • Stop official support of Neovim 0.7.
  • Update help files to use code blocks with language annotation, as it results in a better code highlighting. Implies enabled tree-sitter highlighting in 'help' filetype:
    • It is default in Neovim>=0.10.
    • Tree-sitter parser is built-in in Neovim 0.9.x, needs manual enabling via vim.treesitter.start().
    • Has visual regressions on Neovim 0.8.0 and 0.8.1 without enabled tree-sitter (code blocks are highlighted as normal text). Use 0.8.2 or newer.
  • Universally prefer 'mini.icons' module over 'nvim-tree/nvim-web-devicons'.
  • Start automated testing on Windows and MacOS.
  • Universally ensure that all plugin's highlight groups are defined after any color scheme takes effect.

mini.base16

  • FEATURE: add 'kevinhwang91/nvim-bqf' plugin integration.

mini.completion

  • FEATURE: add highlighting of LSP kind (like "Function", "Keyword", etc.). Works only on Neovim>=0.11. Requires enabled 'mini.icons' to work out of the box.

mini.doc

  • BREAKING FEATURE: update afterlines_to_code() to result into Lua code block in help file by using >lua at the start instead of >. NOTE: users need enabled help tree-sitter parser (which is default on Neovim>=0.9) for code blocks to have proper highlighting.

mini.extra

  • FEATURE: update oldfiles picker to have current_dir option which if true shows files only from picker's working directory. By @abeldekat, PR #997.
  • FEATURE: make git_hunks, list, and lsp pickers show icons. Scopes document_symbol and workspace_symbol in lsp picker show icon based on LSP kind (requires set up 'mini.icons'), others - based on path data.
  • FEATURE: update buf_lines and oldfiles pickers to have preserve_order local option, similar to visit_paths picker. Other possible candidates for this option are intentionally not updated to not increase maintenance (manually override match source method to call MiniPick.default_match() with { preserve_order = true } options).
  • FEATURE: update buf_lines picker to pad line numbers to achieve more aligned look.
  • BREAKING FEATURE: use "│" as line/position separator instead of ":". This aligns with changes in 'mini.pick' and makes line/position more easily visible.

mini.git

  • FEATURE: update show_at_cursor() to include commit's statistics when showing commit.
  • FEATURE: update show_at_cursor() to show relevant at cursor commit data inside 'mini.deps' confirmation buffer.

mini.hipatterns

  • BREAKING FEATURE: update compute_hex_color_group() to compute based on combination of hex_color and style, opposed to just hex_color. This allows simultaneous usage of several styles in user's custom highlighters.

mini.hues

  • FEATURE: implement apply_palette() (to compliment make_palette()) providing a way to tweak applied palette before applying it.
  • FEATURE: add 'kevinhwang91/nvim-bqf' plugin integration.

mini.files

  • FEATURE: prefer using 'mini.icons' as icon provider.
  • FEATURE: implement bookmarks. With default config:
    • Type m followed by a single character <char> to set directory path of focused window as a bookmark with id <char>.
    • Type ' followed by a bookmark id to make bookmark's path focused in explorer.
    • Use MiniFiles.set_bookmark() inside MiniFilesExplorerOpen event to set custom bookmarks.
  • FEATURE: make data for MiniFilesActionDelete contain to field in case of not permanent delete.
  • FEATURE: make file manipulation work better for special complex/overlapping cases (like delete 'file-a' and copy 'file-b' as 'file-a'). It is still a better idea to split overlapping manipulations into smaller and not related steps, as there are cases which won't work.
  • FEATURE: add get_explorer_state() to allow more reliable user customizations.
  • FEATURE: add set_branch() to allow to set what paths should be displayed and focused.
  • BREAKING: soft deprecate get_target_window() in favor of get_explorer_state().target_window. Will be completely removed after the next release.
  • BREAKING: update how confirmation lines are computed:
    • Show create actions in the group directory where text manipulation took place. This matters during creating nested entries and is usually a more intuitive representation.
    • For delete show its type after the file name ("permanently" or "to trash") as an additional visual indication of delete type.
    • For create, copy and move prefer showing its "to" path relative to group directory.
    • Separate action name and paths with "│" (instead of ":") for better visual separation.
    • Don't enclose paths in quotes. Initially it was done to reliably show possible whitespace in paths, but inferring it from overall line structure should be good enough.

mini.icons

  • Introduction of a new module.

mini.misc

  • FEATURE: implement setup_termbg_sync() to set up terminal background synchronization (removes possible "frame" around current Neovim instance). Works only on Neovim>=0.10.

mini.pick

  • FEATURE: prefer using 'mini.icons' as icon provider.
  • BREAKING: update default_match() to have table opts as fourth argument (instead of boolean do_sync). Use { sync = true } to run synchronously. The new design is more aligned with other functions and is more forward compatible.
  • FEATURE: add preserve_order option to default_match() to allow asynchronous matching which preserves order (i.e. doesn't do sort step of fuzzy matching).
  • BREAKING: encoding line or position in string items has changed:
    • Use "\0" (null character; use "\000" form if it is in a string before digit) instead of ":" as delimiter. This makes it work with files similar to ":" position encoding (like "time_12:34:56"). This only matters for custom sources which provide line or position in string items.
    • Update default_show() to display "│" character instead of "\0" in item's string representation (previously was ":"). In particular, this changes how line/position is displayed in grep and grep_live built-in pickers. This change was done because "│" is more visible as separator.
  • FEATURE: explicitly hide cursor when picker is active (instead of putting it in command line).

mini.starter

  • BREAKING: change filetype of Starter buffer from 'starter' to 'ministarter'. This is a more robust value and more aligned with other modules.

mini.statusline

  • BREAKING FEATURE: update section_fileinfo() to show non-empty filetype even in not normal buffers (like plugin's scratch buffers, help, quickfix, etc.). Previously it showed nothing, which was a mistake as filetype can be a valuable information.
  • BREAKING FEATURE: the default set_vim_settings config value now does not affect laststatus = 3 (aka global statusline).
  • FEATURE: prefer using 'mini.icons' as icon provider for section_fileinfo().

mini.surround

  • BREAKING FEATURE: adding surrounding in linewise mode now also ignores trailing whitespace on the last line (same as it ignores indent on the first line).

mini.tabline

  • FEATURE: prefer using 'mini.icons' as icon provider.

mini.test

Don't miss a new mini.nvim release

NewReleases is sending notifications on new releases.