Convert Erlang style structs and error messages to equivalent Elixir.
Useful for pretty printing things like Dialyzer errors and Observer state. NOTE: Because this code calls the Elixir formatter, it requires Elixir 1.6+.
Check out the Changelog.
The package can be installed from Hex by adding erlex
to your list of dependencies in mix.exs
:
def deps do [ {:erlex, "~> 0.2"}, ] end
Invoke Erlex.pretty_print/1
with the input string.
iex> str = ~S"('Elixir.Plug.Conn':t(),binary() | atom(),'Elixir.Keyword':t() | map()) -> 'Elixir.Plug.Conn':t()" iex> Erlex.pretty_print(str) (Plug.Conn.t(), binary() | atom(), Keyword.t() | map()) :: Plug.Conn.t()
While the lion's share of the work is done via invoking Erlex.pretty_print/1
, other higher order functions exist for further formatting certain messages by running through the Elixir formatter. Because we know the previous example is a type, we can invoke the Erlex.pretty_print_contract/1
function, which would format that appropriately for very long lines.
iex> str = ~S"('Elixir.Plug.Conn':t(),binary() | atom(),'Elixir.Keyword':t() | map(), map() | atom(), non_neg_integer(), binary(), binary(), binary(), binary(), binary()) -> 'Elixir.Plug.Conn':t()" iex> Erlex.pretty_print_contract(str) ( Plug.Conn.t(), binary() | atom(), Keyword.t() | map(), map() | atom(), non_neg_integer(), binary(), binary(), binary(), binary(), binary() ) :: Plug.Conn.t()
We welcome contributions of all kinds! To get started, click here.
Be sure to read and follow the code of conduct.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4