| ... | @@ -429,25 +429,23 @@ pub const AllErrors = struct { | ... | @@ -429,25 +429,23 @@ pub const AllErrors = struct { |
| 429 | try stderr.print(" ({d} times)\n", .{src.count}); | 429 | try stderr.print(" ({d} times)\n", .{src.count}); |
| 430 | } | 430 | } |
| 431 | ttyconf.setColor(stderr, .Reset); | 431 | ttyconf.setColor(stderr, .Reset); |
| 432 | if (ttyconf != .no_color) { | 432 | if (src.source_line) |line| { |
| 433 | if (src.source_line) |line| { | 433 | for (line) |b| switch (b) { |
| 434 | for (line) |b| switch (b) { | 434 | '\t' => try stderr.writeByte(' '), |
| 435 | '\t' => try stderr.writeByte(' '), | 435 | else => try stderr.writeByte(b), |
| 436 | else => try stderr.writeByte(b), | 436 | }; |
| 437 | }; | 437 | try stderr.writeByte('\n'); |
| 438 | try stderr.writeByte('\n'); | 438 | // TODO basic unicode code point monospace width |
| 439 | // TODO basic unicode code point monospace width | 439 | const before_caret = src.span.main - src.span.start; |
| 440 | const before_caret = src.span.main - src.span.start; | 440 | // -1 since span.main includes the caret |
| 441 | // -1 since span.main includes the caret | 441 | const after_caret = src.span.end - src.span.main -| 1; |
| 442 | const after_caret = src.span.end - src.span.main -| 1; | 442 | try stderr.writeByteNTimes(' ', src.column - before_caret); |
| 443 | try stderr.writeByteNTimes(' ', src.column - before_caret); | 443 | ttyconf.setColor(stderr, .Green); |
| 444 | ttyconf.setColor(stderr, .Green); | 444 | try stderr.writeByteNTimes('~', before_caret); |
| 445 | try stderr.writeByteNTimes('~', before_caret); | 445 | try stderr.writeByte('^'); |
| 446 | try stderr.writeByte('^'); | 446 | try stderr.writeByteNTimes('~', after_caret); |
| 447 | try stderr.writeByteNTimes('~', after_caret); | 447 | try stderr.writeByte('\n'); |
| 448 | try stderr.writeByte('\n'); | 448 | ttyconf.setColor(stderr, .Reset); |
| 449 | ttyconf.setColor(stderr, .Reset); | | |
| 450 | } | | |
| 451 | } | 449 | } |
| 452 | for (src.notes) |note| { | 450 | for (src.notes) |note| { |
| 453 | try note.renderToWriter(ttyconf, stderr, "note", .Cyan, indent); | 451 | try note.renderToWriter(ttyconf, stderr, "note", .Cyan, indent); |