github echasnovski/mini.nvim v0.15.0
Version 0.15.0

22 hours ago

mini.align

  • FEATURE: add built-in modifier for "|" character with aligning Markdown-like tables in mind.

mini.animate

  • BREAKING FEATURE: add max_output_steps option to gen_path.line() and gen_path.angle() to limit the number of steps the return. Default is 1000 to improve performance on large cursor jumps which also is set for config.cursor.path.

mini.files

  • FEATURE: closing and refreshing explorer now requires confirmation only if there are pending file system actions (and not in case of at least one modified buffer present).
  • FEATURE: confirming file system actions in synchronize() now can cancel synchronization (by pressing c) while keeping buffer contents the same. synchronize() also returns a boolean representing whether synchronization was done.

mini.git

  • FEATURE: Git data is computed after resolving symlinks. This allows working with files symlinked into outside of Git repo. This behavior is the same as in 'mini.diff'.

mini.hipatterns

  • BREAKING FEATURE: make MiniHipatterns{Fixme,Hack,Todo,Note} highlight groups by default be reverse and bold variant of Diagnostic{Error,Warn,Info,Hint} group instead of directly link to them. This ensures better visibility for color schemes which don't have explicit 'mini.hipatterns' support.

mini.hues

  • FEATURE: add 'lowmedium' and 'mediumhigh' saturation levels.

mini.icons

  • FEATURE: add distinctive glyphs and highlighting for special Neovim directories (from :h 'runtimepath').

mini.indentscope

  • BREAKING FEATURE: add options.n_lines option to limit the scope computation (for better performance). It is breaking because the default value is 10000 while previous behavior had no restriction (as with n_lines = math.huge) which should matter only in very big scopes.
  • BREAKING FEATURE: add draw.predicate configuration to customize whether the scope should be autodrawn. It is breaking because the default value does not draw scope with incomplete computation (i.e. interrupted due to options.n_lines value), which should matter only in very big scopes.

mini.notify

  • FEATURE: setup() now also can be used to clean history (for example, like MiniNotify.setup(MiniNotify.config)).

mini.pick

  • BREAKING FEATURE: picker window now has local current directory set to source's cwd. This allows easier code for "in window" functions (callable items, choose, preview, etc.) as relative paths will be properly resolved. It also results in some changes:
    • Calling set_picker_items_from_cli() with active picker now resolves explicitly set to relative path spawn_opts.cwd against picker's cwd (and not against global current directory as was done previously).
  • FEATURE: update grep and grep_live pickers to allow globs local option which restricts search to files that match any of its glob patterns (for example, { '*.lua', 'lua/**' } will only search in Lua files and files in 'lua' directory). The grep_live picker also has custom <C-o> mapping to add globs interactively after picker is opened.
  • FEATURE: update help picker to have default_split local option which customizes split direction of choose action (<CR> by default).
  • FEATURE: update ui_select() to allow fourth argument start_opts to customize MiniPick.start() call.
  • FEATURE: add MiniPickMatch event triggered after updating query matches or setting items. Can be used, for example, to adjust window height based on current matches.

mini.snippets

  • Introduction of a new module.

mini.surround

  • BREAKING: created mappings for find, find_left, and highlight are now not dot-repeatable. Dot-repeat should repeat last text change but neither of those actions change text. Having them dot-repeatable breaks the common "move cursor -> press dot" workflow. Initially making them dot-repeatable was a "you can but you should not" type of mistake.

mini.test

  • FEATURE: add n_retry test set property. When set, each case will be tried that at most that many times until first success (if any).
  • FEATURE: add hooks.pre_source and hooks.post_source fields to collected cases. They can be either 'once' or 'case' and allow a more granular control over case execution.
  • FEATURE: finally() now can be called several times inside a single function with callbacks executed in order of how they were registered.
  • BREAKING FEATURE: now calling skip() in set's pre_case hook results in skipping all test cases in a set. Calling in other hooks has no effect. This enables a more structured skipping of all test cases inside a set. To skip inside hooks, use add_note() followed by return.
  • FEATURE: update expect.reference_screenshot() to allow directory option pointing to a directory where automatically constructed reference path is located.

Don't miss a new mini.nvim release

NewReleases is sending notifications on new releases.