diff options
author | 2022-08-07 18:19:16 +0200 | |
---|---|---|
committer | 2022-08-07 18:19:16 +0200 | |
commit | 879b4abde722cb66463ca81a4cf6ac5465ef276d (patch) | |
tree | cdbd98840bca27317ad0860a194072671ed04ebe /vendor/github.com/tdewolff/parse/v2/error.go | |
parent | [feature] Photoswipe gallery (#740) (diff) | |
download | gotosocial-879b4abde722cb66463ca81a4cf6ac5465ef276d.tar.xz |
[bugfix] Markdown formatting updates (#743)
* add minify dependency specifically for markdown
* rearrange markdown formatting
* update markdown tests
Diffstat (limited to 'vendor/github.com/tdewolff/parse/v2/error.go')
-rw-r--r-- | vendor/github.com/tdewolff/parse/v2/error.go | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/vendor/github.com/tdewolff/parse/v2/error.go b/vendor/github.com/tdewolff/parse/v2/error.go new file mode 100644 index 000000000..f6657f711 --- /dev/null +++ b/vendor/github.com/tdewolff/parse/v2/error.go @@ -0,0 +1,47 @@ +package parse + +import ( + "bytes" + "fmt" + "io" +) + +// Error is a parsing error returned by parser. It contains a message and an offset at which the error occurred. +type Error struct { + Message string + Line int + Column int + Context string +} + +// NewError creates a new error +func NewError(r io.Reader, offset int, message string, a ...interface{}) *Error { + line, column, context := Position(r, offset) + if 0 < len(a) { + message = fmt.Sprintf(message, a...) + } + return &Error{ + Message: message, + Line: line, + Column: column, + Context: context, + } +} + +// NewErrorLexer creates a new error from an active Lexer. +func NewErrorLexer(l *Input, message string, a ...interface{}) *Error { + r := bytes.NewBuffer(l.Bytes()) + offset := l.Offset() + return NewError(r, offset, message, a...) +} + +// Position returns the line, column, and context of the error. +// Context is the entire line at which the error occurred. +func (e *Error) Position() (int, int, string) { + return e.Line, e.Column, e.Context +} + +// Error returns the error string, containing the context and line + column number. +func (e *Error) Error() string { + return fmt.Sprintf("%s on line %d and column %d\n%s", e.Message, e.Line, e.Column, e.Context) +} |