mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	fix(lsp): signature_help highlights wrong parameter #32382
Problem:
With some LSP servers, `vim.lsp.buf.signature_help` (CTRL-s in insert-mode)
highlights the first parameter regardless of the current cursor position.
- On some lsps the `textDocument/signatureHelp` response only includes the
  `activeParameter` field on the `lsp.SignatureHelp` object.
  ```lua
  {
    {
      result = {
        activeParameter = 2,
        signatures = {
          {
            documentation = {
              kind = "markdown",
              value = ""
            },
            label = "getBuyers(ctx context.Context, orderDB boil.ContextExecutor, supplierID string) ([]*BuyerWithLocation, error)",
            parameters = {
              {
                label = "ctx context.Context"
              },
              {
                label = "orderDB boil.ContextExecutor"
              },
              {
                label = "supplierID string"
              }
            }
          }
        }
      }
    }
  }
  ```
Solution:
Ensure we retain this information before showing the signature information.
Closes #32381
			
			
This commit is contained in:
		| @@ -315,6 +315,7 @@ local function process_signature_help_results(results) | |||||||
|       local result = r.result --- @type lsp.SignatureHelp |       local result = r.result --- @type lsp.SignatureHelp | ||||||
|       if result and result.signatures and result.signatures[1] then |       if result and result.signatures and result.signatures[1] then | ||||||
|         for _, sig in ipairs(result.signatures) do |         for _, sig in ipairs(result.signatures) do | ||||||
|  |           sig.activeParameter = sig.activeParameter or result.activeParameter | ||||||
|           signatures[#signatures + 1] = { client, sig } |           signatures[#signatures + 1] = { client, sig } | ||||||
|         end |         end | ||||||
|       end |       end | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Shantanu Raj
					Shantanu Raj