Spaces:
Sleeping
Sleeping
| // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. | |
| // See LICENSE in the project root for license information. | |
| /** | |
| * Represents an error or warning that occurred during parsing. | |
| */ | |
| export class ParserMessage { | |
| constructor(parameters) { | |
| this.messageId = parameters.messageId; | |
| this.unformattedText = parameters.messageText; | |
| this.textRange = parameters.textRange; | |
| this.tokenSequence = parameters.tokenSequence; | |
| this.docNode = parameters.docNode; | |
| this._text = undefined; | |
| } | |
| /** | |
| * Generates a line/column prefix. Example with line=2 and column=5 | |
| * and message="An error occurred": | |
| * ``` | |
| * "(2,5): An error occurred" | |
| * ``` | |
| */ | |
| static _formatMessageText(message, range) { | |
| if (!message) { | |
| message = 'An unknown error occurred'; | |
| } | |
| if (range.pos !== 0 || range.end !== 0) { | |
| // NOTE: This currently a potentially expensive operation, since TSDoc currently doesn't | |
| // have a full newline analysis for the input buffer. | |
| const location = range.getLocation(range.pos); | |
| if (location.line) { | |
| return `(${location.line},${location.column}): ` + message; | |
| } | |
| } | |
| return message; | |
| } | |
| /** | |
| * The message text. | |
| */ | |
| get text() { | |
| if (this._text === undefined) { | |
| // NOTE: This currently a potentially expensive operation, since TSDoc currently doesn't | |
| // have a full newline analysis for the input buffer. | |
| this._text = ParserMessage._formatMessageText(this.unformattedText, this.textRange); | |
| } | |
| return this._text; | |
| } | |
| toString() { | |
| return this.text; | |
| } | |
| } | |
| //# sourceMappingURL=ParserMessage.js.map |