Ma233
Failed to jump to definition of some Elixir built in modules by elixir-ls
Hi, I’m a new programmer of Elixir. I got a problem when using coc-elixir and elixir-ls.
While I can go to definition of all libs installed by mix, I can’t do that for modules implemented by Elixir. For example, I can go to modules of Ecto, Finch, Redix, but I can’t go to GenServer, Supervisor, Application, Keyword, Enum and Map.
Here is :gen_server.module_info. It’s strange that the source is ‘/buildroot/otp/lib/stdlib/src/gen_server.erl’, which I never have this path on my own computer.
I tried installing Elixir by homebrew or asdf. I also compiled an Elixir from the source code. The source has not changed.
iex(1)> :gen_server.module_info
[
module: :gen_server,
exports: [
start: 3,
start: 4,
start_monitor: 3,
start_monitor: 4,
stop: 1,
stop: 3,
call: 2,
send_request: 2,
wait_response: 2,
receive_response: 2,
check_response: 2,
abcast: 2,
abcast: 3,
multi_call: 2,
multi_call: 3,
multi_call: 4,
enter_loop: 3,
enter_loop: 4,
enter_loop: 5,
init_it: 6,
wake_hib: 6,
system_continue: 3,
system_terminate: 4,
system_code_change: 4,
system_get_state: 1,
system_replace_state: 2,
format_status: 2,
behaviour_info: 1,
module_info: 0,
module_info: 1,
reply: 2,
cast: 2,
start_link: 4,
start_link: 3,
call: 3,
format_log: 2,
format_log: 1
],
attributes: [vsn: [235044865929631859612519860561431147861]],
compile: [
version: '8.0.2',
options: [
:debug_info,
{:d, :USE_ESOCK, true},
{:i, '/buildroot/otp/lib/stdlib/src/../include'},
{:i, '/buildroot/otp/lib/stdlib/src/../../kernel/include'}
],
source: '/buildroot/otp/lib/stdlib/src/gen_server.erl'
],
md5: <<176, 211, 254, 155, 70, 221, 37, 113, 151, 64, 207, 131, 77, 198, 181,
85>>
]
Marked As Solved
mhanberg
I believe this only works if you have compiled elixir yourself. Or else, there is literally no source code for it to jump to.
Also Liked
Ma233
For some beginners who might run into the same problem as me. Don’t forget to run mix clean and rerun mix compile after you installed a new self-compiled Elixir.







