diff options
Diffstat (limited to 'runtime/lua/vim/lsp/handlers.lua')
| -rw-r--r-- | runtime/lua/vim/lsp/handlers.lua | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/runtime/lua/vim/lsp/handlers.lua b/runtime/lua/vim/lsp/handlers.lua index f8c1db9607..f4765183af 100644 --- a/runtime/lua/vim/lsp/handlers.lua +++ b/runtime/lua/vim/lsp/handlers.lua @@ -519,7 +519,8 @@ end --- @overload fun(direction:'to'): fun(_, result: lsp.CallHierarchyOutgoingCall[]?) local function make_call_hierarchy_handler(direction) --- @param result lsp.CallHierarchyIncomingCall[]|lsp.CallHierarchyOutgoingCall[] - return function(_, result) + --- @param ctx lsp.HandlerContext + return function(_, result, ctx) if not result then return end @@ -527,9 +528,17 @@ local function make_call_hierarchy_handler(direction) for _, call_hierarchy_call in pairs(result) do --- @type lsp.CallHierarchyItem local call_hierarchy_item = call_hierarchy_call[direction] + local filename = nil + local bufnr = nil + if direction == 'from' then + filename = assert(vim.uri_to_fname(call_hierarchy_item.uri)) + else + bufnr = ctx.bufnr + end for _, range in pairs(call_hierarchy_call.fromRanges) do table.insert(items, { - filename = assert(vim.uri_to_fname(call_hierarchy_item.uri)), + filename = filename, + bufnr = bufnr, text = call_hierarchy_item.name, lnum = range.start.line + 1, col = range.start.character + 1, |
