Documentation
¶
Index ¶
- func AutoQuote(s string) string
- func Format(f *FileSyntax) []byte
- func IsDirectoryPath(ns string) bool
- func ModulePath(mod []byte) string
- func MustQuote(s string) bool
- type Class
- type Comment
- type CommentBlock
- type Comments
- type Error
- type ErrorList
- type Exclude
- type Expr
- type File
- type FileSyntax
- type Go
- type Gop
- type Import
- type InvalidExtError
- type InvalidSymbolError
- type LParen
- type Line
- type LineBlock
- type Module
- type Position
- type Project
- type RParen
- type Replace
- type Require
- type Retract
- type VersionFixer
- type VersionInterval
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 gop.mod, the quotation of s.
func Format ¶
func Format(f *FileSyntax) []byte
Format returns a gop.mod file as a byte slice, formatted in standard style.
func IsDirectoryPath ¶
IsDirectoryPath reports whether the given path should be interpreted as a directory path. Just like on the go command line, relative paths and rooted paths are directory paths; the rest are module paths.
func ModulePath ¶
ModulePath returns the module path from the gopmod file text. If it cannot find a module path, it returns an empty string. It is tolerant of unrelated problems in the gop.mod file.
Types ¶
type CommentBlock ¶
type CommentBlock = modfile.CommentBlock
A CommentBlock represents a top-level block of comments separate from any rule.
type File ¶
A File is the parsed, interpreted form of a gop.mod file.
func Parse ¶
func Parse(file string, data []byte, fix VersionFixer) (*File, error)
Parse parses and returns a gop.mod file.
file is the name of the file, used in positions and errors.
data is the content of the file.
fix is an optional function that canonicalizes module versions. If fix is nil, all module versions must be canonical (module.CanonicalVersion must return the same string).
func ParseLax ¶
func ParseLax(file string, data []byte, fix VersionFixer) (*File, error)
ParseLax is like Parse but ignores unknown statements. It is used when parsing gop.mod files other than the main module, under the theory that most statement types we add in the future will only apply in the main module, like exclude and replace, and so we get better gradual deployments if old go commands simply ignore those statements when found in gop.mod files in dependencies.
func (*File) AddGopStmt ¶
func (*File) AddNewImport ¶ added in v0.11.1
func (*File) DropAllReplace ¶
func (f *File) DropAllReplace()
func (*File) DropAllRequire ¶
func (f *File) DropAllRequire()
type FileSyntax ¶
type FileSyntax = modfile.FileSyntax
A FileSyntax represents an entire gop.mod file.
type InvalidExtError ¶
func (*InvalidExtError) Error ¶
func (e *InvalidExtError) Error() string
func (*InvalidExtError) Unwrap ¶
func (e *InvalidExtError) Unwrap() error
type InvalidSymbolError ¶ added in v0.10.0
func (*InvalidSymbolError) Error ¶ added in v0.10.0
func (e *InvalidSymbolError) Error() string
func (*InvalidSymbolError) Unwrap ¶ added in v0.10.0
func (e *InvalidSymbolError) Unwrap() error
type LParen ¶
An LParen represents the beginning of a parenthesized line block. It is a place to store suffix comments.
type Position ¶
A Position describes an arbitrary source position in a file, including the file, line, column, and byte offset.
type Project ¶ added in v0.10.0
type Project struct {
Ext string // ".gmx"
Class string // "Game"
Works []*Class // work class of classfile
PkgPaths []string // package paths of classfile
Syntax *Line
}
A Project is the project statement.
type RParen ¶
An RParen represents the end of a parenthesized line block. It is a place to store whole-line (before) comments.
type VersionFixer ¶
type VersionFixer = modfile.VersionFixer
type VersionInterval ¶
type VersionInterval = modfile.VersionInterval
A VersionInterval represents a range of versions with upper and lower bounds. Intervals are closed: both bounds are included. When Low is equal to High, the interval may refer to a single version ('v1.2.3') or an interval ('[v1.2.3, v1.2.3]'); both have the same representation.