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,717 @@
1
+ *mini.map* Window with buffer text overview
2
+
3
+ MIT License Copyright (c) 2022 Evgeni Chasnovski
4
+
5
+ ------------------------------------------------------------------------------
6
+ *MiniMap*
7
+ Features:
8
+ - Show and manage special floating window displaying automatically updated
9
+ overview of current buffer text. Window takes up whole height of Neovim
10
+ instance and is fixed to a left/right side. Map content is computed by
11
+ taking all current lines, converting it to binary whitespace/non-whitespace
12
+ mask, rescaling to appropriate dimensions, and converting back to strings
13
+ consisting from special encoding symbols. All this is done very fast and
14
+ asynchronously. See |MiniMap.open()|, |MiniMap.refresh()|, |MiniMap.close()|,
15
+ |MiniMap.toggle()|, |MiniMap.toggle_side()|.
16
+ For a general overview and tips, see |mini.map-usage|.
17
+
18
+ - Show scrollbar next to map content. It represents current line and view
19
+ (top and bottom visible lines). Can be the only thing shown, making map
20
+ window a "pure scrollbar". See "Pure scrollbar config" section in
21
+ |MiniMap.config|.
22
+
23
+ - Highlight map lines representing certain data in current buffer. This is
24
+ done via extensible set of callables, called integrations (see
25
+ "Integrations" section in |MiniMap.config|). There are pre-built generators
26
+ for common integrations:
27
+ - Builtin search (as result of |/| and similar).
28
+ - Builtin diagnostic (taken from |vim.diagnostic.get()|).
29
+ - General diff hunks provided by |mini.diff|.
30
+ - Hunks computed provided by `lewis6991/gitsigns.nvim`.
31
+ For more details see |MiniMap.gen_integration|.
32
+
33
+ - Focus on map window to quickly browse current (source) buffer. Moving inside
34
+ map window updates cursor position in source window enabling fast and
35
+ targeted buffer exploration. To focus back, hit `<CR>` to accept current
36
+ explored position or `<Esc>` to go back to original position. See
37
+ |MiniMap.toggle_focus()|.
38
+
39
+ - Customizable via |MiniMap.config| and/or `opts` argument of |MiniMap.open()|
40
+ or |MiniMap.refresh()|:
41
+ - Encoding symbols used to display binary information of different
42
+ resolution (default is 3x2). There are pre-built generators for
43
+ different basic character families and resolutions. See
44
+ |MiniMap.gen_encode_symbols|.
45
+ - Scrollbar symbols, separate for line and view. Can have any width
46
+ (even zero, which virtually disables scrollbar).
47
+ - Integrations producing map line highlights.
48
+ - Window options: side (left/right), width, |'winblend'|, and more.
49
+
50
+ What it doesn't do:
51
+ - Automatically refresh when typing in Insert mode. Although it can be done in
52
+ non-blocking way, it still might introduce considerable computation overhead
53
+ (especially in very large files).
54
+ - Has more flexible window configuration. In case a full height floating
55
+ window obstructs vision of underlying buffers, use |MiniMap.toggle()| or
56
+ |MiniMap.toggle_side()|. Works best with global statusline.
57
+ - Provide autoopen functionality. Due to vast differences in user preference
58
+ of when map window should be shown, set up of automatic opening is left to
59
+ user. A common approach would be to call `MiniMap.open()` on |VimEnter| event.
60
+ If you use |mini.starter|, you can modify `<CR>` buffer mapping: >lua
61
+
62
+ local set_map_keymap = function()
63
+ local rhs = function()
64
+ MiniStarter.eval_current_item()
65
+ MiniMap.open()
66
+ end
67
+ vim.keymap.set('n', '<CR>', rhs, { buffer = true })
68
+ end
69
+ local opts = { pattern = 'MiniStarterOpened', callback = set_map_keymap }
70
+ vim.api.nvim_create_autocmd('User', opts)
71
+ <
72
+ # Setup ~
73
+
74
+ This module needs a setup with `require('mini.map').setup({})` (replace
75
+ `{}` with your `config` table). It will create global Lua table `MiniMap`
76
+ which you can use for scripting or manually (with `:lua MiniMap.*`).
77
+
78
+ See |MiniMap.config| for available config settings.
79
+
80
+ You can override runtime config settings (like `config.modifiers`) locally
81
+ to buffer inside `vim.b.minimap_config` which should have same structure
82
+ as `MiniMap.config`. See |mini.nvim-buffer-local-config| for more details.
83
+
84
+ # Dependencies ~
85
+
86
+ Suggested dependencies (provide extra functionality for integrations):
87
+ - Enabled |mini.diff| module for general diff highlighting via
88
+ |MiniMap.gen_integration.diff()|. If missing, no highlighting is added.
89
+ - Plugin [lewis6991/gitsigns.nvim](https://github.com/lewis6991/gitsigns.nvim)
90
+ for Git status highlighting via |MiniMap.gen_integration.gitsigns()|.
91
+ If missing, no highlighting is added.
92
+
93
+ # Comparisons ~
94
+
95
+ - [wfxr/minimap.vim](https://github.com/wfxr/minimap.vim):
96
+ - |mini.map| doesn't have dependencies while being as fast as written
97
+ in Rust dependency of `minimap.vim`.
98
+ - |mini.map| uses floating window, while `minimap.vim` uses regular one.
99
+ - |mini.map| provides slightly different visual interface with
100
+ scrollbar and integration counts.
101
+ - |mini.map| allows encode symbols customization, `minimap.vim` does not.
102
+ - |mini.map| allows extending highlight integrations, while only
103
+ builtin search and git status are supported in `minimap.vim`.
104
+ - |mini.map| updates in asynchronous (non-blocking) fashion, `minimap.vim`
105
+ does not.
106
+ - |mini.map| can be used as a pure scrollbar, `minimap.vim` can not.
107
+ - [dstein64/nvim-scrollview](https://github.com/dstein64/nvim-scrollview):
108
+ - |mini.map| has two-part scrollbar showing current line and view (with
109
+ variable height), while `nvim-scrollview` shows only current view
110
+ (with fixed height).
111
+ - `nvim-scrollview` respects folds, i.e. shows view of visible lines,
112
+ while |mini.map| by design always shows view based on actual lines.
113
+ - `nvim-scrollview` creates scrollbar which can be dragged with mouse,
114
+ while |mini.nvim| does not, by design (use |MiniMap.toggle_focus()|).
115
+ - |mini.map| can show buffer outline, while `nvim-scrollview` can not.
116
+ - |mini.map| can show highlight integrations, while `nvim-scrollview`
117
+ can not.
118
+ - [petertriho/nvim-scrollbar](https://github.com/petertriho/nvim-scrollbar):
119
+ - |mini.map| has two-part scrollbar showing current line and view (with
120
+ variable height), while `nvim-scrollbar` shows only current view.
121
+ - |mini.map| can show buffer outline, while `nvim-scrollbar` can not.
122
+ - |mini.map| has fully extendable highlight integrations, while
123
+ `nvim-scrollbar` only supports diagnostic and search (with dependency).
124
+ - [lewis6991/satellite.nvim](https://github.com/lewis6991/satellite.nvim):
125
+ - Almost the same differences as with `dstein64/nvim-scrollview`, except
126
+ `satellite.nvim` can display some set of integration highlights.
127
+
128
+ # Highlight groups ~
129
+ *MiniMap-hl-groups*
130
+
131
+ - `MiniMapNormal` - basic highlight of whole window.
132
+ - `MiniMapSymbolCount` - counts of per-line integration items.
133
+ - `MiniMapSymbolLine` - scrollbar part representing current line.
134
+ - `MiniMapSymbolView` - scrollbar part representing current view.
135
+
136
+ To change any highlight group, set it directly with |nvim_set_hl()|.
137
+
138
+ # Disabling ~
139
+
140
+ To disable, set `vim.g.minimap_disable` (globally) or `vim.b.minimap_disable`
141
+ (for a buffer) to `true`. Considering high number of different scenarios
142
+ and customization intentions, writing exact rules for disabling module's
143
+ functionality is left to user. See |mini.nvim-disabling-recipes| for common
144
+ recipes.
145
+
146
+ ------------------------------------------------------------------------------
147
+ *mini.map-usage*
148
+ # Mappings ~
149
+
150
+ This module doesn't make mappings, only provides functions for users to map
151
+ manually. Here is how one |<Leader>| set of mappings can be constructed: >lua
152
+
153
+ vim.keymap.set('n', '<Leader>mc', MiniMap.close)
154
+ vim.keymap.set('n', '<Leader>mf', MiniMap.toggle_focus)
155
+ vim.keymap.set('n', '<Leader>mo', MiniMap.open)
156
+ vim.keymap.set('n', '<Leader>mr', MiniMap.refresh)
157
+ vim.keymap.set('n', '<Leader>ms', MiniMap.toggle_side)
158
+ vim.keymap.set('n', '<Leader>mt', MiniMap.toggle)
159
+ <
160
+ # How automatic refresh works ~
161
+
162
+ Automatic refresh is done by calling |MiniMap.refresh()| when appropriate
163
+ |events| occur. It is done with specially chosen `parts` argument value (to
164
+ avoid unnecessary computations). For example, when only cursor has moved
165
+ (|CursorMoved|), only scrollbar is updated; so no recomputation of integrations
166
+ or line encoding is done.
167
+
168
+ To avoid visual clutter, automatic refresh is done only in normal buffers
169
+ and help pages (i.e. with |'buftype'| being empty or "help")
170
+
171
+ When you think content is not up to date, try one of these:
172
+ - Call |MiniMap.refresh()| manually. Make mapping to make it easier.
173
+ - Save current buffer, for example with |:write|.
174
+ - Exit and enter Normal mode (if your Neovim version supports |ModeChanged|).
175
+
176
+ ------------------------------------------------------------------------------
177
+ *MiniMap.setup()*
178
+ `MiniMap.setup`({config})
179
+ Module setup
180
+
181
+ Parameters ~
182
+ {config} `(table|nil)` Module config table. See |MiniMap.config|.
183
+
184
+ Usage ~
185
+ >lua
186
+ require('mini.map').setup() -- use default config
187
+ -- OR
188
+ require('mini.map').setup({}) -- replace {} with your config table
189
+ <
190
+ ------------------------------------------------------------------------------
191
+ *MiniMap.config*
192
+ `MiniMap.config`
193
+ Defaults ~
194
+ >lua
195
+ MiniMap.config = {
196
+ -- Highlight integrations (none by default)
197
+ integrations = nil,
198
+
199
+ -- Symbols used to display data
200
+ symbols = {
201
+ -- Encode symbols. See `:h MiniMap.config` for specification and
202
+ -- `:h MiniMap.gen_encode_symbols` for pre-built ones.
203
+ -- Default: solid blocks with 3x2 resolution.
204
+ encode = nil,
205
+
206
+ -- Scrollbar parts for view and line. Use empty string to disable any.
207
+ scroll_line = '█',
208
+ scroll_view = '┃',
209
+ },
210
+
211
+ -- Window options
212
+ window = {
213
+ -- Whether window is focusable in normal way (with `wincmd` or mouse)
214
+ focusable = false,
215
+
216
+ -- Side to stick ('left' or 'right')
217
+ side = 'right',
218
+
219
+ -- Whether to show count of multiple integration highlights
220
+ show_integration_count = true,
221
+
222
+ -- Total width
223
+ width = 10,
224
+
225
+ -- Value of 'winblend' option
226
+ winblend = 25,
227
+
228
+ -- Z-index
229
+ zindex = 10,
230
+ },
231
+ }
232
+ <
233
+ # Symbols ~
234
+
235
+ Options in `config.symbols` define characters used to display various
236
+ information in map window.
237
+
238
+ ## Encode symbols ~
239
+
240
+ The `config.symbols.encode` option defines which characters are used to
241
+ encode source buffer lines. For details of encode algorithm, see
242
+ |MiniMap.encode_strings()|.
243
+
244
+ This option should be a table with the following structure:
245
+ - <resolution> field - table containing <row> and <col> elements with row
246
+ and column resolution of each symbol. This defines encoding structure and
247
+ number of needed encode symbols.
248
+ - Numerical fields 1, 2, ..., 2^(row_resolution * col_resolution). Each symbol
249
+ represents a `(row_resolution, col_resolution)` boolean mask (`true` for
250
+ non-whitespace, `false` for whitespace), created as (reversed) binary digit:
251
+ `true` as 1; `false` as 0. Traversing left-right, top-bottom (top-left is
252
+ lowest bit, bottom-right - highest). So first symbol encodes a complete
253
+ whitespace, last - complete non-whitespace.
254
+
255
+ If `nil` (default), output of |MiniMap.gen_encode_symbols.block()| with `'3x2'`
256
+ identifier is used.
257
+
258
+ Example: `{ '1', '2', '3', '4', resolution = { row = 1, col = 2 } }`. This
259
+ will encode two characters in each input row. So a string `' a aaa'` will
260
+ be encoded as `'1234'`.
261
+
262
+ There are pre-built generators of encode symbols:
263
+ - |MiniMap.gen_encode_symbols.block()|
264
+ - |MiniMap.gen_encode_symbols.dot()|
265
+ - |MiniMap.gen_encode_symbols.shade()|
266
+
267
+ ## Scrollbar symbols ~
268
+
269
+ Options `config.symbols.scroll_line` and `config.symbols.scroll_view` define
270
+ strings used to represent current line and current view inside map window.
271
+ Can have any length, map window content will adjust.
272
+
273
+ If supplied window width is small enough so that only (part of) of
274
+ scrollbar can be shown, it is called a "pure scrollbar". The behavior differs
275
+ slightly from normal map window. See "Pure scrollbar config" later section.
276
+
277
+ Some suggestions for scrollbar symbols:
278
+ - View-line pairs: `'▒'` and `'█'`.
279
+ - Line - `'🮚'`, `'▶'`.
280
+ - View - `'╎'`, `'┋'`, `'┋'`.
281
+
282
+ # Integrations ~
283
+
284
+ Option `config.integrations` is an array of integrations. Each one is used
285
+ to define map line highlights representing some important lines in source
286
+ buffer. If `nil` (default), no integrations are used.
287
+
288
+ Each integration should be a callable returning an array with data about
289
+ SOURCE BUFFER lines it wants to highlight. Each array element should be
290
+ a table with <line> (source buffer line number) and <hl_group> (string with
291
+ highlight group name) keys. Note: line number outside of source buffer
292
+ count will be converted to a nearest appropriate one.
293
+
294
+ Example output of single integration: >lua
295
+
296
+ {
297
+ { line = 1, hl_group = 'Search' },
298
+ { line = 2, hl_group = 'Operator' },
299
+ { line = 9, hl_group = 'Search'}
300
+ }
301
+ <
302
+ Conversion to map highlights is done on a "first seen" basis: actual
303
+ highlight group applied to a map line is taken from the first integration
304
+ output convertible to that map line. Other outputs with same map line
305
+ (after conversion) contribute to integration count shown between scrollbar
306
+ and encoded lines (if `config.window.show_integration_count` is `true`).
307
+
308
+ Previous example output with default `'3x2'` resolution will add |hl-Search|
309
+ highlight on map lines 1 and 3, and show integration count 2 on first line.
310
+
311
+ Every element of integrations array is called one by one from start to end
312
+ with their outputs appended to end of single array. This means that more
313
+ important integrations should be placed in the beginning of an array, as
314
+ this will make them have higher priority in case other integrations will
315
+ highlight same map line.
316
+
317
+ Example of using `config.integrations`: >lua
318
+
319
+ local map = require('mini.map')
320
+ map.setup({
321
+ integrations = {
322
+ map.gen_integration.builtin_search(),
323
+ map.gen_integration.diff(),
324
+ map.gen_integration.diagnostic(),
325
+ },
326
+ })
327
+ <
328
+ # Window config ~
329
+
330
+ Option `config.window` defines some properties of map window.
331
+
332
+ `window.focusable` - whether to allow focusing on map window with other
333
+ methods beside |MiniMap.toggle_focus()| (like |:wincmd|, |CTRL-W|, or mouse).
334
+ Default: `false`.
335
+
336
+ `window.side` - which side to stick map window: `'left'` or `'right'` (default).
337
+
338
+ `window.show_integration_count` - whether to show integration count between
339
+ scrollbar and encoded lines. Integration count is a number of integration
340
+ outputs which were converted to same map line. When `true`, adds single
341
+ cell column with numbers from 2 to 9 and character `+` indicating count
342
+ greater than 9. Count 1 is not shown, because it is redundant to highlighted
343
+ map line. Default: `true`.
344
+
345
+ `window.width` - width of floating window, including scrollbar and
346
+ integration count column. Default: 10.
347
+
348
+ `window.winblend` - value of |'winblend'| of floating window. Value 0 makes it
349
+ completely non-transparent, 100 - completely transparent (content is still
350
+ visible, but with slightly different highlights).
351
+
352
+ `window.zindex` - z-index of floating window. Default: 10.
353
+
354
+ # Pure scrollbar config ~
355
+
356
+ "Pure scrollbar" is a configuration when window width is not enough to show
357
+ encoded content. It has following differences from default "map" approach:
358
+ - It doesn't perform line encoding with |MiniMap.encode_strings()|
359
+ but instead uses encoding with fixed number of lines (equal to window
360
+ height).
361
+ - Integration highlights are not computed.
362
+
363
+ Config: >lua
364
+
365
+ require('mini.map').setup({
366
+ -- Customize `symbols` to your liking
367
+
368
+ window = {
369
+ -- Set this to the maximum width of your scroll symbols
370
+ width = 1,
371
+
372
+ -- Set this to your liking. Try values 0, 25, 50, 75, 100
373
+ winblend = 100,
374
+
375
+ -- Don't need extra column
376
+ show_integration_count = false,
377
+ }
378
+ })
379
+ <
380
+ ------------------------------------------------------------------------------
381
+ *MiniMap.current*
382
+ `MiniMap.current`
383
+ Table with information about current state of map
384
+
385
+ At least these keys are supported:
386
+ - <buf_data> - table with buffer identifiers. Field <map> contains
387
+ identifier of a buffer used to display map. Field <source> - buffer
388
+ identifier which content map is displaying (i.e. source buffer).
389
+ - <win_data> - table of window identifiers used to display map in certain
390
+ tabpage. Keys: tabpage identifier. Values: window identifier.
391
+ - <opts> - current options used to control map display. Same structure
392
+ as |MiniMap.config|. Takes precedence over global and buffer-local configs.
393
+ Is reset when last map window is closed with |MiniMap.close()|.
394
+
395
+ ------------------------------------------------------------------------------
396
+ *MiniMap.encode_strings()*
397
+ `MiniMap.encode_strings`({strings}, {opts})
398
+ Encode strings
399
+
400
+ This takes arbitrary array of strings and computes its non-whitespace
401
+ outline. Output is an array of strings with configurable array length, string
402
+ width, and symbols representing encoding.
403
+
404
+ Each encode symbol is assumed to have resolution within which it can convey
405
+ binary information. For example, resolution `3x2` (row resolution 3,
406
+ column - 2) means that each symbol can encode 3 rows and 2 columns of
407
+ binary data. Here it is used to encode non-whitespace mask. See more in
408
+ "Encode symbols" section of |MiniMap.config|.
409
+
410
+ Encoding has the following steps:
411
+ - Convert strings to boolean mask: 2d boolean array with each row
412
+ representing a string. Element in every row subarray is `true` if
413
+ respective (possibly multibyte) character in a string is not a whitespace,
414
+ `false` otherwise. Note: tabs are expanded into |'tabstop'| spaces.
415
+ - Rescale to appropriate dimensions:
416
+ - Each output dimension is just enough to encode all input strings, but
417
+ not more than supplied dimensions (`opts.n_rows * resolution.row` and
418
+ `opts.n_cols * resolution.col` respectively).
419
+ - If input dimensions are too big to fit inside output, perform grid
420
+ downscaling with loss of information. Input boolean mask is divided
421
+ into 2d-bins with as equal as possible dimensions. Each bin then
422
+ converted into single boolean value: `true` if bin contains at least
423
+ one `true` element, `false` otherwise. This leads to a whitespace
424
+ output meaning that ALL entries in a bin are whitespace, while
425
+ non-whitespace output means that SOME entry is non-whitespace.
426
+ - Convert boolean mask to symbol strings:
427
+ - Input rescaled boolean mask is divided into bins with dimensions of
428
+ symbol resolution (assuming `false` outer padding).
429
+ - Each bin with resolution dimensions is transformed into encode symbol.
430
+ Single convertible `(resolution.row, resolution.col)` boolean
431
+ mask is treated as (reversed) binary digit: `true` as 1; `false` as 0.
432
+ Traversing left-right, top-bottom (top-left is lowest bit,
433
+ bottom-right - highest).
434
+
435
+ Example:
436
+
437
+ Assume the output should have 3 rows of symbols each with width 2. Encode
438
+ symbols are `' '`, `'▌'`, `'▐'`, `'█'` with `1x2` resolution.
439
+
440
+ Assume input strings: >
441
+ aaaaa
442
+ b b
443
+
444
+ d d
445
+ e e
446
+ <
447
+ Steps:
448
+ - Convert to boolean mask (each row is a boolean array, "t"/"f" ~ `true`/`false`,
449
+ empty spots are equivalent to being `false`): >
450
+ ttttt
451
+ ftft
452
+
453
+ ftft
454
+ tft
455
+ <
456
+ - Rescale. Output dimensions are `n_rows * resolution.row = 3 * 1 = 3` rows and
457
+ `n_cols * resolution.col = 2 * 2 = 4`. It creates as equal as possible grid
458
+ with 3 rows and 4 columns and converts bins to single booleans. Result: >
459
+ tttt
460
+ tftf
461
+ ttff
462
+ <
463
+ - Convert to symbols. It makes `1x2` bins, treats their input as (reversed)
464
+ binary digits (`ff=00=0`, `tf=10=1`, `ft=01=2`, `tt=11=3`) and takes
465
+ corresponding symbols from supplied options (value plus 1). Result: >
466
+ ██
467
+ ▌▌
468
+
469
+ <
470
+ Parameters ~
471
+ {strings} `(table)` Array of arbitrary strings.
472
+ {opts} `(table|nil)` Options. Possible fields:
473
+ - <n_rows> - number of rows in output encoding. If too big, will be
474
+ truncated to be maximum needed to encode all input strings (taking into
475
+ account symbols row resolution). Default: `math.huge`.
476
+ - <n_cols> - width of every encoding string. If too big, will be truncated
477
+ to be maximum needed to encode all input strings (taking into account
478
+ symbols column resolution). Default: `math.huge`.
479
+ - <symbols> - array of symbols with extra `resolution` field. See "Encode
480
+ symbols" section of |MiniMap.config| for more details. Default: output
481
+ of |MiniMap.gen_encode_symbols.block()| with `'3x2'` identifier.
482
+
483
+ Return ~
484
+ `(table)` Array of encoded strings.
485
+
486
+ ------------------------------------------------------------------------------
487
+ *MiniMap.open()*
488
+ `MiniMap.open`({opts})
489
+ Open map window
490
+
491
+ This creates and shows map window in current tabpage. It basically has
492
+ two steps:
493
+ - If not already done, create map buffer (used to set lines and other
494
+ visual indicators) and map window.
495
+ - Call |MiniMap.refresh()|.
496
+
497
+ Parameters ~
498
+ {opts} `(table|nil)` Options used to define map configuration. Same structure
499
+ as |MiniMap.config|. Will have effect until at least one tabpage has opened
500
+ map window. Default values are taken in the following order:
501
+ - From `opts` field of |MiniMap.current|.
502
+ - From `vim.b.minimap_config`.
503
+ - From |MiniMap.config|.
504
+
505
+ ------------------------------------------------------------------------------
506
+ *MiniMap.refresh()*
507
+ `MiniMap.refresh`({opts}, {parts})
508
+ Refresh map window
509
+
510
+ This function serves two purposes:
511
+ - Update current map configuration via `opts`.
512
+ - Update parts of displayed content via `parts`.
513
+
514
+ Parameters ~
515
+ {opts} `(table|nil)` Options used to define map configuration. Same structure
516
+ as |MiniMap.config|. Will have effect until at least one tabpage has opened
517
+ map window. Default values are taken in the following order:
518
+ - From `opts` field of |MiniMap.current|.
519
+ - From `vim.b.minimap_config`.
520
+ - From |MiniMap.config|.
521
+ {parts} `(table|nil)` Which parts to update. Recognised keys with boolean
522
+ values (all `true` by default):
523
+ - <integrations> - whether to update integration highlights.
524
+ - <lines> - whether to update map lines.
525
+ - <scrollbar> - whether to update scrollbar.
526
+
527
+ ------------------------------------------------------------------------------
528
+ *MiniMap.close()*
529
+ `MiniMap.close`()
530
+ Close map window
531
+
532
+ Also resets `opts` field of |MiniMap.current| after closing last map window
533
+ (among possibly several tabpages).
534
+
535
+ ------------------------------------------------------------------------------
536
+ *MiniMap.toggle()*
537
+ `MiniMap.toggle`({opts})
538
+ Toggle map window
539
+
540
+ Open if not shown in current tabpage, close otherwise.
541
+
542
+ Parameters ~
543
+ {opts} `(table|nil)` Input for |MiniMap.open()|.
544
+
545
+ ------------------------------------------------------------------------------
546
+ *MiniMap.toggle_focus()*
547
+ `MiniMap.toggle_focus`({use_previous_cursor})
548
+ Toggle focus to/from map window
549
+
550
+ When not inside map window, put cursor inside map window; otherwise put
551
+ cursor in previous window with source buffer.
552
+
553
+ When cursor is moving inside map window (but not just after focusing), view of
554
+ source window is updated to show first line convertible to current map line.
555
+ This allows quick targeted source buffer exploration.
556
+
557
+ There are at least these extra methods to focus back from map window:
558
+ - Press `<CR>` to accept current explored position in source buffer.
559
+ Equivalent to calling this function with `false` argument.
560
+ - Press `<Esc>` to go back to original position prior focusing on map window.
561
+ Equivalent to calling this function with `true` argument.
562
+
563
+ Parameters ~
564
+ {use_previous_cursor} `(boolean|nil)` Whether to focus on source window at
565
+ original cursor position (the one prior focusing on map window).
566
+
567
+ ------------------------------------------------------------------------------
568
+ *MiniMap.toggle_side()*
569
+ `MiniMap.toggle_side`()
570
+ Toggle side of map window
571
+
572
+ A small convenience wrapper for calling |MiniMap.refresh()| to change the
573
+ side of map window.
574
+
575
+ ------------------------------------------------------------------------------
576
+ *MiniMap.gen_encode_symbols*
577
+ `MiniMap.gen_encode_symbols`
578
+ Generate encode symbols
579
+
580
+ This is a table with function elements. Call to actually get encode symbols.
581
+
582
+ Each element takes a string resolution identifier of a form `'rxc'` (like `'3x2'`)
583
+ where `r` is a row resolution of each symbol (how many rows of binary data it
584
+ can encode) and `c` is a column resolution (how many columns it can encode).
585
+
586
+ ------------------------------------------------------------------------------
587
+ *MiniMap.gen_encode_symbols.block()*
588
+ `MiniMap.gen_encode_symbols.block`({id})
589
+ Generate block encode symbols
590
+
591
+ Outputs use solid block to encode binary data. Example: `'🬗'`, `'▟'`, `'█'`.
592
+
593
+ Parameters ~
594
+ {id} `(string)` Resolution identifier.
595
+ Available values: `'1x2'`, `'2x1'`, `'2x2'`, `'3x2'` (default in |mini.map|).
596
+
597
+ ------------------------------------------------------------------------------
598
+ *MiniMap.gen_encode_symbols.dot()*
599
+ `MiniMap.gen_encode_symbols.dot`({id})
600
+ Generate dot encode symbols
601
+
602
+ Outputs use dots to encode binary data. Example: `'⡪'`, `'⣼'`, `'⣿'`.
603
+
604
+ Parameters ~
605
+ {id} `(string)` Resolution identifier. Available values: `'4x2'`, `'3x2'`.
606
+
607
+ ------------------------------------------------------------------------------
608
+ *MiniMap.gen_encode_symbols.shade()*
609
+ `MiniMap.gen_encode_symbols.shade`({id})
610
+ Generate shade encode symbols
611
+
612
+ Outputs use whole cell shades to encode binary data. They use same set of
613
+ characters (`'░'`, `'▒'`, `'▒'`, `'▓'`), but with different resolution.
614
+
615
+ Parameters ~
616
+ {id} `(string)` Resolution identifier. Available values: `'1x2'`, `'2x1'`.
617
+
618
+ ------------------------------------------------------------------------------
619
+ *MiniMap.gen_integration*
620
+ `MiniMap.gen_integration`
621
+ Generate integrations
622
+
623
+ This is a table with function elements. Call to actually get encode symbols.
624
+
625
+ Each element takes a table defining highlight groups used for to highlight
626
+ map lines.
627
+
628
+ ------------------------------------------------------------------------------
629
+ *MiniMap.gen_integration.builtin_search()*
630
+ `MiniMap.gen_integration.builtin_search`({hl_groups})
631
+ Builtin search
632
+
633
+ Highlight lines with matches of current builtin search (like with |/|, |?|, etc.).
634
+ Integration count reflects number of actual matches.
635
+
636
+ It prompts integration highlighting update on every change of |'hlsearch'|
637
+ (see |OptionSet|) or |v:hlsearch|. Note that it is not happening for some keys:
638
+ - After starting search with |n|, |N|, |star|, or |#|.
639
+ To enable highlight update on this keys, make custom mappings. Like this: >lua
640
+
641
+ for _, key in ipairs({ 'n', 'N', '*', '#' }) do
642
+ local rhs = key ..
643
+ '<Cmd>lua MiniMap.refresh({}, {lines = false, scrollbar = false})<CR>'
644
+ vim.keymap.set('n', key, rhs)
645
+ end
646
+ <
647
+ Parameters ~
648
+ {hl_groups} `(table|nil)` Table defining highlight groups. Can have the
649
+ following fields:
650
+ - <search> - highlight group for search matches. Default: |hl-Search|.
651
+
652
+ ------------------------------------------------------------------------------
653
+ *MiniMap.gen_integration.diagnostic()*
654
+ `MiniMap.gen_integration.diagnostic`({hl_groups})
655
+ Builtin diagnostic
656
+
657
+ Highlight lines with matches of current diagnostic items. Items are computed
658
+ with |vim.diagnostic.get()| for current (source) buffer.
659
+
660
+ It prompts integration highlighting update on every |DiagnosticChanged| event.
661
+ Diagnostic items with higher severity (see |vim.diagnostic.severity|) have
662
+ higher highlight priority (errors will be shown over all others, etc.).
663
+
664
+ Parameters ~
665
+ {hl_groups} `(table|nil)` Table defining highlight groups. Supplied fields
666
+ also define which diagnostic severity to highlight.
667
+ Can have the following fields:
668
+ - <error> - highlight group for error items.
669
+ Default: |hl-DiagnosticFloatingError|.
670
+ - <warn> - highlight group for warning items. Default: `nil` (not shown).
671
+ - <info> - highlight group for info items. Default: `nil` (not shown).
672
+ - <hint> - highlight group for hint items. Default: `nil` (not shown).
673
+
674
+ Usage ~
675
+ >lua
676
+ -- Show all diagnostic levels
677
+ local map = require('mini.map')
678
+ local diagnostic_integration = map.gen_integration.diagnostic({
679
+ error = 'DiagnosticFloatingError',
680
+ warn = 'DiagnosticFloatingWarn',
681
+ info = 'DiagnosticFloatingInfo',
682
+ hint = 'DiagnosticFloatingHint',
683
+ })
684
+ map.setup({ integrations = { diagnostic_integration } })
685
+ <
686
+ ------------------------------------------------------------------------------
687
+ *MiniMap.gen_integration.diff()*
688
+ `MiniMap.gen_integration.diff`({hl_groups})
689
+ General diff hunks from |mini.diff|
690
+
691
+ Highlight lines which are part of current diff.
692
+ Requires |mini.diff| as dependency.
693
+
694
+ Parameters ~
695
+ {hl_groups} `(table|nil)` Table defining highlight groups. If `nil` (not
696
+ supplied), this status is not highlighted. Can have the following fields:
697
+ - <add> - group name for "add" hunks. Default: "MiniDiffSignAdd".
698
+ - <change> - group name for "change" hunks. Default: "MiniDiffSignChange".
699
+ - <delete> - group name for "delete" hunks. Default: "MiniDiffSignDelete".
700
+
701
+ ------------------------------------------------------------------------------
702
+ *MiniMap.gen_integration.gitsigns()*
703
+ `MiniMap.gen_integration.gitsigns`({hl_groups})
704
+ Hunks from `lewis6991/gitsigns.nvim`
705
+
706
+ Highlight lines which have non-trivial Git status.
707
+ Requires [lewis6991/gitsigns.nvim](https://github.com/lewis6991/gitsigns.nvim).
708
+
709
+ Parameters ~
710
+ {hl_groups} `(table|nil)` Table defining highlight groups. If `nil` (not
711
+ supplied), this status is not highlighted. Can have the following fields:
712
+ - <add> - group name for added lines. Default: "GitSignsAdd".
713
+ - <change> - group name for changed lines. Default: "GitSignsChange".
714
+ - <delete> - group name for deleted lines. Default: "GitSignsDelete".
715
+
716
+
717
+ vim:tw=78:ts=8:noet:ft=help:norl: