commit de96063bda43273f94478af2b02b5f5487b4f3f2
parent 49756ebc70dcd37eb7465f9cacd5e78803619daa
Author: Tighearnán Carroll <tighearnan@cgxapp.com>
Date: Sun, 30 Mar 2025 16:51:49 +0100
docs(lsp): `vim.api.buf_request_sync` can also take function as `params` #33170
Diffstat:
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/runtime/doc/lsp.txt b/runtime/doc/lsp.txt
@@ -789,7 +789,10 @@ buf_request_sync({bufnr}, {method}, {params}, {timeout_ms})
Parameters: ~
• {bufnr} (`integer`) Buffer handle, or 0 for current.
• {method} (`string`) LSP method name
- • {params} (`table?`) Parameters to send to the server
+ • {params} (`table|(fun(client: vim.lsp.Client, bufnr: integer): table?)?`)
+ Parameters to send to the server. Can also be passed as
+ a function that returns the params table for cases where
+ parameters are specific to the client.
• {timeout_ms} (`integer?`, default: `1000`) Maximum time in
milliseconds to wait for a result.
diff --git a/runtime/lua/vim/lsp.lua b/runtime/lua/vim/lsp.lua
@@ -1230,7 +1230,9 @@ end
---
---@param bufnr integer Buffer handle, or 0 for current.
---@param method string LSP method name
----@param params table? Parameters to send to the server
+---@param params? table|(fun(client: vim.lsp.Client, bufnr: integer): table?) Parameters to send to the server.
+--- Can also be passed as a function that returns the params table for cases where
+--- parameters are specific to the client.
---@param timeout_ms integer? Maximum time in milliseconds to wait for a result.
--- (default: `1000`)
---@return table<integer, {error: lsp.ResponseError?, result: any}>? result Map of client_id:request_result.