Merge pull request #17 from ukutaht/better_compile_errors
Intercept and print compile errors in a nicer way.
This commit is contained in:
@@ -24,6 +24,11 @@ defmodule Display do
|
||||
"Assertion failed in #{source_file(module)}:#{line_number(expr)}"
|
||||
end
|
||||
|
||||
def format_compile_error(error) do
|
||||
trace = System.stacktrace |> Enum.take(2)
|
||||
IO.puts(format_red(Exception.format(:error, error, trace)))
|
||||
end
|
||||
|
||||
defp line_number({_, [line: line], _}) do
|
||||
line
|
||||
end
|
||||
|
||||
@@ -3,8 +3,12 @@ defmodule Watcher do
|
||||
|
||||
def callback(file, events) do
|
||||
if Enum.member?(events, :modified) do
|
||||
[{mod, _}] = Code.load_file(file)
|
||||
Runner.run(mod)
|
||||
try do
|
||||
[{mod, _}] = Code.load_file(file)
|
||||
Runner.run(mod)
|
||||
rescue
|
||||
e -> Display.format_compile_error(e)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user