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,197 @@
1
+ <p align="center"> <img src="https://github.com/nvim-mini/assets/blob/main/logo-2/logo-jump2d_readme.png?raw=true" alt="mini.jump2d" style="max-width:100%;border:solid 2px"/> </p>
2
+
3
+ ### Jump within visible lines via iterative label filtering
4
+
5
+ See more details in [Features](#features) and [Documentation](../doc/mini-jump2d.txt).
6
+
7
+ ---
8
+
9
+ > [!NOTE]
10
+ > This was previously hosted at a personal `echasnovski` GitHub account. It was transferred to a dedicated organization to improve long term project stability. See more details [here](https://github.com/nvim-mini/mini.nvim/discussions/1970).
11
+
12
+ ⦿ This is a part of [mini.nvim](https://nvim-mini.org/mini.nvim) library. Please use [this link](https://nvim-mini.org/mini.nvim/readmes/mini-jump2d) if you want to mention this module.
13
+
14
+ ⦿ All contributions (issues, pull requests, discussions, etc.) are done inside of 'mini.nvim'.
15
+
16
+ ⦿ See [whole library documentation](https://nvim-mini.org/mini.nvim/doc/mini-nvim) to learn about general design principles, disable/configuration recipes, and more.
17
+
18
+ ⦿ See [MiniMax](https://nvim-mini.org/MiniMax) for a full config example that uses this module.
19
+
20
+ ---
21
+
22
+ If you want to help this project grow but don't know where to start, check out [contributing guides of 'mini.nvim'](https://nvim-mini.org/mini.nvim/CONTRIBUTING) or leave a Github star for 'mini.nvim' project and/or any its standalone Git repositories.
23
+
24
+ ## Demo
25
+
26
+ <!-- Demo source: https://github.com/nvim-mini/assets/blob/main/demo/demo-jump2d.mp4 -->
27
+ https://user-images.githubusercontent.com/24854248/227734716-e7b6f2a8-4db1-441d-9b37-873da6772138.mp4
28
+
29
+ ## Features
30
+
31
+ - Make jump by iterative filtering of possible, equally considered jump spots until there is only one. Filtering is done by typing a label character that is visualized at jump spot.
32
+ - Customizable:
33
+ - Way of computing possible jump spots with opinionated default.
34
+ - Characters used to label jump spots during iterative filtering.
35
+ - Visual effects: how many steps ahead to show; dim lines with spots.
36
+ - Action hooks to be executed at certain events during jump.
37
+ - Allowed windows: current and/or not current.
38
+ - Allowed lines: whether to process blank or folded lines, lines before/at/after cursor line, etc. Example: user can configure to look for spots only inside current window at or after cursor line.
39
+ Example: user can configure to look for word starts only inside current window at or after cursor line with 'j' and 'k' labels performing some action after jump.
40
+ - Works in Visual and Operator-pending (with dot-repeat) modes.
41
+ - Preconfigured ways of computing jump spots (see help for `MiniJump2d.builtin_opts()`):
42
+ - Starts of lines.
43
+ - Starts of words.
44
+ - Single character from user input.
45
+ - Variable length query from user input.
46
+ - Works with multibyte characters.
47
+
48
+ ## Installation
49
+
50
+ This plugin can be installed as part of 'mini.nvim' library (**recommended**) or as a standalone Git repository.
51
+
52
+ There are two branches to install from:
53
+
54
+ - `main` (default, **recommended**) will have latest development version of plugin. All changes since last stable release should be perceived as being in beta testing phase (meaning they already passed alpha-testing and are moderately settled).
55
+ - `stable` will be updated only upon releases with code tested during public beta-testing phase in `main` branch.
56
+
57
+ Here are code snippets for some common installation methods (use only one):
58
+
59
+ <details>
60
+ <summary><b>(Recommended)</b> With <a href="https://neovim.io/doc/user/helptag.html?tag=vim.pack">vim.pack</a> (on Neovim 0.12 and newer)</summary>
61
+
62
+ **Full library**
63
+
64
+ Follow ['mini.nvim' installation](https://nvim-mini.org/mini.nvim#installation).
65
+
66
+ **Standalone plugin**
67
+
68
+ Main branch:
69
+
70
+ ```lua
71
+ vim.pack.add({ 'https://github.com/nvim-mini/mini.jump2d' })
72
+ ```
73
+
74
+ Stable branch:
75
+
76
+ ```lua
77
+ vim.pack.add({
78
+ { src = 'https://github.com/nvim-mini/mini.jump2d', version = 'stable' },
79
+ })
80
+ ```
81
+
82
+ </details>
83
+
84
+ <details>
85
+ <summary>With <a href="https://nvim-mini.org/mini.nvim/readmes/mini-deps">mini.deps</a> (before Neovim 0.12)</summary>
86
+
87
+ **Full library**
88
+
89
+ Follow [recommended 'mini.deps' installation](https://nvim-mini.org/mini.nvim/readmes/mini-deps#installation).
90
+
91
+ **Standalone plugin**:
92
+
93
+ Main branch:
94
+
95
+ ```lua
96
+ add('nvim-mini/mini.jump2d')
97
+ ```
98
+
99
+ Stable branch:
100
+
101
+ ```lua
102
+ add({ source = 'nvim-mini/mini.jump2d', checkout = 'stable' })
103
+ ```
104
+
105
+ </details>
106
+
107
+ <details>
108
+ <summary>With <a href="https://github.com/folke/lazy.nvim">folke/lazy.nvim</a></summary>
109
+
110
+ **Full library**
111
+
112
+ Follow ['mini.nvim' installation](https://nvim-mini.org/mini.nvim#installation).
113
+
114
+ **Standalone plugin**
115
+
116
+ Main branch:
117
+
118
+ ```lua
119
+ { 'nvim-mini/mini.jump2d', version = false },
120
+ ```
121
+
122
+ Stable branch:
123
+
124
+ ```lua
125
+ { 'nvim-mini/mini.jump2d', version = '*' },
126
+ ```
127
+
128
+ </details>
129
+
130
+ **Important**: don't forget to call `require('mini.jump2d').setup()` to enable its functionality.
131
+
132
+ **Note**: if you are on Windows, there might be problems with too long file paths (like `error: unable to create file <some file name>: Filename too long`). Try doing one of the following:
133
+
134
+ - Enable corresponding git global config value: `git config --system core.longpaths true`. Then try to reinstall.
135
+ - Install plugin in other place with shorter path.
136
+
137
+ ## Default config
138
+
139
+ ```lua
140
+ -- No need to copy this inside `setup()`. Will be used automatically.
141
+ {
142
+ -- Function producing jump spots (byte indexed) for a particular line.
143
+ -- For more information see |MiniJump2d.start|.
144
+ -- If `nil` (default) - use |MiniJump2d.default_spotter|
145
+ spotter = nil,
146
+
147
+ -- Characters used for labels of jump spots (in supplied order)
148
+ labels = 'abcdefghijklmnopqrstuvwxyz',
149
+
150
+ -- Options for visual effects
151
+ view = {
152
+ -- Whether to dim lines with at least one jump spot
153
+ dim = false,
154
+
155
+ -- How many steps ahead to show. Set to big number to show all steps.
156
+ n_steps_ahead = 0,
157
+ },
158
+
159
+ -- Which lines are used for computing spots
160
+ allowed_lines = {
161
+ blank = true, -- Blank line (not sent to spotter even if `true`)
162
+ cursor_before = true, -- Lines before cursor line
163
+ cursor_at = true, -- Cursor line
164
+ cursor_after = true, -- Lines after cursor line
165
+ fold = true, -- Start of fold (not sent to spotter even if `true`)
166
+ },
167
+
168
+ -- Which windows from current tabpage are used for visible lines
169
+ allowed_windows = {
170
+ current = true,
171
+ not_current = true,
172
+ },
173
+
174
+ -- Functions to be executed at certain events
175
+ hooks = {
176
+ before_start = nil, -- Before jump start
177
+ after_jump = nil, -- After jump was actually done
178
+ },
179
+
180
+ -- Module mappings. Use `''` (empty string) to disable one.
181
+ mappings = {
182
+ start_jumping = '<CR>',
183
+ },
184
+
185
+ -- Whether to disable showing non-error feedback
186
+ -- This also affects (purely informational) helper messages shown after
187
+ -- idle time if user input is required.
188
+ silent = false,
189
+ }
190
+ ```
191
+
192
+ ## Similar plugins
193
+
194
+ - [phaazon/hop.nvim](https://github.com/phaazon/hop.nvim) (main inspiration behind this module)
195
+ - [ggandor/lightspeed.nvim](https://github.com/ggandor/lightspeed.nvim)
196
+ - [ggandor/leap.nvim](https://github.com/ggandor/leap.nvim)
197
+ - [rlane/pounce.nvim](https://github.com/rlane/pounce.nvim)
@@ -0,0 +1,205 @@
1
+ <p align="center"> <img src="https://github.com/nvim-mini/assets/blob/main/logo-2/logo-keymap_readme.png?raw=true" alt="mini.keymap" style="max-width:100%;border:solid 2px"/> </p>
2
+
3
+ ### Special key mappings
4
+
5
+ See more details in [Features](#features) and [Documentation](../doc/mini-keymap.txt).
6
+
7
+ ---
8
+
9
+ > [!NOTE]
10
+ > This was previously hosted at a personal `echasnovski` GitHub account. It was transferred to a dedicated organization to improve long term project stability. See more details [here](https://github.com/nvim-mini/mini.nvim/discussions/1970).
11
+
12
+ ⦿ This is a part of [mini.nvim](https://nvim-mini.org/mini.nvim) library. Please use [this link](https://nvim-mini.org/mini.nvim/readmes/mini-keymap) if you want to mention this module.
13
+
14
+ ⦿ All contributions (issues, pull requests, discussions, etc.) are done inside of 'mini.nvim'.
15
+
16
+ ⦿ See [whole library documentation](https://nvim-mini.org/mini.nvim/doc/mini-nvim) to learn about general design principles, disable/configuration recipes, and more.
17
+
18
+ ⦿ See [MiniMax](https://nvim-mini.org/MiniMax) for a full config example that uses this module.
19
+
20
+ ---
21
+
22
+ If you want to help this project grow but don't know where to start, check out [contributing guides of 'mini.nvim'](https://nvim-mini.org/mini.nvim/CONTRIBUTING) or leave a Github star for 'mini.nvim' project and/or any its standalone Git repositories.
23
+
24
+ ## Demo
25
+
26
+ <!-- Demo source: https://github.com/nvim-mini/assets/blob/main/demo/demo-keymap.mp4 -->
27
+ https://github.com/user-attachments/assets/a3e34e9f-6901-4e57-a5bd-9508b2c6d065
28
+
29
+ ## Features
30
+
31
+ - Map keys to perform configurable multi-step actions: if condition for step one is true - execute step one action, else check step two, and so on until falling back to executing original keys. This is usually referred to as "smart" keys (like "smart tab"). See `:h MiniKeymap.map_multistep()`.
32
+
33
+ There are many built-in steps targeted for Insert mode mappings of special keys like `<Tab>`, `<S-Tab>`, `<CR>`, and `<BS>`:
34
+ - Navigate and accept built-in Insert mode completion. Useful for [mini.completion](https://nvim-mini.org/mini.nvim/readmes/mini-completion).
35
+ - Navigate and expand [mini.snippets](https://nvim-mini.org/mini.nvim/readmes/mini-snippets).
36
+ - Execute `<CR>` and `<BS>` respecting [mini.pairs](https://nvim-mini.org/mini.nvim/readmes/mini-pairs).
37
+ - Jump before/after current tree-sitter node.
38
+ - Jump before opening and after closing characters (brackets and quotes).
39
+ - Increase/decrease indent when cursor is inside of it.
40
+ - Delete all whitespace to the left ("hungry backspace").
41
+ - Navigate built-in snippet engine (`:h vim.snippet`).
42
+ - Navigate and accept in [hrsh7th/nvim-cmp](https://github.com/hrsh7th/nvim-cmp) completion.
43
+ - Navigate and accept in [Saghen/blink.cmp](https://github.com/Saghen/blink.cmp) completion.
44
+ - Navigate and expand [L3MON4D3/LuaSnip](https://github.com/L3MON4D3/LuaSnip) snippets.
45
+ - Execute `<CR>` and `<BS>` respecting [windwp/nvim-autopairs](https://github.com/windwp/nvim-autopairs).
46
+
47
+ - Map keys as "combo": each key acts immediately plus execute extra action if all are typed within configurable delay between each other. See `:h MiniKeymap.map_combo()`.
48
+
49
+ Some of the common use cases include:
50
+ - Map insertable keys (like "jk", "kj") in Insert and Command-line mode to exit into Normal mode.
51
+ - Fight against bad habits of pressing the same navigation key by showing a notification if there are too many of them pressed in a row.
52
+
53
+ Sources with more details:
54
+
55
+ - `:h MiniKeymap-examples`
56
+
57
+ ## Quickstart
58
+
59
+ ### Multi-step
60
+
61
+ Setup that works well with 'mini.completion' and 'mini.pairs':
62
+
63
+ ```lua
64
+ local map_multistep = require('mini.keymap').map_multistep
65
+
66
+ map_multistep('i', '<Tab>', { 'pmenu_next' })
67
+ map_multistep('i', '<S-Tab>', { 'pmenu_prev' })
68
+ map_multistep('i', '<CR>', { 'pmenu_accept', 'minipairs_cr' })
69
+ map_multistep('i', '<BS>', { 'minipairs_bs' })
70
+ ```
71
+
72
+ ### Combos
73
+
74
+ "Better escape" to Normal mode without having to reach for `<Esc>` key:
75
+
76
+ ```lua
77
+ local map_combo = require('mini.keymap').map_combo
78
+
79
+ -- Support most common modes. This can also contain 't', but would
80
+ -- only mean to press `<Esc>` inside terminal.
81
+ local mode = { 'i', 'c', 'x', 's' }
82
+ map_combo(mode, 'jk', '<BS><BS><Esc>')
83
+
84
+ -- To not have to worry about the order of keys, also map "kj"
85
+ map_combo(mode, 'kj', '<BS><BS><Esc>')
86
+
87
+ -- Escape into Normal mode from Terminal mode
88
+ map_combo('t', 'jk', '<BS><BS><C-\\><C-n>')
89
+ map_combo('t', 'kj', '<BS><BS><C-\\><C-n>')
90
+ ```
91
+
92
+ Show notification if there is too much movement by repeating same key:
93
+
94
+ ```lua
95
+ local notify_many_keys = function(key)
96
+ local lhs = string.rep(key, 5)
97
+ local action = function() vim.notify('Too many ' .. key) end
98
+ require('mini.keymap').map_combo({ 'n', 'x' }, lhs, action)
99
+ end
100
+ notify_many_keys('h')
101
+ notify_many_keys('j')
102
+ notify_many_keys('k')
103
+ notify_many_keys('l')
104
+ ```
105
+
106
+ ## Installation
107
+
108
+ This plugin can be installed as part of 'mini.nvim' library (**recommended**) or as a standalone Git repository.
109
+
110
+ There are two branches to install from:
111
+
112
+ - `main` (default, **recommended**) will have latest development version of plugin. All changes since last stable release should be perceived as being in beta testing phase (meaning they already passed alpha-testing and are moderately settled).
113
+ - `stable` will be updated only upon releases with code tested during public beta-testing phase in `main` branch.
114
+
115
+ Here are code snippets for some common installation methods (use only one):
116
+
117
+ <details>
118
+ <summary><b>(Recommended)</b> With <a href="https://neovim.io/doc/user/helptag.html?tag=vim.pack">vim.pack</a> (on Neovim 0.12 and newer)</summary>
119
+
120
+ **Full library**
121
+
122
+ Follow ['mini.nvim' installation](https://nvim-mini.org/mini.nvim#installation).
123
+
124
+ **Standalone plugin**
125
+
126
+ Main branch:
127
+
128
+ ```lua
129
+ vim.pack.add({ 'https://github.com/nvim-mini/mini.keymap' })
130
+ ```
131
+
132
+ Stable branch:
133
+
134
+ ```lua
135
+ vim.pack.add({
136
+ { src = 'https://github.com/nvim-mini/mini.keymap', version = 'stable' },
137
+ })
138
+ ```
139
+
140
+ </details>
141
+
142
+ <details>
143
+ <summary>With <a href="https://nvim-mini.org/mini.nvim/readmes/mini-deps">mini.deps</a> (before Neovim 0.12)</summary>
144
+
145
+ **Full library**
146
+
147
+ Follow [recommended 'mini.deps' installation](https://nvim-mini.org/mini.nvim/readmes/mini-deps#installation).
148
+
149
+ **Standalone plugin**:
150
+
151
+ Main branch:
152
+
153
+ ```lua
154
+ add('nvim-mini/mini.keymap')
155
+ ```
156
+
157
+ Stable branch:
158
+
159
+ ```lua
160
+ add({ source = 'nvim-mini/mini.keymap', checkout = 'stable' })
161
+ ```
162
+
163
+ </details>
164
+
165
+ <details>
166
+ <summary>With <a href="https://github.com/folke/lazy.nvim">folke/lazy.nvim</a></summary>
167
+
168
+ **Full library**
169
+
170
+ Follow ['mini.nvim' installation](https://nvim-mini.org/mini.nvim#installation).
171
+
172
+ **Standalone plugin**
173
+
174
+ Main branch:
175
+
176
+ ```lua
177
+ { 'nvim-mini/mini.keymap', version = false },
178
+ ```
179
+
180
+ Stable branch:
181
+
182
+ ```lua
183
+ { 'nvim-mini/mini.keymap', version = '*' },
184
+ ```
185
+
186
+ </details>
187
+
188
+ **Important**: no need to call `require('mini.keymap').setup()`, but it can be done to improve usability.
189
+
190
+ **Note**: if you are on Windows, there might be problems with too long file paths (like `error: unable to create file <some file name>: Filename too long`). Try doing one of the following:
191
+
192
+ - Enable corresponding git global config value: `git config --system core.longpaths true`. Then try to reinstall.
193
+ - Install plugin in other place with shorter path.
194
+
195
+ ## Default config
196
+
197
+ ```lua
198
+ -- No need to copy this inside `setup()`. Will be used automatically.
199
+ {}
200
+ ```
201
+
202
+ ## Similar plugins
203
+
204
+ - [max397574/better-escape.nvim](https://github.com/max397574/better-escape.nvim)
205
+ - [abecodes/tabout.nvim](https://github.com/abecodes/tabout.nvim)
@@ -0,0 +1,191 @@
1
+ <p align="center"> <img src="https://github.com/nvim-mini/assets/blob/main/logo-2/logo-map_readme.png?raw=true" alt="mini.map" style="max-width:100%;border:solid 2px"/> </p>
2
+
3
+ ### Window with buffer text overview, scrollbar, and highlights
4
+
5
+ See more details in [Features](#features) and [Documentation](../doc/mini-map.txt).
6
+
7
+ ---
8
+
9
+ > [!NOTE]
10
+ > This was previously hosted at a personal `echasnovski` GitHub account. It was transferred to a dedicated organization to improve long term project stability. See more details [here](https://github.com/nvim-mini/mini.nvim/discussions/1970).
11
+
12
+ ⦿ This is a part of [mini.nvim](https://nvim-mini.org/mini.nvim) library. Please use [this link](https://nvim-mini.org/mini.nvim/readmes/mini-map) if you want to mention this module.
13
+
14
+ ⦿ All contributions (issues, pull requests, discussions, etc.) are done inside of 'mini.nvim'.
15
+
16
+ ⦿ See [whole library documentation](https://nvim-mini.org/mini.nvim/doc/mini-nvim) to learn about general design principles, disable/configuration recipes, and more.
17
+
18
+ ⦿ See [MiniMax](https://nvim-mini.org/MiniMax) for a full config example that uses this module.
19
+
20
+ ---
21
+
22
+ If you want to help this project grow but don't know where to start, check out [contributing guides of 'mini.nvim'](https://nvim-mini.org/mini.nvim/CONTRIBUTING) or leave a Github star for 'mini.nvim' project and/or any its standalone Git repositories.
23
+
24
+ ## Demo
25
+
26
+ <!-- Demo source: https://github.com/nvim-mini/assets/blob/main/demo/demo-map.mp4 -->
27
+ https://user-images.githubusercontent.com/24854248/195806215-10e05020-50b7-4bee-9447-ee5af3e971ec.mp4
28
+
29
+ ## Features
30
+
31
+ - Show and manage special floating window displaying automatically updated overview of current buffer text. Window takes up whole height of Neovim instance and is fixed to a left/right side. Map content is computed by taking all current lines, converting it to binary whitespace/non-whitespace mask, rescaling to appropriate dimensions, and converting back to strings consisting from special encoding symbols. All this is done very fast and asynchronously.
32
+
33
+ See `:h MiniMap.open()`, `:h MiniMap.refresh()`, `:h MiniMap.close()`, `:h MiniMap.toggle()`, `:h MiniMap.toggle_side()`.
34
+
35
+ For a general overview and tips, see `:h mini.map-usage`.
36
+
37
+ - Show scrollbar next to map content. It represents current line and view (top and bottom visible lines). Can be the only thing shown, making map window a "pure scrollbar".
38
+
39
+ - Highlight map lines representing certain data in current buffer. This is done via extensible set of callables, called integrations. There are pre-built generators for common integrations:
40
+ - Builtin search.
41
+ - Builtin diagnostic.
42
+ - General diff hunks provided by ['mini.diff'](https://nvim-mini.org/mini.nvim/readmes/mini-diff).
43
+ - Hunks provided by ['lewis6991/gitsigns.nvim'](https://github.com/lewis6991/gitsigns.nvim).
44
+ For more details see `:h MiniMap.gen_integration`.
45
+
46
+ - Focus on map window to quickly browse current (source) buffer. Moving inside map window updates cursor position in source window enabling fast and targeted buffer exploration. To focus back, hit `<CR>` to accept current explored position or `<Esc>` to go back to original position. See `:h MiniMap.toggle_focus()`.
47
+
48
+ - Customizable:
49
+ - Encoding symbols used to display binary information of different resolution (default is 3x2). There are pre-built generators for different basic character families and resolutions. See `:h MiniMap.gen_encode_symbols`.
50
+ - Scrollbar symbols, separate for line and view. Can have any width (even zero, which virtually disables scrollbar).
51
+ - Integrations producing map line highlights.
52
+ - Window options: side (left/right), width, 'winblend', and more.
53
+
54
+ ## Installation
55
+
56
+ This plugin can be installed as part of 'mini.nvim' library (**recommended**) or as a standalone Git repository.
57
+
58
+ There are two branches to install from:
59
+
60
+ - `main` (default, **recommended**) will have latest development version of plugin. All changes since last stable release should be perceived as being in beta testing phase (meaning they already passed alpha-testing and are moderately settled).
61
+ - `stable` will be updated only upon releases with code tested during public beta-testing phase in `main` branch.
62
+
63
+ Here are code snippets for some common installation methods (use only one):
64
+
65
+ <details>
66
+ <summary><b>(Recommended)</b> With <a href="https://neovim.io/doc/user/helptag.html?tag=vim.pack">vim.pack</a> (on Neovim 0.12 and newer)</summary>
67
+
68
+ **Full library**
69
+
70
+ Follow ['mini.nvim' installation](https://nvim-mini.org/mini.nvim#installation).
71
+
72
+ **Standalone plugin**
73
+
74
+ Main branch:
75
+
76
+ ```lua
77
+ vim.pack.add({ 'https://github.com/nvim-mini/mini.map' })
78
+ ```
79
+
80
+ Stable branch:
81
+
82
+ ```lua
83
+ vim.pack.add({
84
+ { src = 'https://github.com/nvim-mini/mini.map', version = 'stable' },
85
+ })
86
+ ```
87
+
88
+ </details>
89
+
90
+ <details>
91
+ <summary>With <a href="https://nvim-mini.org/mini.nvim/readmes/mini-deps">mini.deps</a> (before Neovim 0.12)</summary>
92
+
93
+ **Full library**
94
+
95
+ Follow [recommended 'mini.deps' installation](https://nvim-mini.org/mini.nvim/readmes/mini-deps#installation).
96
+
97
+ **Standalone plugin**:
98
+
99
+ Main branch:
100
+
101
+ ```lua
102
+ add('nvim-mini/mini.map')
103
+ ```
104
+
105
+ Stable branch:
106
+
107
+ ```lua
108
+ add({ source = 'nvim-mini/mini.map', checkout = 'stable' })
109
+ ```
110
+
111
+ </details>
112
+
113
+ <details>
114
+ <summary>With <a href="https://github.com/folke/lazy.nvim">folke/lazy.nvim</a></summary>
115
+
116
+ **Full library**
117
+
118
+ Follow ['mini.nvim' installation](https://nvim-mini.org/mini.nvim#installation).
119
+
120
+ **Standalone plugin**
121
+
122
+ Main branch:
123
+
124
+ ```lua
125
+ { 'nvim-mini/mini.map', version = false },
126
+ ```
127
+
128
+ Stable branch:
129
+
130
+ ```lua
131
+ { 'nvim-mini/mini.map', version = '*' },
132
+ ```
133
+
134
+ </details>
135
+
136
+ **Important**: don't forget to call `require('mini.map').setup()` to enable its functionality.
137
+
138
+ **Note**: if you are on Windows, there might be problems with too long file paths (like `error: unable to create file <some file name>: Filename too long`). Try doing one of the following:
139
+
140
+ - Enable corresponding git global config value: `git config --system core.longpaths true`. Then try to reinstall.
141
+ - Install plugin in other place with shorter path.
142
+
143
+ ## Default config
144
+
145
+ ```lua
146
+ -- No need to copy this inside `setup()`. Will be used automatically.
147
+ {
148
+ -- Highlight integrations (none by default)
149
+ integrations = nil,
150
+
151
+ -- Symbols used to display data
152
+ symbols = {
153
+ -- Encode symbols. See `:h MiniMap.config` for specification and
154
+ -- `:h MiniMap.gen_encode_symbols` for pre-built ones.
155
+ -- Default: solid blocks with 3x2 resolution.
156
+ encode = nil,
157
+
158
+ -- Scrollbar parts for view and line. Use empty string to disable any.
159
+ scroll_line = '█',
160
+ scroll_view = '┃',
161
+ },
162
+
163
+ -- Window options
164
+ window = {
165
+ -- Whether window is focusable in normal way (with `wincmd` or mouse)
166
+ focusable = false,
167
+
168
+ -- Side to stick ('left' or 'right')
169
+ side = 'right',
170
+
171
+ -- Whether to show count of multiple integration highlights
172
+ show_integration_count = true,
173
+
174
+ -- Total width
175
+ width = 10,
176
+
177
+ -- Value of 'winblend' option
178
+ winblend = 25,
179
+
180
+ -- Z-index
181
+ zindex = 10,
182
+ },
183
+ }
184
+ ```
185
+
186
+ ## Similar plugins
187
+
188
+ - [wfxr/minimap.vim](https://github.com/wfxr/minimap.vim)
189
+ - [dstein64/nvim-scrollview](https://github.com/dstein64/nvim-scrollview)
190
+ - [petertriho/nvim-scrollbar](https://github.com/petertriho/nvim-scrollbar)
191
+ - [lewis6991/satellite.nvim](https://github.com/lewis6991/satellite.nvim)