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,760 @@
1
+ *mini.clue* Show next key clues
2
+
3
+ MIT License Copyright (c) 2023 Evgeni Chasnovski
4
+
5
+ ------------------------------------------------------------------------------
6
+ *MiniClue*
7
+ Features:
8
+ - Implement custom key query process to reach target key combination:
9
+ - Starts after customizable opt-in triggers (mode + keys).
10
+
11
+ - Each key press narrows down set of possible targets.
12
+ Pressing `<BS>` removes previous user entry.
13
+ Pressing `<Esc>` or `<C-c>` leads to an early stop.
14
+ Doesn't depend on |'timeoutlen'| and has basic support for |'langmap'|.
15
+
16
+ - Ends when there is at most one target left or user pressed `<CR>`.
17
+ Results into emulating pressing all query keys plus possible postkeys.
18
+
19
+ - Show window (after configurable delay) with clues. It lists available
20
+ next keys along with their descriptions (auto generated from descriptions
21
+ present keymaps and user-supplied clues; preferring the former).
22
+
23
+ - Configurable "postkeys" for key combinations - keys which will be emulated
24
+ after combination is reached during key query process.
25
+
26
+ - Provide customizable sets of clues for common built-in keys/concepts:
27
+ - `g` key.
28
+ - `z` key.
29
+ - Window commands.
30
+ - Built-in completion.
31
+ - Marks.
32
+ - Registers.
33
+
34
+ - Lua functions to disable/enable triggers globally or per buffer.
35
+
36
+ For more details see:
37
+ - |MiniClue-key-query-process|.
38
+ - |MiniClue-examples|.
39
+ - |MiniClue.config|.
40
+ - |MiniClue.gen_clues|.
41
+
42
+ Notes:
43
+ - There is no functionality to create mappings while defining clues.
44
+ This is done to clearly separate these two different actions.
45
+ The best suggested practice is to manually create mappings with
46
+ descriptions (`desc` field in options), as they will be automatically
47
+ used inside clue window.
48
+
49
+ - Triggers are implemented as special buffer-local mappings. This leads to
50
+ several caveats:
51
+ - They will override same regular buffer-local mappings and have
52
+ precedence over global one.
53
+
54
+ Example: having set `<C-w>` as Normal mode trigger means that
55
+ there should not be another `<C-w>` mapping.
56
+
57
+ - They need to be the latest created buffer-local mappings or they will
58
+ not function properly. Most common indicator of this is that some
59
+ mapping starts to work only after clue window is shown.
60
+
61
+ Example: `g` is set as Normal mode trigger, but `gcc` from |mini.comment|
62
+ doesn't work right away. This is probably because there are some
63
+ other buffer-local mappings starting with `g` which were created after
64
+ mapping for `g` trigger. Most common places for this are in LSP server's
65
+ `on_attach` or during tree-sitter start in buffer.
66
+
67
+ To check if trigger is the most recent buffer-local mapping, execute
68
+ `:<mode-char>map <trigger-keys>` (like `:nmap g` for previous example).
69
+ Mapping for trigger should be the first listed.
70
+
71
+ This module makes the best effort to work out of the box and cover
72
+ most common cases, but it is not foolproof. The solution here is to
73
+ ensure that triggers are created after making all buffer-local mappings:
74
+ run either |MiniClue.setup()| or |MiniClue.ensure_buf_triggers()|.
75
+
76
+ - Descriptions from existing mappings take precedence over user-supplied
77
+ clues. This is to ensure that information shown in clue window is as
78
+ relevant as possible. To add/customize description of an already existing
79
+ mapping, use |MiniClue.set_mapping_desc()|.
80
+
81
+ - Due to technical difficulties, there is no foolproof support for
82
+ Operator-pending mode triggers (like `a`/`i` from |mini.ai|):
83
+ - Doesn't work as part of a command in "temporary Normal mode" (like
84
+ after |i_CTRL-O|) due to implementation difficulties.
85
+ - Can have unexpected behavior with custom operators.
86
+
87
+ - Has (mostly solved) issues with macros:
88
+ - All triggers are disabled during macro recording due to technical
89
+ reasons.
90
+ - The `@` and `Q` keys are specially mapped inside |MiniClue.setup()|
91
+ (if the key is not already mapped) to temporarily disable triggers.
92
+
93
+ # Setup ~
94
+
95
+ This module needs a setup with `require('mini.clue').setup({})` (replace
96
+ `{}` with your `config` table). It will create global Lua table `MiniClue`
97
+ which you can use for scripting or manually (with `:lua MiniClue.*`).
98
+
99
+ Config table NEEDS TO HAVE TRIGGERS CONFIGURED, none is set up by default.
100
+
101
+ See |MiniClue.config| for available config settings.
102
+
103
+ You can override runtime config settings (like clues or window options)
104
+ locally to a buffer inside `vim.b.miniclue_config` which should have same
105
+ structure as `MiniClue.config`. See |mini.nvim-buffer-local-config| for
106
+ more details.
107
+
108
+ # Comparisons ~
109
+
110
+ - [folke/which-key.nvim](https://github.com/folke/which-key.nvim):
111
+ - Both have the same main goal: show available next keys along with
112
+ their customizable descriptions.
113
+ - Has different UI and content layout.
114
+ - Allows creating mappings inside its configuration, while this module
115
+ doesn't have this by design (to clearly separate two different tasks).
116
+ - Doesn't allow creating submodes, while this module does (via `postkeys`).
117
+
118
+ - [anuvyklack/hydra.nvim](https://github.com/anuvyklack/hydra.nvim):
119
+ - Both allow creating submodes: state which starts at certain key
120
+ combination; treats some keys differently; ends after `<Esc>`.
121
+ - Doesn't show information about available next keys (outside of
122
+ submodes), while that is this module's main goal.
123
+
124
+ # Highlight groups ~
125
+ *MiniClue-hl-groups*
126
+
127
+ - `MiniClueBorder` - window border.
128
+ - `MiniClueDescGroup` - group description in clue window.
129
+ - `MiniClueDescSingle` - single target description in clue window.
130
+ - `MiniClueNextKey` - next key label in clue window.
131
+ - `MiniClueNextKeyWithPostkeys` - next key label with postkeys in clue window.
132
+ - `MiniClueSeparator` - separator in clue window.
133
+ - `MiniClueTitle` - window title.
134
+
135
+ To change any highlight group, set it directly with |nvim_set_hl()|.
136
+
137
+ # Disabling ~
138
+
139
+ To disable creating triggers, set `vim.g.miniclue_disable` (globally) or
140
+ `vim.b.miniclue_disable` (for a buffer) to `true`. Considering high number
141
+ of different scenarios and customization intentions, writing exact rules
142
+ for disabling module's functionality is left to user. See
143
+ |mini.nvim-disabling-recipes| for common recipes.
144
+
145
+ ------------------------------------------------------------------------------
146
+ *MiniClue-key-query-process*
147
+ # General info ~
148
+
149
+ This module implements custom key query process imitating a usual built-in
150
+ mechanism of user pressing keys in order to execute a mapping. General idea
151
+ is the same: narrow down key combinations until the target is reached.
152
+
153
+ Main goals of its existence are:
154
+
155
+ - Allow reaching certain mappings be independent of |'timeoutlen'|. That is,
156
+ there is no fixed timeout after which currently typed keys are executed.
157
+
158
+ - Enable automated showing of next key clues after user-supplied delay
159
+ (also independent of |'timeoutlen'|).
160
+
161
+ - Allow emulating configurable key presses after certain key combination is
162
+ reached. This granular control allows creating so called "submodes".
163
+ See more at |MiniClue-examples-submodes|.
164
+
165
+ This process is primarily designed for nested `<Leader>` mappings in Normal
166
+ mode but works in all other main modes: Visual, Insert, Operator-pending
167
+ (with caveats; no foolproof guarantees), Command-line, Terminal.
168
+
169
+ # Lifecycle ~
170
+
171
+ - Key query process starts when user types a trigger: certain keys in certain
172
+ mode. Those keys are put into key query as a single user input. All possible
173
+ mode key combinations are filtered to ones starting with the trigger keys.
174
+
175
+ Note: trigger is implemented as a regular mapping, so if it has at least
176
+ two keys, they should be pressed within |'timeoutlen'| milliseconds.
177
+
178
+ - Wait (indefinitely) for user to press a key. Advance depending on the key:
179
+
180
+ - Special key:
181
+
182
+ - If `<Esc>` or `<C-c>`, stop the process without any action.
183
+
184
+ - If `<CR>`, stop the process and execute current key query, meaning
185
+ emulate (with |nvim_feedkeys()|) user pressing those keys.
186
+
187
+ - If `<BS>`, remove previous user input from the query. If query becomes
188
+ empty, stop the process without any action.
189
+
190
+ - If a key for scrolling clue window (`scroll_down` / `scroll_up`
191
+ in `config.window`; `<C-d>` / `<C-u>` by default), scroll clue window
192
+ and wait for the next user key.
193
+ Note: if clue window is not shown, treated as a not special key.
194
+
195
+ - Not special key. Add key to the query while filtering all available
196
+ key combinations to start with the current key query. Advance:
197
+
198
+ - If there is a single available key combination matching current
199
+ key query, execute it.
200
+
201
+ - If there is no key combinations starting with the current query,
202
+ execute it. This, for instance, allows a seamless execution of
203
+ operators in presence of a longer key combinations. Example: with
204
+ `g` as trigger in Normal mode and available mappings `gc` / `gcc`
205
+ (like from |mini.comment|), this allows typing `gcip` to comment
206
+ current paragraph, although there are no key combinations
207
+ starting with `gci`.
208
+
209
+ - Otherwise wait for the new user key press.
210
+
211
+ # Clue window ~
212
+
213
+ After initiating key query process and after each key press, a timer is
214
+ started to show a clue window: floating window with information about
215
+ available next keys along with their descriptions. Note: if window is
216
+ already shown, its content is updated right away.
217
+
218
+ Clues can have these types:
219
+
220
+ - "Terminal next key": when pressed, will lead to query execution.
221
+
222
+ - "Terminal next key with postkeys": when pressed, will lead to query
223
+ execution plus some configured postkeys.
224
+
225
+ - "Group next key": when pressed, will narrow down available key combinations
226
+ and wait for another key press. Note: can have configured description
227
+ (inside `config.clues`) or it will be auto generated based on the number of
228
+ available key combinations.
229
+
230
+ ------------------------------------------------------------------------------
231
+ *MiniClue-examples*
232
+ # Full starter example ~
233
+
234
+ If not sure where to start, try this example with all provided clues from
235
+ this module plus all |<Leader>| mappings in Normal and Visual modes: >lua
236
+
237
+ local miniclue = require('mini.clue')
238
+ miniclue.setup({
239
+ triggers = {
240
+ -- Leader triggers
241
+ { mode = { 'n', 'x' }, keys = '<Leader>' },
242
+
243
+ -- `[` and `]` keys
244
+ { mode = 'n', keys = '[' },
245
+ { mode = 'n', keys = ']' },
246
+
247
+ -- Built-in completion
248
+ { mode = 'i', keys = '<C-x>' },
249
+
250
+ -- `g` key
251
+ { mode = { 'n', 'x' }, keys = 'g' },
252
+
253
+ -- Marks
254
+ { mode = { 'n', 'x' }, keys = "'" },
255
+ { mode = { 'n', 'x' }, keys = '`' },
256
+
257
+ -- Registers
258
+ { mode = { 'n', 'x' }, keys = '"' },
259
+ { mode = { 'i', 'c' }, keys = '<C-r>' },
260
+
261
+ -- Window commands
262
+ { mode = 'n', keys = '<C-w>' },
263
+
264
+ -- `z` key
265
+ { mode = { 'n', 'x' }, keys = 'z' },
266
+ },
267
+
268
+ clues = {
269
+ -- Enhance this by adding descriptions for <Leader> mapping groups
270
+ miniclue.gen_clues.square_brackets(),
271
+ miniclue.gen_clues.builtin_completion(),
272
+ miniclue.gen_clues.g(),
273
+ miniclue.gen_clues.marks(),
274
+ miniclue.gen_clues.registers(),
275
+ miniclue.gen_clues.windows(),
276
+ miniclue.gen_clues.z(),
277
+ },
278
+ })
279
+ <
280
+ # Leader clues ~
281
+
282
+ Assume there are these |<Leader>| mappings set up: >lua
283
+
284
+ -- Set `<Leader>` before making any mappings and configuring 'mini.clue'
285
+ vim.g.mapleader = ' '
286
+
287
+ local nmap_leader = function(suffix, rhs, desc)
288
+ vim.keymap.set('n', '<Leader>' .. suffix, rhs, { desc = desc })
289
+ end
290
+ local xmap_leader = function(suffix, rhs, desc)
291
+ vim.keymap.set('x', '<Leader>' .. suffix, rhs, { desc = desc })
292
+ end
293
+
294
+ nmap_leader('bd', '<Cmd>lua MiniBufremove.delete()<CR>', 'Delete')
295
+ nmap_leader('bw', '<Cmd>lua MiniBufremove.wipeout()<CR>', 'Wipeout')
296
+
297
+ nmap_leader('lf', '<Cmd>lua vim.lsp.buf.format()<CR>', 'Format')
298
+ xmap_leader('lf', '<Cmd>lua vim.lsp.buf.format()<CR>', 'Format')
299
+ nmap_leader('lr', '<Cmd>lua vim.lsp.buf.rename()<CR>', 'Rename')
300
+ nmap_leader('lR', '<Cmd>lua vim.lsp.buf.references()<CR>', 'References')
301
+ <
302
+ The following setup will enable |<Leader>| as trigger in Normal and Visual
303
+ modes and add descriptions to mapping groups: >lua
304
+
305
+ require('mini.clue').setup({
306
+ -- Register `<Leader>` as trigger
307
+ triggers = {
308
+ { mode = { 'n', 'x' }, keys = '<Leader>' },
309
+ },
310
+
311
+ -- Add descriptions for mapping groups
312
+ clues = {
313
+ { mode = 'n', keys = '<Leader>b', desc = '+Buffers' },
314
+ { mode = 'n', keys = '<Leader>l', desc = '+LSP' },
315
+ },
316
+ })
317
+ <
318
+ # Clues without mappings ~
319
+
320
+ Clues can be shown not only for actually present mappings. This is helpful for
321
+ showing clues for built-in key combinations. Here is an example of clues for
322
+ a subset of built-in completion (see |MiniClue.gen_clues.builtin_completion()|
323
+ to generate clues for all available completion sources): >lua
324
+
325
+ require('mini.clue').setup({
326
+ -- Make `<C-x>` a trigger. Otherwise, key query process won't start.
327
+ triggers = {
328
+ { mode = 'i', keys = '<C-x>' },
329
+ },
330
+
331
+ -- Register custom clues
332
+ clues = {
333
+ { mode = 'i', keys = '<C-x><C-f>', desc = 'File names' },
334
+ { mode = 'i', keys = '<C-x><C-l>', desc = 'Whole lines' },
335
+ { mode = 'i', keys = '<C-x><C-o>', desc = 'Omni completion' },
336
+ { mode = 'i', keys = '<C-x><C-s>', desc = 'Spelling suggestions' },
337
+ { mode = 'i', keys = '<C-x><C-u>', desc = "With 'completefunc'" },
338
+ }
339
+ })
340
+ <
341
+ # Triggers in special buffers ~
342
+
343
+ By default triggers are automatically created in listed (|'buflisted'|) and some
344
+ special non-listed buffers. Use |MiniClue.ensure_buf_triggers()| to manually
345
+ enable in when you need them. For example: >vim
346
+
347
+ au FileType special_ft lua MiniClue.ensure_buf_triggers()
348
+ <
349
+ # Submodes ~
350
+ *MiniClue-examples-submodes*
351
+
352
+ Submode is a state initiated after pressing certain key combination ("prefix")
353
+ during which some keys are interpreted differently.
354
+
355
+ In this module submode can be implemented following these steps:
356
+
357
+ - Create mappings for each key inside submode. Left hand side of mappings
358
+ should consist from prefix followed by the key.
359
+
360
+ - Create clue for each key inside submode with `postkeys` value equal to
361
+ prefix. It would mean that after executing particular key combination from
362
+ this submode, pressing its prefix will be automatically emulated (leading
363
+ back to being inside submode).
364
+
365
+ - Register submode prefix (or some of its starting part) as trigger. Do not
366
+ register "overlapping" triggers, like `<Leader>` and `<Leader>m`.
367
+
368
+ ## Submode examples ~
369
+
370
+ - Submode for moving with |mini.move|:
371
+ - Press `<Leader>m` to start submode.
372
+ - Press any of `h`/`j`/`k`/`l` to move selection/line.
373
+ - Press `<Esc>` to stop submode.
374
+
375
+ The code: >lua
376
+
377
+ require('mini.move').setup({
378
+ mappings = {
379
+ left = '<Leader>mh',
380
+ right = '<Leader>ml',
381
+ down = '<Leader>mj',
382
+ up = '<Leader>mk',
383
+ line_left = '<Leader>mh',
384
+ line_right = '<Leader>ml',
385
+ line_down = '<Leader>mj',
386
+ line_up = '<Leader>mk',
387
+ },
388
+ })
389
+
390
+ require('mini.clue').setup({
391
+ triggers = {
392
+ -- This can also set up directly `<Leader>m` as a trigger, but make
393
+ -- sure to not also use `<Leader>`, as they would "overlap"
394
+ { mode = { 'n', 'x' }, keys = '<Leader>' },
395
+ },
396
+ clues = {
397
+ { mode = 'n', keys = '<Leader>m', desc = '+Move' },
398
+
399
+ { mode = { 'n', 'x' }, keys = '<Leader>mh', postkeys = '<Leader>m' },
400
+ { mode = { 'n', 'x' }, keys = '<Leader>mj', postkeys = '<Leader>m' },
401
+ { mode = { 'n', 'x' }, keys = '<Leader>mk', postkeys = '<Leader>m' },
402
+ { mode = { 'n', 'x' }, keys = '<Leader>ml', postkeys = '<Leader>m' },
403
+ },
404
+ })
405
+ <
406
+ - Submode for iterating buffers and windows with |mini.bracketed|:
407
+ - Press `[` or `]` to start key query process for certain direction.
408
+ - Press `b` / `w` to iterate buffers/windows until reach target one.
409
+ - Press `<Esc>` to stop submode.
410
+
411
+ The code: >lua
412
+
413
+ require('mini.bracketed').setup()
414
+
415
+ require('mini.clue').setup({
416
+ triggers = {
417
+ { mode = 'n', keys = ']' },
418
+ { mode = 'n', keys = '[' },
419
+ },
420
+ clues = {
421
+ { mode = 'n', keys = ']b', postkeys = ']' },
422
+ { mode = 'n', keys = ']w', postkeys = ']' },
423
+
424
+ { mode = 'n', keys = '[b', postkeys = '[' },
425
+ { mode = 'n', keys = '[w', postkeys = '[' },
426
+ },
427
+ })
428
+ <
429
+ - Submode for window commands using |MiniClue.gen_clues.windows()|:
430
+ - Press `<C-w>` to start key query process.
431
+ - Press keys which move / change focus / resize windows.
432
+ - Press `<Esc>` to stop submode.
433
+
434
+ The code: >lua
435
+
436
+ local miniclue = require('mini.clue')
437
+ miniclue.setup({
438
+ triggers = {
439
+ { mode = 'n', keys = '<C-w>' },
440
+ },
441
+ clues = {
442
+ miniclue.gen_clues.windows({
443
+ submode_move = true,
444
+ submode_navigate = true,
445
+ submode_resize = true,
446
+ })
447
+ },
448
+ })
449
+ <
450
+ # Window config ~
451
+ >lua
452
+ require('mini.clue').setup({
453
+ triggers = { { mode = 'n', keys = '<Leader>' } },
454
+
455
+ window = {
456
+ -- Show window immediately
457
+ delay = 0,
458
+
459
+ config = {
460
+ -- Compute window width automatically
461
+ width = 'auto',
462
+
463
+ -- Use double-line border
464
+ border = 'double',
465
+ },
466
+ },
467
+ })
468
+ <
469
+ ------------------------------------------------------------------------------
470
+ *MiniClue.setup()*
471
+ `MiniClue.setup`({config})
472
+ Module setup
473
+
474
+ Parameters ~
475
+ {config} `(table|nil)` Module config table. See |MiniClue.config|.
476
+
477
+ Usage ~
478
+ >lua
479
+ require('mini.clue').setup({}) -- replace {} with your config table
480
+ -- needs `triggers` field present
481
+ <
482
+ ------------------------------------------------------------------------------
483
+ *MiniClue.config*
484
+ `MiniClue.config`
485
+ Defaults ~
486
+ >lua
487
+ MiniClue.config = {
488
+ -- Array of extra clues to show
489
+ clues = {},
490
+
491
+ -- Array of opt-in triggers which start custom key query process.
492
+ -- **Needs to have something in order to show clues**.
493
+ triggers = {},
494
+
495
+ -- Clue window settings
496
+ window = {
497
+ -- Floating window config
498
+ config = {},
499
+
500
+ -- Delay before showing clue window
501
+ delay = 1000,
502
+
503
+ -- Keys to scroll inside the clue window
504
+ scroll_down = '<C-d>',
505
+ scroll_up = '<C-u>',
506
+ },
507
+ }
508
+ <
509
+ # General info ~
510
+
511
+ - To use |<Leader>| as part of the config (either as trigger or inside clues),
512
+ set it prior to running |MiniClue.setup()|.
513
+
514
+ - See |MiniClue-examples| for examples.
515
+
516
+ # Clues ~
517
+
518
+ `config.clues` is an array with extra information about key combinations.
519
+ Each element can be one of:
520
+ - Clue table.
521
+ - Array (possibly nested) of clue tables.
522
+ - Callable (function) returning either of the previous two.
523
+
524
+ A clue table is a table with the following fields:
525
+ - <mode> `(string|table)` - single character describing mode short-name of
526
+ key combination as in `nvim_set_keymap()` (`'n'`, `'x'`, `'i'`, `'o'`, `'c'`, etc.),
527
+ or a array thereof.
528
+ - <keys> `(string)` - key combination for which clue will be shown.
529
+ "Human-readable" key names as in |key-notation| (like "<Leader>", "<Space>",
530
+ "<Tab>", etc.) are allowed.
531
+ - <desc> `(string|function|nil)` - optional key combination description which is
532
+ shown in clue window. If function, should return string description.
533
+ - <postkeys> `(string|nil)` - optional postkeys which will be executed
534
+ automatically after `keys`. Allows creation of submodes
535
+ (see |MiniClue-examples-submodes|).
536
+
537
+ Notes:
538
+ - Postkeys are literal simulation of keypresses with |nvim_feedkeys()|.
539
+
540
+ - Suggested approach to configuring clues is to create mappings with `desc`
541
+ field while supplying to `config.clues` only elements describing groups,
542
+ postkeys, and built-in mappings.
543
+
544
+ # Triggers ~
545
+
546
+ `config.triggers` is an array with information when |MiniClue-key-query-process|
547
+ should start. Each element is a trigger table with the fields <mode> and
548
+ <keys> which are treated the same as in clue table.
549
+
550
+ # Window ~
551
+
552
+ `config.window` defines behavior of clue window.
553
+
554
+ `config.window.delay` is a number of milliseconds after which clue window will
555
+ appear. Can be 0 to show immediately.
556
+
557
+ `config.window.config` is a table defining floating window characteristics
558
+ or a callable returning such table (will be called with identifier of
559
+ window's buffer already showing all clues). It should have the same
560
+ structure as in |nvim_open_win()| with the following enhancements:
561
+ - <width> field can be equal to `"auto"` leading to window width being
562
+ computed automatically based on its content. Default is fixed width of 30.
563
+ - <row> and <col> can be equal to `"auto"` in which case they will be
564
+ computed to "stick" to set anchor ("SE" by default; see |nvim_open_win()|).
565
+ This allows changing corner in which window is shown: >lua
566
+
567
+ -- Pick one anchor
568
+ local anchor = 'NW' -- top-left
569
+ local anchor = 'NE' -- top-right
570
+ local anchor = 'SW' -- bottom-left
571
+ local anchor = 'SE' -- bottom-right
572
+
573
+ require('mini.clue').setup({
574
+ window = {
575
+ config = { anchor = anchor, row = 'auto', col = 'auto' },
576
+ },
577
+ })
578
+ <
579
+ `config.window.scroll_down` / `config.window.scroll_up` are strings defining
580
+ keys which will scroll clue window down / up which is useful in case not
581
+ all clues fit in current window height. Set to empty string `''` to disable
582
+ either of them.
583
+
584
+ ------------------------------------------------------------------------------
585
+ *MiniClue.enable_all_triggers()*
586
+ `MiniClue.enable_all_triggers`()
587
+ Enable triggers in loaded listed and some special buffers
588
+
589
+ ------------------------------------------------------------------------------
590
+ *MiniClue.enable_buf_triggers()*
591
+ `MiniClue.enable_buf_triggers`({buf_id})
592
+ Enable triggers in buffer
593
+
594
+ Parameters ~
595
+ {buf_id} `(number|nil)` Buffer identifier. Default: current buffer.
596
+
597
+ ------------------------------------------------------------------------------
598
+ *MiniClue.disable_all_triggers()*
599
+ `MiniClue.disable_all_triggers`()
600
+ Disable triggers in loaded buffers
601
+
602
+ ------------------------------------------------------------------------------
603
+ *MiniClue.disable_buf_triggers()*
604
+ `MiniClue.disable_buf_triggers`({buf_id})
605
+ Disable triggers in buffer
606
+
607
+ Parameters ~
608
+ {buf_id} `(number|nil)` Buffer identifier. Default: current buffer.
609
+
610
+ ------------------------------------------------------------------------------
611
+ *MiniClue.ensure_all_triggers()*
612
+ `MiniClue.ensure_all_triggers`()
613
+ Ensure all triggers are valid
614
+
615
+ ------------------------------------------------------------------------------
616
+ *MiniClue.ensure_buf_triggers()*
617
+ `MiniClue.ensure_buf_triggers`({buf_id})
618
+ Ensure buffer triggers are valid
619
+
620
+ Parameters ~
621
+ {buf_id} `(number|nil)` Buffer identifier. Default: current buffer.
622
+
623
+ ------------------------------------------------------------------------------
624
+ *MiniClue.set_mapping_desc()*
625
+ `MiniClue.set_mapping_desc`({mode}, {lhs}, {desc})
626
+ Update description of an existing mapping
627
+
628
+ Notes:
629
+ - Uses buffer-local mapping in case there are both global and buffer-local
630
+ mappings with same mode and LHS. Similar to |maparg()|.
631
+
632
+ Parameters ~
633
+ {mode} `(string)` Mapping mode (as in `maparg()`).
634
+ {lhs} `(string)` Mapping left hand side (as `name` in `maparg()`).
635
+ {desc} `(string)` New description to set.
636
+
637
+ ------------------------------------------------------------------------------
638
+ *MiniClue.gen_clues*
639
+ `MiniClue.gen_clues`
640
+ Generate pre-configured clues
641
+
642
+ This is a table with function elements. Call to actually get array of clues.
643
+
644
+ ------------------------------------------------------------------------------
645
+ *MiniClue.gen_clues.builtin_completion()*
646
+ `MiniClue.gen_clues.builtin_completion`()
647
+ Generate clues for built-in completion
648
+
649
+ Contains clues for the following triggers: >lua
650
+
651
+ { mode = 'i', keys = '<C-x>' }
652
+ <
653
+ Return ~
654
+ `(table)` Array of clues.
655
+
656
+ ------------------------------------------------------------------------------
657
+ *MiniClue.gen_clues.g()*
658
+ `MiniClue.gen_clues.g`()
659
+ Generate clues for `g` key
660
+
661
+ Contains clues for the following triggers: >lua
662
+
663
+ { mode = { 'n', 'x' }, keys = 'g' }
664
+ <
665
+ Return ~
666
+ `(table)` Array of clues.
667
+
668
+ ------------------------------------------------------------------------------
669
+ *MiniClue.gen_clues.square_brackets()*
670
+ `MiniClue.gen_clues.square_brackets`()
671
+ Generate clues for `[` and `]` keys
672
+
673
+ Contains clues for the following triggers: >lua
674
+
675
+ { mode = 'n', keys = '[' }
676
+ { mode = 'n', keys = ']' }
677
+ <
678
+ Return ~
679
+ `(table)` Array of clues.
680
+
681
+ ------------------------------------------------------------------------------
682
+ *MiniClue.gen_clues.marks()*
683
+ `MiniClue.gen_clues.marks`()
684
+ Generate clues for marks
685
+
686
+ Contains clues for the following triggers: >lua
687
+
688
+ { mode = { 'n', 'x' }, keys = "'" }
689
+ { mode = { 'n', 'x' }, keys = "g'" }
690
+ { mode = { 'n', 'x' }, keys = '`' }
691
+ { mode = { 'n', 'x' }, keys = 'g`' }
692
+ <
693
+ Note: if you use `g` as trigger (like to enable |MiniClue.gen_clues.g()|),
694
+ don't add |g'| and |g`| as triggers: they already will be taken into account.
695
+
696
+ Return ~
697
+ `(table)` Array of clues.
698
+
699
+ See also ~
700
+ |mark-motions|
701
+
702
+ ------------------------------------------------------------------------------
703
+ *MiniClue.gen_clues.registers()*
704
+ `MiniClue.gen_clues.registers`({opts})
705
+ Generate clues for registers
706
+
707
+ Contains clues for the following triggers: >lua
708
+
709
+ { mode = { 'n', 'x' }, keys = '"' }
710
+ { mode = { 'i', 'c' }, keys = '<C-r>' }
711
+ <
712
+ Parameters ~
713
+ {opts} `(table|nil)` Options. Possible keys:
714
+ - <show_contents> `(boolean)` - whether to show contents of all possible
715
+ registers. If `false`, only description of special registers is shown.
716
+ Default: `false`.
717
+
718
+ Return ~
719
+ `(table)` Array of clues.
720
+
721
+ See also ~
722
+ |registers|
723
+
724
+ ------------------------------------------------------------------------------
725
+ *MiniClue.gen_clues.windows()*
726
+ `MiniClue.gen_clues.windows`({opts})
727
+ Generate clues for window commands
728
+
729
+ Contains clues for the following triggers: >lua
730
+
731
+ { mode = 'n', keys = '<C-w>' }
732
+ <
733
+ Note: only non-duplicated commands are included. For full list see |CTRL-W|.
734
+
735
+ Parameters ~
736
+ {opts} `(table|nil)` Options. Possible keys:
737
+ - <submode_move> `(boolean)` - whether to make move (change layout)
738
+ commands a submode by using `postkeys` field. Default: `false`.
739
+ - <submode_navigate> `(boolean)` - whether to make navigation (change
740
+ focus) commands a submode by using `postkeys` field. Default: `false`.
741
+ - <submode_resize> `(boolean)` - whether to make resize (change size)
742
+ commands a submode by using `postkeys` field. Default: `false`.
743
+
744
+ Return ~
745
+ `(table)` Array of clues.
746
+
747
+ ------------------------------------------------------------------------------
748
+ *MiniClue.gen_clues.z()*
749
+ `MiniClue.gen_clues.z`()
750
+ Generate clues for `z` key
751
+
752
+ Contains clues for the following triggers: >lua
753
+
754
+ { mode = { 'n', 'x' }, keys = 'z' }
755
+ <
756
+ Return ~
757
+ `(table)` Array of clues.
758
+
759
+
760
+ vim:tw=78:ts=8:noet:ft=help:norl: