Skip to content

Commit 535701d

Browse files
troigantotroiganto
and
troiganto
authored
refactor(events): use vim.defaulttable in EventManager (#886)
* fix(events): harmonize return values from EventManager.init() * refactor(events): use vim.defaulttable() --------- Co-authored-by: troiganto <[email protected]>
1 parent 544e347 commit 535701d

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

lua/orgmode/events/init.lua

+7-7
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@ local Listeners = require('orgmode.events.listeners')
66
---@field private _listeners table<string, fun(...:any)[]>
77
local EventManager = {
88
initialized = false,
9-
_listeners = {},
9+
_listeners = vim.defaulttable(function()
10+
return {}
11+
end),
1012
event = Events,
1113
}
1214

@@ -22,17 +24,15 @@ end
2224
---@param event OrgEvent
2325
---@param listener fun(...)
2426
function EventManager.listen(event, listener)
25-
if not EventManager._listeners[event.type] then
26-
EventManager._listeners[event.type] = {}
27-
end
28-
if not vim.tbl_contains(EventManager._listeners[event.type], listener) then
29-
table.insert(EventManager._listeners[event.type], listener)
27+
local listeners = EventManager._listeners[event.type]
28+
if not vim.tbl_contains(listeners, listener) then
29+
table.insert(listeners, listener)
3030
end
3131
end
3232

3333
function EventManager.init()
3434
if EventManager.initialized then
35-
return
35+
return EventManager
3636
end
3737
for event, listeners in pairs(Listeners) do
3838
for _, listener in ipairs(listeners) do

0 commit comments

Comments
 (0)