Merge pull request #17 from ukutaht/better_compile_errors

Intercept and print compile errors in a nicer way.
This commit is contained in:
Uku Taht
2016-01-15 12:54:29 +00:00
2 changed files with 11 additions and 2 deletions

View File

@@ -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

View File

@@ -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