aboutsummaryrefslogtreecommitdiff
path: root/pretty_errors.moon
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2019-01-27 02:07:37 -0800
committerBruce Hill <bruce@bruce-hill.com>2019-01-27 02:08:47 -0800
commit1ff4e4d432b17110ff6ba4feb54d00128106ece0 (patch)
tree909f85b17ee5325f0284e23f9d5acceedb129368 /pretty_errors.moon
parenta7339001d2e93c3fb2a957ab782f47d46657619a (diff)
Removed utf8 pointer characters from error messages to better support
consoles without utf8 support (may change this back later). Also increased contrast of error messages (no longer assuming user has a sane color palette).
Diffstat (limited to 'pretty_errors.moon')
-rw-r--r--pretty_errors.moon17
1 files changed, 10 insertions, 7 deletions
diff --git a/pretty_errors.moon b/pretty_errors.moon
index 6b0d561..bb8f63f 100644
--- a/pretty_errors.moon
+++ b/pretty_errors.moon
@@ -19,11 +19,14 @@ format_error = (err)->
err_size = math.min((err.stop - err.start), (#err_line-err_linepos) + 1)
nl_indicator = (err_linepos > #err_line) and " " or ""
fmt_str = " %#{#tostring(err_linenum+context)}d|"
- pointer = if err_size >= 2
- (" ")\rep(err_linepos+#fmt_str\format(0)-1).."╚#{("═")\rep(err_size-2)}╝"
- else
- (" ")\rep(err_linepos+#fmt_str\format(0)-1).."⬆"
- err_msg = "\027[33;41;1m#{err.title or "Error"} at #{err.filename or '???'}:#{err_linenum},#{err_linepos}\027[0m"
+
+ pointer = (" ")\rep(err_linepos+#fmt_str\format(0)-1)..("^")\rep(err_size)
+ --pointer = if err_size >= 2
+ -- (" ")\rep(err_linepos+#fmt_str\format(0)-1).."╚#{("═")\rep(err_size-2)}╝"
+ --else
+ -- (" ")\rep(err_linepos+#fmt_str\format(0)-1).."⬆"
+
+ err_msg = "\027[31;1m#{err.title or "Error"} at #{err.filename or '???'}:#{err_linenum},#{err_linepos}\027[0m"
lines = err.source\lines!
for i=err_linenum-context,err_linenum-1
if line = lines[i]
@@ -51,9 +54,9 @@ format_error = (err)->
break
box_width = 70
- err_text = "\027[47;31;1m#{" "..err.error\wrapped_to(box_width, 16)\gsub("\n", "\n\027[47;31;1m ")}"
+ err_text = "\027[47;30;1m#{" "..err.error\wrapped_to(box_width, 16)\gsub("\n", "\n\027[47;30;1m ")}"
if err.hint
- err_text ..= "\n\027[47;30m#{(" Suggestion: #{err.hint}")\wrapped_to(box_width, 16)\gsub("\n", "\n\027[47;30m ")}"
+ err_text ..= "\n\027[47;30;3m#{(" Suggestion: #{err.hint}")\wrapped_to(box_width, 16)\gsub("\n", "\n\027[47;30;3m ")}"
err_msg ..= "\n\027[33;1m "..box(err_text)\gsub("\n", "\n ")
for i=err_linenum_end+1,err_linenum_end+context