refactor(PromptInput): optimize PromptInput autocmd management (#1857)
This commit is contained in:
@@ -303,47 +303,25 @@ function PromptInput:setup_autocmds()
|
|||||||
|
|
||||||
api.nvim_create_autocmd("ModeChanged", {
|
api.nvim_create_autocmd("ModeChanged", {
|
||||||
group = group,
|
group = group,
|
||||||
pattern = "i:*",
|
pattern = { "i:*", "*:i" },
|
||||||
callback = function()
|
callback = function()
|
||||||
local cur_buf = api.nvim_get_current_buf()
|
local cur_buf = api.nvim_get_current_buf()
|
||||||
if cur_buf == bufnr then self:show_shortcuts_hints() end
|
if cur_buf == bufnr then self:show_shortcuts_hints() end
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
api.nvim_create_autocmd("ModeChanged", {
|
api.nvim_create_autocmd("QuitPre", {
|
||||||
group = group,
|
|
||||||
pattern = "*:i",
|
|
||||||
callback = function()
|
|
||||||
local cur_buf = api.nvim_get_current_buf()
|
|
||||||
if cur_buf == bufnr then self:show_shortcuts_hints() end
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
local quit_id, close_unfocus
|
|
||||||
quit_id = api.nvim_create_autocmd("QuitPre", {
|
|
||||||
group = group,
|
group = group,
|
||||||
buffer = bufnr,
|
buffer = bufnr,
|
||||||
once = true,
|
once = true,
|
||||||
nested = true,
|
nested = true,
|
||||||
callback = function()
|
callback = function() self:cancel() end,
|
||||||
self:cancel()
|
|
||||||
if not quit_id then
|
|
||||||
api.nvim_del_autocmd(quit_id)
|
|
||||||
quit_id = nil
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
})
|
})
|
||||||
|
|
||||||
close_unfocus = api.nvim_create_autocmd("WinLeave", {
|
api.nvim_create_autocmd("WinLeave", {
|
||||||
group = group,
|
group = group,
|
||||||
buffer = bufnr,
|
buffer = bufnr,
|
||||||
callback = function()
|
callback = function() self:cancel() end,
|
||||||
self:cancel()
|
|
||||||
if close_unfocus then
|
|
||||||
api.nvim_del_autocmd(close_unfocus)
|
|
||||||
close_unfocus = nil
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user