Current section

Files

Jump to
igniter lib igniter util debug.ex
Raw

lib/igniter/util/debug.ex

defmodule Igniter.Util.Debug do
@moduledoc "Tools for debugging zippers."
alias Sourceror.Zipper
@doc "Puts the formatted code at the node of the zipper to the console"
def puts_code_at_node({:ok, zipper}) do
zipper
|> Zipper.node()
|> Sourceror.to_string()
|> then(&"==code==\n{:ok, #{&1}}\n==!code==\n")
|> IO.puts()
{:ok, zipper}
end
def puts_code_at_node(:error) do
IO.puts("==code==\n:error\n==!code==\n")
:error
end
def puts_code_at_node(zipper) do
zipper
|> Zipper.node()
|> Sourceror.to_string()
|> then(&"==code==\n#{&1}\n==!code==\n")
|> IO.puts()
zipper
end
@doc "Returns the formatted code at the node of the zipper to the console"
def code_at_node(zipper) do
zipper
|> Zipper.node()
|> Sourceror.to_string()
end
@doc "Puts the ast at the node of the zipper to the console"
def puts_ast_at_node(zipper) do
zipper
|> Zipper.node()
|> then(&"==ast==\n#{inspect(&1, pretty: true)}\n==!ast==\n")
|> IO.puts()
zipper
end
end