summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Newton <kddnewton@gmail.com>2024-04-02 08:26:31 -0400
committerKevin Newton <kddnewton@gmail.com>2024-04-03 17:34:12 -0400
commit08c841ff63d02a839a858594e1042b6a77bcd4d4 (patch)
tree2d7853099c56405beb52beb9f682f8de31c76d5b
parent3147404d64d076b1ee361323f1e3c457d0fbfe62 (diff)
[ruby/prism] Use tilde for extended error lines
https://github.com/ruby/prism/commit/daaa386a4f
-rw-r--r--prism/prism.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/prism/prism.c b/prism/prism.c
index 4c550678c0..b6a00cddf9 100644
--- a/prism/prism.c
+++ b/prism/prism.c
@@ -20105,10 +20105,16 @@ pm_parser_errors_format(const pm_parser_t *parser, const pm_list_t *error_list,
while (column < error->column_end) {
if (column < error->column_start) {
pm_buffer_append_byte(buffer, ' ');
- } else if (colorize) {
- pm_buffer_append_string(buffer, PM_COLOR_RED "^" PM_COLOR_RESET, 11);
} else {
- pm_buffer_append_byte(buffer, '^');
+ const uint8_t caret = column == error->column_start ? '^' : '~';
+
+ if (colorize) {
+ pm_buffer_append_string(buffer, PM_COLOR_RED, 7);
+ pm_buffer_append_byte(buffer, caret);
+ pm_buffer_append_string(buffer, PM_COLOR_RESET, 3);
+ } else {
+ pm_buffer_append_byte(buffer, caret);
+ }
}
size_t char_width = encoding->char_width(start + column, parser->end - (start + column));