mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +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:
		| @@ -182,6 +182,8 @@ LSP | |||||||
| • |vim.lsp.buf.format()| now supports passing a list of ranges | • |vim.lsp.buf.format()| now supports passing a list of ranges | ||||||
|   via the `range` parameter (this requires support for the |   via the `range` parameter (this requires support for the | ||||||
|   `textDocument/rangesFormatting` request). |   `textDocument/rangesFormatting` request). | ||||||
|  | • |vim.lsp.buf.code_action()| actions show client name when there are multiple | ||||||
|  |   clients. | ||||||
|  |  | ||||||
| LUA | LUA | ||||||
|  |  | ||||||
|   | |||||||
| @@ -827,11 +827,19 @@ local function on_code_action_results(results, opts) | |||||||
|     return |     return | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   ---@param item {action: lsp.Command|lsp.CodeAction} |   ---@param item {action: lsp.Command|lsp.CodeAction, ctx: lsp.HandlerContext} | ||||||
|   local function format_item(item) |   local function format_item(item) | ||||||
|     local title = item.action.title:gsub('\r\n', '\\r\\n') |     local clients = vim.lsp.get_clients({ bufnr = item.ctx.bufnr }) | ||||||
|     return title:gsub('\n', '\\n') |     local title = item.action.title:gsub('\r\n', '\\r\\n'):gsub('\n', '\\n') | ||||||
|  |  | ||||||
|  |     if #clients == 1 then | ||||||
|  |       return title | ||||||
|     end |     end | ||||||
|  |  | ||||||
|  |     local source = vim.lsp.get_client_by_id(item.ctx.client_id).name | ||||||
|  |     return ('%s [%s]'):format(title, source) | ||||||
|  |   end | ||||||
|  |  | ||||||
|   local select_opts = { |   local select_opts = { | ||||||
|     prompt = 'Code actions:', |     prompt = 'Code actions:', | ||||||
|     kind = 'codeaction', |     kind = 'codeaction', | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Jordan
					Jordan