diff options
Diffstat (limited to 'runtime/lua/vim/lsp/buf.lua')
-rw-r--r-- | runtime/lua/vim/lsp/buf.lua | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/runtime/lua/vim/lsp/buf.lua b/runtime/lua/vim/lsp/buf.lua index e0034cf86e..45056cf272 100644 --- a/runtime/lua/vim/lsp/buf.lua +++ b/runtime/lua/vim/lsp/buf.lua @@ -646,21 +646,7 @@ local function on_code_action_results(results, ctx, options) end if action.command then local command = type(action.command) == 'table' and action.command or action - local fn = client.commands[command.command] or vim.lsp.commands[command.command] - if fn then - local enriched_ctx = vim.deepcopy(ctx) - enriched_ctx.client_id = client.id - fn(command, enriched_ctx) - else - -- Not using command directly to exclude extra properties, - -- see https://github.com/python-lsp/python-lsp-server/issues/146 - local params = { - command = command.command, - arguments = command.arguments, - workDoneToken = command.workDoneToken, - } - client.request('workspace/executeCommand', params, nil, ctx.bufnr) - end + client._exec_cmd(command, ctx) end end @@ -697,7 +683,7 @@ local function on_code_action_results(results, ctx, options) return end apply_action(resolved_action, client) - end) + end, ctx.bufnr) else apply_action(action, client) end @@ -810,4 +796,19 @@ function M.execute_command(command_params) request('workspace/executeCommand', command_params) end +--- Enable/disable/toggle inlay hints for a buffer +---@param bufnr (integer) Buffer handle, or 0 for current +---@param enable (boolean|nil) true/false to enable/disable, nil to toggle +function M.inlay_hint(bufnr, enable) + vim.validate({ enable = { enable, { 'boolean', 'nil' } }, bufnr = { bufnr, 'number' } }) + local inlay_hint = require('vim.lsp._inlay_hint') + if enable then + inlay_hint.enable(bufnr) + elseif enable == false then + inlay_hint.disable(bufnr) + else + inlay_hint.toggle(bufnr) + end +end + return M |