gocode

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 4, 2020 License: MIT Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Call

func Call(p *types.Func) string

func CompatibleTypes

func CompatibleTypes(expected types.Type, actual types.Type) error

CompatibleTypes isnt a strict comparison, it allows for pointer differences

func Dump

func Dump(val interface{}) string

func Funcs

func Funcs() template.FuncMap

func ImportPathForDir

func ImportPathForDir(dir string) (res string)

ImportPathForDir takes a path and returns a golang import path for the package

func LcFirst

func LcFirst(s string) string

func NameForDir

func NameForDir(dir string) string

NameForDir manually looks for package stanzas in files located in the given directory. This can be much faster than having to consult go list, because we already know exactly where to look.

func NormalizeVendor

func NormalizeVendor(pkg string) string

NormalizeVendor takes a qualified package path and turns it into normal one.

func PackageNameFromFile

func PackageNameFromFile(file string) string

func PkgAndType

func PkgAndType(name string) (string, string)

take a string in the form github.com/package/blah.Type and split it into package and type

func QualifyPackagePath

func QualifyPackagePath(importPath string) string

QualifyPackagePath takes an import and fully qualifies it with a vendor dir, if one is required.

func SanitizePackageName

func SanitizePackageName(pkg string) string

func ToGo

func ToGo(name string) string

func ToGoPrivate

func ToGoPrivate(name string) string

func TypeIdentifier

func TypeIdentifier(t types.Type) string

func UcFirst

func UcFirst(s string) string

Types

type Import

type Import struct {
	Name  string
	Path  string
	Alias string
}

func (*Import) String

func (i *Import) String() string

type Imports

type Imports struct {
	Imports  []*Import
	DestDir  string
	Packages *Packages
}
var CurrentImports *Imports

CurrentImports keeps track of all the import declarations that are needed during the execution of a plugin. this is done with a global because subtemplates currently get called in functions. Lets aim to remove this eventually.

func (*Imports) Lookup

func (s *Imports) Lookup(path string) string

func (*Imports) LookupType

func (s *Imports) LookupType(t types.Type) string

func (*Imports) Reserve

func (s *Imports) Reserve(path string, aliases ...string) (string, error)

func (*Imports) String

func (s *Imports) String() string

type Packages

type Packages struct {
	// contains filtered or unexported fields
}

packages is a wrapper around x/tools/go/packages that maintains a (hopefully prewarmed) cache of packages that can be invalidated as writes are made and packages are known to change.

func (*Packages) Errors

func (p *Packages) Errors() PkgErrors

Errors returns any errors that were returned by Load, either from the call itself or any of the loaded packages.

func (*Packages) Evict

func (p *Packages) Evict(importPath string)

Evict removes a given package import path from the cache, along with any packages that depend on it. Further calls to Load will fetch it from disk.

func (*Packages) Load

func (p *Packages) Load(importPath string) *packages.Package

Load works the same as LoadAll, except a single package at a time.

func (*Packages) LoadAll

func (p *Packages) LoadAll(importPaths ...string) []*packages.Package

LoadAll will call packages.Load and return the package data for the given packages, but if the package already have been loaded it will return cached values instead.

func (*Packages) LoadWithTypes

func (p *Packages) LoadWithTypes(importPath string) *packages.Package

LoadWithTypes tries a standard load, which may not have enough type info (TypesInfo== nil) available if the imported package is a second order dependency. Fortunately this doesnt happen very often, so we can just issue a load when we detect it.

func (*Packages) NameForPackage

func (p *Packages) NameForPackage(importPath string) string

NameForPackage looks up the package name from the package stanza in the go files at the given import path.

type PkgErrors

type PkgErrors []error

func (PkgErrors) Error

func (p PkgErrors) Error() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL