retrovim 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. package/.conda/retrovim.yaml +259 -0
  2. package/.conda/terax.icns +0 -0
  3. package/.conda/terax.ico +0 -0
  4. package/.conda/terax.png +0 -0
  5. package/.github/workflows/release.yml +95 -0
  6. package/.gitmodules +3 -0
  7. package/.npm/kanata_touchcursor.js +28 -0
  8. package/.npm/nvim.js +26 -0
  9. package/.npm/yazi.js +26 -0
  10. package/.npm/zsh.js +17 -0
  11. package/.pip/kanata_touchcursor/__init__.py +28 -0
  12. package/.pip/nvim/__init__.py +31 -0
  13. package/.pip/yazi/__init__.py +31 -0
  14. package/.pip/zsh/__init__.py +22 -0
  15. package/CHANGELOG.md +26 -0
  16. package/LICENSE +674 -0
  17. package/README.md +336 -0
  18. package/kanata/touchcursor.kbd +164 -0
  19. package/nvim/init.lua +813 -0
  20. package/nvim/plugins/mini.nvim/.github/DISCUSSION_TEMPLATE/q-a.yml +72 -0
  21. package/nvim/plugins/mini.nvim/.github/ISSUE_TEMPLATE/bug-report.yml +136 -0
  22. package/nvim/plugins/mini.nvim/.github/ISSUE_TEMPLATE/config.yml +5 -0
  23. package/nvim/plugins/mini.nvim/.github/ISSUE_TEMPLATE/feature-request.yml +75 -0
  24. package/nvim/plugins/mini.nvim/.github/PULL_REQUEST_TEMPLATE.md +2 -0
  25. package/nvim/plugins/mini.nvim/.github/workflows/quality-control.yml +150 -0
  26. package/nvim/plugins/mini.nvim/.pre-commit-config.yaml +20 -0
  27. package/nvim/plugins/mini.nvim/.stylua.toml +7 -0
  28. package/nvim/plugins/mini.nvim/.styluaignore +1 -0
  29. package/nvim/plugins/mini.nvim/CHANGELOG.md +1894 -0
  30. package/nvim/plugins/mini.nvim/CODE_OF_CONDUCT.md +132 -0
  31. package/nvim/plugins/mini.nvim/CONTRIBUTING.md +331 -0
  32. package/nvim/plugins/mini.nvim/LICENSE +21 -0
  33. package/nvim/plugins/mini.nvim/MAINTAINING.md +330 -0
  34. package/nvim/plugins/mini.nvim/Makefile +51 -0
  35. package/nvim/plugins/mini.nvim/README.md +261 -0
  36. package/nvim/plugins/mini.nvim/TESTING.md +1011 -0
  37. package/nvim/plugins/mini.nvim/benchmarks/starter/README.md +35 -0
  38. package/nvim/plugins/mini.nvim/benchmarks/starter/benchmark.sh +56 -0
  39. package/nvim/plugins/mini.nvim/benchmarks/starter/init-files/init_dashboard-alpha.lua +21 -0
  40. package/nvim/plugins/mini.nvim/benchmarks/starter/init-files/init_dashboard-original.lua +17 -0
  41. package/nvim/plugins/mini.nvim/benchmarks/starter/init-files/init_dashboard-starter.lua +18 -0
  42. package/nvim/plugins/mini.nvim/benchmarks/starter/init-files/init_empty.lua +4 -0
  43. package/nvim/plugins/mini.nvim/benchmarks/starter/init-files/init_starter-default.lua +7 -0
  44. package/nvim/plugins/mini.nvim/benchmarks/starter/init-files/init_startify-alpha.lua +10 -0
  45. package/nvim/plugins/mini.nvim/benchmarks/starter/init-files/init_startify-original.lua +7 -0
  46. package/nvim/plugins/mini.nvim/benchmarks/starter/init-files/init_startify-starter.lua +20 -0
  47. package/nvim/plugins/mini.nvim/benchmarks/starter/install.sh +10 -0
  48. package/nvim/plugins/mini.nvim/benchmarks/starter/make_summary.py +68 -0
  49. package/nvim/plugins/mini.nvim/benchmarks/starter/startup-summary.md +10 -0
  50. package/nvim/plugins/mini.nvim/colors/miniautumn.lua +55 -0
  51. package/nvim/plugins/mini.nvim/colors/minicyan.lua +95 -0
  52. package/nvim/plugins/mini.nvim/colors/minischeme.lua +95 -0
  53. package/nvim/plugins/mini.nvim/colors/minispring.lua +53 -0
  54. package/nvim/plugins/mini.nvim/colors/minisummer.lua +49 -0
  55. package/nvim/plugins/mini.nvim/colors/miniwinter.lua +51 -0
  56. package/nvim/plugins/mini.nvim/colors/randomhue.lua +16 -0
  57. package/nvim/plugins/mini.nvim/doc/mini-ai.txt +889 -0
  58. package/nvim/plugins/mini.nvim/doc/mini-align.txt +923 -0
  59. package/nvim/plugins/mini.nvim/doc/mini-animate.txt +937 -0
  60. package/nvim/plugins/mini.nvim/doc/mini-base16.txt +285 -0
  61. package/nvim/plugins/mini.nvim/doc/mini-basics.txt +359 -0
  62. package/nvim/plugins/mini.nvim/doc/mini-bracketed.txt +622 -0
  63. package/nvim/plugins/mini.nvim/doc/mini-bufremove.txt +123 -0
  64. package/nvim/plugins/mini.nvim/doc/mini-clue.txt +760 -0
  65. package/nvim/plugins/mini.nvim/doc/mini-cmdline.txt +392 -0
  66. package/nvim/plugins/mini.nvim/doc/mini-colors.txt +880 -0
  67. package/nvim/plugins/mini.nvim/doc/mini-comment.txt +230 -0
  68. package/nvim/plugins/mini.nvim/doc/mini-completion.txt +477 -0
  69. package/nvim/plugins/mini.nvim/doc/mini-cursorword.txt +105 -0
  70. package/nvim/plugins/mini.nvim/doc/mini-deps.txt +590 -0
  71. package/nvim/plugins/mini.nvim/doc/mini-diff.txt +661 -0
  72. package/nvim/plugins/mini.nvim/doc/mini-doc.txt +434 -0
  73. package/nvim/plugins/mini.nvim/doc/mini-extra.txt +856 -0
  74. package/nvim/plugins/mini.nvim/doc/mini-files.txt +1018 -0
  75. package/nvim/plugins/mini.nvim/doc/mini-fuzzy.txt +160 -0
  76. package/nvim/plugins/mini.nvim/doc/mini-git.txt +425 -0
  77. package/nvim/plugins/mini.nvim/doc/mini-hipatterns.txt +489 -0
  78. package/nvim/plugins/mini.nvim/doc/mini-hues.txt +420 -0
  79. package/nvim/plugins/mini.nvim/doc/mini-icons.txt +508 -0
  80. package/nvim/plugins/mini.nvim/doc/mini-indentscope.txt +485 -0
  81. package/nvim/plugins/mini.nvim/doc/mini-input.txt +932 -0
  82. package/nvim/plugins/mini.nvim/doc/mini-jump.txt +202 -0
  83. package/nvim/plugins/mini.nvim/doc/mini-jump2d.txt +525 -0
  84. package/nvim/plugins/mini.nvim/doc/mini-keymap.txt +449 -0
  85. package/nvim/plugins/mini.nvim/doc/mini-map.txt +717 -0
  86. package/nvim/plugins/mini.nvim/doc/mini-misc.txt +431 -0
  87. package/nvim/plugins/mini.nvim/doc/mini-move.txt +181 -0
  88. package/nvim/plugins/mini.nvim/doc/mini-notify.txt +434 -0
  89. package/nvim/plugins/mini.nvim/doc/mini-nvim.txt +431 -0
  90. package/nvim/plugins/mini.nvim/doc/mini-operators.txt +472 -0
  91. package/nvim/plugins/mini.nvim/doc/mini-pairs.txt +346 -0
  92. package/nvim/plugins/mini.nvim/doc/mini-pick.txt +1535 -0
  93. package/nvim/plugins/mini.nvim/doc/mini-sessions.txt +239 -0
  94. package/nvim/plugins/mini.nvim/doc/mini-snippets.txt +1291 -0
  95. package/nvim/plugins/mini.nvim/doc/mini-splitjoin.txt +536 -0
  96. package/nvim/plugins/mini.nvim/doc/mini-starter.txt +618 -0
  97. package/nvim/plugins/mini.nvim/doc/mini-statusline.txt +361 -0
  98. package/nvim/plugins/mini.nvim/doc/mini-surround.txt +863 -0
  99. package/nvim/plugins/mini.nvim/doc/mini-tabline.txt +151 -0
  100. package/nvim/plugins/mini.nvim/doc/mini-test.txt +966 -0
  101. package/nvim/plugins/mini.nvim/doc/mini-trailspace.txt +91 -0
  102. package/nvim/plugins/mini.nvim/doc/mini-visits.txt +937 -0
  103. package/nvim/plugins/mini.nvim/logo.png +0 -0
  104. package/nvim/plugins/mini.nvim/lua/mini/ai.lua +2244 -0
  105. package/nvim/plugins/mini.nvim/lua/mini/align.lua +2076 -0
  106. package/nvim/plugins/mini.nvim/lua/mini/animate.lua +2127 -0
  107. package/nvim/plugins/mini.nvim/lua/mini/base16.lua +1752 -0
  108. package/nvim/plugins/mini.nvim/lua/mini/basics.lua +772 -0
  109. package/nvim/plugins/mini.nvim/lua/mini/bracketed.lua +2013 -0
  110. package/nvim/plugins/mini.nvim/lua/mini/bufremove.lua +283 -0
  111. package/nvim/plugins/mini.nvim/lua/mini/clue.lua +2096 -0
  112. package/nvim/plugins/mini.nvim/lua/mini/cmdline.lua +1182 -0
  113. package/nvim/plugins/mini.nvim/lua/mini/colors.lua +2483 -0
  114. package/nvim/plugins/mini.nvim/lua/mini/comment.lua +586 -0
  115. package/nvim/plugins/mini.nvim/lua/mini/completion.lua +2094 -0
  116. package/nvim/plugins/mini.nvim/lua/mini/cursorword.lua +311 -0
  117. package/nvim/plugins/mini.nvim/lua/mini/deps.lua +1660 -0
  118. package/nvim/plugins/mini.nvim/lua/mini/diff.lua +1938 -0
  119. package/nvim/plugins/mini.nvim/lua/mini/doc.lua +1371 -0
  120. package/nvim/plugins/mini.nvim/lua/mini/extra.lua +2290 -0
  121. package/nvim/plugins/mini.nvim/lua/mini/files.lua +3145 -0
  122. package/nvim/plugins/mini.nvim/lua/mini/fuzzy.lua +356 -0
  123. package/nvim/plugins/mini.nvim/lua/mini/git.lua +1737 -0
  124. package/nvim/plugins/mini.nvim/lua/mini/hipatterns.lua +1042 -0
  125. package/nvim/plugins/mini.nvim/lua/mini/hues.lua +2088 -0
  126. package/nvim/plugins/mini.nvim/lua/mini/icons.lua +2254 -0
  127. package/nvim/plugins/mini.nvim/lua/mini/indentscope.lua +1158 -0
  128. package/nvim/plugins/mini.nvim/lua/mini/init.lua +427 -0
  129. package/nvim/plugins/mini.nvim/lua/mini/input.lua +2183 -0
  130. package/nvim/plugins/mini.nvim/lua/mini/jump.lua +609 -0
  131. package/nvim/plugins/mini.nvim/lua/mini/jump2d.lua +1244 -0
  132. package/nvim/plugins/mini.nvim/lua/mini/keymap.lua +880 -0
  133. package/nvim/plugins/mini.nvim/lua/mini/map.lua +1709 -0
  134. package/nvim/plugins/mini.nvim/lua/mini/misc.lua +969 -0
  135. package/nvim/plugins/mini.nvim/lua/mini/move.lua +509 -0
  136. package/nvim/plugins/mini.nvim/lua/mini/notify.lua +938 -0
  137. package/nvim/plugins/mini.nvim/lua/mini/operators.lua +1349 -0
  138. package/nvim/plugins/mini.nvim/lua/mini/pairs.lua +657 -0
  139. package/nvim/plugins/mini.nvim/lua/mini/pick.lua +3876 -0
  140. package/nvim/plugins/mini.nvim/lua/mini/sessions.lua +689 -0
  141. package/nvim/plugins/mini.nvim/lua/mini/snippets.lua +2828 -0
  142. package/nvim/plugins/mini.nvim/lua/mini/splitjoin.lua +1132 -0
  143. package/nvim/plugins/mini.nvim/lua/mini/starter.lua +1599 -0
  144. package/nvim/plugins/mini.nvim/lua/mini/statusline.lua +686 -0
  145. package/nvim/plugins/mini.nvim/lua/mini/surround.lua +2388 -0
  146. package/nvim/plugins/mini.nvim/lua/mini/tabline.lua +564 -0
  147. package/nvim/plugins/mini.nvim/lua/mini/test.lua +2516 -0
  148. package/nvim/plugins/mini.nvim/lua/mini/trailspace.lua +215 -0
  149. package/nvim/plugins/mini.nvim/lua/mini/visits.lua +1577 -0
  150. package/nvim/plugins/mini.nvim/readmes/mini-ai.md +190 -0
  151. package/nvim/plugins/mini.nvim/readmes/mini-align.md +203 -0
  152. package/nvim/plugins/mini.nvim/readmes/mini-animate.md +214 -0
  153. package/nvim/plugins/mini.nvim/readmes/mini-base16.md +198 -0
  154. package/nvim/plugins/mini.nvim/readmes/mini-basics.md +184 -0
  155. package/nvim/plugins/mini.nvim/readmes/mini-bracketed.md +193 -0
  156. package/nvim/plugins/mini.nvim/readmes/mini-bufremove.md +139 -0
  157. package/nvim/plugins/mini.nvim/readmes/mini-clue.md +260 -0
  158. package/nvim/plugins/mini.nvim/readmes/mini-cmdline.md +183 -0
  159. package/nvim/plugins/mini.nvim/readmes/mini-colors.md +169 -0
  160. package/nvim/plugins/mini.nvim/readmes/mini-comment.md +183 -0
  161. package/nvim/plugins/mini.nvim/readmes/mini-completion.md +217 -0
  162. package/nvim/plugins/mini.nvim/readmes/mini-cursorword.md +137 -0
  163. package/nvim/plugins/mini.nvim/readmes/mini-deps.md +271 -0
  164. package/nvim/plugins/mini.nvim/readmes/mini-diff.md +289 -0
  165. package/nvim/plugins/mini.nvim/readmes/mini-doc.md +198 -0
  166. package/nvim/plugins/mini.nvim/readmes/mini-extra.md +158 -0
  167. package/nvim/plugins/mini.nvim/readmes/mini-files.md +247 -0
  168. package/nvim/plugins/mini.nvim/readmes/mini-fuzzy.md +134 -0
  169. package/nvim/plugins/mini.nvim/readmes/mini-git.md +168 -0
  170. package/nvim/plugins/mini.nvim/readmes/mini-hipatterns.md +176 -0
  171. package/nvim/plugins/mini.nvim/readmes/mini-hues.md +285 -0
  172. package/nvim/plugins/mini.nvim/readmes/mini-icons.md +183 -0
  173. package/nvim/plugins/mini.nvim/readmes/mini-indentscope.md +191 -0
  174. package/nvim/plugins/mini.nvim/readmes/mini-input.md +163 -0
  175. package/nvim/plugins/mini.nvim/readmes/mini-jump.md +161 -0
  176. package/nvim/plugins/mini.nvim/readmes/mini-jump2d.md +197 -0
  177. package/nvim/plugins/mini.nvim/readmes/mini-keymap.md +205 -0
  178. package/nvim/plugins/mini.nvim/readmes/mini-map.md +191 -0
  179. package/nvim/plugins/mini.nvim/readmes/mini-misc.md +145 -0
  180. package/nvim/plugins/mini.nvim/readmes/mini-move.md +163 -0
  181. package/nvim/plugins/mini.nvim/readmes/mini-notify.md +175 -0
  182. package/nvim/plugins/mini.nvim/readmes/mini-operators.md +193 -0
  183. package/nvim/plugins/mini.nvim/readmes/mini-pairs.md +158 -0
  184. package/nvim/plugins/mini.nvim/readmes/mini-pick.md +340 -0
  185. package/nvim/plugins/mini.nvim/readmes/mini-sessions.md +164 -0
  186. package/nvim/plugins/mini.nvim/readmes/mini-snippets.md +373 -0
  187. package/nvim/plugins/mini.nvim/readmes/mini-splitjoin.md +194 -0
  188. package/nvim/plugins/mini.nvim/readmes/mini-starter.md +176 -0
  189. package/nvim/plugins/mini.nvim/readmes/mini-statusline.md +155 -0
  190. package/nvim/plugins/mini.nvim/readmes/mini-surround.md +190 -0
  191. package/nvim/plugins/mini.nvim/readmes/mini-tabline.md +156 -0
  192. package/nvim/plugins/mini.nvim/readmes/mini-test.md +175 -0
  193. package/nvim/plugins/mini.nvim/readmes/mini-trailspace.md +137 -0
  194. package/nvim/plugins/mini.nvim/readmes/mini-visits.md +243 -0
  195. package/nvim/plugins/mini.nvim/scripts/dual_log.sh +13 -0
  196. package/nvim/plugins/mini.nvim/scripts/dual_push.sh +15 -0
  197. package/nvim/plugins/mini.nvim/scripts/dual_release.sh +102 -0
  198. package/nvim/plugins/mini.nvim/scripts/dual_sync.sh +115 -0
  199. package/nvim/plugins/mini.nvim/scripts/init-deps-example.lua +59 -0
  200. package/nvim/plugins/mini.nvim/scripts/lint-filename-length.sh +16 -0
  201. package/nvim/plugins/mini.nvim/scripts/lintcommit-ci.sh +18 -0
  202. package/nvim/plugins/mini.nvim/scripts/lintcommit.lua +393 -0
  203. package/nvim/plugins/mini.nvim/scripts/minidoc.lua +57 -0
  204. package/nvim/plugins/mini.nvim/scripts/minimal_init.lua +28 -0
  205. package/nvim/plugins/mini.nvim/scripts/minitest.lua +4 -0
  206. package/package.json +16 -0
  207. package/pyproject.toml +43 -0
  208. package/yazi/init.lua +12 -0
  209. package/yazi/keymap.toml +114 -0
  210. package/yazi/lesskey +5 -0
  211. package/yazi/plugins/bookmarks.yazi/main.lua +86 -0
  212. package/yazi/plugins/cd-git-root.yazi/main.lua +31 -0
  213. package/yazi/plugins/smart-enter.yazi/main.lua +11 -0
  214. package/yazi/theme.toml +26 -0
  215. package/yazi/yazi.toml +15 -0
  216. package/zsh/.zshrc +145 -0
  217. package/zsh/starship.toml +20 -0
  218. package/zsh/zsh-patina.toml +2 -0
@@ -0,0 +1,1894 @@
1
+ This is the log of changes for past and current development versions. It lists changes in user-facing functionality per module (or all modules) and type.
2
+
3
+ There are following change types:
4
+
5
+ - `Evolve` - change in previously intended functionality *while* adding a new one.
6
+ - `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.
7
+ - `Expand` - adding new functionality without affecting existing ones. This is essentially new features.
8
+
9
+ # Version 0.18.0 (2026-06-21)
10
+
11
+ ## All
12
+
13
+ ### Evolve
14
+
15
+ - Prefer using 'mini.input' functionality (if module is enabled) to get user input asynchronously. Affected modules:
16
+
17
+ - mini.ai
18
+ - mini.align
19
+ - mini.jump2d
20
+ - mini.pick
21
+ - mini.surround
22
+
23
+ ### Refine
24
+
25
+ - Soft deprecate support for Neovim 0.9. It will be fully deprecated in next release.
26
+
27
+ ## mini.base16
28
+
29
+ ### Expand
30
+
31
+ - Add new plugin integrations:
32
+ - 'folke/snacks.nvim'
33
+ - 'saghen/blink.cmp'
34
+
35
+ ## mini.clue
36
+
37
+ ### Expand
38
+
39
+ - Allow mode arrays for clues and triggers for parity with `modes` parameter of `vim.keymap.set`. By @pkazmier, PR #2202.
40
+
41
+ ## mini.completion
42
+
43
+ ### Expand
44
+
45
+ - Add support for executing `completionItem.command` in LSP completion.
46
+
47
+ ## mini.deps
48
+
49
+ ### Evolve
50
+
51
+ - Development of 'mini.deps' is frozen in favor of suggesting to use [vim.pack](https://neovim.io/doc/user/helptag.html?tag=vim.pack). See ['mini.deps' README](readmes/mini-deps.md#development-freeze) for more details.
52
+
53
+ ## mini.extra
54
+
55
+ ### Expand
56
+
57
+ - Add `pickers.manpages` picker.
58
+
59
+ ### Refine
60
+
61
+ - Update `pickers.lsp` to highlight (if 'mini.icons' is enabled) workspace symbols after prepended position. This makes easier to quickly locate the symbol data.
62
+
63
+ ## mini.files
64
+
65
+ ### Evolve
66
+
67
+ - Do not treat focus as lost if it has changed from the explorer during `vim.ui.select()` or `vim.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').
68
+
69
+ ### Expand
70
+
71
+ - 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).
72
+
73
+ This also adds `config.options.lsp_timeout` to control or disable LSP integration.
74
+
75
+ By @TheLeoP, PR #2340.
76
+
77
+ ## mini.hipatterns
78
+
79
+ ### Evolve
80
+
81
+ - Add `max_number` option to `gen_highlighter.hex_color()` and `compute_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.
82
+
83
+ ## mini.hues
84
+
85
+ ### Expand
86
+
87
+ - Add new plugin integrations:
88
+ - 'folke/snacks.nvim'
89
+ - 'saghen/blink.cmp'
90
+
91
+ ## mini.input
92
+
93
+ - Introduction of a new module.
94
+
95
+ ## mini.jump
96
+
97
+ ### Evolve
98
+
99
+ - 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 perform `dte` again and not `dfx` (which is the latest regular jumping state). By @abeldekat, PR #2284.
100
+
101
+ ## mini.misc
102
+
103
+ ### Evolve
104
+
105
+ - 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 (like `tmux`).
106
+
107
+ The previous "reset by explicitly setting initial background color" behavior is available by setting the new `opts.explicit_reset` option to `true`.
108
+
109
+ ### Expand
110
+
111
+ - 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.).
112
+
113
+ It is intended to be a future replacement for `MiniDeps.now()` and `MiniDeps.later()`.
114
+
115
+ ## mini.pairs
116
+
117
+ ### Refine
118
+
119
+ - 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.
120
+
121
+ ## mini.pick
122
+
123
+ ### Expand
124
+
125
+ - Allow `source.preview` to directly set another buffer into picker's main window. The recommended way is still to adjust the provided `buf_id` buffer, but there is now a workaround if this is not reasonably possible.
126
+
127
+ - Allow `opts.preview_item` in `ui_select` to also return a dedicated data about preview. This preview interface for a general `vim.ui.select` implementation is added and documented in Neovim=0.12.3.
128
+
129
+ - 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.
130
+
131
+ - Update `ui_select` to wait until currently active picker is stopped before opening a new one. This behavior allows to call several `vim.ui.select()` in a row and is more aligned with how it is assumed to work.
132
+
133
+ - Update `grep` and `grep_live` pickers to allow `method` local option which describes a pattern matching method (`'regex'` or `'plain'`). The `grep_live` picker also has custom `<C-e>` mapping to switch method.
134
+
135
+ - Allow non-streaming paste from system clipboard when a picker is active. It will insert text at caret similar to built-in `paste` action.
136
+
137
+ ### Refine
138
+
139
+ - Stop forcing redraw every `config.delay.async` milliseconds while the picker is active. It added visible CPU usage and code/test lines for its benefit (mostly to show "background" changes/notifications).
140
+
141
+ 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 `:redraw` with `config.delay.async` milliseconds apart. If that is not enough, make sure to explicitly redraw when needed.
142
+
143
+ ## mini.sessions
144
+
145
+ ### Expand
146
+
147
+ - Add `restart()` function that restarts Neovim>=0.12 while preserving current session.
148
+
149
+ ## mini.surround
150
+
151
+ ### Expand
152
+
153
+ - Create Visual and Operator-pending mode mappings for `find` and `find_left` actions.
154
+
155
+ ## mini.test
156
+
157
+ ### Refine
158
+
159
+ - Update `expect.error` and `expect.no_error` to not accept extra arguments for tested function. It will mostly work until the next 'mini.nvim' release, but not after that.
160
+
161
+ Use them explicitly inside anonymous function: `expect.error(f, "", 1, 2)` -> `expect.error(function() f(1, 2) end, "")` and `expect.no_error(f, 1, 2)` -> `expect.no_error(function() f(1, 2) end)`.
162
+
163
+ Sorry for the inconvenience.
164
+
165
+ - Update all built-in reporters (`gen_reporter.buffer` and `gen_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 from `MiniTest.skip()`).
166
+
167
+ ### Expand
168
+
169
+ - Update all `MiniTest.expect` expectations to allow customization of failure reason instead of default "Failed expectation for ...". This also consistently introduces `opts` last argument.
170
+
171
+ - Update `MiniTest.expect.equality` to 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.
172
+
173
+ ## mini.visits
174
+
175
+ ### Refine
176
+
177
+ - Update `add_label` and `remove_label` to use `vim.ui.input` to ask user for not supplied label instead of previous non-customizable `vim.fn.input()`.
178
+
179
+
180
+ # Version 0.17.0 (2025-12-18)
181
+
182
+ ## All
183
+
184
+ ### Evolve
185
+
186
+ - Move repository hosting from personal 'echasnovski' GitHub account to the 'nvim-mini' organization. All `git pull` and `git clone` should 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.
187
+
188
+ This change is made to improve long term project stability. See more details [here](https://github.com/nvim-mini/mini.nvim/discussions/1970).
189
+
190
+ - 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.
191
+
192
+ 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()`.
193
+
194
+ Affected modules:
195
+
196
+ - 'mini.notify' sets `vim.notify`.
197
+ - 'mini.pick' sets `vim.ui.select`.
198
+
199
+ ### Refine
200
+
201
+ - Stop official support of Neovim 0.8.
202
+
203
+ ### Expand
204
+
205
+ - Add new bundled color schemes based on 'mini.hues':
206
+ - `miniwinter`: "icy winter" palette with azure background.
207
+ - `minispring`: "blooming spring" palette with green background.
208
+ - `minisummer`: "hot summer" palette with brown/yellow background.
209
+ - `miniautumn`: "cooling autumn" palette with purple background.
210
+
211
+ ## mini.ai
212
+
213
+ ### Refine
214
+
215
+ - Update `gen_spec.treesitter()` to have `use_nvim_treesitter = false` as default option value (instead of `true`). It used to implement more advanced behavior, but as built-in `vim.treesitter` is capable enough, there is no need in extra dependency. The option will be removed after the release.
216
+
217
+ ### Expand
218
+
219
+ - Add `gen_spec.user_prompt` that acts the same as `?` built-in textobject. It can be used for using this textobject under another identifier.
220
+
221
+ ## mini.basics
222
+
223
+ ### Refine
224
+
225
+ - Change default value of `options.win_border` to be `'auto'`.
226
+
227
+ ### Expand
228
+
229
+ - Update `options.win_border` to allow value `'auto'` which infers target 'fillchars' values from 'winborder' option.
230
+
231
+ ## mini.colors
232
+
233
+ - Update `add_transparency()` color scheme method to adjust more groups:
234
+ - `XxxMsg` groups in case of `opts.general = true`.
235
+ - `DiagnosticSignXxx` groups in case of `opts.statuscolumn = true`.
236
+
237
+ ## mini.completion
238
+
239
+ ### Evolve
240
+
241
+ - Update `setup()` to remove "t" flag from 'complete' option (if not previously set and fallback action is default) as it leads to visible lags.
242
+
243
+ ### Expand
244
+
245
+ - Add `MiniCompletionWindowOpen` and `MiniCompletionWindowUpdate` events.
246
+
247
+ - Add support for highlighting LSP item label via setting `abbr_hlgroup` field as part of an LSP item (like inside `config.lsp_completion.process_items`).
248
+
249
+ ## mini.clue
250
+
251
+ ### Evolve
252
+
253
+ - 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.
254
+
255
+ ### Expand
256
+
257
+ - Add `gen_clues.square_brackets` to generate clues for `[` and `]` keys. By @TheLeoP, PR #1937.
258
+
259
+ - Ensure triggers for 'mini.starter' buffers, but not override its query updaters (like for "g" and "z" triggers).
260
+
261
+ ## mini.cmdline
262
+
263
+ - Introduction of a new module.
264
+
265
+ ## mini.diff
266
+
267
+ ### Expand
268
+
269
+ - Add support for working with files containing BOM bytes.
270
+
271
+ ## mini.doc
272
+
273
+ ### Refine
274
+
275
+ - Update default `write_pre` hook to remove `===` and `---` delimiters from the top of the file to better comply with `:h local-additions`.
276
+
277
+ ## mini.extra
278
+
279
+ ### Expand
280
+
281
+ - Add `pickers.colorschemes` picker. By @pkazmier, PR #1789.
282
+
283
+ - Add `workspace_symbol_live` scope to `pickers.lsp` picker. It allows searching for LSP symbols in the workspace with live feedback. Relates to `workspace_symbol` scope similarly to how `MiniPick.builtin.grep_live()` relates to `MiniPick.builtin.grep()`.
284
+
285
+ - Add `<C-e>` mapping for `pickers.history` picker to edit commands or searches in cmdline. By @TheLeoP, PR #1960.
286
+
287
+ ## mini.files
288
+
289
+ ### Evolve
290
+
291
+ - 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.
292
+
293
+ ### Refine
294
+
295
+ - 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.
296
+
297
+ ### Expand
298
+
299
+ - Add `config.content.highlight` to customize how file system entry is highlighted. Defaults to a new `default_highlight()` function.
300
+
301
+ ## mini.hues
302
+
303
+ ### Evolve
304
+
305
+ - Add auto adjusting of highlight groups based on certain events. It can be disabled via new `autoadjust` config setting or `opts.autoadjust` in `apply_palette()`. Affected groups:
306
+ - `MsgSeparator` depends on `msgsep` flag of 'fillchars' option.
307
+ - `Pmenu` depends on 'pumborder' option value (on Neovim>=0.12).
308
+
309
+ ### Refine
310
+
311
+ - 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`).
312
+
313
+ ### Expand
314
+
315
+ - Add `get_palette()` function.
316
+
317
+ ## mini.jump
318
+
319
+ ### Expand
320
+
321
+ - Trigger dedicated events during steps of jumping life cycle. See `:h MiniJump-events`.
322
+
323
+ ## mini.jump2d
324
+
325
+ ### Evolve
326
+
327
+ - Update `builtin_opts.word_start` to use built-in notion of "keyword" (see `:h 'iskeyword'`) when computing word start.
328
+
329
+ ### Refine
330
+
331
+ - Move `gen_xxx_spotter` into separate `gen_spotter` table for consistency with other modules:
332
+ - `gen_pattern_spotter` -> `gen_spotter.pattern`
333
+ - `gen_union_spotter` -> `gen_spotter.union`
334
+
335
+ The `gen_xxx_spotter` functions will work (with warning) until at least next release.
336
+
337
+ - Not focusable windows are now ignored when computing jump spots.
338
+
339
+ ### Expand
340
+
341
+ - Add `gen_spotter.vimpattern()` that can generate spotter based on Vimscript (not Lua) pattern.
342
+
343
+ ## mini.map
344
+
345
+ ### Expand
346
+
347
+ - Update `gen_integration.builtin_search()` to react to change of `v:hlsearch`.
348
+
349
+ ## mini.misc
350
+
351
+ ### Expand
352
+
353
+ - Update `zoom()` to return whether current buffer is zoomed in. By @loichyan, PR #1954.
354
+
355
+ - 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 of `print()`).
356
+
357
+ ## mini.pick
358
+
359
+ ### Evolve
360
+
361
+ - Pickers `grep` and `grep_live` with `rg` tool 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.
362
+
363
+ ### Expand
364
+
365
+ - "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).
366
+
367
+ - Key query process now respects most language mappings. By @yehorb, PR #2026.
368
+
369
+ ## mini.sessions
370
+
371
+ ### Refine
372
+
373
+ - Update `read()` to write currently read session only if `MiniSessions.config.autowrite` is set to `true`.
374
+
375
+ ## mini.surround
376
+
377
+ ### Evolve
378
+
379
+ - Stop creating `update_n_lines` mapping: it occupies "mapping real estate" while being rarely needed and straightforward to create manually using `MiniSurround.update_n_lines()`.
380
+
381
+ - Automatically map `s` key to `<Nop>` if the key is not already mapped and any of created mappings starts with it. This prevents accidental trigger of built-in `s` if there is a long delay between pressing "s" and the next key.
382
+
383
+ ### Refine
384
+
385
+ - Update `gen_spec.inpuf.treesitter()` to have `use_nvim_treesitter = false` as default option value (instead of `true`). It used to implement more advanced behavior, but as built-in `vim.treesitter` is capable enough, there is no need in extra dependency. The option will be removed after the release.
386
+
387
+ ## mini.test
388
+
389
+ ### Refine
390
+
391
+ - Soft deprecate `ignore_lines` option in `expect.reference_screenshot()` in favor of more capable `ignore_text` and `ignore_attr` options. For example, `ignore_lines = { 1 }` is the same as supplying both `ignore_text = { 1 }` and `ignore_attr = { 1 }`.
392
+
393
+ It will work at least until the next release, after which its support will be removed. Sorry for the inconvenience.
394
+
395
+ ### Expand
396
+
397
+ - Update `expect.reference_screenshot()` to support separate ignoring of text and attribute screenshot data via new `ignore_text` and `ignore_attr` options.
398
+
399
+
400
+ # Version 0.16.0 (2025-05-20)
401
+
402
+ ## All
403
+
404
+ ### Evolve
405
+
406
+ - Unify behavior of floating windows:
407
+ - Truncate title/footer from left if it is too wide.
408
+ - Set default title if window is allowed to have border.
409
+ - Use single space padding for default title/footer.
410
+ - Use 'single' as default window border in modules where it can be configured. On Neovim>=0.11 also respect non-empty 'winborder' option with lower precedence than explicitly configured value for the module.
411
+
412
+ - Unify how module-related buffers are named: `mini<module-name>://<buffer-number>/<useful-info>`. This structure allows creating identifiable, reasonably unique, and useful buffer names. This is a user facing change because in some cases the shown buffer's name will change (like in statusline of opened 'mini.starter' buffer or output of `:buffers!`).
413
+
414
+ - Stop forcing recommended option values behind `set_vim_settings` config setting. Instead set them automatically in `setup()`. If it is not essential, do so only if it was not set by user/plugin beforehand (no matter the value). Document this as a new general principle to be followed in the future. Affected modules:
415
+ - 'mini.bufremove' (do nothing as recommended 'hidden' is on by default)
416
+ - 'mini.completion' (conditionally set 'completeopt=menuone,noselect' and flags "c" in 'shortmess')
417
+ - 'mini.statusline' (do nothing as recommended 'laststatus=2' is default)
418
+ - 'mini.tabline' (unconditionally set 'showtabline=2', as it is essential to module's functinonality)
419
+
420
+ ### Refine
421
+
422
+ - Soft deprecate support for Neovim 0.8. It will be fully stopped in next release.
423
+
424
+ ## mini.ai
425
+
426
+ ### Refine
427
+
428
+ - Visual textobject selection now puts the cursor on the right edge instead of left. This better aligns with the (undocumented) behavior of how built-in `a` / `i` textobjects work in Visual mode, as opposed to the (documented in `:h operator-resulting-pos`) behavior of how it is done after applying the operator.
429
+
430
+ ### Expand
431
+
432
+ - Textobject identifier can now be any single character supported by `:h getcharstr()`. This also makes it possible to use characters outside of Latin alphanumeric and punctuation sets as `custom_textobjects` keys. Default textobject is extended to be anything but Latin letters (to fall back to `:h text-objects`).
433
+
434
+ - Update `gen_spec.treesitter()` to respect capture ranges specified by query directives (like `(#offset! @table.inner 0 1 0 -1)`).
435
+
436
+ ## mini.base16
437
+
438
+ ### Refine
439
+
440
+ - Update 'mini.pick' highlight groups to show prompt text with same colors as match ranges, as they are connected.
441
+
442
+ ### Expand
443
+
444
+ - Add support for colored markdown headings.
445
+
446
+ - Add new plugin integrations:
447
+ - 'ibhagwan/fzf-lua'
448
+ - 'MeanderingProgrammer/render-markdown.nvim'
449
+ - 'OXY2DEV/helpview.nvim'
450
+ - 'OXY2DEV/markview.nvim'
451
+
452
+ ## mini.colors
453
+
454
+ ### Expand
455
+
456
+ - Update `convert()` to have `adjust_lightness` option which can be used to disable lightness adjustment (which is enabled by default for a more uniform progression from 0 to 100). This can be useful for output to be more consistent with other Oklab/Oklch implementations.
457
+
458
+ ## mini.comment
459
+
460
+ ### Expand
461
+
462
+ - Update textobject to respect `ignore_blank_line` option. Blank lines between commented lines are treated as part of a textobject.
463
+
464
+ ## mini.completion
465
+
466
+ ### Evolve
467
+
468
+ - Add snippet support. By default uses 'mini.snippets' to manage snippet session (if enabled, **highly recommended), falls back to `vim.snippet` on Neovim>=0.10. See "Snippets" section in `:h MiniCompletion` for more details.
469
+
470
+ This affect existing functionality because items with `Snippet` kind are no longer filtered out by default.
471
+
472
+ - Rework how LSP completion items are converted to Neovim's completion items:
473
+ - Show `detail` highlighted as buffer's language at the start of info window, but only if `detail` provides information not already present in `documentation`. It was previously used as extra text in the popup menu (via `menu` field), but this doesn't quite follow LSP specification: `detail` and `documentation` fields can be delayed up until `completionItem/resolve` request which implies they should be treated similarly.
474
+ - Show `labelDetails` as a part of the popup menu via `menu` completion item field.
475
+
476
+ - Rework how information window is shown with the goal to reduce flickering during fast up/down navigation through completion candidates:
477
+ - Do not close the window immediately after the move. Instead highlight border with `MiniCompletionInfoBorderOutdated` immediately while update window when its content is ready. Close the window only if no candidate is selected.
478
+ - Show content of already visited/resolved candidate without delay.
479
+ - Show default `-No-info-` text if there is no extra information about the candidate.
480
+
481
+ - Update behavior and capabilities of `default_process_items()`:
482
+ - Add `filtersort` option to control how items are filtered and/or sorted. Its new default value has changed behavior: do fuzzy matching if 'completeopt' option contains "fuzzy" entry; same as before otherwise.
483
+ - Add `kind_priority` option to allow arranging items by completion item kind (like "Variable", "Snippet", "Text", etc.) after applying `filtersort`. This allows finer filter and/or sort based on kind, like "put Variable on top, Snippet on bottom, remove Text".
484
+ - Use `filterText` and `label` item fields during matching (instead of `textEdit.newText`, `insertText`, and `label` as before). This is more aligned with LSP specification.
485
+
486
+ ### Refine
487
+
488
+ - Prefer in some cases to use `nil` as default config value with explicit fallback. This should not have any user facing effects and marked as breaking only because a structure of a default config has changed. Affected fields:
489
+ - `lsp_completion.process_items` (use `default_process_items` as fallback) and `fallback_action` (use `'<C-n>'` as fallback). This makes it more aligned with other modules that usually avoid using function values in default config.
490
+ - `window.info.border` and `window.signature.border` (use non-empty 'winborder' and `'single'` as fallback).
491
+
492
+ - Change default value of `MiniCompletionActiveParameter` highlight group to link to `LspSignatureActiveParameter` (instead of forcing underline).
493
+
494
+ - Call `lsp_completion.process_items` with an array of items from all buffer servers at once (and not for each server separately). This can be used for more elaborate filter/sort strategies.
495
+
496
+ ### Expand
497
+
498
+ - Add scrolling in info and signature window. By default can be done with `<C-f>` / `<C-b>` when target window is shown. Can be configured via `mappings.scroll_down` and `mappings.scroll_up` config options.
499
+
500
+ - Respect `isIncomplete` in LSP completion response and immediately force new completion request on the next key press.
501
+
502
+ - Add support for context in 'textDocument/completion' request.
503
+
504
+ - Both info and signature help windows now use tree-sitter highlighting:
505
+ - Info window uses "markdown" parser (works best on Neovim>=0.10 as its parser is built-in). Special markdown characters are concealed (i.e. hidden) which might result into seemingly unnecessary whitespace as dimensions are computed not accounting for that.
506
+ - Signature help uses same parser as in current filetype.
507
+
508
+ - Update signature help without delay if it is already shown. This helps to keep signature help up to date after cursor jumps in Insert mode (like during snippet session).
509
+
510
+ - Add support for item defaults in `CompletionList` response.
511
+
512
+ - Add `get_lsp_capabilities()` that returns data about which part of LSP specification is supported in 'mini.completion'.
513
+
514
+ - Input items for `lsp_completion.process_items` now have `client_id` field with the identifier of the server that item came from. Use `vim.lsp.get_client_by_id()` to get an actual data about the server.
515
+
516
+ ## mini.diff
517
+
518
+ ### Expand
519
+
520
+ - The `config.source` can now be array of sources, which will be attempted to attach in order. Important for source's `attach` to either return `false` or call `MiniDiff.fail_attach()` (even not immediately) to signal that source has failed to attach to a particular buffer.
521
+
522
+ - Overlay virtual lines now scroll horizontally along with buffer lines. Requires Neovim>=0.11 and disabled 'wrap' option.
523
+
524
+ - Highlighting of buffer parts of change hunks can now be customized with these new highlight groups:
525
+ - `MiniDiffOverChangeBuf` - changed buffer text. Previously used `MiniDiffOverChange` (for changed reference text); links to it by default.
526
+ - `MiniDiffOverContextBuf` - context of a change shown in buffer overlay. Previously not highlighted, default highlight group is not created.
527
+
528
+ ## mini.doc
529
+
530
+ ### Expand
531
+
532
+ - FEATURE: improve detection and formatting for types in `@param`, `@return`, and similar.
533
+
534
+ ## mini.fuzzy
535
+
536
+ ### Refine
537
+
538
+ - Update `process_lsp_items()` to only use `filterText` and `label` item fields during fuzzy matching (instead of `textEdit.newText`, `insertText`, and `label` as before). This is more aligned with LSP specification.
539
+
540
+ - Treat empty `word` as matching any candidate (matched positions is empty array and score is -1). This behavior is usually more useful in practice.
541
+
542
+ ## mini.hues
543
+
544
+ ### Evolve
545
+
546
+ ### Refine
547
+
548
+ - Update 'mini.pick' highlight groups to show prompt text with same colors as match ranges, as they are connected.
549
+
550
+ ### Expand
551
+
552
+ - Add support for colored markdown headings.
553
+
554
+ - Add new plugin integrations:
555
+ - 'ibhagwan/fzf-lua'
556
+ - 'MeanderingProgrammer/render-markdown.nvim'
557
+ - 'OXY2DEV/helpview.nvim'
558
+ - 'OXY2DEV/markview.nvim'
559
+
560
+
561
+ ## mini.keymap
562
+
563
+ ### Expand
564
+
565
+ - Introduction of a new module.
566
+
567
+ ## mini.notify
568
+
569
+ ### Expand
570
+
571
+ - Add `lsp_progress.level` option to control level of LSP progress notifications.
572
+
573
+ - Add `MiniNotifyLspProgress` highlight group to be used for LSP progress notifications.
574
+
575
+ - Add `data` field to notification specification and as a new argument to `MiniNotify.add()`. It can be used to store any data relevant to the notification. For example, notifications from `make_notify()` output set `source` field to `'vim.notify'`, while notifications from LSP progress set `source` to `'lsp_progress'`.
576
+
577
+ ## mini.operators
578
+
579
+ ### Expand
580
+
581
+ - Update `setup()` to remap built-in `gx` Normal/Visual mode mappings (for opening an URI under cursor) to `gX` (if that is not already taken).
582
+
583
+ ## mini.pairs
584
+
585
+ ### Expand
586
+
587
+ - Update all actions to work with pairs containing multibyte characters (like "¿?", "「」", and similar).
588
+
589
+ ## mini.pick
590
+
591
+ ### Refine
592
+
593
+ - Rename `prompt_cursor` in `config.window` to `prompt_caret` for better naming consistency. It works for now, but will stop in the next release. Sorry for the inconvenience.
594
+
595
+ ### Expand
596
+
597
+ - Add `MiniPickPromptCaret` and `MiniPickPromptPrefix` highlight groups to allow finer customization of picker's prompt.
598
+
599
+ - Update `get_picker_matches()` to return data (items and indexes) about currently shown items.
600
+
601
+ - Update `set_picker_match_inds()` to be able to set current match and marked items indexes.
602
+
603
+ ## mini.snippets
604
+
605
+ ### Expand
606
+
607
+ - Add `start_lsp_server()` to start specialized in-process LSP server to show loaded snippets inside (auto)completion engines (like 'mini.completion').
608
+
609
+ ## mini.statusline
610
+
611
+ ### Refine
612
+
613
+ - Function `section_fileinfo()` got several updates:
614
+ - File size is now computed based on the current buffer text and not for file's saved version.
615
+ - File info is now shown even for buffers with empty 'filetype'. It previously was treated as a sign of a "temporary buffer", but it might be a result of an unsuccessful filetype matching.
616
+
617
+ ## mini.surround
618
+
619
+ ### Expand
620
+
621
+ - Surrounding identifier can now be any single character supported by `:h getcharstr()`. This also makes it possible to use characters outside of Latin alphanumeric and punctuation sets as `custom_surroundings` keys.
622
+
623
+ - Update `gen_spec.input.treesitter()` to respect capture ranges specified by query directives (like `(#offset! @table.inner 0 1 0 -1)`).
624
+
625
+ ## mini.tabline
626
+
627
+ ### Expand
628
+
629
+ - Add support for showing special (truncation) characters at left and/or right if there are more tabs to the left and/or right. They are shown with the new `MiniTablineTrunc` highlight group in case 'list' option is enabled (i.e. user deliberately enabled similar functionality for windows). Exact characters are taken from 'listchars' option: `precedes` and `extends` fields.
630
+
631
+ - Labels for quickfix and location lists are now different.
632
+
633
+
634
+ # Version 0.15.0 (2025-01-30)
635
+
636
+ ## mini.align
637
+
638
+ ### Expand
639
+
640
+ - Add built-in modifier for "|" character with aligning Markdown-like tables in mind.
641
+
642
+ ## mini.animate
643
+
644
+ ### Evolve
645
+
646
+ - 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`.
647
+
648
+ ## mini.files
649
+
650
+ ### Expand
651
+
652
+ - 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).
653
+
654
+ - 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.
655
+
656
+ ## mini.git
657
+
658
+ ### Expand
659
+
660
+ - 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'.
661
+
662
+ ## mini.hipatterns
663
+
664
+ ### Refine
665
+
666
+ - 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.
667
+
668
+ ## mini.hues
669
+
670
+ ### Expand
671
+
672
+ - Add `'lowmedium'` and `'mediumhigh'` saturation levels.
673
+
674
+ ## mini.icons
675
+
676
+ ### Expand
677
+
678
+ - Add distinctive glyphs and highlighting for special Neovim directories (from `:h 'runtimepath'`).
679
+
680
+ ## mini.indentscope
681
+
682
+ ### Evolve
683
+
684
+ - Add `options.n_lines` option to limit the scope computation (for better performance). It's default value is 10000 while previous behavior behavior had no restriction (as with `n_lines = math.huge`) which should matter only in very big scopes.
685
+
686
+ - Add `draw.predicate` configuration to customize whether the scope should be autodrawn. It's 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.
687
+
688
+ ## mini.notify
689
+
690
+ - FEATURE: `setup()` now also can be used to clean history (for example, like `MiniNotify.setup(MiniNotify.config)`).
691
+
692
+ ## mini.pick
693
+
694
+ ### Evolve
695
+
696
+ - 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:
697
+ - 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).
698
+
699
+ ### Expand
700
+
701
+ - 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.
702
+
703
+ - Update `help` picker to have `default_split` local option which customizes split direction of `choose` action (`<CR>` by default).
704
+
705
+ - Update `ui_select()` to allow fourth argument `start_opts` to customize `MiniPick.start()` call.
706
+
707
+ - Add `MiniPickMatch` event triggered after updating query matches or setting items. Can be used, for example, to adjust window height based on current matches.
708
+
709
+ ## mini.snippets
710
+
711
+ ### Expand
712
+
713
+ - Introduction of a new module.
714
+
715
+ ## mini.surround
716
+
717
+ ### Refine
718
+
719
+ - 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.
720
+
721
+ ## mini.test
722
+
723
+ ### Evolve
724
+
725
+ - 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`.
726
+
727
+ ### Expand
728
+
729
+ - Add `n_retry` test set property. When set, each case will be tried that at most that many times until first success (if any).
730
+
731
+ - 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.
732
+
733
+ - Function `finally()` now can be called several times inside a single function with callbacks executed in order of how they were registered.
734
+
735
+ - Update `expect.reference_screenshot()` to allow `directory` option pointing to a directory where automatically constructed reference path is located.
736
+
737
+
738
+ # Version 0.14.0 (2024-09-26)
739
+
740
+ ## All
741
+
742
+ ### Evolve
743
+
744
+ - 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:
745
+ - It is default in Neovim>=0.10.
746
+ - Tree-sitter parser is built-in in Neovim 0.9.x, needs manual enabling via `vim.treesitter.start()`.
747
+ - 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.
748
+
749
+ - Universally prefer 'mini.icons' module over 'nvim-tree/nvim-web-devicons'.
750
+
751
+ ### Refine
752
+
753
+ - Stop official support of Neovim 0.7.
754
+
755
+ ### Expand
756
+
757
+ - Start automated testing on Windows and MacOS.
758
+
759
+ - Universally ensure that all plugin's highlight groups are defined after any color scheme takes effect.
760
+
761
+ ## mini.base16
762
+
763
+ ### Expand
764
+
765
+ - Add 'kevinhwang91/nvim-bqf' plugin integration.
766
+
767
+ ## mini.completion
768
+
769
+ ### Expand
770
+
771
+ - 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.
772
+
773
+ ## mini.doc
774
+
775
+ ### Evolve
776
+
777
+ - 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.
778
+
779
+ ## mini.extra
780
+
781
+ ### Refine
782
+
783
+ - Use "│" as line/position separator instead of ":". This aligns with changes in 'mini.pick' and makes line/position more easily visible.
784
+
785
+ ### Expand
786
+
787
+ - Update `oldfiles` picker to have `current_dir` option which if `true` shows files only from picker's working directory. By @abeldekat, PR #997.
788
+
789
+ - Update `git_hunks`, `list`, and `lsp` pickers to 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.
790
+
791
+ - 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).
792
+
793
+ - Update `buf_lines` picker to pad line numbers to achieve more aligned look.
794
+
795
+ ## mini.git
796
+
797
+ ### Expand
798
+
799
+ - Update `show_at_cursor()` to include commit's statistics when showing commit.
800
+
801
+ - Update `show_at_cursor()` to show relevant at cursor commit data inside 'mini.deps' confirmation buffer.
802
+
803
+ ## mini.hipatterns
804
+
805
+ ### Evolve
806
+
807
+ - 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.
808
+
809
+ ## mini.hues
810
+
811
+ ### Expand
812
+
813
+ - Implement `apply_palette()` (to compliment `make_palette()`) providing a way to tweak applied palette before applying it.
814
+
815
+ - Add 'kevinhwang91/nvim-bqf' plugin integration.
816
+
817
+ ## mini.files
818
+
819
+ ### Evolve
820
+
821
+ ### Refine
822
+
823
+ - Update how confirmation lines are computed:
824
+ - 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.
825
+ - For delete show its type after the file name ("permanently" or "to trash") as an additional visual indication of delete type.
826
+ - For create, copy and move prefer showing its "to" path relative to group directory.
827
+ - Separate action name and paths with "│" (instead of ":") for better visual separation.
828
+ - 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.
829
+
830
+ - Soft deprecate `get_target_window()` in favor of `get_explorer_state().target_window`. Will be completely removed after the next release.
831
+
832
+ ### Expand
833
+
834
+ - Prefer using 'mini.icons' as icon provider.
835
+
836
+ - Implement bookmarks. With default config:
837
+ - Type `m` followed by a single character `<char>` to set directory path of focused window as a bookmark with id `<char>`.
838
+ - Type `'` followed by a bookmark id to make bookmark's path focused in explorer.
839
+ - Use `MiniFiles.set_bookmark()` inside `MiniFilesExplorerOpen` event to set custom bookmarks.
840
+
841
+ - Make data for `MiniFilesActionDelete` contain `to` field in case of not permanent delete.
842
+
843
+ - 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.
844
+
845
+ - Add `get_explorer_state()` to allow more reliable user customizations.
846
+
847
+ - Add `set_branch()` to allow to set what paths should be displayed and focused.
848
+
849
+ ## mini.icons
850
+
851
+ ### Expand
852
+
853
+ - Introduction of a new module.
854
+
855
+ ## mini.misc
856
+
857
+ ### Expand
858
+
859
+ - Implement `setup_termbg_sync()` to set up terminal background synchronization (removes possible "frame" around current Neovim instance). Works only on Neovim>=0.10.
860
+
861
+ ## mini.pick
862
+
863
+ ### Evolve
864
+
865
+ ### Refine
866
+
867
+ - 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.
868
+
869
+ - Encoding line or position in string items has changed:
870
+ - 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.
871
+ - 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.
872
+
873
+ ### Expand
874
+
875
+ - Prefer using 'mini.icons' as icon provider.
876
+
877
+ - Add `preserve_order` option to `default_match()` to allow asynchronous matching which preserves order (i.e. doesn't do sort step of fuzzy matching).
878
+
879
+ - Explicitly hide cursor when picker is active (instead of putting it in command line).
880
+
881
+ ## mini.starter
882
+
883
+ ### Refine
884
+
885
+ - Change filetype of Starter buffer from 'starter' to 'ministarter'. This is a more robust value and more aligned with other modules.
886
+
887
+ ## mini.statusline
888
+
889
+ ### Refine
890
+
891
+ - 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.
892
+
893
+ - The default `set_vim_settings` config value now does not affect `laststatus = 3` (aka global statusline).
894
+
895
+ ### Expand
896
+
897
+ - Prefer using 'mini.icons' as icon provider for `section_fileinfo()`.
898
+
899
+ ## mini.surround
900
+
901
+ ### Refine
902
+
903
+ - Adding surrounding in linewise mode now also ignores trailing whitespace on the last line (same as it ignores indent on the first line).
904
+
905
+ ## mini.tabline
906
+
907
+ ### Expand
908
+
909
+ - Prefer using 'mini.icons' as icon provider.
910
+
911
+ ## mini.test
912
+
913
+ ### Expand
914
+
915
+ - Make it work on Windows. By @cameronr, PR #1101.
916
+
917
+
918
+ # Version 0.13.0 (2024-06-13)
919
+
920
+ ## mini.comment
921
+
922
+ ### Refine
923
+
924
+ - 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.
925
+
926
+ - Whitespace in comment parts is now treated more explicitly. In particular:
927
+ - 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.
928
+
929
+ Example: any `/*%s*/`, ` /* %s */ `, or `/* %s */` is equivalent to having `/* %s */`.
930
+
931
+ - 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.
932
+
933
+ Example of toggling comment on single line with `/* %s */` 'commentstring' value:
934
+ - `/* this is commented */` -> `this is commented`.
935
+ - `/*this is also commented */` -> `this is also commented ` (notice trailing space).
936
+
937
+ - Commenting blank lines is done with trimmed comments parts, while uncommenting explicitly results into empty lines.
938
+
939
+ ### Expand
940
+
941
+ - Support dot-repeat after initial commenting is done for visual selection; repeating is done for same relative range.
942
+
943
+ ## mini.deps
944
+
945
+ ### Expand
946
+
947
+ - Add `MiniDepsMsgBreaking` highlight group for messages indicating a breaking change in a conventional commit style.
948
+
949
+ ## mini.diff
950
+
951
+ ### Expand
952
+
953
+ - Introduction of a new module.
954
+
955
+ ## mini.files
956
+
957
+ ### Expand
958
+
959
+ - Add new `MiniFilesExplorerOpen` and `MiniFilesExplorerClose` events.
960
+
961
+ ## mini.git
962
+
963
+ ### Expand
964
+
965
+ - Introduction of a new module.
966
+
967
+ ## mini.hues
968
+
969
+ ### Refine
970
+
971
+ - Update some highlight groups for better usability:
972
+ - `DiffChange` and `DiffText` - make changed diff lines have colored background.
973
+ - `Folded` - make folds differ from `CursorLine`.
974
+ - `QuickFixLine` - make current quickfix item differ from `CursorLine`.
975
+
976
+ ## mini.map
977
+
978
+ ### Expand
979
+
980
+ - Add `gen_integration.diff()` which highlights general diff hunks from 'mini.diff'.
981
+
982
+ ## mini.pick
983
+
984
+ ### Evolve
985
+
986
+ ### Refine
987
+
988
+ - 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 ":".
989
+
990
+ - Update `builtin.files()` to use table items when string item might be ambiguous.
991
+
992
+ ### Expand
993
+
994
+ - Respect general URI format for paths inside table items.
995
+
996
+ ## mini.starter
997
+
998
+ ### Refine
999
+
1000
+ - Explicitly block all events in `open()` during startup for a better performance.
1001
+
1002
+ ## mini.statusline
1003
+
1004
+ ### Evolve
1005
+
1006
+ - Update `section_git()` to prefer using data from 'mini.git' with fallback on pure HEAD data from 'lewis6991/gistigns.nvim'.
1007
+
1008
+ - Update default active content:
1009
+ - Add `section_diff()` (shows diff data near  icon) following refactor of `section_git()`.
1010
+ - Add `section_lsp()` (shows number of attached LSP servers near 󰰎 icon) following refactor of `section_diagnostics()`.
1011
+
1012
+ ### Refine
1013
+
1014
+ - Update `section_diagnostics()` to depend only on defined diagnostic. This means:
1015
+ - 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.
1016
+ - Fallback icon is "Diag" instead of "LSP".
1017
+
1018
+ ### Expand
1019
+
1020
+ - Update `section_diagnostics()` to support `signs` table option to customize signs for severity levels.
1021
+
1022
+ - Add `section_diff()` to show data from 'mini.diff' with fallback on diff data from 'lewis6991/gistigns.nvim'.
1023
+
1024
+ - Add `section_lsp()` to show indicator of LSP servers attached to the buffer.
1025
+
1026
+ ## mini.tabline
1027
+
1028
+ ### Expand
1029
+
1030
+ - Implement `config.format` for custom label formatting.
1031
+
1032
+ ## mini.test
1033
+
1034
+ ### Refine
1035
+
1036
+ - 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.
1037
+
1038
+
1039
+ # Version 0.12.0 (2024-02-29)
1040
+
1041
+ ## mini.basics
1042
+
1043
+ ### Refine
1044
+
1045
+ - Remove `<C-z>` mapping, as it is more useful in most terminal emulators for suspending Neovim process (to later resume with `fg` command). To correct latest misspelled word, use mappings like this:
1046
+
1047
+ ```lua
1048
+ vim.keymap.set('n', '<C-z>', '[s1z=', { desc = 'Correct latest misspelled word' })
1049
+ vim.keymap.set('i', '<C-z>', '<C-g>u<Esc>[s1z=`]a<C-g>u', { desc = 'Correct latest misspelled word' })
1050
+ ```
1051
+
1052
+ ### Expand
1053
+
1054
+ - Add `tab:> ` to 'listchars' option when `options.extra_ui` is set. This prevents showing `^I` instead of a tab and actual value comes from Neovim's default.
1055
+
1056
+ - Set `termguicolors` only on Neovim<0.10, as later versions should have it on by default (if terminal emulator supports it).
1057
+
1058
+ ## mini.comment
1059
+
1060
+ ### Expand
1061
+
1062
+ - Hooks are now called with data about commenting action.
1063
+
1064
+ ## mini.deps
1065
+
1066
+ ### Expand
1067
+
1068
+ - Introduction of a new module.
1069
+
1070
+ ## mini.doc
1071
+
1072
+ ### Refine
1073
+
1074
+ - Stop using `:echo` to display messages and warnings in favor of `vim.notify()`.
1075
+
1076
+ - Update default `write_post` hook to not display current time in success message.
1077
+
1078
+ - Update to include space before `~` in generated section headings.
1079
+
1080
+ ## mini.files
1081
+
1082
+ ### Expand
1083
+
1084
+ - Update `go_in()` to have `close_on_file` option.
1085
+
1086
+ - Show warning if action is set to override existing path.
1087
+
1088
+ ## mini.hues
1089
+
1090
+ ### Refine
1091
+
1092
+ - Update verbatim text (`@text.literal` and `@markup.raw`) color to be distinctive instead of dimmed.
1093
+
1094
+ ### Expand
1095
+
1096
+ - Add support for new standard tree-sitter captures on Neovim>=0.10 (see https://github.com/neovim/neovim/pull/27067).
1097
+
1098
+ ## mini.misc
1099
+
1100
+ ### Refine
1101
+
1102
+ - Update `bench_time()` to use `vim.loop.hrtime()` (as better designed for benchmarking) instead of `vim.loop.gettimeofday()`.
1103
+
1104
+ ## mini.notify
1105
+
1106
+ ### Expand
1107
+
1108
+ - Introduction of a new module.
1109
+
1110
+ ## mini.pick
1111
+
1112
+ ### Expand
1113
+
1114
+ - Implement `window.prompt_cursor` and `window.prompt_prefix` config options.
1115
+
1116
+ - Update `builtin.help()` to use tree-sitter highlighting (if there is any).
1117
+
1118
+ ## mini.sessions
1119
+
1120
+ ### Refine
1121
+
1122
+ - Update `read()` to first `write()` current session (if there is any).
1123
+
1124
+ ## mini.starter
1125
+
1126
+ ### Expand
1127
+
1128
+ - Add `sections.pick()` with 'mini.pick' pickers.
1129
+
1130
+ ## mini.statusline
1131
+
1132
+ ### Evolve
1133
+
1134
+ - Add `search_count` section to default active content.
1135
+
1136
+ ## mini.visits
1137
+
1138
+ ### Expand
1139
+
1140
+ - Introduction of a new module.
1141
+
1142
+
1143
+ # Version 0.11.0 (2023-11-17)
1144
+
1145
+ ## mini.base16
1146
+
1147
+ ### Refine
1148
+
1149
+ - Stop supporting deprecated 'HiPhish/nvim-ts-rainbow2'.
1150
+
1151
+ ## mini.bufremove
1152
+
1153
+ ### Evolve
1154
+
1155
+ - Applying `delete()` and `wipeout()` without `force` in a modified buffer now asks for confirmation instead of declining and showing message.
1156
+
1157
+ ## mini.clue
1158
+
1159
+ ### Expand
1160
+
1161
+ - Value of `config.window.config` now can be callable returning window config.
1162
+
1163
+ ## mini.comment
1164
+
1165
+ ### Expand
1166
+
1167
+ - Implement `config.mappings.comment_visual` to configure mapped keys in Visual mode.
1168
+
1169
+ ## mini.completion
1170
+
1171
+ ### Evolve
1172
+
1173
+ - Start adding `C` flag to `shortmess` option on Neovim>=0.9. By @yamin-shihab, PR #554.
1174
+
1175
+ ## mini.extra
1176
+
1177
+ ### Expand
1178
+
1179
+ - Introduction of a new module.
1180
+
1181
+ ## mini.files
1182
+
1183
+ ### Refine
1184
+
1185
+ - Opening file which is present in unlisted buffer now makes the buffer listed.
1186
+
1187
+ - Highlight in preview now is not enabled if file is sufficiently large.
1188
+
1189
+ ### Expand
1190
+
1191
+ - Explorer now tracks if focus is lost and properly closes on detection.
1192
+
1193
+ - Implement `MiniFilesCursorLine` highlight group.
1194
+
1195
+ ## mini.hipatterns
1196
+
1197
+ ### Refine
1198
+
1199
+ - Field `priority` in highlighter definitions is soft deprecated in favor of `extmark_opts = { priority = <value> }`.
1200
+
1201
+ ### Expand
1202
+
1203
+ - Allow `pattern` in highlighter definitions to be an array to highlight several patterns under the same highlighter name.
1204
+
1205
+ - Implement `extmark_opts` in highlighter definitions for a more control over extmarks placed at matches.
1206
+
1207
+ - Update `compute_hex_color_group()` to allow `style = 'fg'`.
1208
+
1209
+ - Update `gen_highlighter.hex_color()` to allow `style = 'inline'` (requires Neovim>=0.10 with support of inline extmarks).
1210
+
1211
+ - Implement `get_matches()` to get buffer matches.
1212
+
1213
+ ## mini.hues
1214
+
1215
+ ### Refine
1216
+
1217
+ - Stop supporting deprecated 'HiPhish/nvim-ts-rainbow2'.
1218
+
1219
+ ## mini.map
1220
+
1221
+ ### Expand
1222
+
1223
+ - Implement `config.window.zindex` to configure z-index of map window.
1224
+
1225
+ ## mini.misc
1226
+
1227
+ ### Expand
1228
+
1229
+ - Update `setup_auto_root()` and `find_root()` to now have `fallback` argument to be applied when no root is found with `vim.fn.find()`.
1230
+
1231
+ ## mini.pick
1232
+
1233
+ ### Expand
1234
+
1235
+ - Introduction of a new module.
1236
+
1237
+ ## mini.starter
1238
+
1239
+ ### Expand
1240
+
1241
+ - Value of `show_path` in `sections.recent_files()` can now be callable for more control on how full path is displayed.
1242
+
1243
+ ## mini.test
1244
+
1245
+ ### Evolve
1246
+
1247
+ - Update `child.get_screenshot()` to now by default call `:redraw` prior to computing screenshot. Can be disabled by new `opts.redraw` argument.
1248
+
1249
+ ### Refine
1250
+
1251
+ - Error in any "pre" hook now leads to test case not being executed (with note).
1252
+
1253
+ ### Expand
1254
+
1255
+ - New method `child.lua_func()` can execute simple functions inside child process and return the result (stasjok, #437).
1256
+
1257
+ - Update `expect.reference_screenshot()` to now have `ignore_lines` option allowing to ignore specified lines during screenshot compare.
1258
+
1259
+
1260
+ # Version 0.10.0 (2023-09-05)
1261
+
1262
+ ## mini.ai
1263
+
1264
+ ### Expand
1265
+
1266
+ - Allow `vis_mode` field in custom texobject region to force Visual mode with which textobject is selected.
1267
+
1268
+ ## mini.animate
1269
+
1270
+ ### Expand
1271
+
1272
+ - Add `MiniAnimateNormalFloat` highlight group to tweak highlighting of `open` and `close` animations.
1273
+
1274
+ ## mini.base16
1275
+
1276
+ ### Expand
1277
+
1278
+ - Add 'HiPhish/rainbow-delimiters.nvim' integration.
1279
+
1280
+ ## mini.basics
1281
+
1282
+ ### Refine
1283
+
1284
+ - Remove `<C-w>` mapping in Terminal mode, as it is more useful inside terminal emulator itself.
1285
+
1286
+ ## mini.bracketed
1287
+
1288
+ ### Expand
1289
+
1290
+ - Add `add_to_jumplist` option to relevant targets (which move cursor and don't already add to jumplist).
1291
+
1292
+ ## mini.bufremove
1293
+
1294
+ ### Refine
1295
+
1296
+ - Create normal buffer instead of scratch when there is no reasonable target to focus (#394).
1297
+
1298
+ ## mini.clue
1299
+
1300
+ ### Expand
1301
+
1302
+ - Introduction of a new module.
1303
+
1304
+ ## mini.files
1305
+
1306
+ ### Expand
1307
+
1308
+ - Introduction of a new module.
1309
+
1310
+ ## mini.hues
1311
+
1312
+ ### Expand
1313
+
1314
+ - Add 'HiPhish/rainbow-delimiters.nvim' integration.
1315
+
1316
+ ## mini.jump2d
1317
+
1318
+ ### Expand
1319
+
1320
+ - Add `gen_union_spotter()` to allow combining separate spotters into one.
1321
+
1322
+ ## mini.operators
1323
+
1324
+ ### Expand
1325
+
1326
+ - Introduction of a new module.
1327
+
1328
+ ## mini.pairs
1329
+
1330
+ ### Expand
1331
+
1332
+ - Allow `false` in `config.mappings` to not map the key.
1333
+
1334
+ ## mini.surround
1335
+
1336
+ ### Expand
1337
+
1338
+ - Update `add` (`sa`) with ability to replicate left and right parts by respecting `[count]`. In Normal mode two kinds of `[count]` is respected: one for operator (replicates left and right parts) and one for textobject/motion. In Visual mode `[count]` replicates parts.
1339
+
1340
+
1341
+ # Version 0.9.0 (2023-06-08)
1342
+
1343
+ ## All
1344
+
1345
+ ### Evolve
1346
+
1347
+ - Use Lua API to create autocommands. Stop exporting functions only related to autocommands.
1348
+
1349
+ - Use `vim.keymap` to deal with mappings. Stop exporting functions only related to mappings.
1350
+
1351
+ ### Refine
1352
+
1353
+ - Stop official support of Neovim 0.6.
1354
+
1355
+ ### Expand
1356
+
1357
+ - Add 'randomhue' color scheme.
1358
+
1359
+ ## mini.base16
1360
+
1361
+ ### Evolve
1362
+
1363
+ - Stop supporting archived 'p00f/nvim-ts-rainbow' in favor of 'HiPhish/nvim-ts-rainbow2'.
1364
+
1365
+ ### Expand
1366
+
1367
+ - Add new integrations:
1368
+ - Lsp semantic tokens.
1369
+ - 'folke/lazy.nvim'.
1370
+ - 'folke/noice.nvim'.
1371
+ - 'kevinhwang91/nvim-ufo'.
1372
+
1373
+ ## mini.basics
1374
+
1375
+ ### Expand
1376
+
1377
+ - Add dot-repeat support for adding empty lines (`go` and `gO` mappings).
1378
+
1379
+ ## mini.colors
1380
+
1381
+ ### Expand
1382
+
1383
+ - Introduction of a new module.
1384
+
1385
+ ## mini.comment
1386
+
1387
+ ### Expand
1388
+
1389
+ - Use tree-sitter information about locally active language to infer 'commentstring' option value.
1390
+
1391
+ - Add `options.custom_commentstring` option for a more granular customization of comment structure.
1392
+
1393
+ - Add `get_commentstring()` function representing built-in logic of computing relevant 'commentstring'.
1394
+
1395
+ ## mini.hipatterns
1396
+
1397
+ ### Expand
1398
+
1399
+ - Introduction of a new module.
1400
+
1401
+ ## mini.hues
1402
+
1403
+ ### Expand
1404
+
1405
+ - Introduction of a new module.
1406
+
1407
+
1408
+ # Version 0.8.0 (2023-04-02)
1409
+
1410
+ ## All
1411
+
1412
+ ### Expand
1413
+
1414
+ - Add and implement design principle for silencing module by setting `config.silent = true`. It is now present in modules capable of showing non-error feedback:
1415
+ - mini.ai
1416
+ - mini.align
1417
+ - mini.basics
1418
+ - mini.bufremove
1419
+ - mini.doc
1420
+ - mini.jump
1421
+ - mini.jump2d
1422
+ - mini.starter
1423
+ - mini.surround
1424
+ - mini.test
1425
+
1426
+ ## mini.bracketed
1427
+
1428
+ ### Expand
1429
+
1430
+ - Introduction of a new module.
1431
+
1432
+ ## mini.comment
1433
+
1434
+ ### Expand
1435
+
1436
+ - Add `options.start_of_line` option which controls whether to recognize as comment only lines without indent.
1437
+
1438
+ - Add `options.ignore_blank_line` option which controls whether to ignore blank lines.
1439
+
1440
+ - Add `options.pad_comment_parts` option which controls whether to ensure single space pad for comment leaders.
1441
+
1442
+ ## mini.doc
1443
+
1444
+ ### Expand
1445
+
1446
+ - Add `config.hooks.write_pre` hook to be executed before writing to a file.
1447
+
1448
+ ## mini.indentscope
1449
+
1450
+ ### Expand
1451
+
1452
+ - Add `MiniIndentscopeSymbolOff` highlight group to be used if scope's indent is not multiple of 'shiftwidth'.
1453
+
1454
+ - Add `draw.priority` option to control priority of scope line draw.
1455
+
1456
+ ## mini.jump2d
1457
+
1458
+ ### Expand
1459
+
1460
+ - Add `view.n_steps_ahead` option which controls how many steps ahead to show. Appearance is controlled by new `MiniJump2dSpotAhead` highlight group.
1461
+
1462
+ - Add `view.dim` option which controls whether to dim lines with at least one jump spot. Appearance is controlled by new `MiniJump2dDim` highlight group.
1463
+
1464
+ - Add `MiniJump2dSpotUnique` highlight group to be used for spots with unique label for next step.
1465
+
1466
+ ## mini.pairs
1467
+
1468
+ ### Expand
1469
+
1470
+ - Both `MiniPairs.br()` and `MiniPairs.cr()` can now take a key which will be used instead of default `<BS>` and `<CR>`.
1471
+
1472
+ ## mini.sessions
1473
+
1474
+ ### Expand
1475
+
1476
+ - Update `setup()` to now create global directory at path `config.directory` if it doesn't exist.
1477
+
1478
+ - All actions now keep list of detected sessions up to date.
1479
+
1480
+ ## mini.splitjoin
1481
+
1482
+ ### Expand
1483
+
1484
+ - Introduction of a new module.
1485
+
1486
+ ## mini.surround
1487
+
1488
+ ### Expand
1489
+
1490
+ - Add `respect_selection_type` option which, when enabled, makes adding and deleting surrounding respect selection type:
1491
+ - Linewise adding places surrounding parts on separate lines while indenting surrounded lines once.
1492
+ - Deleting surrounding which looks like a result of linewise adding will act to revert it: delete lines with surrounding parts and dedent surrounded lines once.
1493
+ - Blockwise adding places surrounding parts on whole edges, not only start and end of selection.
1494
+
1495
+
1496
+ # Version 0.7.0 (2023-02-12)
1497
+
1498
+ ## All
1499
+
1500
+ ### Expand
1501
+
1502
+ - Start dual distribution. Every module is now distributed both as part of 'mini.nvim' library and as standalone plugin (in separate git repository).
1503
+
1504
+ ## mini.ai
1505
+
1506
+ ### Refine
1507
+
1508
+ - In `MiniAi.gen_spec.argument()` option `separators` (plural; array of characters) is soft deprecated in favor of `separator` (singular; Lua pattern) option.
1509
+
1510
+ ## mini.animate
1511
+
1512
+ ### Expand
1513
+
1514
+ - Introduction of a new module.
1515
+
1516
+ ## mini.basics
1517
+
1518
+ ### Expand
1519
+
1520
+ - Introduction of a new module.
1521
+
1522
+ ## mini.completion
1523
+
1524
+ ### Refine
1525
+
1526
+ - Rename `MiniCompletion.config.window_dimensions` to `MiniCompletion.config.window` to be able to handle more general configuration.
1527
+
1528
+ ### Expand
1529
+
1530
+ - Add `MiniCompletion.config.window.info.border` and `MiniCompletion.config.window.signature.border` which can be used to define border of info and signature floating windows respectively.
1531
+
1532
+ ## mini.indentscope
1533
+
1534
+ ### Refine
1535
+
1536
+ - Stop using (deprecate) `MiniIndentscopePrefix` highlight groups. It was initially introduced as a way to properly show scope indicator on empty lines. It had a drawback of overshadowing 'listchars' symbols (see #125) and vertical guides from 'lukas-reineke/indent-blankline.nvim'. As the other implementation approach was found by @mivort (see #161), `MiniIndentscopePrefix` is no longer needed and no overshadowing is done.
1537
+
1538
+ - Update `MiniIndentscope.gen_animation` to now be a table (for consistency with other `gen_*` functions in 'mini.nvim'). See "Migrate from function type" section of `:h MiniIndentscope.gen_animation`. Calling it as function will be available until next release.
1539
+
1540
+ ## mini.misc
1541
+
1542
+ ### Expand
1543
+
1544
+ - Add `MiniMisc.setup_auto_root()` and `MiniMisc.find_root()` for root finding functionality. NOTE: requires Neovim>=0.8.
1545
+
1546
+ - Add `MiniMisc.setup_restore_cursor()` for automatically restoring latest cursor position on file reopen. By @cryptomilk, PR #198.
1547
+
1548
+ ## mini.move
1549
+
1550
+ ### Expand
1551
+
1552
+ - Introduction of a new module.
1553
+
1554
+
1555
+ # Version 0.6.0 (2022-10-25)
1556
+
1557
+ ## All
1558
+
1559
+ ### Refine
1560
+
1561
+ - Stop official support of Neovim 0.5.
1562
+
1563
+ ### Expand
1564
+
1565
+ - Make all messages use colors and not cause hit-enter-prompt.
1566
+
1567
+ ## mini.align
1568
+
1569
+ ### Expand
1570
+
1571
+ - Introduction of a new module.
1572
+
1573
+ ## mini.base16
1574
+
1575
+ ### Refine
1576
+
1577
+ - Change some 'mini.nvim' highlights:
1578
+ - `MiniCompletionActiveParameter` now highlights with background instead of underline.
1579
+ - `MiniJump2dSpot` now explicitly defined to use plugin's palette.
1580
+ - `MiniStarterItemPrefix` and `MiniStarterQuery` are now bold for better visibility.
1581
+
1582
+ - Update highlight for changed git diff to be more visible and to comply more with general guidelines.
1583
+
1584
+ ### Expand
1585
+
1586
+ - Add support for many plugin integrations.
1587
+
1588
+ - Implement `MiniBase16.config.plugins` for configuring plugin integrations.
1589
+
1590
+ ## mini.jump
1591
+
1592
+ ### Refine
1593
+
1594
+ - Allow cursor to be positioned past the end of previous/current line (#113).
1595
+
1596
+ ## mini.map
1597
+
1598
+ ### Expand
1599
+
1600
+ - Introduction of a new module.
1601
+
1602
+ ## mini.starter
1603
+
1604
+ ### Refine
1605
+
1606
+ - Item evaluation is now prepended with query reset, as it is rarely needed any more (#105).
1607
+
1608
+ - All hooks are now called with `(content, buf_id)` signature allowing them properly use current window layout.
1609
+
1610
+ ## mini.surround
1611
+
1612
+ ### Evolve
1613
+
1614
+ - Update 'mini.surround' to share as much with 'mini.ai' as possible. This provides more integrated experience while enabling more useful features. Details:
1615
+ - Custom surrounding specification for input action has changed. Instead of `{ find = <string>, extract = <string> }` it is now `{ <function or composed pattern> }`. Previous format will work until the next release. See more in help file.
1616
+ - Algorithm for finding surrounding is now more powerful. It allows searching for more complex surroundings (via composed patterns or array of region pairs) and respects `v:count`.
1617
+ - Multiline input and output surroundings are now supported.
1618
+ - Opening brackets (`(`, `[`, `{`, `<`) now include whitespace in surrounding: input surrounding selects all inner edge whitespace, output surrounding is padded with single space.
1619
+ - Surrounding identifier `i` ("interactive") is soft deprecated in favor of `?` ("user prompt").
1620
+ - New surrounding aliases:
1621
+ - `b` for "brackets". Input - any of balanced `()`, `[]` `{}`. Output - `()`.
1622
+ - `q` for "quotes". Input - any of `"`, `'`, `` ` ``. Output - `""`.
1623
+ - Three new search methods `'prev'`, `'next'`, and `'nearest'` for finding non-covering previous and next surrounding.
1624
+
1625
+ - Implement "last"/"next" extended mappings which force `'prev'` or `'next'` search method. Controlled with `config.mappings.suffix_last` and `config.mappings.suffix_next`respectively. This also means that custom surroundings with identifier equal to "last"/"next" mappings suffixes (defaults to 'l' and 'n') will work only with long enough delay after typing action mapping.
1626
+
1627
+ ### Expand
1628
+
1629
+ - Implement `MiniSurround.gen_spec` with generators of common surrounding specifications (like `MiniSurround.gen_spec.input.treesitter` for tree-sitter based input surrounding).
1630
+
1631
+
1632
+ # Version 0.5.0 (2022-08-19)
1633
+
1634
+ ## All
1635
+
1636
+ ### Refine
1637
+
1638
+ - Update all tests to use new 'mini.test' module.
1639
+
1640
+ ### Expand
1641
+
1642
+ - Implement buffer local configuration. This is done with `vim.b.mini*_config` buffer variables.
1643
+
1644
+ - Add new `minicyan` color scheme.
1645
+
1646
+ ## mini.ai
1647
+
1648
+ - Introduction of a new module.
1649
+
1650
+ ## mini.comment
1651
+
1652
+ ### Expand
1653
+
1654
+ - Now hooks can be used to terminate further actions by returning `false` (#108).
1655
+
1656
+ ## mini.indentscope
1657
+
1658
+ ### Refine
1659
+
1660
+ - Soft deprecate `vim.b.miniindentscope_options` in favor of using `options` field of `miniindentscope_config`.
1661
+
1662
+ ## mini.sessions
1663
+
1664
+ ### Expand
1665
+
1666
+ - Hooks are now called with active session data as argument.
1667
+
1668
+ ## mini.starter
1669
+
1670
+ ### Evolve
1671
+
1672
+ ### Refine
1673
+
1674
+ - Deprecate `MiniStarter.content` in favor of `MiniStarter.get_content()`.
1675
+
1676
+ ### Expand
1677
+
1678
+ - Make it possible to open multiple Starter buffers at the same time (#82).
1679
+
1680
+ - All functions dealing with Starter buffer now have `buf_id` as argument.
1681
+
1682
+ ## mini.statusline
1683
+
1684
+ ### Expand
1685
+
1686
+ - Implement `config.use_icons` which controls whether to use icons by default.
1687
+
1688
+ ## mini.test
1689
+
1690
+ - Introduction of a new module.
1691
+
1692
+ ## mini.trailspace
1693
+
1694
+ ### Expand
1695
+
1696
+ - Implement `MiniTrailspace.trim_last_lines()`.
1697
+
1698
+
1699
+ # Version 0.4.0 (2022-05-26)
1700
+
1701
+ ## All
1702
+
1703
+ ### Expand
1704
+
1705
+ - Update all modules to supply mapping description for Neovim>=0.7.
1706
+
1707
+ - Cover all modules with extensive tests.
1708
+
1709
+ ## mini.comment
1710
+
1711
+ ### Expand
1712
+
1713
+ - Implement `config.hooks` with `pre` and `post` hooks (executed before and after successful commenting). Fixes #50, #59.
1714
+
1715
+ ## mini.completion
1716
+
1717
+ ### Expand
1718
+
1719
+ - Implement support for `additionalTextEdits` (issue #61).
1720
+
1721
+ ## mini.jump
1722
+
1723
+ ### Refine
1724
+
1725
+ - Soft deprecate `config.highlight_delay` in favor of `config.delay.highlight`.
1726
+
1727
+ ### Expand
1728
+
1729
+ - Implement idle timeout to stop jumping automatically (@annenpolka, #56).
1730
+
1731
+ - Implement `MiniJump.state`: table with useful model-related information.
1732
+
1733
+ - Update process of querying target symbol: show help message after delay, allow `<C-c>` to stop selecting target.
1734
+
1735
+ ## mini.jump2d
1736
+
1737
+ - Introduction of a new module.
1738
+
1739
+ ## mini.pairs
1740
+
1741
+ ### Refine
1742
+
1743
+ - Create mappings for `<BS>` and `<CR>` in certain mode only after some pair is registered in that mode.
1744
+
1745
+ ## mini.sessions
1746
+
1747
+ ### Refine
1748
+
1749
+ - All feedback about incorrect behavior is now an error instead of message notifications.
1750
+
1751
+ ### Expand
1752
+
1753
+ - Implement `MiniSessions.select()` to select session interactively and perform action on it.
1754
+
1755
+ - Implement `config.hooks` to execute hook functions before and after successful action.
1756
+
1757
+ ## mini.starter
1758
+
1759
+ ### Expand
1760
+
1761
+ - Allow `config.header` and `config.footer` be any value, which will be converted to string via `tostring()`.
1762
+
1763
+ - Update query logic to not allow queries which result into no items.
1764
+
1765
+ - Add `<C-n>` and `<C-p>` to default mappings.
1766
+
1767
+ ## mini.statusline
1768
+
1769
+ ### Refine
1770
+
1771
+ - Change default icon for `MiniStatusline.section_diagnostics()` from ﯭ to  due to former having issues in some terminal emulators.
1772
+
1773
+ ## mini.surround
1774
+
1775
+ ### Evolve
1776
+
1777
+ ### Refine
1778
+
1779
+ - Deprecate `config.funname_pattern` option in favor of manually modifying `f` surrounding.
1780
+
1781
+ - Always move cursor to the right of left surrounding in `add()`, `delete()`, and `replace()` (instead of moving only if it was on the same line as left surrounding).
1782
+
1783
+ ### Expand
1784
+
1785
+ - Implement `config.search_method`.
1786
+
1787
+ - Implement custom surroundings via `config.custom_surroundings`.
1788
+
1789
+ - Implement `MiniSurround.user_input()`.
1790
+
1791
+ - Update process of getting user input: allow `<C-c>` to cancel and make empty string a valid input.
1792
+
1793
+ ## mini.tabline
1794
+
1795
+ ### Refine
1796
+
1797
+ - Show listed buffers also in case of multiple tabpages (instead of using builtin behavior).
1798
+
1799
+ ### Expand
1800
+
1801
+ - Implement `config.tabpage_section`.
1802
+
1803
+ - Show quickfix/loclist buffers with special `*quickfix*` label.
1804
+
1805
+
1806
+ # Version 0.3.0 (2022-03-08)
1807
+
1808
+ ## All
1809
+
1810
+ ### Expand
1811
+
1812
+ - Update all modules to have annotations formatted for 'mini.doc'.
1813
+
1814
+ ## mini.cursorword
1815
+
1816
+ ### Expand
1817
+
1818
+ - Current word under cursor now can be highlighted differently.
1819
+
1820
+ ## mini.doc
1821
+
1822
+ ### Expand
1823
+
1824
+ - Introduction of a new module.
1825
+
1826
+ ## mini.indentscope
1827
+
1828
+ ### Expand
1829
+
1830
+ - Introduction of a new module.
1831
+
1832
+ ## mini.starter
1833
+
1834
+ ### Expand
1835
+
1836
+ - Implement `MiniStarter.set_query()` and make `<Esc>` mapping for resetting query.
1837
+
1838
+
1839
+ # Version 0.2.0 (2021-12-19)
1840
+
1841
+ ## mini.base16
1842
+
1843
+ ### Expand
1844
+
1845
+ - Use new `Diagnostic*` highlight groups in Neovim 0.6.0.
1846
+
1847
+ ## mini.comment
1848
+
1849
+ ### Expand
1850
+
1851
+ - Respect tab indentation (#20).
1852
+
1853
+ ## mini.jump
1854
+
1855
+ ### Expand
1856
+
1857
+ - Introduction of a new module.
1858
+
1859
+ ## mini.pairs
1860
+
1861
+ ### Expand
1862
+
1863
+ - Implement pair registration with custom mapping functions:
1864
+ - Implement `MiniPairs.map()`, `MiniPairs.map_buf()`, `MiniPairs.unmap()`, `MiniPairs.unmap_buf()` to (un)make mappings for pairs which automatically register them for `<BS>` and `<CR>`. Note, that this has a minor break of previous behavior: now `MiniPairs.bs()` and `MiniPairs.cr()` don't have any input argument. But default behavior didn't change.
1865
+ - Allow setting global pair mappings inside `config` of `MiniPairs.setup()`.
1866
+
1867
+ ## mini.sessions
1868
+
1869
+ ### Expand
1870
+
1871
+ - Introduction of a new module.
1872
+
1873
+ ## mini.starter
1874
+
1875
+ ### Expand
1876
+
1877
+ - Introduction of a new module.
1878
+
1879
+ ## mini.statusline
1880
+
1881
+ ### Expand
1882
+
1883
+ - Implement new section `MiniStatusline.section_searchcount()`.
1884
+
1885
+ - Update `section_diagnostics` to use `vim.diagnostic` in Neovim 0.6.0.
1886
+
1887
+
1888
+ # Version 0.1.0 (2021-10-31)
1889
+
1890
+ ## All
1891
+
1892
+ ### Expand
1893
+
1894
+ - Initial stable version.