@@ -115,9 +115,10 @@ defmodule IEx.Autocomplete do
115115
116116 # Elixir.fun
117117 defp expand_call ( { :__aliases__ , _ , list } , hint , server ) do
118- expand_alias ( list , server )
119- |> normalize_module
120- |> expand_require ( hint )
118+ case expand_alias ( list , server ) do
119+ { :ok , alias } -> expand_require ( alias , hint )
120+ :error -> no ( )
121+ end
121122 end
122123
123124 # variable.fun_or_key
@@ -171,9 +172,10 @@ defmodule IEx.Autocomplete do
171172 end
172173
173174 defp expand_elixir_modules ( list , hint , server ) do
174- expand_alias ( list , server )
175- |> normalize_module
176- |> expand_elixir_modules_from_aliases ( hint , [ ] )
175+ case expand_alias ( list , server ) do
176+ { :ok , alias } -> expand_elixir_modules_from_aliases ( alias , hint , [ ] )
177+ :error -> no ( )
178+ end
177179 end
178180
179181 defp expand_elixir_modules_from_aliases ( mod , hint , aliases ) do
@@ -183,19 +185,16 @@ defmodule IEx.Autocomplete do
183185 |> format_expansion ( hint )
184186 end
185187
186- defp expand_alias ( [ name | rest ] = list , server ) do
187- module = Module . concat ( Elixir , name )
188- Enum . find_value aliases_from_env ( server ) , list , fn { alias , mod } ->
189- if alias === module do
190- case Atom . to_string ( mod ) do
191- "Elixir." <> mod ->
192- Module . concat [ mod | rest ]
193- _ ->
194- mod
195- end
196- end
188+ defp expand_alias ( [ name | rest ] , server ) when is_atom ( name ) do
189+ case Keyword . fetch ( aliases_from_env ( server ) , Module . concat ( Elixir , name ) ) do
190+ { :ok , name } when rest == [ ] -> { :ok , name }
191+ { :ok , name } -> { :ok , Module . concat ( [ name | rest ] ) }
192+ :error -> { :ok , Module . concat ( [ name | rest ] ) }
197193 end
198194 end
195+ defp expand_alias ( [ _ | _ ] , _ ) do
196+ :error
197+ end
199198
200199 defp match_aliases ( hint , server ) do
201200 for { alias , _mod } <- aliases_from_env ( server ) ,
@@ -220,14 +219,6 @@ defmodule IEx.Autocomplete do
220219
221220 ## Helpers
222221
223- defp normalize_module ( mod ) do
224- if is_list ( mod ) do
225- Module . concat ( mod )
226- else
227- mod
228- end
229- end
230-
231222 defp match_modules ( hint , root ) do
232223 get_modules ( root )
233224 |> :lists . usort ( )
0 commit comments