12345678910111213141516171819202122232425262728293031 |
- local M = {}
- local mode_adapters = {
- insert_mode = "i",
- normal_mode = "n",
- term_mode = "t",
- visual_mode = "v",
- visual_block_mode = "x",
- }
- -- Load key mappings for a given mode
- -- @param mode The keymap mode, can be one of the keys of mode_adapters
- -- @param keymaps The list of key mappings
- -- @param opts The mapping options
- M.load_mode = function(mode, keymaps, opts)
- mode = mode_adapters[mode] and mode_adapters[mode] or mode
- for key, mapping in pairs(keymaps) do
- vim.api.nvim_set_keymap(mode, key, mapping[1], opts)
- end
- end
- -- Load key mappings for all provided modes
- -- @param keymaps A list of key mappings for each mode
- -- @param opts The mapping options for each mode
- M.load = function(keymaps, opts)
- for mode, mapping in pairs(keymaps) do
- M.load_mode(mode, mapping, opts[mode])
- end
- end
- return M
|