ExDebug

version - 1.0.0

Elixir library with debugging functions for making life easier.

Installation

The package can be installed by adding ex_debug to your list of dependencies in mix.exs:

def deps do
  [
    {:ex_debug, "~> 1.0.0"}
  ]
end

Documentation generated with ExDoc and published on HexDocs. The docs can be found at: https://hexdocs.pm/ex_debug/.

Configuration

When using the ExDebug.console\2 function, it’s possible to pass some formatting options to the function. There is a configuration in config/config.exs file that can be adjusted to set these options globally:

# config/config.exs file

config :ex_debug,
  width: 80,
  color: 255,
  line_color: 238,
  time_color: 247,
  syntax_colors: [
    atom:    :cyan,
    binary:  :white,
    boolean: :magenta,
    list:    :white,
    map:     :white,
    nil:     :magenta,
    number:  :yellow,
    regex:   :light_red,
    reset:   :yellow,
    string:  :green,
    tuple:   :white
  ]

Configuration parameters

256 color palette

palette image

Use

ExDebug.console

Use the ExDebug.console\2 function chaining it anywhere in your functions pipelines, to print in console the current data on that point of the pipeline.

This behavior is only present in the :dev and :test environments. If it’s called in the :prod (or any other) environment, it will simply ignore the command and pass through the data.

Example

iex> "Lorem-Ipsum"
...> |> String.split("-")
...> |> ExDebug.console(label: "Split return")
...> |> Enum.join()
...> |> String.downcase()
# Split return -------------------------------------- 2022-03-10 - 00:47:07.523741
# ["Lorem", "Ipsum"]
# ------------------------------------------------------------------- MyApp v0.0.0
"loremipsum" # <- This is the actual pipeline return, besides de console print.