Not sure if bugs?
Using vscode with ElixirLS and 1.6 formatter.
1.Removed parentheses from “if” statements:
if String.length(io_data_valid_string) !== 0 do
vs
if (String.length(io_data_valid_string) !== 0) do
2.Placed “case” statements on new line and an additional new line between them
case db_query_result do
{:ok, []} ->
{:error, socket}
{:error, _reason} ->
{:error, socket}
vs
case db_query_result do
{:ok, []} -> {:error, socket}
{:error, _reason} -> {:error, socket}
3.Closing parenthesis placed on new line:
with
{:ok, socket} <-
SomeApp.SomeModule.some_function(
some_argument_1,
some_argument_2,
some_argument_3,
some_argument_4,
socket
) do
vs
with
{:ok, socket} <-
SomeApp.SomeModule.some_function(
some_argument_1,
some_argument_2,
some_argument_3,
some_argument_4,
socket)
do
I expect to see a closing parenthesis after the last argument, like I expect to see a period at the end of a sentence
.
4. “with” statement’s “do” placed at the end of a case, leaving the next line looking like it’s misplaced, or not formatted.
def sanitize(io_data, socket) do
with {:ok, socket, io_data_valid_string} <- check_if_string_valid(io_data, socket),
{:ok, socket} <- check_if_empty(io_data_valid_string, socket),
{:ok, socket, io_data_valid_string_safe} <- escape_html(io_data_valid_string, socket) do
{:ok, socket, io_data_valid_string_safe}
else
{:error, socket} -> {:error, socket}
end
end
vs
def sanitize(io_data, socket) do
with {:ok, socket, io_data_valid_string} <- check_if_string_valid(io_data, socket),
{:ok, socket} <- check_if_empty(io_data_valid_string, socket),
{:ok, socket, io_data_valid_string_safe} <- escape_html(io_data_valid_string, socket)
do
{:ok, socket, io_data_valid_string_safe}
else
{:error, socket} -> {:error, socket}
end
end
Are these the way it’s supposed to be or are any of them bugs?
If they are bugs any idea if it’s vscode ElixirLS related or the formatter itself?
If they’re not bugs, can someone explain why:
-
Remove parentheses from “if” statements?
-
Why double the lines for “case” statements from 3 to 6?
-
Why place closing parenthesis on a new line instead at the end of last argument?
-
Why is this
{:ok,
[
%{
“something_something_something” => something_something_something,
“something_something_something” => something_something_something,
“something_something_something” => something_something_something,
“something_something_something” => something_something_something,
“something_something_something” => something_something_something,
“something_something_something” => something_something_something,
“something_something_something” => something_something_something,
“something_something_something” => something_something_something
}
]} ->
{:ok, something_something}
better than this?
{:ok,[%{
"something_something_something" => something_something_something,
"something_something_something" => something_something_something,
"something_something_something" => something_something_something,
"something_something_something" => something_something_something,
"something_something_something" => something_something_something,
"something_something_something" => something_something_something,
"something_something_something" => something_something_something,
"something_something_something" => something_something_something
}]} ->
{:ok, something_something}
Or even
{:ok,
[
%{
"something_something_something" => something_something_something,
"something_something_something" => something_something_something,
"something_something_something" => something_something_something,
"something_something_something" => something_something_something,
"something_something_something" => something_something_something,
"something_something_something" => something_something_something,
"something_something_something" => something_something_something,
"something_something_something" => something_something_something
}
]
} ->
{:ok, something_something}
But why have a new line for every opening bracket and then only have two of the three closing brackets on the same line “]} ->”?