halostatue

halostatue

Specify `build_path` from command-line

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 direnv) the EDITOR_MIX_BUILD_PATH variable to something like .vim_build instead of _build.

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.)

Marked As Solved

halostatue

halostatue

For anyone who is looking for this later: this has been fixed in Elixir 1.9 or later with the introduction of MIX_BUILD_PATH. There is a pending fix in Elixir 1.10 that ensures that the MIX_BUILD_PATH still has the environment appended. See PR#9189.

NOTE: I found my post here while looking for something else, because I want to be able to add the Elixir and/or Erlang version to the build path, and the apparent recommendation is to set the env_path, not the build_path. This will make it possible for me to build the same application under multiple versions of Elixir so that I can test newer versions before I want to upgrade or during development. I have to test this, but I think that I will be setting env_path to be something like Pathname.join(["_build", System.version()]).

Where Next?

Popular in Questions Top

gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
albydarned
Hello all! I am typing this post from my new MacBook Pro with the M1 chip. I’m loving it so far, and will probably use it as my daily dr...
New
quazar
How to set Jason to encode all fields in ecto schema, I don’t care about security and implementing only is taking long list of attributes...
New
vac
Hi, I'm quite new in Elixir and I'm trying to format a string to a PEM format. I have the certificate value like MIIDBTCCAe2...... and ...
New
makeitrein
Hey all, just started picking up Elixir last week and am writing a scraper as a learning project. Baby step #1 is extracting the number ...
New
alice
Hey, Just curious what are the main benefits of Elixir compared to Clojure? When is Elixir more useful than Clojure and vice versa? Th...
New
Fl4m3Ph03n1x
Background Let’s assume I have a typical GenServer that receives messages as requests, does some operation in a DB and returns responses....
New
shahryarjb
Hello, I have map which I want to convert it to string like this: the map: %{last_name: "tavakkoli", name: "shahryar"} the string I ne...
New
johnnyicon
Hi all, I've just started learning Elixir and Phoenix Framework, so please pardon my n00bness at this stage. I'm trying to use Postg...
New
Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID<0.412.0> terminating ** (Postgrex.Error) FATAL...
New

Other popular topics Top

chrismccord
Phoenix 1.4.0 released Phoenix 1.4 is out! This release ships with exciting new features, most notably with HTTP2 support, improved deve...
688 30048 115
New
shahryarjb
Hello, I get Persian date from my client and convert it to normal calendar like this: def jalali_string_to_miladi_english_number(persi...
New
peerreynders
Manning 2016 Halloween weekend sale via Deal of the Day Friday, October 28 - Half off all MEAPs - code WM102816LT Saturday, October 29 ...
326 29600 154
New
gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
openscript
Hello! Sorry for this astonishing simple question, but I’m really stuck. I try to set up the intellij-elixir plugin, but I don’t know ho...
New
KronicDeth
Elixir plugin for JetBrain’s IntelliJ Platform (including Rubymine) This is a plugin that adds support for Elixir to JetBrains IntelliJ...
289 35421 110
New
freewebwithme
Using vs code and installed ElixirLS: support and debugger. And I got an error popped up on start up says Failed to run ‘elixir’ comma...
New
fayddelight
I tried installing elixir 1.11.2 erlang 23.3.4 via asdf in my zsh shell. Enabled the versions locally and globally. When I list them ...
New
baxterw3b
Hi guys, i’m new in the Elixir world, and i have to say, that i love it! i’m having some problem to understand anonymous functions with ...
New
skosch
To my knowledge, put_in, Map.update etc. all have the one limitation of not automatically creating intermediate keys when needed (for exa...
New

We're in Beta

About us Mission Statement