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,137 @@
1
+ <p align="center"> <img src="https://github.com/nvim-mini/assets/blob/main/logo-2/logo-cursorword_readme.png?raw=true" alt="mini.cursorword" style="max-width:100%;border:solid 2px"/> </p>
2
+
3
+ ### Automatic highlighting of word under cursor
4
+
5
+ See more details in [Features](#features) and [Documentation](../doc/mini-cursorword.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-cursorword) 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-cursorword.mp4 -->
27
+ https://user-images.githubusercontent.com/24854248/173044454-0e4ab873-6e73-448d-838f-45f4b2be876b.mp4
28
+
29
+ ## Features
30
+
31
+ - Current word under cursor can be highlighted differently.
32
+ - "Word under cursor" is meant as in Vim's `<cword>`: something user would get as 'iw' text object.
33
+ - Highlighting stops in insert and terminal modes.
34
+
35
+ ## Installation
36
+
37
+ This plugin can be installed as part of 'mini.nvim' library (**recommended**) or as a standalone Git repository.
38
+
39
+ There are two branches to install from:
40
+
41
+ - `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).
42
+ - `stable` will be updated only upon releases with code tested during public beta-testing phase in `main` branch.
43
+
44
+ Here are code snippets for some common installation methods (use only one):
45
+
46
+ <details>
47
+ <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>
48
+
49
+ **Full library**
50
+
51
+ Follow ['mini.nvim' installation](https://nvim-mini.org/mini.nvim#installation).
52
+
53
+ **Standalone plugin**
54
+
55
+ Main branch:
56
+
57
+ ```lua
58
+ vim.pack.add({ 'https://github.com/nvim-mini/mini.cursorword' })
59
+ ```
60
+
61
+ Stable branch:
62
+
63
+ ```lua
64
+ vim.pack.add({
65
+ { src = 'https://github.com/nvim-mini/mini.cursorword', version = 'stable' },
66
+ })
67
+ ```
68
+
69
+ </details>
70
+
71
+ <details>
72
+ <summary>With <a href="https://nvim-mini.org/mini.nvim/readmes/mini-deps">mini.deps</a> (before Neovim 0.12)</summary>
73
+
74
+ **Full library**
75
+
76
+ Follow [recommended 'mini.deps' installation](https://nvim-mini.org/mini.nvim/readmes/mini-deps#installation).
77
+
78
+ **Standalone plugin**:
79
+
80
+ Main branch:
81
+
82
+ ```lua
83
+ add('nvim-mini/mini.cursorword')
84
+ ```
85
+
86
+ Stable branch:
87
+
88
+ ```lua
89
+ add({ source = 'nvim-mini/mini.cursorword', checkout = 'stable' })
90
+ ```
91
+
92
+ </details>
93
+
94
+ <details>
95
+ <summary>With <a href="https://github.com/folke/lazy.nvim">folke/lazy.nvim</a></summary>
96
+
97
+ **Full library**
98
+
99
+ Follow ['mini.nvim' installation](https://nvim-mini.org/mini.nvim#installation).
100
+
101
+ **Standalone plugin**
102
+
103
+ Main branch:
104
+
105
+ ```lua
106
+ { 'nvim-mini/mini.cursorword', version = false },
107
+ ```
108
+
109
+ Stable branch:
110
+
111
+ ```lua
112
+ { 'nvim-mini/mini.cursorword', version = '*' },
113
+ ```
114
+
115
+ </details>
116
+
117
+ **Important**: don't forget to call `require('mini.cursorword').setup()` to enable its functionality.
118
+
119
+ **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:
120
+
121
+ - Enable corresponding git global config value: `git config --system core.longpaths true`. Then try to reinstall.
122
+ - Install plugin in other place with shorter path.
123
+
124
+ ## Default config
125
+
126
+ ```lua
127
+ -- No need to copy this inside `setup()`. Will be used automatically.
128
+ {
129
+ -- Delay (in ms) between when cursor moved and when highlighting appeared
130
+ delay = 100,
131
+ }
132
+ ```
133
+
134
+ ## Similar plugins
135
+
136
+ - [RRethy/vim-illuminate](https://github.com/RRethy/vim-illuminate)
137
+ - [itchyny/vim-cursorword](https://github.com/itchyny/vim-cursorword)
@@ -0,0 +1,271 @@
1
+ <p align="center"> <img src="https://github.com/nvim-mini/assets/blob/main/logo-2/logo-deps_readme.png?raw=true" alt="mini.deps" style="max-width:100%;border:solid 2px"/> </p>
2
+
3
+ ### Plugin manager
4
+
5
+ Depends on [`git`](https://git-scm.com/) CLI tool being installed and callable. Make sure to have it set up.
6
+
7
+ See more details in [Features](#features) and [Documentation](../doc/mini-deps.txt).
8
+
9
+ ---
10
+
11
+ > [!NOTE]
12
+ > 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).
13
+
14
+ ⦿ 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-deps) if you want to mention this module.
15
+
16
+ ⦿ All contributions (issues, pull requests, discussions, etc.) are done inside of 'mini.nvim'.
17
+
18
+ ⦿ See [whole library documentation](https://nvim-mini.org/mini.nvim/doc/mini-nvim) to learn about general design principles, disable/configuration recipes, and more.
19
+
20
+ ⦿ See [MiniMax](https://nvim-mini.org/MiniMax) for a full config example that uses this module.
21
+
22
+ ---
23
+
24
+ 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.
25
+
26
+ ## Demo
27
+
28
+ <!-- Demo source: https://github.com/nvim-mini/assets/blob/main/demo/demo-deps.mp4 -->
29
+ https://github.com/nvim-mini/mini.nvim/assets/24854248/e3b0659b-ce79-4464-8601-e0117f38569f
30
+
31
+ **Note**: This demo features custom `vim.notify()` from [mini.notify](https://nvim-mini.org/mini.nvim/readmes/mini-notify).
32
+
33
+ ## Development freeze
34
+
35
+ As Neovim=0.12 introduced a built-in plugin manager [vim.pack](https://neovim.io/doc/user/helptag.html?tag=vim.pack) (which used this module as a design reference), development of 'mini.deps' is frozen. It means:
36
+
37
+ - On Neovim>=0.12 it is recommended to use [vim.pack](https://neovim.io/doc/user/helptag.html?tag=vim.pack) for plugin management and `:h MiniMisc.safely()` as `MiniDeps.now()` and `MiniDeps.later()` alternative. See [https://echasnovski.com/vim-pack-guide](https://echasnovski.com/vim-pack-guide) for more details, including recommendations about migration from 'mini.deps'.
38
+
39
+ - This module will remain a part of 'mini.nvim' at least until Neovim=0.11 is supported. It might receive critical fixes, but likely no new features.
40
+
41
+ ## Features
42
+
43
+ - Manage plugins utilizing Git and built-in packages with these actions:
44
+ - Add plugin to current session, download if absent.
45
+ - Update with/without confirm, with/without parallel download of new data.
46
+ - Delete unused plugins with/without confirm.
47
+ - Get / set / save / load snapshot.
48
+
49
+ - Minimal yet flexible plugin specification:
50
+ - Plugin source.
51
+ - Name of target plugin directory.
52
+ - Checkout target: branch, commit, tag, etc.
53
+ - Monitor branch to track updates without checking out.
54
+ - Dependencies to be set up prior to the target plugin.
55
+ - Hooks to call before/after plugin is created/changed.
56
+
57
+ - Helpers implementing two-stage startup: `now()` and `later()`.
58
+
59
+ For more information see these parts of help:
60
+
61
+ - `:h MiniDeps-overview`
62
+ - `:h MiniDeps-plugin-specification`
63
+ - `:h MiniDeps-commands`
64
+
65
+ ## Installation
66
+
67
+ This plugin can be installed as part of 'mini.nvim' library (**recommended**) or as a standalone Git repository.
68
+
69
+ Installation should be done manually with `git clone` in the proper directory. Here is a suggested snippet to put at the top of your 'init.lua':
70
+
71
+ ```lua
72
+ -- Clone 'mini.nvim' manually in a way that it gets managed by 'mini.deps'
73
+ local path_package = vim.fn.stdpath('data') .. '/site/'
74
+ local mini_path = path_package .. 'pack/deps/start/mini.nvim'
75
+ if not vim.loop.fs_stat(mini_path) then
76
+ vim.cmd('echo "Installing `mini.nvim`" | redraw')
77
+ local clone_cmd = {
78
+ 'git', 'clone', '--filter=blob:none',
79
+ 'https://github.com/nvim-mini/mini.nvim', mini_path
80
+ }
81
+ vim.fn.system(clone_cmd)
82
+ vim.cmd('packadd mini.nvim | helptags ALL')
83
+ vim.cmd('echo "Installed `mini.nvim`" | redraw')
84
+ end
85
+
86
+ -- Set up 'mini.deps' (customize to your liking)
87
+ require('mini.deps').setup({ path = { package = path_package } })
88
+ ```
89
+
90
+ Using default 'main' branch is OK, as changes there rarely accidentally break something (so far). However, if you want to be extra safe and use only stable releases of 'mini.nvim', add `MiniDeps.add({ name = 'mini.nvim', checkout = 'stable' })` call after 'mini.deps' is set up and execute `:DepsUpdateOffline mini.nvim`.
91
+
92
+ To install from standalone repository, replace any occurrence of 'mini.nvim' in the code snippet to 'mini.deps'.
93
+
94
+ **NOTE**: 'mini.nvim' is installed in 'pack/deps/start' and not 'pack/deps/opt' to always be included in 'mini.deps' session. If you want to make it "opt" plugin (as any other installed plugin), use 'pack/deps/opt' but add `MiniDeps.add('mini.nvim')` call after 'mini.deps' is set up.
95
+
96
+ ## Overview
97
+
98
+ See and use [example 'init.lua' file](../scripts/init-deps-example.lua) as a quick demo of how 'mini.deps' can be used:
99
+
100
+ - Copy its contents into a '~/.config/nvim-deps/init.lua' file (on UNIX systems).
101
+ - Run `NVIM_APPNAME=nvim-deps nvim -- ~/.config/nvim-deps/init.lua` (on Neovim<0.10 might display tree-sitter issues on first start). This will run Neovim with that 'init.lua' as the only config **while completely not affecting your current config**.
102
+
103
+ ### Directory structure
104
+
105
+ This module uses built-in packages to make plugins usable in current session. It works with "pack/deps" package inside `config.path.package` directory.
106
+
107
+ By default "opt" subdirectory is used to install optional plugins which are loaded on demand with `MiniDeps.add()`.
108
+ Non-optional plugins in "start" subdirectory are supported but only if moved there manually after initial install.
109
+
110
+ ### Add plugin
111
+
112
+ Use `MiniDeps.add()` to add plugin to current session. Supply plugin's URL source as a string or plugin specification in general. If plugin is not present in "pack/deps" package, it will be created (a.k.a. installed) before processing anything else.
113
+
114
+ The recommended way of adding a plugin is by calling `MiniDeps.add()` in the 'init.lua' file (make sure `MiniDeps.setup()` is called prior):
115
+
116
+ ```lua
117
+ local add = MiniDeps.add
118
+
119
+ -- Add to current session (install if absent)
120
+ add({
121
+ source = 'neovim/nvim-lspconfig',
122
+ -- Supply dependencies near target plugin
123
+ depends = { 'williamboman/mason.nvim' },
124
+ })
125
+
126
+ add({
127
+ source = 'nvim-treesitter/nvim-treesitter',
128
+ -- Use 'master' while monitoring updates in 'main'
129
+ checkout = 'master',
130
+ monitor = 'main',
131
+ -- Perform action after every checkout
132
+ hooks = { post_checkout = function() vim.cmd('TSUpdate') end },
133
+ })
134
+ -- Possible to immediately execute code which depends on the added plugin
135
+ require('nvim-treesitter.configs').setup({
136
+ ensure_installed = { 'lua', 'vimdoc' },
137
+ highlight = { enable = true },
138
+ })
139
+ ```
140
+
141
+ NOTE:
142
+
143
+ - To increase performance, `add()` only ensures presence on disk and nothing else. In particular, it doesn't ensure `opts.checkout` state. Update or modify plugin state explicitly (see later sections).
144
+
145
+ ### Plugin specification
146
+
147
+ Specification can be a single string which is inferred as:
148
+
149
+ - Plugin `name` if it doesn't contain "/".
150
+ - Plugin `source` otherwise.
151
+
152
+ Primarily, specification is a table with the following fields (see `:h MiniDeps-plugin-specification` for more details):
153
+
154
+ | Field | Description |
155
+ |------------|------------------------------|
156
+ | `source` | URI of plugin source |
157
+ | `name` | Name to be used on disk |
158
+ | `checkout` | Target state |
159
+ | `monitor` | Monitor branch |
160
+ | `depends` | Array of plugin dependencies |
161
+ | `hooks` | Table with hooks |
162
+
163
+ ### Lazy loading
164
+
165
+ Any lazy-loading is assumed to be done manually by calling `MiniDeps.add()` at appropriate time. This module provides helpers implementing special safe two-stage loading:
166
+
167
+ - `MiniDeps.now()` safely executes code immediately. Use it to load plugins with UI necessary to make initial screen draw.
168
+ - `MiniDeps.later()` schedules code to be safely executed later, preserving order. Use it (with caution) for everything else which doesn't need precisely timed effect, as it will be executed some time soon on one of the next event loops.
169
+
170
+ ```lua
171
+ local now, later = MiniDeps.now, MiniDeps.later
172
+
173
+ -- Safely execute immediately
174
+ now(function() vim.cmd('colorscheme miniwinter') end)
175
+ now(function() require('mini.statusline').setup() end)
176
+
177
+ -- Safely execute later
178
+ later(function() require('mini.pick').setup() end)
179
+ ```
180
+
181
+ ### Update
182
+
183
+ To update plugins from current session with new data from their sources, use `:DepsUpdate`. This will download updates (utilizing multiple cores) and show confirmation buffer. Follow instructions at its top to finish an update.
184
+
185
+ NOTE: This updates plugins on disk which most likely won't affect current session. Restart Nvim to have them properly loaded.
186
+
187
+ ### Modify
188
+
189
+ To change plugin's specification (like set different `checkout`, etc.):
190
+
191
+ - Update corresponding `MiniDeps.add()` call.
192
+ - Run `:DepsUpdateOffline <plugin_name>`.
193
+ - Review changes and confirm.
194
+ - Restart Nvim.
195
+
196
+ NOTE: if `add()` prior used a single source string, make sure to convert its argument to `{ source = '<previous_argument>', checkout = '<state>'}`
197
+
198
+ ### Snapshots
199
+
200
+ Use `:DepsSnapSave` to save state of all plugins from current session into a snapshot file (see `config.path.snapshot`).
201
+
202
+ Use `:DepsSnapLoad` to load snapshot. This will change (without confirmation) state on disk. Plugins present in both snapshot file and current session will be affected. Restart Nvim to see the effect.
203
+
204
+ NOTE: loading snapshot does not change plugin's specification defined inside `MiniDeps.add()` call. This means that next update might change plugin's state. To make it permanent, freeze plugin in target state manually.
205
+
206
+ ### Freeze
207
+
208
+ Modify plugin's specification to have `checkout` pointing to a static target: tag, state (commit hash), or 'HEAD' (to freeze in current state).
209
+
210
+ Frozen plugins will not receive updates. You can monitor any new changes from its source by "subscribing" to `monitor` branch which will be shown inside confirmation buffer after `:DepsUpdate`.
211
+
212
+ Example: use `checkout = 'v0.10.0'` to freeze plugin at tag "v0.10.0" while monitoring new versions in the log from `monitor` (usually default) branch.
213
+
214
+ ### Rollback
215
+
216
+ To roll back after an unfortunate update:
217
+
218
+ - Get identifier of latest working state:
219
+ - Use `:DepsShowLog` to see update log, look for plugin's name, and copy
220
+ identifier listed as "State before:".
221
+ - See previously saved snapshot file for plugin's name and copy
222
+ identifier next to it.
223
+ - Freeze plugin at that state while monitoring appropriate branch.
224
+ Revert to previous shape of `MiniDeps.add()` call to resume updating.
225
+
226
+ ### Remove
227
+
228
+ - Make sure that target plugin is not registered in current session.
229
+ Usually it means removing corresponding `MiniDeps.add()` call.
230
+ - Run `:DepsClean`. This will show confirmation buffer with a list of plugins to
231
+ be deleted from disk. Follow instructions at its top to finish cleaning.
232
+
233
+ Alternatively, manually delete plugin's directory from "pack/deps" package.
234
+
235
+ ## Default config
236
+
237
+ ```lua
238
+ -- No need to copy this inside `setup()`. Will be used automatically.
239
+ {
240
+ -- Parameters of CLI jobs
241
+ job = {
242
+ -- Number of parallel threads to use. Default: 80% of all available.
243
+ n_threads = nil,
244
+
245
+ -- Timeout (in ms) for each job before force quit
246
+ timeout = 30000,
247
+ },
248
+
249
+ -- Paths describing where to store data
250
+ path = {
251
+ -- Directory for built-in package.
252
+ -- All plugins are actually stored in 'pack/deps' subdirectory.
253
+ package = vim.fn.stdpath('data') .. '/site',
254
+
255
+ -- Default file path for a snapshot
256
+ snapshot = vim.fn.stdpath('config') .. '/mini-deps-snap',
257
+
258
+ -- Log file
259
+ log = vim.fn.stdpath('log') .. '/mini-deps.log'
260
+ },
261
+
262
+ -- Whether to disable showing non-error feedback
263
+ silent = false,
264
+ }
265
+ ```
266
+
267
+ ## Similar plugins
268
+
269
+ - [folke/lazy.nvim](https://github.com/folke/lazy.nvim)
270
+ - [savq/paq-nvim](https://github.com/savq/paq-nvim)
271
+ - [junegunn/vim-plug](https://github.com/junegunn/vim-plug)