Skip to content

Commit

Permalink
fix: remove lazy keymaps with the correct mode. Fixes #97
Browse files Browse the repository at this point in the history
  • Loading branch information
folke committed Dec 22, 2022
1 parent 42f5aa7 commit 56890ce
Showing 1 changed file with 11 additions and 5 deletions.
16 changes: 11 additions & 5 deletions lua/lazy/core/handler/keys.lua
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,10 @@ end

---@param value string|LazyKeys
function M.parse(value)
return (type(value) == "string" and { value } or value) --[[@as LazyKeys]]
local ret = vim.deepcopy(value)
ret = (type(ret) == "string" and { ret } or ret) --[[@as LazyKeys]]
ret.mode = ret.mode or "n"
return ret
end

function M.opts(keys)
Expand All @@ -45,21 +48,24 @@ end
function M:_add(value)
local keys = M.parse(value)
local lhs = keys[1]
vim.keymap.set(keys.mode or "n", lhs, function()
local opts = M.opts(keys)
opts.noremap = false
vim.keymap.set(keys.mode, lhs, function()
Util.track({ keys = lhs })
self:_del(value)
Loader.load(self.active[value], { keys = lhs })
M.retrigger(lhs)
Util.track()
end, M.opts(keys))
end, opts)
end

---@param value string|LazyKeys
function M:_del(value)
local keys = M.parse(value)
pcall(vim.keymap.del, "n", keys[1])
vim.pretty_print(keys)
pcall(vim.keymap.del, keys.mode, keys[1])
if keys[2] then
vim.keymap.set(keys.mode or "n", keys[1], keys[2], M.opts(keys))
vim.keymap.set(keys.mode, keys[1], keys[2], M.opts(keys))
end
end

Expand Down

0 comments on commit 56890ce

Please sign in to comment.