Documentation ¶
Index ¶
- Constants
- type File
- func (p File) Fixed() bool
- func (pgf *File) NodeLocation(node ast.Node) (protocol.Location, error)
- func (pgf *File) NodeMappedRange(node ast.Node) (protocol.MappedRange, error)
- func (pgf *File) NodeRange(node ast.Node) (protocol.Range, error)
- func (pgf *File) PosLocation(start, end token.Pos) (protocol.Location, error)
- func (pgf *File) PosMappedRange(start, end token.Pos) (protocol.MappedRange, error)
- func (pgf *File) PosRange(start, end token.Pos) (protocol.Range, error)
- func (pgf *File) PositionPos(p protocol.Position) (token.Pos, error)
- func (pgf *File) RangePos(r protocol.Range) (token.Pos, token.Pos, error)
Constants ¶
const ( // ParseHeader specifies that the main package declaration and imports are needed. // This is the mode used when attempting to examine the package graph structure. ParseHeader = parser.AllErrors | parser.ParseComments | parser.ImportsOnly | parser.SkipObjectResolution // ParseFull specifies the full AST is needed. // This is used for files of direct interest where the entire contents must // be considered. ParseFull = parser.AllErrors | parser.ParseComments | parser.SkipObjectResolution )
Common parse modes; these should be reused wherever possible to increase cache hits.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type File ¶
type File struct { URI protocol.DocumentURI Mode parser.Mode File *ast.File Tok *token.File // Source code used to build the AST. It may be different from the // actual content of the file if we have fixed the AST. Src []byte Mapper *protocol.Mapper // may map fixed Src, not file content ParseErr scanner.ErrorList // contains filtered or unexported fields }
A File contains the results of parsing a Go file.
func Parse ¶
func Parse(ctx context.Context, fset *token.FileSet, uri protocol.DocumentURI, src []byte, mode parser.Mode, purgeFuncBodies bool) (res *File, fixes []fixType)
Parse parses a buffer of Go source, repairing the tree if necessary.
The provided ctx is used only for logging.
func (File) Fixed ¶
Fixed reports whether p was "Fixed", meaning that its source or positions may not correlate with the original file.
func (*File) NodeLocation ¶
NodeLocation returns a protocol Location for the ast.Node interval in this file.
func (*File) NodeMappedRange ¶
NodeMappedRange returns a MappedRange for the ast.Node interval in this file. A MappedRange can be converted to any other form.
func (*File) PosLocation ¶
PosLocation returns a protocol Location for the token.Pos interval in this file.
func (*File) PosMappedRange ¶
PosMappedRange returns a MappedRange for the token.Pos interval in this file. A MappedRange can be converted to any other form.
func (*File) PositionPos ¶
PositionPos returns the token.Pos of protocol position p within the file.