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,420 @@
1
+ *mini.hues* Generate configurable color scheme
2
+
3
+ MIT License Copyright (c) 2023 Evgeni Chasnovski
4
+
5
+ ------------------------------------------------------------------------------
6
+ *MiniHues*
7
+ Features:
8
+ - Required to set two base colors: background and foreground.
9
+ Their shades and other non-base colors are computed to be as much
10
+ perceptually different as reasonably possible.
11
+ See |MiniHues.config| for setup inspiration.
12
+
13
+ - Configurable:
14
+ - Number of hues used for non-base colors (from 0 to 8).
15
+ - Saturation level ("low", "lowmedium", "medium", "mediumhigh", "high").
16
+ - Accent color used for some selected UI elements.
17
+ - Plugin integration (can be selectively enabled for faster startup).
18
+
19
+ - Random generator for base colors. See |MiniHues.gen_random_base_colors()|.
20
+ Powers |randomhue| color scheme.
21
+
22
+ - Lua function to compute palette used in color scheme.
23
+ See |MiniHues.make_palette()|.
24
+
25
+ - Bundled color schemes. See |MiniHues-color-schemes|.
26
+
27
+ Supported highlight groups:
28
+ - All built-in UI and syntax groups.
29
+
30
+ - Built-in Neovim LSP and diagnostic.
31
+
32
+ - Tree-sitter (|treesitter-highlight-groups|).
33
+
34
+ - LSP semantic tokens (|lsp-semantic-highlight|).
35
+
36
+ - Plugins (either with explicit definition or by verification that default
37
+ highlighting works appropriately):
38
+ - [nvim-mini/mini.nvim](https://nvim-mini.org/mini.nvim)
39
+ - [akinsho/bufferline.nvim](https://github.com/akinsho/bufferline.nvim)
40
+ - [anuvyklack/hydra.nvim](https://github.com/anuvyklack/hydra.nvim)
41
+ - [DanilaMihailov/beacon.nvim](https://github.com/DanilaMihailov/beacon.nvim)
42
+ - [folke/lazy.nvim](https://github.com/folke/lazy.nvim)
43
+ - [folke/noice.nvim](https://github.com/folke/noice.nvim)
44
+ - [folke/snacks.nvim](https://github.com/folke/snacks.nvim)
45
+ - [folke/todo-comments.nvim](https://github.com/folke/todo-comments.nvim)
46
+ - [folke/trouble.nvim](https://github.com/folke/trouble.nvim)
47
+ - [folke/which-key.nvim](https://github.com/folke/which-key.nvim)
48
+ - [ggandor/leap.nvim](https://github.com/ggandor/leap.nvim)
49
+ - [glepnir/dashboard-nvim](https://github.com/glepnir/dashboard-nvim)
50
+ - [glepnir/lspsaga.nvim](https://github.com/glepnir/lspsaga.nvim)
51
+ - [HiPhish/rainbow-delimiters.nvim](https://github.com/HiPhish/rainbow-delimiters.nvim)
52
+ - [hrsh7th/nvim-cmp](https://github.com/hrsh7th/nvim-cmp)
53
+ - [ibhagwan/fzf-lua](https://github.com/ibhagwan/fzf-lua)
54
+ - [justinmk/vim-sneak](https://github.com/justinmk/vim-sneak)
55
+ - [kevinhwang91/nvim-bqf](https://github.com/kevinhwang91/nvim-bqf)
56
+ - [kevinhwang91/nvim-ufo](https://github.com/kevinhwang91/nvim-ufo)
57
+ - [lewis6991/gitsigns.nvim](https://github.com/lewis6991/gitsigns.nvim)
58
+ - [lukas-reineke/indent-blankline.nvim](https://github.com/lukas-reineke/indent-blankline.nvim)
59
+ - [MeanderingProgrammer/render-markdown.nvim](https://github.com/MeanderingProgrammer/render-markdown.nvim)
60
+ - [neoclide/coc.nvim](https://github.com/neoclide/coc.nvim)
61
+ - [NeogitOrg/neogit](https://github.com/NeogitOrg/neogit)
62
+ - [nvim-lualine/lualine.nvim](https://github.com/nvim-lualine/lualine.nvim)
63
+ - [nvim-neo-tree/neo-tree.nvim](https://github.com/nvim-neo-tree/neo-tree.nvim)
64
+ - [nvim-telescope/telescope.nvim](https://github.com/nvim-telescope/telescope.nvim)
65
+ - [nvim-tree/nvim-tree.lua](https://github.com/nvim-tree/nvim-tree.lua)
66
+ - [OXY2DEV/helpview.nvim](https://github.com/OXY2DEV/helpview.nvim)
67
+ - [OXY2DEV/markview.nvim](https://github.com/OXY2DEV/markview.nvim)
68
+ - [phaazon/hop.nvim](https://github.com/phaazon/hop.nvim)
69
+ - [rcarriga/nvim-dap-ui](https://github.com/rcarriga/nvim-dap-ui)
70
+ - [rcarriga/nvim-notify](https://github.com/rcarriga/nvim-notify)
71
+ - [rlane/pounce.nvim](https://github.com/rlane/pounce.nvim)
72
+ - [romgrk/barbar.nvim](https://github.com/romgrk/barbar.nvim)
73
+ - [saghen/blink.cmp](https://github.com/saghen/blink.cmp)
74
+ - [stevearc/aerial.nvim](https://github.com/stevearc/aerial.nvim)
75
+ - [williamboman/mason.nvim](https://github.com/williamboman/mason.nvim)
76
+
77
+ # Setup ~
78
+
79
+ This module needs a setup with `require('mini.hues').setup({})` and
80
+ MANDATORY `background` AND `foreground` FIELDS (add more fields to fit
81
+ your taste). It will create global Lua table `MiniHues` which you can use
82
+ for scripting or manually (with `:lua MiniHues.*`).
83
+
84
+ See |MiniHues.config| for `config` structure and default values.
85
+
86
+ This module doesn't have runtime options, so using `vim.b.minihues_config`
87
+ will have no effect here.
88
+
89
+ Example: >lua
90
+
91
+ require('mini.hues').setup({
92
+ background = '#11262d',
93
+ foreground = '#c0c8cc',
94
+ plugins = {
95
+ default = false,
96
+ ['nvim-mini/mini.nvim'] = true,
97
+ },
98
+ })
99
+ <
100
+ # Notes ~
101
+
102
+ - This is used to create some of plugin's color schemes
103
+ (see |MiniHues-color-schemes|).
104
+
105
+ - Using `setup()` doesn't actually create a colorscheme. It basically
106
+ creates a coordinated set of |highlight-groups|. To create your own scheme:
107
+ - Put "myscheme.lua" file (name after your chosen theme name) inside
108
+ any "colors" directory reachable from |'runtimepath'| ("colors" inside
109
+ your Neovim config directory is usually enough).
110
+ - Inside "myscheme.lua" call `require('mini.hues').setup()` with your
111
+ palette and only after that set |g:colors_name| to "myscheme".
112
+
113
+ - This module doesn't define |cterm-colors| for implementation simplicity.
114
+ It only works if |'termguicolors'| is enabled (should be done automatically
115
+ if the terminal emulator supporst 24-bit colors). If not possible,
116
+ use |MiniColors-colorscheme:add_cterm_attributes()| from |mini.colors|
117
+ to define custom color scheme with 16-color support.
118
+
119
+ ------------------------------------------------------------------------------
120
+ *MiniHues-color-schemes*
121
+ Bundled color schemes
122
+
123
+ - *miniwinter* : "icy winter" palette with azure background.
124
+ - *minispring* : "blooming spring" palette with green background.
125
+ - *minisummer* : "hot summer" palette with brown/yellow background.
126
+ - *miniautumn* : "cooling autumn" palette with purple background.
127
+
128
+ - *randomhue* : uses randomly generated same hue background and foreground.
129
+ Every `:colorscheme randomhue` call results in a different (randomly yet
130
+ carefully selected) colors.
131
+
132
+ It is essentially a combination of calls to |MiniHues.setup()| and
133
+ |MiniHues.gen_random_base_colors()| with slight adjustments for |'background'|.
134
+
135
+ Activate it as regular |:colorscheme|. Get currently active config with
136
+ `:lua print(vim.inspect(MiniHues.config))`.
137
+
138
+ ------------------------------------------------------------------------------
139
+ *MiniHues.setup()*
140
+ `MiniHues.setup`({config})
141
+ Module setup
142
+
143
+ Main side effect is to create palette and apply it. Essentially, a combination
144
+ of |MiniHues.make_palette()| and |MiniHues.apply_palette()|.
145
+
146
+ Usage ~
147
+ >lua
148
+ require('mini.hues').setup({
149
+ -- Use config table as you like
150
+ -- Needs both `background` and `foreground` fields present
151
+ background = '#11262d',
152
+ foreground = '#c0c8cc',
153
+ })
154
+ <
155
+ ------------------------------------------------------------------------------
156
+ *MiniHues.config*
157
+ `MiniHues.config`
158
+ Defaults ~
159
+ >lua
160
+ MiniHues.config = {
161
+ -- REQUIRED base colors as '#rrggbb' hex strings
162
+ background = nil,
163
+ foreground = nil,
164
+
165
+ -- Number of hues used for non-base colors
166
+ n_hues = 8,
167
+
168
+ -- Saturation. One of 'low', 'lowmedium', 'medium', 'mediumhigh', 'high'.
169
+ saturation = 'medium',
170
+
171
+ -- Accent color. One of: 'bg', 'fg', 'red', 'orange', 'yellow', 'green',
172
+ -- 'cyan', 'azure', 'blue', 'purple'
173
+ accent = 'bg',
174
+
175
+ -- Plugin integrations. Use `default = false` to disable all integrations.
176
+ -- Also can be set per plugin (see |MiniHues.config|).
177
+ plugins = { default = true },
178
+
179
+ -- Whether to auto adjust highlight groups based on certain events
180
+ autoadjust = true,
181
+ }
182
+ <
183
+ See |MiniHues.make_palette()| for more information about how certain settings
184
+ affect output color scheme.
185
+
186
+ # Plugin integrations ~
187
+
188
+ `config.plugins` defines for which supported plugins highlight groups will
189
+ be created. Limiting number of integrations slightly decreases startup time.
190
+ It is a table with boolean (`true`/`false`) values which are applied as follows:
191
+ - If plugin name (as listed in |mini.hues|) has entry, it is used.
192
+ - Otherwise `config.plugins.default` is used.
193
+
194
+ Example which will load only "mini.nvim" integration: >lua
195
+
196
+ require('mini.hues').setup({
197
+ background = '#11262d',
198
+ foreground = '#c0c8cc',
199
+ plugins = {
200
+ default = false,
201
+ ['nvim-mini/mini.nvim'] = true,
202
+ },
203
+ })
204
+ <
205
+ # Auto adjust ~
206
+
207
+ `config.autoadjust` defines whether to adjust some highlight groups based on
208
+ events relevant to them. Currently adjusted groups:
209
+
210
+ - |hl-MsgSeparator| is adjusted based on `msgsep` flag in |'fillchars'|.
211
+ If it is whitespace - highlight background, otherwise - foreground.
212
+
213
+ - |hl-Pmenu| is adjusted based on |'pumborder'| value (on Neovim>=0.12).
214
+ If it results in a border - same as floating window (but with no accent
215
+ foreground in border), otherwise - same as |hl-CursorLine|. This design
216
+ makes |ins-completion-menu| stand out from regular floating windows.
217
+
218
+ # Examples ~
219
+ *MiniHues-examples*
220
+
221
+ Here are some possible setup configurations (copy first line and then use
222
+ only one `setup` call): >lua
223
+
224
+ local setup = require('mini.hues').setup
225
+
226
+ -- Choose background and foreground
227
+ setup({ background = '#2f1c22', foreground = '#cdc4c6' }) -- red
228
+ setup({ background = '#2f1e16', foreground = '#cdc5c1' }) -- orange
229
+ setup({ background = '#282211', foreground = '#c9c6c0' }) -- yellow
230
+ setup({ background = '#1c2617', foreground = '#c4c8c2' }) -- green
231
+ setup({ background = '#112723', foreground = '#c0c9c7' }) -- cyan
232
+ setup({ background = '#11262d', foreground = '#c0c8cc' }) -- azure
233
+ setup({ background = '#1d2231', foreground = '#c4c6cd' }) -- blue
234
+ setup({ background = '#281e2c', foreground = '#c9c5cb' }) -- purple
235
+
236
+ -- Choose number of accent colors
237
+ setup({ background = '#11262d', foreground = '#c0c8cc', n_hues = 6 })
238
+ setup({ background = '#11262d', foreground = '#c0c8cc', n_hues = 4 })
239
+ setup({ background = '#11262d', foreground = '#c0c8cc', n_hues = 2 })
240
+ setup({ background = '#11262d', foreground = '#c0c8cc', n_hues = 0 })
241
+
242
+ -- Choose saturation of colored text
243
+ setup({ background = '#11262d', foreground = '#c0c8cc', saturation = 'low' })
244
+ setup({ background = '#11262d', foreground = '#c0c8cc', saturation = 'lowmedium' })
245
+ setup({ background = '#11262d', foreground = '#c0c8cc', saturation = 'medium' })
246
+ setup({ background = '#11262d', foreground = '#c0c8cc', saturation = 'mediumhigh' })
247
+ setup({ background = '#11262d', foreground = '#c0c8cc', saturation = 'high' })
248
+
249
+ -- Choose accent color
250
+ setup({ background = '#11262d', foreground = '#c0c8cc', accent = 'bg' })
251
+ setup({ background = '#11262d', foreground = '#c0c8cc', accent = 'red' })
252
+ setup({ background = '#11262d', foreground = '#c0c8cc', accent = 'yellow' })
253
+ setup({ background = '#11262d', foreground = '#c0c8cc', accent = 'cyan' })
254
+ setup({ background = '#11262d', foreground = '#c0c8cc', accent = 'blue' })
255
+ <
256
+ ------------------------------------------------------------------------------
257
+ *MiniHues.make_palette()*
258
+ `MiniHues.make_palette`({config})
259
+ # Make palette ~
260
+
261
+ General idea of palette generation is that it is mostly based on color channel
262
+ information extracted from base colors (background and foreground).
263
+
264
+ All operations are done inside `Oklch` color space, meaning that each color
265
+ is defined by three numbers:
266
+ - Lightness (`l`) - number between 0 (black) and 100 (white) describing how
267
+ light is a color.
268
+ - Chroma (`c`) - positive number describing how colorful is a color (bigger
269
+ values - more colorful; 0 is gray).
270
+ - Hue (`h`) - periodic number in [0, 360) describing a value of "true color"
271
+ on color circle/wheel.
272
+
273
+ For more details about `Oklch` see |MiniColors-color-spaces| or
274
+ https://bottosson.github.io/posts/oklab/.
275
+
276
+ ## Algorithm overview ~
277
+
278
+ - Extract lightness, chroma, and hue of base colors.
279
+
280
+ - Generate reference lightness values:
281
+ - Background edge: 0 or 100, whichever is closest to background lightness.
282
+ - Foreground edge: 0 or 100, different from background edge.
283
+ - Middle: arithmetic mean of background and foreground lightness values.
284
+
285
+ - Compute background and foreground tints and shades by changing lightness
286
+ of background color: two colors closer to background lightness edge and
287
+ two closer to middle.
288
+
289
+ - Pick chroma value for non-base colors based on `config.saturation`.
290
+
291
+ - Generate hues for non-base colors:
292
+ - Fit an equidistant circular grid with `config.n_hues` points to be as
293
+ far from both background and foreground hues. This will ensure that
294
+ non-base colors are as different as possible from base ones (for
295
+ better visual perception).
296
+ Example: for background hue 0, foreground hue 180, and `config.n_hues` 2
297
+ the output grid will be `{ 90, 270 }`.
298
+
299
+ - For each hue of reference color (which itself is an equidistant grid
300
+ of 8 hues) compute the closest value from the grid. This allows
301
+ operating in same terms (like "red", "green") despite maybe actually
302
+ having less different hues.
303
+
304
+ - Compute for each hue two variants of non-base colors: with background and
305
+ foreground lightness values.
306
+
307
+ - Compute two variants of accent color (with background and foreground
308
+ lightness) based on `config.accent`.
309
+
310
+ Notes:
311
+ - Some output colors can have not exact values of generated Oklch channels.
312
+ This is due to actually computed colors being impossible to represent via
313
+ `'#rrggbb'` hex string. In this case a process called gamut clipping is done
314
+ to reduce lightness and chroma in optimal way while maintaining same hue.
315
+ For more information see |MiniColors-gamut-clip|.
316
+
317
+ - Not all colors are actually used in highlight groups and are present for the
318
+ sake of completeness.
319
+
320
+ Parameters ~
321
+ {config} `(table)` Configuration for palette. Same structure as |MiniHues.config|.
322
+ Needs to have <background> and <foreground> fields.
323
+
324
+ Return ~
325
+ `(table)` Palette with the following fields:
326
+ - <bg> and <fg> with supplied `background` and `foreground` colors.
327
+ - Fields like <bg_xxx> and <fg_xxx> are essentially <bg> and <fg> but with
328
+ different lightness values: `_edge`/`_edge2` - closer to edge lightness,
329
+ `_mid`/`_mid2` - closer to middle lightness.
330
+ - Fields for non-base colors (<red>, <orange>, <yellow>, <green>, <cyan>,
331
+ <azure>, <blue>, <purple>) have the same lightness as foreground.
332
+ - Fields for non-base colors with <_bg> suffix have the same lightness as
333
+ background.
334
+ - <accent> and <accent_bg> represent accent colors with foreground and
335
+ background lightness values.
336
+
337
+ See also ~
338
+ |MiniHues.get_palette()|
339
+
340
+ ------------------------------------------------------------------------------
341
+ *MiniHues.apply_palette()*
342
+ `MiniHues.apply_palette`({palette}, {plugins}, {opts})
343
+ Apply palette
344
+
345
+ Create color scheme highlight groups and terminal colors based on supplied
346
+ palette. This is useful if you want to tweak palette colors.
347
+ For regular usage prefer |MiniHues.setup()|.
348
+
349
+ Parameters ~
350
+ {palette} `(table)` Table with structure as |MiniHues.make_palette()| output.
351
+ {plugins} `(table|nil)` Table with boolean values indicating whether to create
352
+ highlight groups for specific plugins. See |MiniHues.config| for more details.
353
+ Default: the value from |MiniHues.config|.
354
+ {opts} `(table|nil)` Options. Possible fields:
355
+ - <autoadjust> - whether to auto adjust some highlight groups when needed.
356
+ Default: value of `autoadjust` in |MiniHues.config|.
357
+
358
+ Usage ~
359
+ >lua
360
+ local palette = require('mini.hues').make_palette({
361
+ background = '#11262d',
362
+ foreground = '#c0c8cc',
363
+ })
364
+ palette.cyan = '#76e0a6'
365
+ palette.cyan_bg = '#004629'
366
+ require('mini.hues').apply_palette(palette)
367
+ <
368
+ See also ~
369
+ |MiniHues.get_palette()|
370
+
371
+ ------------------------------------------------------------------------------
372
+ *MiniHues.get_palette()*
373
+ `MiniHues.get_palette`()
374
+ Get latest applied palette
375
+
376
+ Return ~
377
+ `(table)` Table with structure as |MiniHues.make_palette()| output that was
378
+ the latest applied (via |MiniHues.apply_palette()|) palette.
379
+
380
+ ------------------------------------------------------------------------------
381
+ *MiniHues.gen_random_base_colors()*
382
+ `MiniHues.gen_random_base_colors`({opts})
383
+ Generate random base colors
384
+
385
+ Compute background and foreground colors based on randomly generated hue
386
+ and heuristically picked lightness-chroma values.
387
+
388
+ You can recreate a similar functionality but tweaked to your taste
389
+ using |mini.colors|: >lua
390
+
391
+ local convert = require('mini.colors').convert
392
+ local hue = math.random(0, 359)
393
+ return {
394
+ background = convert({ l = 15, c = 3, h = hue }, 'hex'),
395
+ foreground = convert({ l = 80, c = 1, h = hue }, 'hex'),
396
+ }
397
+ <
398
+ Notes:
399
+ - Respects |'background'| (uses different lightness and chroma values for
400
+ "dark" and "light" backgrounds).
401
+
402
+ - When used during startup, might require usage of `math.randomseed()` for
403
+ proper random generation. For example: >lua
404
+
405
+ local hues = require('mini.hues')
406
+ math.randomseed(vim.loop.hrtime())
407
+ hues.setup(hues.gen_random_base_colors())
408
+ <
409
+ Parameters ~
410
+ {opts} `(table|nil)` Options. Possible values:
411
+ - <gen_hue> `(function)` - callable which will return single number for
412
+ output hue. Can be used to limit which hues will be generated.
413
+ Default: random integer between 0 and 359.
414
+
415
+ Return ~
416
+ `(table)` Table with <background> and <foreground> fields containing
417
+ color hex strings.
418
+
419
+
420
+ vim:tw=78:ts=8:noet:ft=help:norl: