mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-02-03 06:50:05 +08:00
36 lines
806 B
Lua
Vendored
36 lines
806 B
Lua
Vendored
local debug = require('cmp.utils.debug')
|
|
|
|
local autocmd = {}
|
|
|
|
autocmd.events = {}
|
|
|
|
---Subscribe autocmd
|
|
---@param event string
|
|
---@param callback function
|
|
---@return function
|
|
autocmd.subscribe = function(event, callback)
|
|
autocmd.events[event] = autocmd.events[event] or {}
|
|
table.insert(autocmd.events[event], callback)
|
|
return function()
|
|
for i, callback_ in ipairs(autocmd.events[event]) do
|
|
if callback_ == callback then
|
|
table.remove(autocmd.events[event], i)
|
|
break
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
---Emit autocmd
|
|
---@param event string
|
|
autocmd.emit = function(event)
|
|
debug.log(' ')
|
|
debug.log(string.format('>>> %s', event))
|
|
autocmd.events[event] = autocmd.events[event] or {}
|
|
for _, callback in ipairs(autocmd.events[event]) do
|
|
callback()
|
|
end
|
|
end
|
|
|
|
return autocmd
|