diff options
author | Hirokazu Hata <h.hata.ai.t@gmail.com> | 2020-02-22 21:20:38 +0900 |
---|---|---|
committer | Hirokazu Hata <h.hata.ai.t@gmail.com> | 2020-03-01 09:10:02 +0900 |
commit | 16262472cda88d0a4dc5c6729cfef36264569324 (patch) | |
tree | a2262b0ccd3a957c9f27114365dff0f835bbc71c /runtime/lua/vim/lsp/callbacks.lua | |
parent | f157fdef7eccba6601c6d3b1475847466b60c25b (diff) | |
download | rneovim-16262472cda88d0a4dc5c6729cfef36264569324.tar.gz rneovim-16262472cda88d0a4dc5c6729cfef36264569324.tar.bz2 rneovim-16262472cda88d0a4dc5c6729cfef36264569324.zip |
lsp: add 'textDocument/documentSymbol’ callback
Spec: https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_documentSymbol
Diffstat (limited to 'runtime/lua/vim/lsp/callbacks.lua')
-rw-r--r-- | runtime/lua/vim/lsp/callbacks.lua | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/runtime/lua/vim/lsp/callbacks.lua b/runtime/lua/vim/lsp/callbacks.lua index 99093216d9..63b5c4d493 100644 --- a/runtime/lua/vim/lsp/callbacks.lua +++ b/runtime/lua/vim/lsp/callbacks.lua @@ -38,7 +38,13 @@ end M['textDocument/references'] = function(_, _, result) if not result then return end - util.set_qflist(result) + util.set_qflist(util.locations_to_items(result)) +end + +M['textDocument/documentSymbol'] = function(_, _, result, _, bufnr) + if not result or vim.tbl_isempty(result) then return end + + util.set_qflist(util.symbols_to_items(result, bufnr)) api.nvim_command("copen") api.nvim_command("wincmd p") end @@ -97,7 +103,7 @@ local function location_callback(_, method, result) end util.jump_to_location(result[1]) if #result > 1 then - util.set_qflist(result) + util.set_qflist(util.locations_to_items(result)) api.nvim_command("copen") api.nvim_command("wincmd p") end |