Skip to content

Commit 4def53f

Browse files
authored
Support for additional environment variables. (#622)
* add support for adding environment variables * update restart message * check for nil map, not necesarily always a map
1 parent 8d28a85 commit 4def53f

File tree

1 file changed

+16
-0
lines changed
  • apps/language_server/lib/language_server

1 file changed

+16
-0
lines changed

apps/language_server/lib/language_server/server.ex

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1097,12 +1097,14 @@ defmodule ElixirLS.LanguageServer.Server do
10971097
enable_dialyzer =
10981098
Dialyzer.check_support() == :ok && Map.get(settings, "dialyzerEnabled", true)
10991099

1100+
env_vars = Map.get(settings, "envVariables")
11001101
mix_env = Map.get(settings, "mixEnv", "test")
11011102
mix_target = Map.get(settings, "mixTarget")
11021103
project_dir = Map.get(settings, "projectDir")
11031104

11041105
state =
11051106
state
1107+
|> maybe_set_env_vars(env_vars)
11061108
|> set_mix_env(mix_env)
11071109
|> maybe_set_mix_target(mix_target)
11081110
|> set_project_dir(project_dir)
@@ -1127,6 +1129,20 @@ defmodule ElixirLS.LanguageServer.Server do
11271129
end
11281130
end
11291131

1132+
defp maybe_set_env_vars(state = %__MODULE__{}, nil), do: state
1133+
1134+
defp maybe_set_env_vars(state = %__MODULE__{}, env) do
1135+
prev_env = state.settings["envVariables"]
1136+
1137+
if is_nil(prev_env) or env == prev_env do
1138+
System.put_env(env)
1139+
else
1140+
JsonRpc.show_message(:warning, "You must restart ElixirLS after changing environment variables")
1141+
end
1142+
1143+
state
1144+
end
1145+
11301146
defp set_mix_env(state = %__MODULE__{}, env) do
11311147
prev_env = state.settings["mixEnv"]
11321148

0 commit comments

Comments
 (0)