diff options
author | Michael Lingelbach <m.j.lbach@gmail.com> | 2021-05-19 09:39:44 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-19 09:39:44 -0700 |
commit | edd48f57aa45d35ed5067471d030b626f07cc707 (patch) | |
tree | c3e61e364e8f1129f014fac5390a481d0b7c85b2 /runtime/lua | |
parent | 52ca7f1a26e4da95f3b3b00670252cfdf788a011 (diff) | |
parent | ca336c681d263cd52f2aba40a8d0b0646d5a9f3d (diff) | |
download | rneovim-edd48f57aa45d35ed5067471d030b626f07cc707.tar.gz rneovim-edd48f57aa45d35ed5067471d030b626f07cc707.tar.bz2 rneovim-edd48f57aa45d35ed5067471d030b626f07cc707.zip |
Merge pull request #14583 from cbarrete/unsupported-call-hierarchies
lsp: handle unsupported call hierarchy call
Diffstat (limited to 'runtime/lua')
-rw-r--r-- | runtime/lua/vim/lsp/buf.lua | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/runtime/lua/vim/lsp/buf.lua b/runtime/lua/vim/lsp/buf.lua index 341a3e82fc..5dd7109bb0 100644 --- a/runtime/lua/vim/lsp/buf.lua +++ b/runtime/lua/vim/lsp/buf.lua @@ -297,26 +297,30 @@ local function pick_call_hierarchy_item(call_hierarchy_items) return choice end +local function call_hierarchy(method) + local params = util.make_position_params() + request('textDocument/prepareCallHierarchy', params, function(err, _, result) + if err then + vim.notify(err.message, vim.log.levels.WARN) + return + end + local call_hierarchy_item = pick_call_hierarchy_item(result) + vim.lsp.buf_request(0, method, { item = call_hierarchy_item }) + end) +end + --- Lists all the call sites of the symbol under the cursor in the --- |quickfix| window. If the symbol can resolve to multiple --- items, the user can pick one in the |inputlist|. function M.incoming_calls() - local params = util.make_position_params() - request('textDocument/prepareCallHierarchy', params, function(_, _, result) - local call_hierarchy_item = pick_call_hierarchy_item(result) - vim.lsp.buf_request(0, 'callHierarchy/incomingCalls', { item = call_hierarchy_item }) - end) + call_hierarchy('callHierarchy/incomingCalls') end --- Lists all the items that are called by the symbol under the --- cursor in the |quickfix| window. If the symbol can resolve to --- multiple items, the user can pick one in the |inputlist|. function M.outgoing_calls() - local params = util.make_position_params() - request('textDocument/prepareCallHierarchy', params, function(_, _, result) - local call_hierarchy_item = pick_call_hierarchy_item(result) - vim.lsp.buf_request(0, 'callHierarchy/outgoingCalls', { item = call_hierarchy_item }) - end) + call_hierarchy('callHierarchy/outgoingCalls') end --- List workspace folders. |