Merge pull request #3760 from Feoramund/refactor-show-error-on-line

Refactor `show_error_on_line`
This commit is contained in:
gingerBill
2024-07-01 11:03:29 +01:00
committed by GitHub
6 changed files with 3556 additions and 78 deletions

View File

@@ -71,6 +71,12 @@ gb_internal gbString get_file_line_as_string(TokenPos const &pos, i32 *offset_)
u8 *line_start = pos_offset;
u8 *line_end = pos_offset;
if (offset > 0 && *line_start == '\n') {
// Prevent an error token that starts at the boundary of a line that
// leads to an empty line from advancing off its line.
line_start -= 1;
}
while (line_start >= start) {
if (*line_start == '\n') {
line_start += 1;
@@ -78,6 +84,11 @@ gb_internal gbString get_file_line_as_string(TokenPos const &pos, i32 *offset_)
}
line_start -= 1;
}
if (line_start == start - 1) {
// Prevent an error on the first line from stepping behind the boundary
// of the text.
line_start += 1;
}
while (line_end < end) {
if (*line_end == '\n') {