@@ -115,9 +115,10 @@ defmodule IEx.Autocomplete do
115
115
116
116
# Elixir.fun
117
117
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
121
122
end
122
123
123
124
# variable.fun_or_key
@@ -171,9 +172,10 @@ defmodule IEx.Autocomplete do
171
172
end
172
173
173
174
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
177
179
end
178
180
179
181
defp expand_elixir_modules_from_aliases ( mod , hint , aliases ) do
@@ -183,19 +185,16 @@ defmodule IEx.Autocomplete do
183
185
|> format_expansion ( hint )
184
186
end
185
187
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 ] ) }
197
193
end
198
194
end
195
+ defp expand_alias ( [ _ | _ ] , _ ) do
196
+ :error
197
+ end
199
198
200
199
defp match_aliases ( hint , server ) do
201
200
for { alias , _mod } <- aliases_from_env ( server ) ,
@@ -220,14 +219,6 @@ defmodule IEx.Autocomplete do
220
219
221
220
## Helpers
222
221
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
-
231
222
defp match_modules ( hint , root ) do
232
223
get_modules ( root )
233
224
|> :lists . usort ( )
0 commit comments