writeMsg
Splits the error message up into lines to properly indent them to allow for long, good-looking error messages.
This is used to split the message in @compileError("hello\nworld") for example.
Function parameters
Parameters
- w:*Writer
- indent:usize
Type definitions in this namespace
Types
- ErrorMessageList
- There will be a MessageIndex for each len at start.
- SourceLocation
- Trailing:
- ErrorMessage
- Trailing:
Functions in this namespace
Functions
- nullTerminatedString
- Given an index into `string_bytes` returns the null-terminated string found there.
Special encoding when there are no errors.
Values
- empty
- Special encoding when there are no errors.
Source
Implementation
fn writeMsg(eb: ErrorBundle, err_msg: ErrorMessage, w: *Writer, indent: usize) !void {
var lines = std.mem.splitScalar(u8, eb.nullTerminatedString(err_msg.msg), '\n');
while (lines.next()) |line| {
try w.writeAll(line);
if (lines.index == null) break;
try w.writeByte('\n');
try w.splatByteAll(' ', indent);
}
}