aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/lsp/buf.lua
diff options
context:
space:
mode:
authorMichael Lingelbach <m.j.lbach@gmail.com>2021-09-05 10:27:52 -0700
committerJustin M. Keyes <justinkz@gmail.com>2021-09-26 10:25:17 -0700
commitcd8f6c5fb7858d8981fdfb2067bddb3eb86c13d0 (patch)
tree980dbf25f4342e9cf4b616f6c242df3355963ec8 /runtime/lua/vim/lsp/buf.lua
parentf8e0011534a3f94cfd341fd9bfce1bcf9b1b7b73 (diff)
downloadrneovim-cd8f6c5fb7858d8981fdfb2067bddb3eb86c13d0.tar.gz
rneovim-cd8f6c5fb7858d8981fdfb2067bddb3eb86c13d0.tar.bz2
rneovim-cd8f6c5fb7858d8981fdfb2067bddb3eb86c13d0.zip
feat(lsp)!: change handler signature #15504
Diffstat (limited to 'runtime/lua/vim/lsp/buf.lua')
-rw-r--r--runtime/lua/vim/lsp/buf.lua15
1 files changed, 15 insertions, 0 deletions
diff --git a/runtime/lua/vim/lsp/buf.lua b/runtime/lua/vim/lsp/buf.lua
index b13d662ccb..8dfd5c9c5b 100644
--- a/runtime/lua/vim/lsp/buf.lua
+++ b/runtime/lua/vim/lsp/buf.lua
@@ -422,6 +422,21 @@ function M.clear_references()
util.buf_clear_references()
end
+--- Requests code actions from all clients and calls the handler exactly once
+--- with all aggregated results
+---@private
+local function code_action_request(params)
+ local bufnr = vim.api.nvim_get_current_buf()
+ local method = 'textDocument/codeAction'
+ vim.lsp.buf_request_all(bufnr, method, params, function(results)
+ local actions = {}
+ for _, r in pairs(results) do
+ vim.list_extend(actions, r.result or {})
+ end
+ vim.lsp.handlers[method](nil, actions, {bufnr=bufnr, method=method})
+ end)
+end
+
--- Selects a code action from the input list that is available at the current
--- cursor position.
--