49 lines
1.4 KiB
Lua
49 lines
1.4 KiB
Lua
local M = {}
|
|
|
|
local whichkey = require("which-key")
|
|
vim.notify = require("notify")
|
|
|
|
---Helper function to add mappings to which-key
|
|
---@parm mappings table : List of mappings to add to which-key
|
|
---@parm group table : Group to add mappings to (optional)
|
|
---@return nil
|
|
---@usage addToWhichKey(mappings, group)
|
|
---@example addToWhichKey({{key = "n", cmd = "next", mode = "n", desc = "Next Line", group = "Navigation"}, {key = "t", group = "example"})
|
|
function M.addToWhichKey(mappings, group)
|
|
local wk_mappings = {}
|
|
if group then
|
|
whichkey.add({ group.key, group = group.group })
|
|
end
|
|
if not mappings and not group then
|
|
vim.notify("Error: Mappings is nil", "error")
|
|
return
|
|
elseif not mappings and group then
|
|
return
|
|
end
|
|
for _, mapping in ipairs(mappings) do
|
|
if not mapping.key or mapping.key == "" then
|
|
vim.notify("Error: Key is empty or nil", "error")
|
|
return
|
|
end
|
|
|
|
if not mapping.cmd or mapping.cmd == "" then
|
|
vim.notify("Error: Command is empty or nil for key: " .. mapping.key, "error")
|
|
return
|
|
end
|
|
|
|
if not mapping.mode or mapping.mode == "" then
|
|
vim.notify("Error: Mode is empty or nil for key: " .. mapping.key, "error")
|
|
return
|
|
end
|
|
|
|
wk_mappings[1] = mapping.key
|
|
wk_mappings[2] = mapping.cmd
|
|
wk_mappings.mode = mapping.mode
|
|
wk_mappings.desc = mapping.desc or "No Description"
|
|
wk_mappings.group = mapping.group or "No Group"
|
|
whichkey.add(wk_mappings)
|
|
end
|
|
end
|
|
|
|
return M
|