mirror of
https://github.com/neovim/neovim.git
synced 2025-12-07 15:14:04 +00:00
fix(lsp): support duplicate params in signature help (#15032)
This commit is contained in:
@@ -329,20 +329,26 @@ M['textDocument/implementation'] = location_handler
|
||||
--- - border: (default=nil)
|
||||
--- - Add borders to the floating window
|
||||
--- - See |vim.api.nvim_open_win()|
|
||||
function M.signature_help(_, method, result, _, bufnr, config)
|
||||
function M.signature_help(_, method, result, client_id, bufnr, config)
|
||||
config = config or {}
|
||||
config.focus_id = method
|
||||
-- When use `autocmd CompleteDone <silent><buffer> lua vim.lsp.buf.signature_help()` to call signatureHelp handler
|
||||
-- If the completion item doesn't have signatures It will make noise. Change to use `print` that can use `<silent>` to ignore
|
||||
if not (result and result.signatures and result.signatures[1]) then
|
||||
print('No signature help available')
|
||||
if config.silent ~= true then
|
||||
print('No signature help available')
|
||||
end
|
||||
return
|
||||
end
|
||||
local client = vim.lsp.get_client_by_id(client_id)
|
||||
local triggers = client.resolved_capabilities.signature_help_trigger_characters
|
||||
local ft = api.nvim_buf_get_option(bufnr, 'filetype')
|
||||
local lines, hl = util.convert_signature_help_to_markdown_lines(result, ft)
|
||||
local lines, hl = util.convert_signature_help_to_markdown_lines(result, ft, triggers)
|
||||
lines = util.trim_empty_lines(lines)
|
||||
if vim.tbl_isempty(lines) then
|
||||
print('No signature help available')
|
||||
if config.silent ~= true then
|
||||
print('No signature help available')
|
||||
end
|
||||
return
|
||||
end
|
||||
local fbuf, fwin = util.open_floating_preview(lines, "markdown", config)
|
||||
|
||||
Reference in New Issue
Block a user