Skip to content

Commit 56779fc

Browse files
pareeohnosJosé Valim
authored andcommitted
Resolves issue with autocompletion on structs not working in IEx (#5133)
Signed-off-by: José Valim <jose.valim@plataformatec.com.br>
1 parent 13b432c commit 56779fc

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

lib/iex/lib/iex/autocomplete.ex

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,12 @@ defmodule IEx.Autocomplete do
5959
defp reduce(expr) do
6060
Enum.reduce(' ([{', expr, fn token, acc ->
6161
hd(:string.tokens(acc, [token]))
62-
end) |> Enum.reverse |> strip_ampersand
62+
end) |> Enum.reverse |> strip_ampersand |> strip_percent
6363
end
6464

65+
defp strip_percent([?% | t]), do: t
66+
defp strip_percent(expr), do: expr
67+
6568
defp strip_ampersand([?& | t]), do: t
6669
defp strip_ampersand(expr), do: expr
6770

lib/iex/test/iex/autocomplete_test.exs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,4 +179,13 @@ defmodule IEx.AutocompleteTest do
179179
:code.purge(Sample)
180180
:code.delete(Sample)
181181
end
182+
183+
184+
defmodule MyStruct do
185+
defstruct my_val: "val"
186+
end
187+
188+
test "completion for structs" do
189+
assert expand('%IEx.AutocompleteTest.MyStr') == {:yes, 'uct', []}
190+
end
182191
end

0 commit comments

Comments
 (0)