aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--runtime/doc/lsp.txt5
-rw-r--r--runtime/lua/vim/lsp.lua4
2 files changed, 7 insertions, 2 deletions
diff --git a/runtime/doc/lsp.txt b/runtime/doc/lsp.txt
index 6d232657c9..be1d209ac8 100644
--- 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
index bb4e1cd28f..8c590ab6c8 100644
--- 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.