I’m using some asynchronous linting plug-ins for Vim8 and I’m finding myself annoyed by the fact that they compile to
_build/ which breaks Phoenix reload, etc. I found this comment by José:
It is best if editors run their commands on a separate _build directory. It that is not easily doable today, let’s find a way to make it so.
The only way that I can see that this might work right now is if I modify my
mix.exs so that the project
build_path is something like
System.get_env("EDITOR_MIX_BUILD_PATH", "build_path") and remembering to set (either directly or through something like
EDITOR_MIX_BUILD_PATH variable to something like
.vim_build instead of
Is there any other way to do this (e.g.,
mix compile --build-path .vim_build), because the Vim plug-ins I’m using aren’t really using the mix configuration except the build tools.
I’m currently using Neomake for those interested. It’s similar to Ale, but Ale’s linter policy—run everything by default—combined with a stated non-desire to make it easy to find out what linters are available and active, means that if you have dialixir installed, your computer will be brought to its knees with twenty instances of
mix dialyzer. Neomake doesn’t currently have a dialixir plug-in, but it offers a relatively simple way to discover what’s available (
neomake#ft#makers#elixir#EnabledMakers()) and then remove the ones you don’t want. (If a dialyzer plug-in does show up, I’m going to argue very heavily that it should not be enabled by default—and that it should explicitly be opt-in.)