Summary Files Commits Branches @commit @diff @stats
path: root / lua / mappings.lua
diff options
context:
space:
mode:
1 files changed, 28 insertions, 27 deletions
-rw-r--r--lua/mappings.lua55
diff --git a/lua/mappings.lua b/lua/mappings.lua
index 0713724..2fd6830 100644
--- a/lua/mappings.lua
+++ b/lua/mappings.lua
@@ -1,44 +1,45 @@
-keys = { sideeffect = {}, key = "" }
-setmetatable(keys,
+--[=[ Helpers ]=]--
+
+map = { keys = { lhs = {}, rhs = "" } }
+setmetatable(map,
+{
+ __index = function (table, index)
+ table.keys.lhs = {}
+ table.keys.rhs = ""
+ for i = 1, index:len() do
+ table.keys.lhs[i] = index:sub(i, i)
+ end
+ return table.keys
+ end
+})
+setmetatable(rawget(map, "keys"),
{
__index = function (table, index)
- local modifier, key = index:match("^(.*)_"), index:match("[^_]*$")
- if modifier == nil then
+ local mod, key = index:match("^(.*)_"), index:match("[^_]*$")
+ if mod == nil then
if #key > 1 then
key = "<" .. key .. ">"
end
- table.key = table.key .. key
- return keys
+ table.rhs = table.rhs .. key
+ return table
end
- modifier = modifier:upper()
+ mod = mod:upper()
- if modifier == "SHIFT" then table.key = table.key .. "<S-" .. key .. ">"
- elseif modifier == "CONTROL" then table.key = table.key .. "<C-" .. key .. ">"
- elseif modifier == "ALT" then table.key = table.key .. "<M-" .. key .. ">"
- elseif modifier == "SUPER" then table.key = table.key .. "<D-" .. key .. ">"
- elseif modifier ~= nil then error("Unknown key modifier \"" .. modifier .. "\"!")
+ if mod == "SHIFT" then table.rhs = table.rhs .. "<S-" .. key .. ">"
+ elseif mod == "CONTROL" then table.rhs = table.rhs .. "<C-" .. key .. ">"
+ elseif mod == "ALT" then table.rhs = table.rhs .. "<M-" .. key .. ">"
+ elseif mod == "SUPER" then table.rhs = table.rhs .. "<D-" .. key .. ">"
+ elseif mod ~= nil then error("Unknown key modifier \"" .. mod .. "\"!")
end
- return keys
+ return table
end,
__call = function (table, ...)
- return vim.keymap.set(table.sideeffect, table.key, ...)
- end
-})
-map = {}
-setmetatable(map,
-{
- __index = function (table, index)
- keys.sideeffect = {}
- keys.key = ""
- for i = 1, index:len() do
- rawset(keys.sideeffect, i, index:sub(i, i))
- end
- return keys
+ return vim.keymap.set(table.lhs, table.rhs, ...)
end
})
---vim.keymap.set(mode.n.Alt_P, "gd")
+--[=[ Mappings ]=]--
map.n.Alt_p("gt")
map.n.Alt_o("gT")