aboutsummaryrefslogtreecommitdiffstats
path: root/lua/alpha/php/servers.lua
blob: 78c99a8b88bca961406e66e5b2fbb0dedc1caaf4 (plain)
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
26
27
28
local phpactor = {}

function phpactor.findclass(buffer, fqn, callback)
    local class_parts = vim.split(fqn, "\\")
    local class = class_parts[#class_parts]

    vim.lsp.buf_request(buffer, "workspace/symbol", { query = class }, function(err, server_result, _, _)
        if err then
            callback(
                nil,
                "Error when finding workspace symbols: " .. err.message
            )

            return
        end

        local locations = vim.lsp.util.symbols_to_items(server_result or {}, buffer) or {}
        if vim.tbl_isempty(locations) then
            vim.api.nvim_err_writeln("Empty response looking for class: " .. fqn)
            return
        end

    end)
end

return {
    phpactor = phpactor,
}