fix(event): broken DeferredUIEnter event

This commit is contained in:
Marc Jakobi
2024-06-19 18:05:11 +02:00
parent e36cca4c68
commit cf11ec2b16
2 changed files with 23 additions and 1 deletions
+11 -1
View File
@@ -12,14 +12,24 @@ local loader = require("lz.n.loader")
---@field group number
---@field parse fun(spec: lz.n.EventSpec): lz.n.Event
local lz_n_events = {
DeferredUIEnter = { id = "DeferredUIEnter", event = "User", pattern = "DeferredUIEnter" },
}
lz_n_events["User DeferredUIEnter"] = lz_n_events.DeferredUIEnter
---@type lz.n.EventHandler
local M = {
pending = {},
events = {},
group = vim.api.nvim_create_augroup("lz_n_handler_event", { clear = true }),
type = "event",
---@param spec lz.n.EventSpec
parse = function(spec)
local ret
local ret = lz_n_events[spec]
if ret then
return ret
end
if type(spec) == "string" then
local event, pattern = spec:match("^(%w+)%s+(.*)$")
event = event or spec
+12
View File
@@ -104,4 +104,16 @@ describe("handlers.event", function()
assert.True(triggered)
loader._load = orig_load
end)
it("DeferredUIEnter", function()
---@type lz.n.Plugin
local plugin = {
name = "bla",
event = { event.parse("DeferredUIEnter") },
}
local spy_load = spy.on(loader, "_load")
state.plugins[plugin.name] = plugin
event.add(plugin)
vim.api.nvim_exec_autocmds("User", { pattern = "DeferredUIEnter", modeline = false })
assert.spy(spy_load).called(1)
end)
end)