KronicDeth / intellij-elixir

Elixir plugin for JetBrain's IntelliJ Platform (including Rubymine)
Other
1.8k stars 152 forks source link

IEx Entrypoint "Elixir.IEx.CLI start()` no longer exists in Elixir v1.15.0+ #3560

Closed ashleysommer closed 2 months ago

ashleysommer commented 3 months ago

Describe the bug IEx Entrypoint Elixir.IEx.CLI start() no longer exists. The start() entrypoint was removed from Elixir v1.15

To Reproduce Steps to reproduce the behavior:

  1. Add a new Run/Debug configuration
  2. Choose IEx Mix
  3. Click Ok
  4. Run the configuration

Expected behavior Should run Mix in the IEx interactive Elixir prompt. This works fine in Elixir v1.14.x and below.

Logs

error_info: {error,undef,[{'Elixir.IEx.CLI',start,[],[]},{user_sup,start_user,3,[{file,"user_sup.erl"},{line,102}]},{user_sup,init,1,[{file,"user_sup.erl"},{line,51}]},{supervisor_bridge,init,1,[{file,"supervisor_bridge.erl"},{line,87}]},{gen_server,init_it,2,[{file,"gen_server.erl"},{line,980}]},{gen_server,init_it,6,[{file,"gen_server.erl"},{line,935}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,241}]}]}

Desktop:

Erlang:

Elixir:

Plugin:

Additional context

See these two commits for the changes in v1.15.0 https://github.com/elixir-lang/elixir/commit/e1eecb8ca698712f5cff76f52ff49b381ce64aa9 https://github.com/elixir-lang/elixir/commit/c28b5969efeec5e70150a68170f3ec3f45bcf523

The correct full constructed cmdline to use in v1.15.0 is this:

/path/to/bin/erl -pa ... -s elixir start_cli -noshell -elixir ansi_enabled true -user elixir -extra +iex -e ":elixir.start_iex()"
 --no-halt -S /path/to/bin/mix

But that doesn't work in v1.15.1+ and v1.16. They introduced yet another mechanism in v1.16 (and v1.15.1+ on the 1.15 branch). https://github.com/elixir-lang/elixir/commit/cc2d05654fc016866a0d3885c5700761024f2724 The correct full cmdline in v1.15.1+ and v1.16.0+ is this:

/path/to/bin/erl -pa ... -s elixir start_iex -noshell -elixir ansi_enabled true -user elixir -extra +iex --no-halt -S /path/to/bin/mix
KronicDeth commented 2 months ago

17.0.0

Confirmed working on 1.14.5 Confirmed broken on 1.15.0 Confirmed broken on 1.15.1 Confirmed broken on 1.16.2