···11---- @module 'util'
22-local util = {}
33-44--- Allow moving the cursor through wrapped lines with j, k, <Up> and <Down>
55--- empty mode is same as using <cmd> :map
66--- also don't use g[j|k] when in operator pending mode, so it doesn't alter d, y or c behaviour
77-function util.wrapping_cursor(key, desc)
88- return {
99- 'v:count || mode(1)[0:1] == "no" ? "' .. key .. '" : "g' .. key .. '"',
1010- desc = desc,
1111- expr = true,
1212- }
1313-end
1414-1515-function util.register_keymap(map)
1616- for mode, key in pairs(map) do
1717- for keybind, settings in pairs(key) do
1818- local action = table.remove(settings, 1)
1919- vim.keymap.set(mode, keybind, action, settings)
2020- end
2121- end
2222-end
2323-2424-return util