aboutsummaryrefslogtreecommitdiffstats
path: root/lua/nvim-lsp-installer/dispatcher.lua
blob: 762da3e38d7d896d0c6199e166a3dc5799e256ed (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
local notify = require "nvim-lsp-installer.notify"

local M = {}

local registered_callbacks = {}

---@param server Server
M.dispatch_server_ready = function(server)
    for _, callback in pairs(registered_callbacks) do
        local ok, err = pcall(callback, server)
        if not ok then
            notify(tostring(err), vim.log.levels.ERROR)
        end
    end
end

---@param callback fun(server: Server)
function M.register_server_ready_callback(callback)
    registered_callbacks[callback] = callback
    return function()
        registered_callbacks[callback] = nil
    end
end

return M