Skip to content

Version 0.13.0

Latest
Compare
Choose a tag to compare
@echasnovski echasnovski released this 13 Jun 14:32
· 51 commits to main since this release
19e1584

mini.comment

  • BREAKING FEATURE: blank lines are now completely ignored when deciding the toggling action. In practice this means that if target block consists only from commented and/or blank lines, it will be uncommented rather than commented.

  • BREAKING: Whitespace in comment parts is now treated more explicitly. In particular:

    • Default options.pad_comment_parts = true now more explicitly means that any value of 'commentstring' is transformed so that comment parts have exactly single space inner padding.

      Example: any /*%s*/, /* %s */, or /* %s */ is equivalent to having /* %s */.

    • Detection of whether consecutive lines are commented or not does not depend on whitespace in comment parts. Uncommenting is first attempted with exact comment parts and falls back on trying its trimmed parts.

      Example of toggling comment on single line with /* %s */ 'commentstring' value:

      • /* this is commented */ -> this is commented.
      • /*this is also commented */ -> this is also commented (notice trailing space).
    • Commenting blank lines is done with trimmed comments parts, while uncommenting explicitly results into empty lines.

  • FEATURE: Support dot-repeat after initial commenting is done for visual selection; repeating is done for same relative range.

mini.deps

  • FEATURE: add MiniDepsMsgBreaking highlight group for messages indicating a breaking change in a conventional commit style.

mini.diff

  • Introduction of a new module.

mini.files

  • FEATURE: add new MiniFilesExplorerOpen and MiniFilesExplorerClose events.

mini.git

  • Introduction of a new module.

mini.hues

  • BREAKING FEATURE: update some highlight groups for better usability:
    • DiffChange and DiffText - make changed diff lines have colored background.
    • Folded - make folds differ from CursorLine.
    • QuickFixLine - make current quickfix item differ from CursorLine.

mini.map

  • FEATURE: add gen_integration.diff() which highlights general diff hunks from 'mini.diff'.

mini.pick

  • BREAKING: stop trying to parse path for special format ("path:row" and "path:row:col") if supplied inside a table item. This made impossible working with paths containing ":".
  • FEATURE: respect general URI format for paths inside table items.
  • Update builtin.files() to use table items when string item might be ambiguous.

mini.starter

  • Explicitly block all events in open() during startup for a better performance.

mini.statusline

  • BREAKING: section_diagnostics() now depends only on defined diagnostic. This means:
    • Something is shown only if there is any diagnostic actually present in the buffer. No diagnostic entries - nothing is shown.
      Previously it did not show if there was no LSP servers attached (as initially diagnostics came only from LSP) or buffer was not normal.
    • Fallback icon is "Diag" instead of "LSP".
  • FEATURE: section_diagnostics() now supports signs table option to customize signs for severity levels.
  • BREAKING FEATURE: section_git() now prefers using data from 'mini.git' with fallback on pure HEAD data from 'lewis6991/gistigns.nvim'.
  • FEATURE: add section_diff() to show data from 'mini.diff' with fallback on diff data from 'lewis6991/gistigns.nvim'.
  • FEATURE: add section_lsp() to show indicator of LSP servers attached to the buffer.
  • BREAKING FEATURE: update default active content:
    • Add section_diff() (shows diff data near  icon) following refactor of section_git().
    • Add section_lsp() (shows number of attached LSP servers near 󰰎 icon) following refactor of section_diagnostics().

mini.tabline

  • FEATURE: Implement config.format for custom label formatting.

mini.test

  • BREAKING FEATURE: child process is now created with extra --headless --cmd "set lines=24 columns=80" arguments making it headless but still reasonably similar to fully functioning Neovim during interactive usage. This change should generally not break a lot of things, while enabling a faster and more robust test execution.