From 1e9a1dc62e425ae789ecd1abc0dd85bf304cfe58 Mon Sep 17 00:00:00 2001 From: Lukasz Samson Date: Mon, 2 Oct 2023 22:22:54 +0200 Subject: [PATCH] handle activeParameter override on signature Completes fix for https://github.com/elixir-lsp/elixir-ls/issues/994 --- .../lib/language_server/providers/signature_help.ex | 13 ++++++++++++- dep_versions.exs | 2 +- mix.lock | 2 +- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/apps/language_server/lib/language_server/providers/signature_help.ex b/apps/language_server/lib/language_server/providers/signature_help.ex index 7f9a615e5..b1ff2e5f7 100644 --- a/apps/language_server/lib/language_server/providers/signature_help.ex +++ b/apps/language_server/lib/language_server/providers/signature_help.ex @@ -22,12 +22,23 @@ defmodule ElixirLS.LanguageServer.Providers.SignatureHelp do {:ok, response} end - defp signature_response(%{documentation: documentation, name: name, params: params, spec: spec}) do + defp signature_response( + %{documentation: documentation, name: name, params: params, spec: spec} = signature + ) do params_info = for param <- params, do: %{"label" => param} label = "#{name}(#{Enum.join(params, ", ")})" response = %{"label" => label, "parameters" => params_info} + response = + case signature do + %{active_param: active_param} -> + Map.put(response, "activeParameter", active_param) + + _ -> + response + end + case {spec, documentation} do {"", ""} -> response diff --git a/dep_versions.exs b/dep_versions.exs index 93914bd4f..070f61913 100644 --- a/dep_versions.exs +++ b/dep_versions.exs @@ -1,5 +1,5 @@ [ - elixir_sense: "a9ae8bc1bd4b99957b68512eb364513898826a30", + elixir_sense: "d2e39a51542dec75932a20cdf430acff24896087", dialyxir_vendored: "d50dcd7101c6ebd37b57b7ee4a7888d8cb634782", jason_v: "c81537e2a5e1acacb915cf339fe400357e3c2aaa", erl2ex_vendored: "073ac6b9a44282e718b6050c7b27cedf9217a12a", diff --git a/mix.lock b/mix.lock index 41befd1b2..4ec586a24 100644 --- a/mix.lock +++ b/mix.lock @@ -2,7 +2,7 @@ "benchee": {:hex, :benchee, "1.1.0", "f3a43817209a92a1fade36ef36b86e1052627fd8934a8b937ac9ab3a76c43062", [:mix], [{:deep_merge, "~> 1.0", [hex: :deep_merge, repo: "hexpm", optional: false]}, {:statistex, "~> 1.0", [hex: :statistex, repo: "hexpm", optional: false]}], "hexpm", "7da57d545003165a012b587077f6ba90b89210fd88074ce3c60ce239eb5e6d93"}, "deep_merge": {:hex, :deep_merge, "1.0.0", "b4aa1a0d1acac393bdf38b2291af38cb1d4a52806cf7a4906f718e1feb5ee961", [:mix], [], "hexpm", "ce708e5f094b9cd4e8f2be4f00d2f4250c4095be93f8cd6d018c753894885430"}, "dialyxir_vendored": {:git, "https://github.com/elixir-lsp/dialyxir.git", "d50dcd7101c6ebd37b57b7ee4a7888d8cb634782", [ref: "d50dcd7101c6ebd37b57b7ee4a7888d8cb634782"]}, - "elixir_sense": {:git, "https://github.com/elixir-lsp/elixir_sense.git", "a9ae8bc1bd4b99957b68512eb364513898826a30", [ref: "a9ae8bc1bd4b99957b68512eb364513898826a30"]}, + "elixir_sense": {:git, "https://github.com/elixir-lsp/elixir_sense.git", "d2e39a51542dec75932a20cdf430acff24896087", [ref: "d2e39a51542dec75932a20cdf430acff24896087"]}, "erl2ex_vendored": {:git, "https://github.com/elixir-lsp/erl2ex.git", "073ac6b9a44282e718b6050c7b27cedf9217a12a", [ref: "073ac6b9a44282e718b6050c7b27cedf9217a12a"]}, "erlex_vendored": {:git, "https://github.com/elixir-lsp/erlex.git", "82db0e82ee4896491bc26dec99f5d795f03ab9f4", [ref: "82db0e82ee4896491bc26dec99f5d795f03ab9f4"]}, "jason_v": {:git, "https://github.com/elixir-lsp/jason.git", "c81537e2a5e1acacb915cf339fe400357e3c2aaa", [ref: "c81537e2a5e1acacb915cf339fe400357e3c2aaa"]},