aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/lsp/callbacks.lua
diff options
context:
space:
mode:
authorHirokazu Hata <h.hata.ai.t@gmail.com>2020-02-22 21:20:38 +0900
committerHirokazu Hata <h.hata.ai.t@gmail.com>2020-03-01 09:10:02 +0900
commit16262472cda88d0a4dc5c6729cfef36264569324 (patch)
treea2262b0ccd3a957c9f27114365dff0f835bbc71c /runtime/lua/vim/lsp/callbacks.lua
parentf157fdef7eccba6601c6d3b1475847466b60c25b (diff)
downloadrneovim-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.lua10
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