Unexpected :noop after 'recompile' (mix / iex)

Seems like Atom was recompiling automatically for you then.

It was not. I wasn’t able to access the new modules I was adding to the code unless I used the -force option.

I might be off course here but I think an autocomplete plugin needs to automatically recompile. But yeah, I might be wrong.

Maybe it was doing a half-assed job because of not working properly (it was giving out an error)

Because they haven’t been loaded into iex, it just didn’t knew those new modules exist.

And indeed, most completion plugins rely on compiling modules and querying the BEAM for metadata.

It has been a well proven workaround to start the editor with a MIX_ENV that was different from dev.

The main problem though is, that some of those plugins won’t work with elixir 1.10, especially those that build on top of elixir_sense. Plugins maintainers need to update their dependencies to get a working version.

If there is an easy way in atom to use any language server of choice, you really should use the elixir language server (fork) which seems to be one of the most active editor related projects in the community, the other is the intellij plugin.

1 Like

I had the same problem, and it was an extension in VS Code calling Credo. Disabling it made recompile work again.

3 Likes

Not sure if relevant but I had this vscode extension for “elixir linting” which I removed and then recompile started working again. Forgot which extension it was exactly.

2 Likes

I had the same issue, thanks for sharing!

As mentioned by @NobbZ, I was able to get it to work by setting a different MIX_ENV environment variable before running iex (e.g. MIX_ENV=test iex -S mix).

According to this blog post, using the test environment preserves some of the settings expected in a development environment.

1 Like

I had the same issue, thanks for sharing! I resolved mine by uninstall vscode-elixir extension.