Skip to content

Commit 977fa23

Browse files
committedJul 22, 2024··
fix(triggers): check for existing keymaps in the correct buffer. Fixes #783
1 parent 48cdaaa commit 977fa23

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed
 

‎lua/which-key/triggers.lua

+9-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,11 @@ M.timer = (vim.uv or vim.loop).new_timer()
1515
--- Checks if a mapping already exists that is not a which-key trigger.
1616
---@param trigger wk.Trigger
1717
function M.is_mapped(trigger)
18-
local km = vim.fn.maparg(trigger.keys, trigger.mode, false, true) --[[@as wk.Keymap]]
18+
---@type wk.Keymap|{}
19+
local km
20+
vim.api.nvim_buf_call(trigger.buf, function()
21+
km = vim.fn.maparg(trigger.keys, trigger.mode, false, true) --[[@as wk.Keymap]]
22+
end)
1923
-- not mapped
2024
if vim.tbl_isempty(km) then
2125
return false
@@ -54,11 +58,14 @@ end
5458

5559
---@param trigger wk.Trigger
5660
function M.del(trigger)
61+
M._triggers[M.id(trigger)] = nil
62+
if not vim.api.nvim_buf_is_valid(trigger.buf) then
63+
return
64+
end
5765
if M.is_mapped(trigger) then
5866
return
5967
end
6068
pcall(vim.keymap.del, trigger.mode, trigger.keys, { buffer = trigger.buf })
61-
M._triggers[M.id(trigger)] = nil
6269
end
6370

6471
---@param trigger wk.Trigger

0 commit comments

Comments
 (0)
Please sign in to comment.