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.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.lua')
-rw-r--r-- | runtime/lua/vim/lsp.lua | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/runtime/lua/vim/lsp.lua b/runtime/lua/vim/lsp.lua index 23eac45046..8af20ea1f9 100644 --- a/runtime/lua/vim/lsp.lua +++ b/runtime/lua/vim/lsp.lua @@ -525,14 +525,15 @@ function lsp.start_client(config) callback = resolve_callback(method) or error("not found: request callback for client "..client.name) end - local _ = log.debug() and log.debug(log_prefix, "client.request", client_id, method, params, callback) + local _ = log.debug() and log.debug(log_prefix, "client.request", client_id, method, params, callback, bufnr) -- TODO keep these checks or just let it go anyway? if (not client.resolved_capabilities.hover and method == 'textDocument/hover') or (not client.resolved_capabilities.signature_help and method == 'textDocument/signatureHelp') or (not client.resolved_capabilities.goto_definition and method == 'textDocument/definition') or (not client.resolved_capabilities.implementation and method == 'textDocument/implementation') + or (not client.resolved_capabilities.document_symbol and method == 'textDocument/documentSymbol') then - callback(unsupported_method(method), method, nil, client_id) + callback(unsupported_method(method), method, nil, client_id, bufnr) return end return rpc.request(method, params, function(err, result) @@ -874,7 +875,7 @@ end function lsp.buf_request_sync(bufnr, method, params, timeout_ms) local request_results = {} local result_count = 0 - local function _callback(err, _method, result, client_id, bufnr) + local function _callback(err, _method, result, client_id) request_results[client_id] = { error = err, result = result } result_count = result_count + 1 end @@ -905,7 +906,7 @@ function lsp.buf_notify(bufnr, method, params) method = { method, 's' }; } local resp = false - for_each_buffer_client(bufnr, function(client, _client_id) + for_each_buffer_client(bufnr, function(client, _client_id, _resolved_bufnr) if client.rpc.notify(method, params) then resp = true end end) return resp |