Get desktop application:
View/edit binary Protocol Buffers messages
Diagnostic represents information to be presented to a user about an error or anomaly in parsing or evaluating configuration.
Used in:
, ,Summary and Detail contain the English-language description of the problem. Summary is a terse description of the general problem and detail is a more elaborate, often-multi-sentence description of the problem and what might be done to solve it.
Subject and Context are both source ranges relating to the diagnostic. Subject is a tight range referring to exactly the construct that is problematic, while Context is an optional broader range (which should fully contain Subject) that ought to be shown around Subject when generating isolated source-code snippets in diagnostic messages. If Context is nil, the Subject is also the Context. Some diagnostics have no source ranges at all. If Context is set then Subject should always also be set.
DiagnosticSeverity is the severity level of a diagnostic message.
Used in:
DIAG_INVALID is the invalid zero value of DiagnosticSeverity
DIAG_ERROR indicates that the problem reported by a diagnostic prevents further progress in parsing and/or evaluating the subject.
DIAG_WARNING indicates that the problem reported by a diagnostic warrants user attention but does not prevent further progress. It is most commonly used for showing deprecation notices.
Pos represents a single position in a source file, by addressing the start byte of a unicode character encoded in UTF-8.
Used in:
Line is the source code line where this position points. Lines are counted starting at 1 and incremented for each newline character encountered.
Column is the source code column where this position points, in unicode characters, with counting starting at 1. Column counts characters as they appear visually, so for example a latin letter with a combining diacritic mark counts as one character. This is intended for rendering visual markers against source code in contexts where these diacritics would be rendered in a single character cell. Technically speaking, Column is counting grapheme clusters as used in unicode normalization.
Byte is the byte offset into the file where the indicated character begins. This is a zero-based offset to the first byte of the first UTF-8 codepoint sequence in the character, and thus gives a position that can be resolved _without_ awareness of Unicode characters.
Range represents a span of characters between two positions in a source file.
Used in:
Filename is the name of the file into which this range's positions point.
Start and End represent the bounds of this range. Start is inclusive and End is exclusive.