Skip to content

Commit 8486de4

Browse files
committed
adopt elixir_sense changes
1 parent e24db35 commit 8486de4

File tree

15 files changed

+45
-66
lines changed

15 files changed

+45
-66
lines changed

apps/elixir_ls_utils/lib/completion_engine.ex

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -484,8 +484,7 @@ defmodule ElixirLS.Utils.CompletionEngine do
484484
match_module_funs(env.module, hint, exact?, false, :all, env, metadata, cursor_position)
485485

486486
imported_locals =
487-
env.imports
488-
|> Introspection.expand_imports(metadata.mods_funs_to_positions)
487+
{env.functions, env.macros}
489488
|> Introspection.combine_imports()
490489
|> Enum.flat_map(fn {scope_import, imported} ->
491490
match_module_funs(

apps/elixir_ls_utils/test/complete_test.exs

Lines changed: 4 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,7 @@ defmodule ElixirLS.Utils.CompletionEngineTest do
3434

3535
def expand(
3636
expr,
37-
env \\ %Env{
38-
imports: [{Kernel, []}]
39-
},
37+
env \\ %Env{functions: :elixir_env.new().functions, macros: :elixir_env.new().macros},
4038
metadata \\ %Metadata{},
4139
opts \\ []
4240
) do
@@ -1237,34 +1235,26 @@ defmodule ElixirLS.Utils.CompletionEngineTest do
12371235
metadata = %Metadata{
12381236
mods_funs_to_positions: %{
12391237
{MyModule, nil, nil} => %ModFunInfo{type: :defmodule},
1240-
{MyModule, :my_fun_priv, nil} => %ModFunInfo{type: :defp},
12411238
{MyModule, :my_fun_priv, 2} => %ModFunInfo{
12421239
type: :defp,
12431240
params: [[{:some, [], nil}, {:other, [], nil}]]
12441241
},
1245-
{MyModule, :my_fun_pub, nil} => %ModFunInfo{type: :def},
12461242
{MyModule, :my_fun_pub, 1} => %ModFunInfo{type: :def, params: [[{:some, [], nil}]]},
1247-
{MyModule, :my_macro_priv, nil} => %ModFunInfo{type: :defmacrop},
12481243
{MyModule, :my_macro_priv, 1} => %ModFunInfo{
12491244
type: :defmacrop,
12501245
params: [[{:some, [], nil}]]
12511246
},
1252-
{MyModule, :my_macro_pub, nil} => %ModFunInfo{type: :defmacro},
12531247
{MyModule, :my_macro_pub, 1} => %ModFunInfo{type: :defmacro, params: [[{:some, [], nil}]]},
1254-
{MyModule, :my_guard_priv, nil} => %ModFunInfo{type: :defguardp},
12551248
{MyModule, :my_guard_priv, 1} => %ModFunInfo{
12561249
type: :defguardp,
12571250
params: [[{:some, [], nil}]]
12581251
},
1259-
{MyModule, :my_guard_pub, nil} => %ModFunInfo{type: :defguard},
12601252
{MyModule, :my_guard_pub, 1} => %ModFunInfo{type: :defguard, params: [[{:some, [], nil}]]},
1261-
{MyModule, :my_delegated, nil} => %ModFunInfo{type: :defdelegate},
12621253
{MyModule, :my_delegated, 1} => %ModFunInfo{
12631254
type: :defdelegate,
12641255
params: [[{:some, [], nil}]]
12651256
},
12661257
{OtherModule, nil, nil} => %ModFunInfo{},
1267-
{OtherModule, :my_fun_pub_other, nil} => %ModFunInfo{type: :def},
12681258
{OtherModule, :my_fun_pub_other, 1} => %ModFunInfo{
12691259
type: :def,
12701260
params: [[{:some, [], nil}]]
@@ -1318,18 +1308,16 @@ defmodule ElixirLS.Utils.CompletionEngineTest do
13181308
test "complete remote funs from imported module" do
13191309
env = %Env{
13201310
module: MyModule,
1321-
imports: [{OtherModule, []}, {Kernel, []}]
1311+
functions: [{OtherModule, [{:my_fun_other_pub, 1}]}]
13221312
}
13231313

13241314
metadata = %Metadata{
13251315
mods_funs_to_positions: %{
13261316
{OtherModule, nil, nil} => %ModFunInfo{type: :defmodule},
1327-
{OtherModule, :my_fun_other_pub, nil} => %ModFunInfo{type: :def},
13281317
{OtherModule, :my_fun_other_pub, 1} => %ModFunInfo{
13291318
type: :def,
13301319
params: [[{:some, [], nil}]]
13311320
},
1332-
{OtherModule, :my_fun_other_priv, nil} => %ModFunInfo{type: :defp},
13331321
{OtherModule, :my_fun_other_priv, 1} => %ModFunInfo{
13341322
type: :defp,
13351323
params: [[{:some, [], nil}]]
@@ -1345,13 +1333,12 @@ defmodule ElixirLS.Utils.CompletionEngineTest do
13451333
test "complete remote funs from imported module - needed import" do
13461334
env = %Env{
13471335
module: MyModule,
1348-
imports: [{OtherModule, [only: [{:my_fun_other_pub, 1}]]}, {Kernel, []}]
1336+
functions: [{OtherModule, [{:my_fun_other_pub, 1}]}]
13491337
}
13501338

13511339
metadata = %Metadata{
13521340
mods_funs_to_positions: %{
13531341
{OtherModule, nil, nil} => %ModFunInfo{type: :defmodule},
1354-
{OtherModule, :my_fun_other_pub, nil} => %ModFunInfo{type: :def},
13551342
{OtherModule, :my_fun_other_pub, 1} => %ModFunInfo{
13561343
type: :def,
13571344
params: [[{:some, [], nil}]]
@@ -1360,7 +1347,6 @@ defmodule ElixirLS.Utils.CompletionEngineTest do
13601347
type: :def,
13611348
params: [[{:some, [], nil}]]
13621349
},
1363-
{OtherModule, :my_fun_other_priv, nil} => %ModFunInfo{type: :defp},
13641350
{OtherModule, :my_fun_other_priv, 1} => %ModFunInfo{
13651351
type: :defp,
13661352
params: [[{:some, [], nil}]]
@@ -1386,12 +1372,10 @@ defmodule ElixirLS.Utils.CompletionEngineTest do
13861372
metadata = %Metadata{
13871373
mods_funs_to_positions: %{
13881374
{Some.OtherModule, nil, nil} => %ModFunInfo{type: :defmodule},
1389-
{Some.OtherModule, :my_fun_other_pub, nil} => %ModFunInfo{type: :def},
13901375
{Some.OtherModule, :my_fun_other_pub, 1} => %ModFunInfo{
13911376
type: :def,
13921377
params: [[{:some, [], nil}]]
13931378
},
1394-
{Some.OtherModule, :my_fun_other_priv, nil} => %ModFunInfo{type: :defp},
13951379
{Some.OtherModule, :my_fun_other_priv, 1} => %ModFunInfo{
13961380
type: :defp,
13971381
params: [[{:some, [], nil}]]
@@ -1413,12 +1397,10 @@ defmodule ElixirLS.Utils.CompletionEngineTest do
14131397
metadata = %Metadata{
14141398
mods_funs_to_positions: %{
14151399
{Some.OtherModule, nil, nil} => %ModFunInfo{type: :defmodule},
1416-
{Some.OtherModule, :my_fun_other_pub, nil} => %ModFunInfo{type: :def},
14171400
{Some.OtherModule, :my_fun_other_pub, 1} => %ModFunInfo{
14181401
type: :def,
14191402
params: [[{:some, [], nil}]]
14201403
},
1421-
{Some.OtherModule, :my_fun_other_priv, nil} => %ModFunInfo{type: :defp},
14221404
{Some.OtherModule, :my_fun_other_priv, 1} => %ModFunInfo{
14231405
type: :defp,
14241406
params: [[{:some, [], nil}]]
@@ -1465,12 +1447,10 @@ defmodule ElixirLS.Utils.CompletionEngineTest do
14651447
metadata = %Metadata{
14661448
mods_funs_to_positions: %{
14671449
{Some.OtherModule, nil, nil} => %ModFunInfo{type: :defmodule},
1468-
{Some.OtherModule, :my_fun_other_pub, nil} => %ModFunInfo{type: :def},
14691450
{Some.OtherModule, :my_fun_other_pub, 1} => %ModFunInfo{
14701451
type: :def,
14711452
params: [[{:some, [], nil}]]
14721453
},
1473-
{Some.OtherModule, :my_fun_other_priv, nil} => %ModFunInfo{type: :defp},
14741454
{Some.OtherModule, :my_fun_other_priv, 1} => %ModFunInfo{
14751455
type: :defp,
14761456
params: [[{:some, [], nil}]]
@@ -1529,8 +1509,7 @@ defmodule ElixirLS.Utils.CompletionEngineTest do
15291509
metadata = %Metadata{
15301510
mods_funs_to_positions: %{
15311511
{MyKeyword, nil, nil} => %ModFunInfo{type: :defmodule},
1532-
{MyKeyword, :values1, 0} => %ModFunInfo{type: :def, params: [[]]},
1533-
{MyKeyword, :values1, nil} => %ModFunInfo{type: :def}
1512+
{MyKeyword, :values1, 0} => %ModFunInfo{type: :def, params: [[]]}
15341513
}
15351514
}
15361515

@@ -1826,10 +1805,8 @@ defmodule ElixirLS.Utils.CompletionEngineTest do
18261805
metadata = %Metadata{
18271806
mods_funs_to_positions: %{
18281807
{MyModule, nil, nil} => %ModFunInfo{type: :defmodule},
1829-
{MyModule, :module_info, nil} => %ModFunInfo{type: :def},
18301808
{MyModule, :module_info, 0} => %ModFunInfo{type: :def, params: [[]]},
18311809
{MyModule, :module_info, 1} => %ModFunInfo{type: :def, params: [[{:atom, [], nil}]]},
1832-
{MyModule, :__info__, nil} => %ModFunInfo{type: :def},
18331810
{MyModule, :__info__, 1} => %ModFunInfo{type: :def, params: [[{:atom, [], nil}]]}
18341811
}
18351812
}
@@ -2167,7 +2144,6 @@ defmodule ElixirLS.Utils.CompletionEngineTest do
21672144
metadata = %Metadata{
21682145
mods_funs_to_positions: %{
21692146
{MyModule, nil, nil} => %ElixirSense.Core.State.ModFunInfo{},
2170-
{MyModule, :info, nil} => macro_info,
21712147
{MyModule, :info, 1} => macro_info
21722148
}
21732149
}

apps/language_server/lib/language_server/providers/completion/reducers/params.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ defmodule ElixirLS.LanguageServer.Providers.Completion.Reducers.Params do
3131
prefix = cursor_context.text_before
3232

3333
%State.Env{
34-
imports: imports,
3534
requires: requires,
3635
aliases: aliases,
3736
module: module,
@@ -51,7 +50,8 @@ defmodule ElixirLS.LanguageServer.Providers.Completion.Reducers.Params do
5150
{mod, fun, true, :mod_fun} <-
5251
Introspection.actual_mod_fun(
5352
{mod, fun},
54-
imports,
53+
env.functions,
54+
env.macros,
5555
requires,
5656
if(elixir_prefix, do: [], else: aliases),
5757
module,

apps/language_server/lib/language_server/providers/completion/reducers/struct.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ defmodule ElixirLS.LanguageServer.Providers.Completion.Reducers.Struct do
5555
module: module,
5656
vars: vars,
5757
attributes: attributes,
58-
imports: imports,
5958
aliases: aliases
6059
} = env
6160

@@ -70,7 +69,8 @@ defmodule ElixirLS.LanguageServer.Providers.Completion.Reducers.Struct do
7069
attributes: attributes,
7170
variables: vars,
7271
structs: structs,
73-
imports: imports,
72+
functions: env.functions,
73+
macros: env.macros,
7474
current_module: module,
7575
specs: specs,
7676
types: metadata_types,

apps/language_server/lib/language_server/providers/definition/locator.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,6 @@ defmodule ElixirLS.LanguageServer.Providers.Definition.Locator do
202202
) do
203203
%State.Env{
204204
module: current_module,
205-
imports: imports,
206205
requires: requires,
207206
aliases: aliases,
208207
scope: scope
@@ -212,7 +211,8 @@ defmodule ElixirLS.LanguageServer.Providers.Definition.Locator do
212211

213212
case {m, function}
214213
|> Introspection.actual_mod_fun(
215-
imports,
214+
env.functions,
215+
env.macros,
216216
requires,
217217
aliases,
218218
current_module,

apps/language_server/lib/language_server/providers/execute_command/expand_macro.ex

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,16 @@ defmodule ElixirLS.LanguageServer.Providers.ExecuteCommand.ExpandMacro do
5959
do_expand_full(code, env)
6060
end
6161

62-
def do_expand_full(code, %State.Env{requires: requires, imports: imports, module: module}) do
62+
def do_expand_full(code, %State.Env{} = env) do
63+
# TODO function and other
6364
env =
64-
%Macro.Env{macros: __ENV__.macros}
65-
|> Ast.set_module_for_env(module)
66-
|> Ast.add_requires_to_env(requires)
67-
|> Ast.add_imports_to_env(imports)
65+
%Macro.Env{
66+
macros: env.macros,
67+
functions: env.functions,
68+
module: env.module,
69+
requires: env.requires,
70+
aliases: env.aliases
71+
}
6872

6973
try do
7074
{:ok, expr} = code |> Code.string_to_quoted()

apps/language_server/lib/language_server/providers/hover/docs.ex

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,8 @@ defmodule ElixirLS.LanguageServer.Providers.Hover.Docs do
181181
{Binding.expand(binding_env, mod), fun}
182182
|> expand(env.aliases)
183183
|> Introspection.actual_mod_fun(
184-
env.imports,
184+
env.functions,
185+
env.macros,
185186
env.requires,
186187
env.aliases,
187188
env.module,

apps/language_server/lib/language_server/providers/implementation/locator.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -253,15 +253,15 @@ defmodule ElixirLS.LanguageServer.Providers.Implementation.Locator do
253253
) do
254254
%State.Env{
255255
module: current_module,
256-
imports: imports,
257256
requires: requires,
258257
aliases: aliases,
259258
scope: scope
260259
} = env
261260

262261
case {module, function}
263262
|> Introspection.actual_mod_fun(
264-
imports,
263+
env.functions,
264+
env.macros,
265265
requires,
266266
aliases,
267267
current_module,

apps/language_server/lib/language_server/providers/plugins/util.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ defmodule ElixirLS.LanguageServer.Plugins.Util do
4040

4141
def actual_mod_fun({mod, fun}, elixir_prefix, env, buffer_metadata) do
4242
%State.Env{
43-
imports: imports,
4443
requires: requires,
4544
aliases: aliases,
4645
module: module,
@@ -51,7 +50,8 @@ defmodule ElixirLS.LanguageServer.Plugins.Util do
5150

5251
Introspection.actual_mod_fun(
5352
{mod, fun},
54-
imports,
53+
env.functions,
54+
env.macros,
5555
requires,
5656
if(elixir_prefix, do: [], else: aliases),
5757
module,

apps/language_server/lib/language_server/providers/references/locator.ex

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,6 @@ defmodule ElixirLS.LanguageServer.Providers.References.Locator do
9595
def find(
9696
context,
9797
%State.Env{
98-
imports: imports,
9998
requires: requires,
10099
aliases: aliases,
101100
module: module,
@@ -119,7 +118,8 @@ defmodule ElixirLS.LanguageServer.Providers.References.Locator do
119118
{mod, function}
120119
|> expand(binding_env, module, aliases)
121120
|> Introspection.actual_mod_fun(
122-
imports,
121+
env.functions,
122+
env.macros,
123123
requires,
124124
aliases,
125125
module,
@@ -149,7 +149,8 @@ defmodule ElixirLS.LanguageServer.Providers.References.Locator do
149149
|> wrap_atom
150150
|> expand(binding_env, module, aliases)
151151
|> Introspection.actual_mod_fun(
152-
env.imports,
152+
env.functions,
153+
env.macros,
153154
env.requires,
154155
env.aliases,
155156
env.module,

0 commit comments

Comments
 (0)