VS Code: how to cross-reference multiple projects not in umbrella?

Hey community,

I am working on several related projects. They are path dependencies and not in an umbrella.

The code is compiling and running fine when I work on the command line only. My problem is how to make VS Code (with vscode-elixir and ElixirLS plugins installed) not complain about not being able to find modules in the other projects.

I already added all projects to the workspace. Problem is, all projects except the one that was the first in the workspace don’t have .elixir_ls directories which means Code is not compiling them at all.

I didn’t have problems with monorepo projects so far but this is a multi-repo project.

Is there a cure?

Hmm… I’m surprised vscode-elixir is causing problems, but I’ve long-since disabled ElixirLS due to it underlining literally every single line in my mix.exs file when I work from WSL.

Can you make the other projects deps of the first one?

Truthfully I figured I will just save the workspace file and restart Code. Now it has been crunching something for at least 45 minutes – on a high-end PC nonetheless! But the red highlights (errors) disappeared and it only started showing the few warnings I was already aware of.

I’ll wait for it to finish and post if things have improved. I’d hate to accept my own answer saying “welp I only had to restart it” but if that’s the solution then why not. :smiley:

1 Like

In the output panel you can switch to the ElixirLS output to see if it logged the errors is had.

1 Like

Which version of Elixir and Erlang and operating system? I’m remembering some issues with dialyzer under certain circumstances that would make dialyzer run into an infinite loop…

$ asdf list

Trouble is, initially it logged nothing, was just highlighting inter-project dependencies in red. It’s alright now, after a restart and 1h of 100% CPU – as stupid as it sounds.

Called it – a restart of Code somehow fixed it. Even though it took it 1 hour of 100% loaded 4 CPU cores.

Sorry for the noise.

Please remind that vscode might not see the asdf executables, but rather the ones of the system wide installations, depending on the way you start vscode.

Especially if you start vscode from the GUI rather than a treminal, the ELS will use the systems runtime.

1 Like

Thanks for the reminder. I forgot to mention that I am indeed just starting Code like so in the terminal: code &. That way it gets the extra $PATH entries that the asdf shims inject. I specifically removed the system-wide Elixir installation to make sure a few weeks ago.