Documentation
¶
Overview ¶
* Copyright (c) 2021 The GoPlus Authors (goplus.org). All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License.
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 Classfile
- type Comment
- type CommentBlock
- type Comments
- type Error
- type ErrorList
- type Exclude
- type Expr
- type File
- type FileSyntax
- type Go
- type Gop
- type InvalidExtError
- type LParen
- type Line
- type LineBlock
- type Module
- type Position
- type RParen
- type Register
- 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 Classfile ¶
type Classfile struct { ProjExt string // ".gmx" WorkExt string // ".spx" PkgPaths []string // package paths of classfile Syntax *Line }
A Classfile is the classfile statement.
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 ¶ added in v1.0.27
func (*File) AddNewRegister ¶
func (*File) AddRegister ¶
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 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 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.