···1---- @module 'util'
2-local util = {}
3-4--- Allow moving the cursor through wrapped lines with j, k, <Up> and <Down>
5--- empty mode is same as using <cmd> :map
6--- also don't use g[j|k] when in operator pending mode, so it doesn't alter d, y or c behaviour
7-function util.wrapping_cursor(key, desc)
8- return {
9- 'v:count || mode(1)[0:1] == "no" ? "' .. key .. '" : "g' .. key .. '"',
10- desc = desc,
11- expr = true,
12- }
13-end
14-15-function util.register_keymap(map)
16- for mode, key in pairs(map) do
17- for keybind, settings in pairs(key) do
18- local action = table.remove(settings, 1)
19- vim.keymap.set(mode, keybind, action, settings)
20- end
21- end
22-end
23-24-return util