Sanjibukai

Sanjibukai

Formatter with Elixir-LS for umbrella project

Hi everybody,

I am working within a Phoenix Umbrella Project and I’m using Elixir-LS in VSCode.
This extension has a setting elixirLS.projectDir that allows to set the path of the project root (where the mix.exs file is located).
I tried by setting the three option I have:

  • "elixirLS.projectDir": "my_app_umbrella"
  • "elixirLS.projectDir": "my_app_umbrella/apps/my_app"
  • "elixirLS.projectDir": "my_app_umbrella/apps/my_app_web"

It’s somehow working on each of these cases, but I’m not sure if it’s working because once set all the generated files will still be available..

However something that isn’t working is the formatter. For example if I set the path to the ecto part (my_app), the schema files correctly handle the defined formatting provided by ecto (e.g. keeping field :name, :string without parentheses like field(:name, :string) but then the autoformater isn’t working on the Phoenix side (my_app_web). For example in the router file all the line like that plug :fetch_session are replaced by plug(:fetch_session)..

Here are the three .formatter.exs files:

# my_app_umbrella/.formatter.exs
[
  inputs: ["mix.exs", "config/*.exs"],
  subdirectories: ["apps/*"]
]
# my_app_umbrella/my_app/.formatter.exs
[
  import_deps: [:ecto],
  inputs: ["*.{ex,exs}", "priv/*/seeds.exs", "{config,lib,test}/**/*.{ex,exs}"],
  subdirectories: ["priv/*/migrations"]
]
# my_app_umbrella/my_app_web/.formatter.exs
[
  import_deps: [:phoenix],
  inputs: ["*.{ex,exs}", "{config,lib,test}/**/*.{ex,exs}"]
]

So I wonder if putting everything on the umbrella project will solve my problem.
I merged the arrays of every like so:

[
  import_deps: [:ecto, :phoenix],
  inputs: ["*.{ex,exs}", "priv/*/seeds.exs", "{config,lib,test}/**/*.{ex,exs}"],
  subdirectories: ["priv/*/migrations", "apps/*"]
]

And now everything regarding the autoformatter seems to work.

So I wanted to know what do you think?
Will it be a good idea to make this as a default?

Though, I’m not sure if merging the entries won’t have side effects..

Most Liked

lukaszsamson

lukaszsamson

ElixirLS Core Team

Unfortunately the formatter support in elixir-LS is buggy, see e.g. textDocument/formatting does not support subdirectories in .formatter.exs · Issue #361 · elixir-lsp/elixir-ls · GitHub
Personally, I only use mix format

Where Next?

Popular in Discussions Top

PragTob
Hello everyone, I know we had quite some threads (read through lots of them) about background job processing but it remains a hotly deba...
New
mikl
I wanted to capitalize a string, and tried using String.capitalize(). That generally works well, until you try to capitalize a word like...
New
sashaafm
I’m trying to evaluate the best combo/stack for a BEAM Web app. Right now I’m exploring Yaws a bit, after having dealt with Phoenix for a...
New
Rustixir
Hi everyone, im working on find best language/framework/system for high concurrency, high performance and stable performance after wor...
New
arpan
Hello everyone :wave: Today I am very excited to announce a project that I have been working on for almost 3 months now. The project is...
New
nunobernardes99
Hi there Elixir friends :vulcan_salute: In a recent task I was on, I needed to check in two dates which of them is the maximum and which...
New
AstonJ
I’ve just started the Phoenix part of the utterly brilliant online course by @pragdave. On generating the Phoenix app he uses the --no-ec...
New
AstonJ
Please see the new poll here: Which code editor or IDE do you use? (Poll) (2022 Edition) It’s been a while since we first asked this, I...
208 31142 143
New
jesse
Hi everyone, I hesitated to post this here because I don’t want you to think I’m spamming, but I’ve been working on a Platform-as-a-Serv...
New
acrolink
How does the two languages compare when it comes to server side application development? Any experiences or ideas? Thank you.
New

Other popular topics Top

danschultzer
None of the current solutions worked well for me, so I went ahead and built a user management system from scratch. This project took far...
548 29377 241
New
WestKeys
Currently suffering from paralysis by [HTTP client] analysis. This is rather unusual in Elixirland as there tends to be consensus on the ...
New
JeremM34
Hello, how can I check the Phoenix version ? Thanks !
New
ovidiubadita
Hey all, I discovered Elixir and I love it. I always wanted to learn a functional programming and I intended to go for Haskell, but afte...
New
jaysoifer
Is there a way to rollback a specific migration and only that one (“skipping” all the other ones)? Would mix ecto.rollback -v 200809061...
New
SoCreat
i’m a new one to elixir which editor can i use vs code? or atom? Thanks! :smiley:
New
RisingFromAshes
I’ve read in another post that it may be possible with a router helper - but I couldn’t find an appropriate one, and tbh, I’m still just ...
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
nsuchy
Hi. I’ve noticed that Windows Powershell has it’s own IEX command and you cannot access Elixir’s IEX due to the conflict. This isn’t a cr...
New
axelson
This post is a wiki (feel free to hit the edit button near the bottom right of this post to add your own changes!) This post collects co...
239 47930 226
New

Latest on Elixir Forum

We're in Beta

About us Mission Statement