mirror of
https://github.com/neovim/neovim
synced 2025-07-16 01:01:49 +00:00
feat(lsp): show server name in code actions #30830
Problem: If there are multiple LSP clients, it's not clear which actions are provided by which servers. #30710 Solution: Show the server name next to each action (only if there are multiple clients).
This commit is contained in:
@ -827,11 +827,19 @@ local function on_code_action_results(results, opts)
|
||||
return
|
||||
end
|
||||
|
||||
---@param item {action: lsp.Command|lsp.CodeAction}
|
||||
---@param item {action: lsp.Command|lsp.CodeAction, ctx: lsp.HandlerContext}
|
||||
local function format_item(item)
|
||||
local title = item.action.title:gsub('\r\n', '\\r\\n')
|
||||
return title:gsub('\n', '\\n')
|
||||
local clients = vim.lsp.get_clients({ bufnr = item.ctx.bufnr })
|
||||
local title = item.action.title:gsub('\r\n', '\\r\\n'):gsub('\n', '\\n')
|
||||
|
||||
if #clients == 1 then
|
||||
return title
|
||||
end
|
||||
|
||||
local source = vim.lsp.get_client_by_id(item.ctx.client_id).name
|
||||
return ('%s [%s]'):format(title, source)
|
||||
end
|
||||
|
||||
local select_opts = {
|
||||
prompt = 'Code actions:',
|
||||
kind = 'codeaction',
|
||||
|
Reference in New Issue
Block a user