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.
- package/.conda/retrovim.yaml +259 -0
- package/.conda/terax.icns +0 -0
- package/.conda/terax.ico +0 -0
- package/.conda/terax.png +0 -0
- package/.github/workflows/release.yml +95 -0
- package/.gitmodules +3 -0
- package/.npm/kanata_touchcursor.js +28 -0
- package/.npm/nvim.js +26 -0
- package/.npm/yazi.js +26 -0
- package/.npm/zsh.js +17 -0
- package/.pip/kanata_touchcursor/__init__.py +28 -0
- package/.pip/nvim/__init__.py +31 -0
- package/.pip/yazi/__init__.py +31 -0
- package/.pip/zsh/__init__.py +22 -0
- package/CHANGELOG.md +26 -0
- package/LICENSE +674 -0
- package/README.md +336 -0
- package/kanata/touchcursor.kbd +164 -0
- package/nvim/init.lua +813 -0
- package/nvim/plugins/mini.nvim/.github/DISCUSSION_TEMPLATE/q-a.yml +72 -0
- package/nvim/plugins/mini.nvim/.github/ISSUE_TEMPLATE/bug-report.yml +136 -0
- package/nvim/plugins/mini.nvim/.github/ISSUE_TEMPLATE/config.yml +5 -0
- package/nvim/plugins/mini.nvim/.github/ISSUE_TEMPLATE/feature-request.yml +75 -0
- package/nvim/plugins/mini.nvim/.github/PULL_REQUEST_TEMPLATE.md +2 -0
- package/nvim/plugins/mini.nvim/.github/workflows/quality-control.yml +150 -0
- package/nvim/plugins/mini.nvim/.pre-commit-config.yaml +20 -0
- package/nvim/plugins/mini.nvim/.stylua.toml +7 -0
- package/nvim/plugins/mini.nvim/.styluaignore +1 -0
- package/nvim/plugins/mini.nvim/CHANGELOG.md +1894 -0
- package/nvim/plugins/mini.nvim/CODE_OF_CONDUCT.md +132 -0
- package/nvim/plugins/mini.nvim/CONTRIBUTING.md +331 -0
- package/nvim/plugins/mini.nvim/LICENSE +21 -0
- package/nvim/plugins/mini.nvim/MAINTAINING.md +330 -0
- package/nvim/plugins/mini.nvim/Makefile +51 -0
- package/nvim/plugins/mini.nvim/README.md +261 -0
- package/nvim/plugins/mini.nvim/TESTING.md +1011 -0
- package/nvim/plugins/mini.nvim/benchmarks/starter/README.md +35 -0
- package/nvim/plugins/mini.nvim/benchmarks/starter/benchmark.sh +56 -0
- package/nvim/plugins/mini.nvim/benchmarks/starter/init-files/init_dashboard-alpha.lua +21 -0
- package/nvim/plugins/mini.nvim/benchmarks/starter/init-files/init_dashboard-original.lua +17 -0
- package/nvim/plugins/mini.nvim/benchmarks/starter/init-files/init_dashboard-starter.lua +18 -0
- package/nvim/plugins/mini.nvim/benchmarks/starter/init-files/init_empty.lua +4 -0
- package/nvim/plugins/mini.nvim/benchmarks/starter/init-files/init_starter-default.lua +7 -0
- package/nvim/plugins/mini.nvim/benchmarks/starter/init-files/init_startify-alpha.lua +10 -0
- package/nvim/plugins/mini.nvim/benchmarks/starter/init-files/init_startify-original.lua +7 -0
- package/nvim/plugins/mini.nvim/benchmarks/starter/init-files/init_startify-starter.lua +20 -0
- package/nvim/plugins/mini.nvim/benchmarks/starter/install.sh +10 -0
- package/nvim/plugins/mini.nvim/benchmarks/starter/make_summary.py +68 -0
- package/nvim/plugins/mini.nvim/benchmarks/starter/startup-summary.md +10 -0
- package/nvim/plugins/mini.nvim/colors/miniautumn.lua +55 -0
- package/nvim/plugins/mini.nvim/colors/minicyan.lua +95 -0
- package/nvim/plugins/mini.nvim/colors/minischeme.lua +95 -0
- package/nvim/plugins/mini.nvim/colors/minispring.lua +53 -0
- package/nvim/plugins/mini.nvim/colors/minisummer.lua +49 -0
- package/nvim/plugins/mini.nvim/colors/miniwinter.lua +51 -0
- package/nvim/plugins/mini.nvim/colors/randomhue.lua +16 -0
- package/nvim/plugins/mini.nvim/doc/mini-ai.txt +889 -0
- package/nvim/plugins/mini.nvim/doc/mini-align.txt +923 -0
- package/nvim/plugins/mini.nvim/doc/mini-animate.txt +937 -0
- package/nvim/plugins/mini.nvim/doc/mini-base16.txt +285 -0
- package/nvim/plugins/mini.nvim/doc/mini-basics.txt +359 -0
- package/nvim/plugins/mini.nvim/doc/mini-bracketed.txt +622 -0
- package/nvim/plugins/mini.nvim/doc/mini-bufremove.txt +123 -0
- package/nvim/plugins/mini.nvim/doc/mini-clue.txt +760 -0
- package/nvim/plugins/mini.nvim/doc/mini-cmdline.txt +392 -0
- package/nvim/plugins/mini.nvim/doc/mini-colors.txt +880 -0
- package/nvim/plugins/mini.nvim/doc/mini-comment.txt +230 -0
- package/nvim/plugins/mini.nvim/doc/mini-completion.txt +477 -0
- package/nvim/plugins/mini.nvim/doc/mini-cursorword.txt +105 -0
- package/nvim/plugins/mini.nvim/doc/mini-deps.txt +590 -0
- package/nvim/plugins/mini.nvim/doc/mini-diff.txt +661 -0
- package/nvim/plugins/mini.nvim/doc/mini-doc.txt +434 -0
- package/nvim/plugins/mini.nvim/doc/mini-extra.txt +856 -0
- package/nvim/plugins/mini.nvim/doc/mini-files.txt +1018 -0
- package/nvim/plugins/mini.nvim/doc/mini-fuzzy.txt +160 -0
- package/nvim/plugins/mini.nvim/doc/mini-git.txt +425 -0
- package/nvim/plugins/mini.nvim/doc/mini-hipatterns.txt +489 -0
- package/nvim/plugins/mini.nvim/doc/mini-hues.txt +420 -0
- package/nvim/plugins/mini.nvim/doc/mini-icons.txt +508 -0
- package/nvim/plugins/mini.nvim/doc/mini-indentscope.txt +485 -0
- package/nvim/plugins/mini.nvim/doc/mini-input.txt +932 -0
- package/nvim/plugins/mini.nvim/doc/mini-jump.txt +202 -0
- package/nvim/plugins/mini.nvim/doc/mini-jump2d.txt +525 -0
- package/nvim/plugins/mini.nvim/doc/mini-keymap.txt +449 -0
- package/nvim/plugins/mini.nvim/doc/mini-map.txt +717 -0
- package/nvim/plugins/mini.nvim/doc/mini-misc.txt +431 -0
- package/nvim/plugins/mini.nvim/doc/mini-move.txt +181 -0
- package/nvim/plugins/mini.nvim/doc/mini-notify.txt +434 -0
- package/nvim/plugins/mini.nvim/doc/mini-nvim.txt +431 -0
- package/nvim/plugins/mini.nvim/doc/mini-operators.txt +472 -0
- package/nvim/plugins/mini.nvim/doc/mini-pairs.txt +346 -0
- package/nvim/plugins/mini.nvim/doc/mini-pick.txt +1535 -0
- package/nvim/plugins/mini.nvim/doc/mini-sessions.txt +239 -0
- package/nvim/plugins/mini.nvim/doc/mini-snippets.txt +1291 -0
- package/nvim/plugins/mini.nvim/doc/mini-splitjoin.txt +536 -0
- package/nvim/plugins/mini.nvim/doc/mini-starter.txt +618 -0
- package/nvim/plugins/mini.nvim/doc/mini-statusline.txt +361 -0
- package/nvim/plugins/mini.nvim/doc/mini-surround.txt +863 -0
- package/nvim/plugins/mini.nvim/doc/mini-tabline.txt +151 -0
- package/nvim/plugins/mini.nvim/doc/mini-test.txt +966 -0
- package/nvim/plugins/mini.nvim/doc/mini-trailspace.txt +91 -0
- package/nvim/plugins/mini.nvim/doc/mini-visits.txt +937 -0
- package/nvim/plugins/mini.nvim/logo.png +0 -0
- package/nvim/plugins/mini.nvim/lua/mini/ai.lua +2244 -0
- package/nvim/plugins/mini.nvim/lua/mini/align.lua +2076 -0
- package/nvim/plugins/mini.nvim/lua/mini/animate.lua +2127 -0
- package/nvim/plugins/mini.nvim/lua/mini/base16.lua +1752 -0
- package/nvim/plugins/mini.nvim/lua/mini/basics.lua +772 -0
- package/nvim/plugins/mini.nvim/lua/mini/bracketed.lua +2013 -0
- package/nvim/plugins/mini.nvim/lua/mini/bufremove.lua +283 -0
- package/nvim/plugins/mini.nvim/lua/mini/clue.lua +2096 -0
- package/nvim/plugins/mini.nvim/lua/mini/cmdline.lua +1182 -0
- package/nvim/plugins/mini.nvim/lua/mini/colors.lua +2483 -0
- package/nvim/plugins/mini.nvim/lua/mini/comment.lua +586 -0
- package/nvim/plugins/mini.nvim/lua/mini/completion.lua +2094 -0
- package/nvim/plugins/mini.nvim/lua/mini/cursorword.lua +311 -0
- package/nvim/plugins/mini.nvim/lua/mini/deps.lua +1660 -0
- package/nvim/plugins/mini.nvim/lua/mini/diff.lua +1938 -0
- package/nvim/plugins/mini.nvim/lua/mini/doc.lua +1371 -0
- package/nvim/plugins/mini.nvim/lua/mini/extra.lua +2290 -0
- package/nvim/plugins/mini.nvim/lua/mini/files.lua +3145 -0
- package/nvim/plugins/mini.nvim/lua/mini/fuzzy.lua +356 -0
- package/nvim/plugins/mini.nvim/lua/mini/git.lua +1737 -0
- package/nvim/plugins/mini.nvim/lua/mini/hipatterns.lua +1042 -0
- package/nvim/plugins/mini.nvim/lua/mini/hues.lua +2088 -0
- package/nvim/plugins/mini.nvim/lua/mini/icons.lua +2254 -0
- package/nvim/plugins/mini.nvim/lua/mini/indentscope.lua +1158 -0
- package/nvim/plugins/mini.nvim/lua/mini/init.lua +427 -0
- package/nvim/plugins/mini.nvim/lua/mini/input.lua +2183 -0
- package/nvim/plugins/mini.nvim/lua/mini/jump.lua +609 -0
- package/nvim/plugins/mini.nvim/lua/mini/jump2d.lua +1244 -0
- package/nvim/plugins/mini.nvim/lua/mini/keymap.lua +880 -0
- package/nvim/plugins/mini.nvim/lua/mini/map.lua +1709 -0
- package/nvim/plugins/mini.nvim/lua/mini/misc.lua +969 -0
- package/nvim/plugins/mini.nvim/lua/mini/move.lua +509 -0
- package/nvim/plugins/mini.nvim/lua/mini/notify.lua +938 -0
- package/nvim/plugins/mini.nvim/lua/mini/operators.lua +1349 -0
- package/nvim/plugins/mini.nvim/lua/mini/pairs.lua +657 -0
- package/nvim/plugins/mini.nvim/lua/mini/pick.lua +3876 -0
- package/nvim/plugins/mini.nvim/lua/mini/sessions.lua +689 -0
- package/nvim/plugins/mini.nvim/lua/mini/snippets.lua +2828 -0
- package/nvim/plugins/mini.nvim/lua/mini/splitjoin.lua +1132 -0
- package/nvim/plugins/mini.nvim/lua/mini/starter.lua +1599 -0
- package/nvim/plugins/mini.nvim/lua/mini/statusline.lua +686 -0
- package/nvim/plugins/mini.nvim/lua/mini/surround.lua +2388 -0
- package/nvim/plugins/mini.nvim/lua/mini/tabline.lua +564 -0
- package/nvim/plugins/mini.nvim/lua/mini/test.lua +2516 -0
- package/nvim/plugins/mini.nvim/lua/mini/trailspace.lua +215 -0
- package/nvim/plugins/mini.nvim/lua/mini/visits.lua +1577 -0
- package/nvim/plugins/mini.nvim/readmes/mini-ai.md +190 -0
- package/nvim/plugins/mini.nvim/readmes/mini-align.md +203 -0
- package/nvim/plugins/mini.nvim/readmes/mini-animate.md +214 -0
- package/nvim/plugins/mini.nvim/readmes/mini-base16.md +198 -0
- package/nvim/plugins/mini.nvim/readmes/mini-basics.md +184 -0
- package/nvim/plugins/mini.nvim/readmes/mini-bracketed.md +193 -0
- package/nvim/plugins/mini.nvim/readmes/mini-bufremove.md +139 -0
- package/nvim/plugins/mini.nvim/readmes/mini-clue.md +260 -0
- package/nvim/plugins/mini.nvim/readmes/mini-cmdline.md +183 -0
- package/nvim/plugins/mini.nvim/readmes/mini-colors.md +169 -0
- package/nvim/plugins/mini.nvim/readmes/mini-comment.md +183 -0
- package/nvim/plugins/mini.nvim/readmes/mini-completion.md +217 -0
- package/nvim/plugins/mini.nvim/readmes/mini-cursorword.md +137 -0
- package/nvim/plugins/mini.nvim/readmes/mini-deps.md +271 -0
- package/nvim/plugins/mini.nvim/readmes/mini-diff.md +289 -0
- package/nvim/plugins/mini.nvim/readmes/mini-doc.md +198 -0
- package/nvim/plugins/mini.nvim/readmes/mini-extra.md +158 -0
- package/nvim/plugins/mini.nvim/readmes/mini-files.md +247 -0
- package/nvim/plugins/mini.nvim/readmes/mini-fuzzy.md +134 -0
- package/nvim/plugins/mini.nvim/readmes/mini-git.md +168 -0
- package/nvim/plugins/mini.nvim/readmes/mini-hipatterns.md +176 -0
- package/nvim/plugins/mini.nvim/readmes/mini-hues.md +285 -0
- package/nvim/plugins/mini.nvim/readmes/mini-icons.md +183 -0
- package/nvim/plugins/mini.nvim/readmes/mini-indentscope.md +191 -0
- package/nvim/plugins/mini.nvim/readmes/mini-input.md +163 -0
- package/nvim/plugins/mini.nvim/readmes/mini-jump.md +161 -0
- package/nvim/plugins/mini.nvim/readmes/mini-jump2d.md +197 -0
- package/nvim/plugins/mini.nvim/readmes/mini-keymap.md +205 -0
- package/nvim/plugins/mini.nvim/readmes/mini-map.md +191 -0
- package/nvim/plugins/mini.nvim/readmes/mini-misc.md +145 -0
- package/nvim/plugins/mini.nvim/readmes/mini-move.md +163 -0
- package/nvim/plugins/mini.nvim/readmes/mini-notify.md +175 -0
- package/nvim/plugins/mini.nvim/readmes/mini-operators.md +193 -0
- package/nvim/plugins/mini.nvim/readmes/mini-pairs.md +158 -0
- package/nvim/plugins/mini.nvim/readmes/mini-pick.md +340 -0
- package/nvim/plugins/mini.nvim/readmes/mini-sessions.md +164 -0
- package/nvim/plugins/mini.nvim/readmes/mini-snippets.md +373 -0
- package/nvim/plugins/mini.nvim/readmes/mini-splitjoin.md +194 -0
- package/nvim/plugins/mini.nvim/readmes/mini-starter.md +176 -0
- package/nvim/plugins/mini.nvim/readmes/mini-statusline.md +155 -0
- package/nvim/plugins/mini.nvim/readmes/mini-surround.md +190 -0
- package/nvim/plugins/mini.nvim/readmes/mini-tabline.md +156 -0
- package/nvim/plugins/mini.nvim/readmes/mini-test.md +175 -0
- package/nvim/plugins/mini.nvim/readmes/mini-trailspace.md +137 -0
- package/nvim/plugins/mini.nvim/readmes/mini-visits.md +243 -0
- package/nvim/plugins/mini.nvim/scripts/dual_log.sh +13 -0
- package/nvim/plugins/mini.nvim/scripts/dual_push.sh +15 -0
- package/nvim/plugins/mini.nvim/scripts/dual_release.sh +102 -0
- package/nvim/plugins/mini.nvim/scripts/dual_sync.sh +115 -0
- package/nvim/plugins/mini.nvim/scripts/init-deps-example.lua +59 -0
- package/nvim/plugins/mini.nvim/scripts/lint-filename-length.sh +16 -0
- package/nvim/plugins/mini.nvim/scripts/lintcommit-ci.sh +18 -0
- package/nvim/plugins/mini.nvim/scripts/lintcommit.lua +393 -0
- package/nvim/plugins/mini.nvim/scripts/minidoc.lua +57 -0
- package/nvim/plugins/mini.nvim/scripts/minimal_init.lua +28 -0
- package/nvim/plugins/mini.nvim/scripts/minitest.lua +4 -0
- package/package.json +16 -0
- package/pyproject.toml +43 -0
- package/yazi/init.lua +12 -0
- package/yazi/keymap.toml +114 -0
- package/yazi/lesskey +5 -0
- package/yazi/plugins/bookmarks.yazi/main.lua +86 -0
- package/yazi/plugins/cd-git-root.yazi/main.lua +31 -0
- package/yazi/plugins/smart-enter.yazi/main.lua +11 -0
- package/yazi/theme.toml +26 -0
- package/yazi/yazi.toml +15 -0
- package/zsh/.zshrc +145 -0
- package/zsh/starship.toml +20 -0
- package/zsh/zsh-patina.toml +2 -0
|
@@ -0,0 +1,346 @@
|
|
|
1
|
+
*mini.pairs* Autopairs
|
|
2
|
+
|
|
3
|
+
MIT License Copyright (c) 2021 Evgeni Chasnovski
|
|
4
|
+
|
|
5
|
+
------------------------------------------------------------------------------
|
|
6
|
+
*MiniPairs*
|
|
7
|
+
Features:
|
|
8
|
+
- Functionality to work with two "paired" characters conditional on cursor's
|
|
9
|
+
neighborhood (character to its left and character to its right).
|
|
10
|
+
|
|
11
|
+
- Usage should be through making appropriate mappings using |MiniPairs.map()|
|
|
12
|
+
or in |MiniPairs.setup()| (for global mapping), |MiniPairs.map_buf()| (for
|
|
13
|
+
buffer mapping).
|
|
14
|
+
|
|
15
|
+
- Pairs get automatically registered for special <BS> (all configured modes)
|
|
16
|
+
and <CR> (only Insert mode) mappings. Pressing the key inside pair will
|
|
17
|
+
delete whole pair and insert extra blank line inside pair respectively.
|
|
18
|
+
Note: these mappings are autocreated if they do not override existing ones.
|
|
19
|
+
|
|
20
|
+
What it doesn't do:
|
|
21
|
+
- Provide smart behavior, like based on bracket balance. The default behavior
|
|
22
|
+
is to almost always perform an action (insert pair, jump over). Manually
|
|
23
|
+
press |i_CTRL-V| before a character to explicitly insert it (and only it).
|
|
24
|
+
|
|
25
|
+
- It doesn't support multiple characters as "open" and "close" symbols. Use
|
|
26
|
+
snippets for that.
|
|
27
|
+
|
|
28
|
+
- It doesn't support dependency on filetype. Use |i_CTRL-V| to insert
|
|
29
|
+
single symbol or `autocmd` command or `after/ftplugin` approach to:
|
|
30
|
+
- `:lua MiniPairs.map_buf(0, 'i', <*>, <pair_info>)` - make new mapping
|
|
31
|
+
for `<*>` in current buffer.
|
|
32
|
+
- `:lua MiniPairs.unmap_buf(0, 'i', <*>, <pair>)` - unmap key `<*>` while
|
|
33
|
+
unregistering `<pair>` pair in current buffer. Note: this reverts
|
|
34
|
+
mapping done by |MiniPairs.map_buf()|. If mapping was done with
|
|
35
|
+
|MiniPairs.map()|, unmap for buffer in usual Neovim manner:
|
|
36
|
+
`inoremap <buffer> <*> <*>` (this maps `<*>` key to do the same it
|
|
37
|
+
does by default).
|
|
38
|
+
- Disable module for buffer (see `# Disabling` section).
|
|
39
|
+
|
|
40
|
+
# Setup ~
|
|
41
|
+
|
|
42
|
+
This module needs a setup with `require('mini.pairs').setup({})`
|
|
43
|
+
(replace `{}` with your `config` table). It will create global Lua table
|
|
44
|
+
`MiniPairs` which you can use for scripting or manually (with
|
|
45
|
+
`:lua MiniPairs.*`).
|
|
46
|
+
|
|
47
|
+
See |MiniPairs.config| for `config` structure and default values.
|
|
48
|
+
|
|
49
|
+
This module doesn't have runtime options, so using `vim.b.minipairs_config`
|
|
50
|
+
will have no effect here.
|
|
51
|
+
|
|
52
|
+
# Example mappings ~
|
|
53
|
+
>lua
|
|
54
|
+
-- Register quotes inside `config` of `MiniPairs.setup()`
|
|
55
|
+
mappings = {
|
|
56
|
+
['"'] = { register = { cr = true } },
|
|
57
|
+
["'"] = { register = { cr = true } },
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
-- Insert `<>` pair if `<` is typed at line start, don't register for <CR>
|
|
61
|
+
local lt_opts = {
|
|
62
|
+
action = 'open',
|
|
63
|
+
pair = '<>',
|
|
64
|
+
neigh_pattern = '\r.',
|
|
65
|
+
register = { cr = false },
|
|
66
|
+
}
|
|
67
|
+
MiniPairs.map('i', '<', lt_opts)
|
|
68
|
+
|
|
69
|
+
local gt_opts = { action = 'close', pair = '<>', register = { cr = false } }
|
|
70
|
+
MiniPairs.map('i', '>', gt_opts)
|
|
71
|
+
|
|
72
|
+
-- Create symmetrical `$$` pair only in Tex files
|
|
73
|
+
local map_tex = function()
|
|
74
|
+
MiniPairs.map_buf(0, 'i', '$', { action = 'closeopen', pair = '$$' })
|
|
75
|
+
end
|
|
76
|
+
vim.api.nvim_create_autocmd(
|
|
77
|
+
'FileType',
|
|
78
|
+
{ pattern = 'tex', callback = map_tex }
|
|
79
|
+
)
|
|
80
|
+
<
|
|
81
|
+
# Notes ~
|
|
82
|
+
|
|
83
|
+
- Make sure to make proper mapping of <CR> in order to support completion
|
|
84
|
+
plugin of your choice:
|
|
85
|
+
- For |mini.completion| see its `# Helpful mappings` section.
|
|
86
|
+
- For current implementation of "hrsh7th/nvim-cmp" there is no need to
|
|
87
|
+
make custom mapping. You can use default setup, which will confirm
|
|
88
|
+
completion selection if popup is visible and expand pair otherwise.
|
|
89
|
+
- Having mapping in terminal mode can conflict with:
|
|
90
|
+
- Autopairing capabilities of interpretators (`ipython`, `radian`).
|
|
91
|
+
- Vim mode of terminal itself.
|
|
92
|
+
|
|
93
|
+
# Disabling ~
|
|
94
|
+
|
|
95
|
+
To disable, set `vim.g.minipairs_disable` (globally) or `vim.b.minipairs_disable`
|
|
96
|
+
(for a buffer) to `true`. Considering high number of different scenarios
|
|
97
|
+
and customization intentions, writing exact rules for disabling module's
|
|
98
|
+
functionality is left to user. See |mini.nvim-disabling-recipes| for common
|
|
99
|
+
recipes.
|
|
100
|
+
|
|
101
|
+
------------------------------------------------------------------------------
|
|
102
|
+
*MiniPairs.setup()*
|
|
103
|
+
`MiniPairs.setup`({config})
|
|
104
|
+
Module setup
|
|
105
|
+
|
|
106
|
+
Parameters ~
|
|
107
|
+
{config} `(table|nil)` Module config table. See |MiniPairs.config|.
|
|
108
|
+
|
|
109
|
+
Usage ~
|
|
110
|
+
>lua
|
|
111
|
+
require('mini.pairs').setup() -- use default config
|
|
112
|
+
-- OR
|
|
113
|
+
require('mini.pairs').setup({}) -- replace {} with your config table
|
|
114
|
+
<
|
|
115
|
+
------------------------------------------------------------------------------
|
|
116
|
+
*MiniPairs.config*
|
|
117
|
+
`MiniPairs.config`
|
|
118
|
+
Defaults ~
|
|
119
|
+
>lua
|
|
120
|
+
MiniPairs.config = {
|
|
121
|
+
-- In which modes mappings from this `config` should be created
|
|
122
|
+
modes = { insert = true, command = false, terminal = false },
|
|
123
|
+
|
|
124
|
+
-- Global mappings. Each right hand side should be a pair information, a
|
|
125
|
+
-- table with at least these fields (see more in |MiniPairs.map()|):
|
|
126
|
+
-- - <action> - one of "open", "close", "closeopen".
|
|
127
|
+
-- - <pair> - two character string for pair to be used.
|
|
128
|
+
-- By default pair is not inserted after `\`, quotes are not recognized by
|
|
129
|
+
-- <CR>, `'` does not insert the pair after a letter.
|
|
130
|
+
-- Only parts of tables can be tweaked (others will use these defaults).
|
|
131
|
+
-- Supply `false` instead of table to not map particular key.
|
|
132
|
+
mappings = {
|
|
133
|
+
['('] = { action = 'open', pair = '()', neigh_pattern = '^[^\\]' },
|
|
134
|
+
['['] = { action = 'open', pair = '[]', neigh_pattern = '^[^\\]' },
|
|
135
|
+
['{'] = { action = 'open', pair = '{}', neigh_pattern = '^[^\\]' },
|
|
136
|
+
|
|
137
|
+
[')'] = { action = 'close', pair = '()', neigh_pattern = '^[^\\]' },
|
|
138
|
+
[']'] = { action = 'close', pair = '[]', neigh_pattern = '^[^\\]' },
|
|
139
|
+
['}'] = { action = 'close', pair = '{}', neigh_pattern = '^[^\\]' },
|
|
140
|
+
|
|
141
|
+
['"'] = { action = 'closeopen', pair = '""', neigh_pattern = '^[^\\]', register = { cr = false } },
|
|
142
|
+
["'"] = { action = 'closeopen', pair = "''", neigh_pattern = '^[^%a\\]', register = { cr = false } },
|
|
143
|
+
['`'] = { action = 'closeopen', pair = '``', neigh_pattern = '^[^\\]', register = { cr = false } },
|
|
144
|
+
},
|
|
145
|
+
}
|
|
146
|
+
<
|
|
147
|
+
------------------------------------------------------------------------------
|
|
148
|
+
*MiniPairs.map()*
|
|
149
|
+
`MiniPairs.map`({mode}, {lhs}, {pair_info}, {opts})
|
|
150
|
+
Make global mapping
|
|
151
|
+
|
|
152
|
+
This is a wrapper for |nvim_set_keymap()| but instead of right hand side of
|
|
153
|
+
mapping (as string) it expects table with pair information.
|
|
154
|
+
|
|
155
|
+
Using this function instead of |nvim_set_keymap()| allows automatic
|
|
156
|
+
registration of pairs which will be recognized by <BS> and <CR>.
|
|
157
|
+
It also infers mapping description from `pair_info`.
|
|
158
|
+
|
|
159
|
+
Parameters ~
|
|
160
|
+
{mode} `(string)` `mode` for |nvim_set_keymap()|.
|
|
161
|
+
{lhs} `(string)` `lhs` for |nvim_set_keymap()|.
|
|
162
|
+
{pair_info} `(table)` Table with pair information. Fields:
|
|
163
|
+
- <action> - one of "open" for |MiniPairs.open()|,
|
|
164
|
+
"close" for |MiniPairs.close()|, or "closeopen" for |MiniPairs.closeopen()|.
|
|
165
|
+
- <pair> - two character string to be passed to an action function.
|
|
166
|
+
Can contain multibyte characters.
|
|
167
|
+
- <neigh_pattern> - optional neighborhood pattern to be passed to an action
|
|
168
|
+
function. Will be matched against two character neighborhood (might
|
|
169
|
+
contain multibyte characters).
|
|
170
|
+
Default: `'..'` (no restriction from neighborhood).
|
|
171
|
+
- <register> - optional table with information about whether this pair will
|
|
172
|
+
be recognized by <BS> (in |MiniPairs.bs()|) and/or <CR> (in |MiniPairs.cr()|).
|
|
173
|
+
Should have boolean fields <bs> and <cr> (both `true` by default).
|
|
174
|
+
{opts} `(table|nil)` Optional table `opts` for |nvim_set_keymap()|. Elements
|
|
175
|
+
`expr` and `noremap` won't be recognized (`true` by default).
|
|
176
|
+
|
|
177
|
+
------------------------------------------------------------------------------
|
|
178
|
+
*MiniPairs.map_buf()*
|
|
179
|
+
`MiniPairs.map_buf`({buffer}, {mode}, {lhs}, {pair_info}, {opts})
|
|
180
|
+
Make buffer mapping
|
|
181
|
+
|
|
182
|
+
This is a wrapper for |nvim_buf_set_keymap()| but instead of string right
|
|
183
|
+
hand side of mapping it expects table with pair information similar to one
|
|
184
|
+
in |MiniPairs.map()|.
|
|
185
|
+
|
|
186
|
+
Using this function instead of |nvim_buf_set_keymap()| allows automatic
|
|
187
|
+
registration of pairs which will be recognized by <BS> and <CR>.
|
|
188
|
+
It also infers mapping description from `pair_info`.
|
|
189
|
+
|
|
190
|
+
Parameters ~
|
|
191
|
+
{buffer} `(number)` `buffer` for |nvim_buf_set_keymap()|.
|
|
192
|
+
{mode} `(string)` `mode` for |nvim_buf_set_keymap()|.
|
|
193
|
+
{lhs} `(string)` `lhs` for |nvim_buf_set_keymap()|.
|
|
194
|
+
{pair_info} `(table)` Table with pair information.
|
|
195
|
+
{opts} `(table|nil)` Optional table `opts` for |nvim_buf_set_keymap()|.
|
|
196
|
+
Elements `expr` and `noremap` won't be recognized (`true` by default).
|
|
197
|
+
|
|
198
|
+
------------------------------------------------------------------------------
|
|
199
|
+
*MiniPairs.unmap()*
|
|
200
|
+
`MiniPairs.unmap`({mode}, {lhs}, {pair})
|
|
201
|
+
Remove global mapping
|
|
202
|
+
|
|
203
|
+
A wrapper for |nvim_del_keymap()| which registers supplied `pair`.
|
|
204
|
+
|
|
205
|
+
Parameters ~
|
|
206
|
+
{mode} `(string)` `mode` for |nvim_del_keymap()|.
|
|
207
|
+
{lhs} `(string)` `lhs` for |nvim_del_keymap()|.
|
|
208
|
+
{pair} `(string)` Pair which should be unregistered from both <BS> and <CR>.
|
|
209
|
+
Should be explicitly supplied to avoid confusion.
|
|
210
|
+
Supply `''` to not unregister pair.
|
|
211
|
+
|
|
212
|
+
------------------------------------------------------------------------------
|
|
213
|
+
*MiniPairs.unmap_buf()*
|
|
214
|
+
`MiniPairs.unmap_buf`({buffer}, {mode}, {lhs}, {pair})
|
|
215
|
+
Remove buffer mapping
|
|
216
|
+
|
|
217
|
+
Wrapper for |nvim_buf_del_keymap()| which also unregisters supplied `pair`.
|
|
218
|
+
|
|
219
|
+
Note: this only reverts mapping done by |MiniPairs.map_buf()|. If mapping was
|
|
220
|
+
done with |MiniPairs.map()|, revert to default behavior for buffer: >lua
|
|
221
|
+
|
|
222
|
+
-- Map `X` key to do the same it does by default
|
|
223
|
+
vim.keymap.set('i', 'X', 'X', { buffer = true })
|
|
224
|
+
<
|
|
225
|
+
Parameters ~
|
|
226
|
+
{buffer} `(number)` `buffer` for |nvim_buf_del_keymap()|.
|
|
227
|
+
{mode} `(string)` `mode` for |nvim_buf_del_keymap()|.
|
|
228
|
+
{lhs} `(string)` `lhs` for |nvim_buf_del_keymap()|.
|
|
229
|
+
{pair} `(string)` Pair which should be unregistered from both <BS> and <CR>.
|
|
230
|
+
Should be explicitly supplied to avoid confusion.
|
|
231
|
+
Supply `''` to not unregister pair.
|
|
232
|
+
|
|
233
|
+
------------------------------------------------------------------------------
|
|
234
|
+
*MiniPairs.open()*
|
|
235
|
+
`MiniPairs.open`({pair}, {neigh_pattern})
|
|
236
|
+
Process "open" symbols
|
|
237
|
+
|
|
238
|
+
Used as |:map-<expr>| mapping for "open" symbols in asymmetric pair (`(`, `[`,
|
|
239
|
+
etc.). If neighborhood doesn't match supplied pattern, function results
|
|
240
|
+
into "open" symbol. Otherwise, it pastes whole pair and moves inside pair
|
|
241
|
+
with |<Left>|.
|
|
242
|
+
|
|
243
|
+
Used inside |MiniPairs.map()| and |MiniPairs.map_buf()| for an actual mapping.
|
|
244
|
+
|
|
245
|
+
Parameters ~
|
|
246
|
+
{pair} `(string)` String with two characters representing pair.
|
|
247
|
+
{neigh_pattern} `(string|nil)` Pattern for two neighborhood characters.
|
|
248
|
+
Character "\r" indicates line start, "\n" - line end.
|
|
249
|
+
|
|
250
|
+
Return ~
|
|
251
|
+
`(string)` Keys performing "open" action.
|
|
252
|
+
|
|
253
|
+
------------------------------------------------------------------------------
|
|
254
|
+
*MiniPairs.close()*
|
|
255
|
+
`MiniPairs.close`({pair}, {neigh_pattern})
|
|
256
|
+
Process "close" symbols
|
|
257
|
+
|
|
258
|
+
Used as |:map-<expr>| mapping for "close" symbols in asymmetric pair (`)`, `]`,
|
|
259
|
+
etc.). If neighborhood doesn't match supplied pattern, function results into
|
|
260
|
+
"close" symbol. Otherwise it jumps over symbol to the right of cursor
|
|
261
|
+
(with |<Right>|) if it is equal to "close" one and inserts it otherwise.
|
|
262
|
+
|
|
263
|
+
Used inside |MiniPairs.map()| and |MiniPairs.map_buf()| for an actual mapping.
|
|
264
|
+
|
|
265
|
+
Parameters ~
|
|
266
|
+
{pair} `(string)` String with two characters representing pair.
|
|
267
|
+
{neigh_pattern} `(string|nil)` Pattern for two neighborhood characters.
|
|
268
|
+
Character "\r" indicates line start, "\n" - line end.
|
|
269
|
+
|
|
270
|
+
Return ~
|
|
271
|
+
`(string)` Keys performing "close" action.
|
|
272
|
+
|
|
273
|
+
------------------------------------------------------------------------------
|
|
274
|
+
*MiniPairs.closeopen()*
|
|
275
|
+
`MiniPairs.closeopen`({pair}, {neigh_pattern})
|
|
276
|
+
Process "closeopen" symbols
|
|
277
|
+
|
|
278
|
+
Used as |:map-<expr>| mapping for "symmetrical" symbols (like `"` and `'`)
|
|
279
|
+
It tries to perform "closeopen action": move over right character
|
|
280
|
+
(with |<Right>|) if it is equal to second character from pair or
|
|
281
|
+
conditionally paste pair otherwise (with |MiniPairs.open()|).
|
|
282
|
+
|
|
283
|
+
Used inside |MiniPairs.map()| and |MiniPairs.map_buf()| for an actual mapping.
|
|
284
|
+
|
|
285
|
+
Parameters ~
|
|
286
|
+
{pair} `(string)` String with two characters representing pair.
|
|
287
|
+
{neigh_pattern} `(string|nil)` Pattern for two neighborhood characters.
|
|
288
|
+
Character "\r" indicates line start, "\n" - line end.
|
|
289
|
+
|
|
290
|
+
Return ~
|
|
291
|
+
`(string)` Keys performing "closeopen" action.
|
|
292
|
+
|
|
293
|
+
------------------------------------------------------------------------------
|
|
294
|
+
*MiniPairs.bs()*
|
|
295
|
+
`MiniPairs.bs`({key})
|
|
296
|
+
Process |<BS>|
|
|
297
|
+
|
|
298
|
+
Used as |:map-<expr>| mapping for <BS> in Insert mode. It removes whole pair
|
|
299
|
+
(via executing <Del> after input key) if neighborhood is equal to a whole
|
|
300
|
+
pair recognized for current buffer. Pair is recognized for current buffer
|
|
301
|
+
if it is registered for global or current buffer mapping. Pair is
|
|
302
|
+
registered as a result of calling |MiniPairs.map()| or |MiniPairs.map_buf()|.
|
|
303
|
+
|
|
304
|
+
Mapped by default inside |MiniPairs.setup()|.
|
|
305
|
+
|
|
306
|
+
This can be used to modify other Insert mode keys to respect neighborhood
|
|
307
|
+
pair. Examples: >lua
|
|
308
|
+
|
|
309
|
+
local map_bs = function(lhs, rhs)
|
|
310
|
+
vim.keymap.set('i', lhs, rhs, { expr = true, replace_keycodes = false })
|
|
311
|
+
end
|
|
312
|
+
|
|
313
|
+
map_bs('<C-h>', 'v:lua.MiniPairs.bs()')
|
|
314
|
+
map_bs('<C-w>', 'v:lua.MiniPairs.bs("\23")')
|
|
315
|
+
map_bs('<C-u>', 'v:lua.MiniPairs.bs("\21")')
|
|
316
|
+
<
|
|
317
|
+
Parameters ~
|
|
318
|
+
{key} `(string|nil)` Key to use. Default: `'<BS>'`.
|
|
319
|
+
|
|
320
|
+
Return ~
|
|
321
|
+
`(string)` Keys performing "backspace" action.
|
|
322
|
+
|
|
323
|
+
------------------------------------------------------------------------------
|
|
324
|
+
*MiniPairs.cr()*
|
|
325
|
+
`MiniPairs.cr`({key})
|
|
326
|
+
Process |i_<CR>|
|
|
327
|
+
|
|
328
|
+
Used as |:map-<expr>| mapping for <CR> in insert mode. It puts "close"
|
|
329
|
+
symbol on next line (via `<CR><C-o>O`) if neighborhood is equal to a whole
|
|
330
|
+
pair recognized for current buffer. Pair is recognized for current buffer
|
|
331
|
+
if it is registered for global or current buffer mapping. Pair is
|
|
332
|
+
registered as a result of calling |MiniPairs.map()| or |MiniPairs.map_buf()|.
|
|
333
|
+
|
|
334
|
+
Note: some relevant mode changing events are temporarily ignored
|
|
335
|
+
(with |'eventignore'|) to counter effect of using |i_CTRL-O|.
|
|
336
|
+
|
|
337
|
+
Mapped by default inside |MiniPairs.setup()|.
|
|
338
|
+
|
|
339
|
+
Parameters ~
|
|
340
|
+
{key} `(string|nil)` Key to use. Default: `'<CR>'`.
|
|
341
|
+
|
|
342
|
+
Return ~
|
|
343
|
+
`(string)` Keys performing "new line" action.
|
|
344
|
+
|
|
345
|
+
|
|
346
|
+
vim:tw=78:ts=8:noet:ft=help:norl:
|