feat(lsp)!: change handler signature

Previously, the handler signature was:

  function(err, method, params, client_id, bufnr, config)

In order to better support external plugins that wish to extend the
protocol, there is other information which would be advantageous to
forward to the client, such as the original params of the request that
generated the callback.

In order to do this, we would need to break symmetry of the handlers, to
add an additional "params" as the 7th argument.

Instead, this PR changes the signature of the handlers to:

  function(err, result, ctx, config)

where ctx (the context) includes params, client_id, and bufnr. This also leaves
flexibility for future use-cases.

BREAKING_CHANGE: changes the signature of the built-in client handlers, requiring
updating handler calls
This commit is contained in:
Michael Lingelbach
2021-08-28 00:12:30 -04:00
parent 5d633546bf
commit df17d7844e
9 changed files with 248 additions and 230 deletions

View File

@@ -433,7 +433,7 @@ local function code_action_request(params)
for _, r in pairs(results) do
vim.list_extend(actions, r.result or {})
end
vim.lsp.handlers[method](nil, method, actions, nil, bufnr)
vim.lsp.handlers[method](nil, actions, {bufnr=bufnr, method=method})
end)
end