Documentation ¶
Index ¶
- func AutoQuote(s string) string
- func ModulePath(mod []byte) string
- func MustQuote(s string) bool
- func SortTrust(list []*Trust)
- func SortViolation(list []*Violation)
- type Comment
- type CommentBlock
- type Comments
- type ErrorList
- type Expr
- type File
- type FileSyntax
- type FileVersion
- type LParen
- type LexError
- type Line
- type LineBlock
- type ParserError
- type Position
- type RParen
- type Trust
- type VersionInterval
- type Violation
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AutoQuote ¶
AutoQuote returns s or, if quoting is required for s to appear in a go.mod, the quotation of s.
func ModulePath ¶
ModulePath returns the module path from the gomod file text. If it cannot find a module path, it returns an empty string. It is tolerant of unrelated problems in the go.mod file.
func MustQuote ¶
MustQuote reports whether s must be quoted in order to appear as a single token in a go.mod line.
func SortViolation ¶
func SortViolation(list []*Violation)
Types ¶
type Comment ¶
type Comment struct { Start Position Token string // without trailing newline Suffix bool // an end of line (not whole line) comment }
A Comment represents a single // comment.
type CommentBlock ¶
A CommentBlock represents a top-level block of comments separate from any rule.
func (*CommentBlock) Span ¶
func (x *CommentBlock) Span() (start, end Position)
type Comments ¶
type Comments struct { Before []Comment // whole-line comments before this expression Suffix []Comment // end-of-line comments after this expression // For top-level expressions only, After lists whole-line // comments following the expression. After []Comment }
Comments collects the comments associated with an expression.
type Expr ¶
type Expr interface { // Span returns the start and end position of the expression, // excluding leading or trailing comments. Span() (start, end Position) // Comment returns the comments attached to the expression. // This method would normally be named 'Comments' but that // would interfere with embedding a type of the same name. Comment() *Comments }
An Expr represents an input element.
type File ¶
type File struct { Audit *FileVersion Trust []*Trust Violation []*Violation Syntax *FileSyntax }
type FileSyntax ¶
A FileSyntax represents an entire go.mod file.
func (*FileSyntax) Cleanup ¶
func (x *FileSyntax) Cleanup()
Cleanup cleans up the file syntax x after any edit operations. To avoid quadratic behavior, (*Line).markRemoved marks the line as dead by setting line.Token = nil but does not remove it from the slice in which it appears. After edits have all been indicated, calling Cleanup cleans out the dead lines.
func (*FileSyntax) Span ¶
func (x *FileSyntax) Span() (start, end Position)
type FileVersion ¶
type LParen ¶
An LParen represents the beginning of a parenthesized line block. It is a place to store suffix comments.
type LineBlock ¶
type LineBlock struct { Comments Start Position LParen LParen Token []string Line []*Line RParen RParen }
A LineBlock is a factored block of lines, like
require ( "x" "y" )
type ParserError ¶
func (ParserError) Error ¶
func (e ParserError) Error() string
type Position ¶
type Position struct { Line int // line in input (starting at 1) LineRune int // rune in line (starting at 1) Byte int // byte in input (starting at 0) }
A Position describes an arbitrary source position in a file, including the file, line, column, and byte offset.
type RParen ¶
An RParen represents the end of a parenthesized line block. It is a place to store whole-line (before) comments.
type VersionInterval ¶
func (VersionInterval) String ¶
func (v VersionInterval) String() string