Skip to content

Commit

Permalink
complete with parens if there are remote calls
Browse files Browse the repository at this point in the history
  • Loading branch information
oo6 committed Jun 23, 2023
1 parent 8025bdb commit 050dd67
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -1030,6 +1030,7 @@ defmodule ElixirLS.LanguageServer.Providers.Completion do
} = info

%{
prefix: prefix,
pipe_before?: pipe_before?,
capture_before?: capture_before?,
text_after_cursor: text_after_cursor
Expand All @@ -1038,7 +1039,9 @@ defmodule ElixirLS.LanguageServer.Providers.Completion do
locals_without_parens = Keyword.get(options, :locals_without_parens)
signature_help_supported? = Keyword.get(options, :signature_help_supported, false)
signature_after_complete? = Keyword.get(options, :signature_after_complete, true)
with_parens? = function_name_with_parens?(name, arity, locals_without_parens)

remote_calls? = String.contains?(prefix, ".")
with_parens? = remote_calls? || function_name_with_parens?(name, arity, locals_without_parens)

trigger_signature? = signature_help_supported? && ((arity == 1 && !pipe_before?) || arity > 1)

Expand Down
19 changes: 19 additions & 0 deletions apps/language_server/test/providers/completion_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -829,6 +829,25 @@ defmodule ElixirLS.LanguageServer.Providers.CompletionTest do
assert item["command"] == @signature_command
end

test "complete with parens if there are remote calls" do
text = """
defmodule MyModule do
def dummy_function() do
Map.drop
# ^
end
end
"""

{line, char} = {2, 12}
TestUtils.assert_has_cursor_char(text, line, char)

opts = Keyword.merge(@supports, locals_without_parens: MapSet.new(drop: 2))
{:ok, %{"items" => [item]}} = Completion.completion(text, line, char, opts)

assert item["insertText"] == "drop($1)$0"
end

test "function with arity 0 does not triggers signature" do
text = """
defmodule MyModule do
Expand Down

0 comments on commit 050dd67

Please sign in to comment.