tools: golang.org/x/tools

Directories

PathSynopsis
benchmark/parsePackage parse provides support for parsing benchmark results as generated by 'go test -bench'.
blogPackage blog implements a web server for articles written in present format.
blog/atomPackage atom defines XML data structures for an Atom feed.
cmd/auth/authtestauthtest is a diagnostic tool for implementations of the GOAUTH protocol described in https://golang.org/issue/26232.
cmd/auth/cookieauthcookieauth uses a “Netscape cookie file” to implement the GOAUTH protocol described in https://golang.org/issue/26232.
cmd/auth/gitauthgitauth uses 'git credential' to implement the GOAUTH protocol described in https://golang.org/issue/26232.
cmd/auth/netrcauthnetrcauth uses a .netrc file (or _netrc file on Windows) to implement the GOAUTH protocol described in https://golang.org/issue/26232.
cmd/benchcmpDeprecated: benchcmp is deprecated in favor of benchstat: golang.org/x/perf/cmd/benchstat
cmd/bundleBundle creates a single-source-file version of a source package suitable for inclusion in a particular target package.
cmd/callgraphcallgraph: a tool for reporting the call graph of a Go program.
cmd/compilebenchCompilebench benchmarks the speed of the Go compiler.
cmd/coverCover is a program for analyzing the coverage profiles generated by 'go test -coverprofile=cover.out'.
cmd/digraphThe digraph command performs queries over unlabelled directed graphs represented in text form.
cmd/egThe eg command performs example-based refactoring.
cmd/fiximportsThe fiximports command fixes import declarations to use the canonical import path for packages that have an "import comment" as defined by https://golang.org/s/go14customimport.
cmd/getgoThe getgo command installs Go to the user's system.
cmd/getgo/serverCommand server serves get.golang.org, redirecting users to the appropriate getgo installer based on the request path.
cmd/go-contrib-initThe go-contrib-init command helps new Go contributors get their development environment set up for the Go contribution process.
cmd/godexThe godex command prints (dumps) exported information of packages or selected package objects.
cmd/godocGodoc extracts and generates documentation for Go programs.
cmd/goimportsCommand goimports updates your Go import lines, adding missing ones and removing unreferenced ones.
cmd/gomvpkgThe gomvpkg command moves go packages, updating import declarations.
cmd/gorenameThe gorename command performs precise type-safe renaming of identifiers in Go source code.
cmd/gotypeThe gotype command, like the front-end of a Go compiler, parses and type-checks a single Go package.
cmd/goyaccGoyacc is a version of yacc for Go.
cmd/guruguru: a tool for answering questions about Go source code.
cmd/guru/serialPackage serial defines the guru's schema for -json output.
cmd/html2articleThis program takes an HTML file and outputs a corresponding article file in present format.
cmd/presentPresent displays slide presentations and articles.
cmd/present2mdPresent2md converts legacy-syntax present files to Markdown-syntax present files.
cmd/splitdwarfSplitdwarf uncompresses and copies the DWARF segment of a Mach-O executable into the "dSYM" file expected by lldb and ports of gdb on OSX.
cmd/splitdwarf/internal/machoPackage macho implements access to Mach-O object files.
cmd/ssadumpssadump: a tool for displaying and interpreting the SSA form of Go programs.
cmd/stressThe stress utility is intended for catching sporadic failures.
cmd/stringerStringer is a tool to automate the creation of methods that satisfy the fmt.Stringer interface.
cmd/toolstashToolstash provides a way to save, run, and restore a known good copy of the Go toolchain and to compare the object files generated by two toolchains.
container/intsetsPackage intsets provides Sparse, a compact and fast representation for sparse sets of int values.
coverPackage cover provides support for parsing coverage profiles generated by "go test -coverprofile=cover.out".
go/analysisPackage analysis defines the interface between a modular static analysis and an analysis driver program.
go/analysis/analysistestPackage analysistest provides utilities for testing analyzers.
go/analysis/internal/analysisflagsPackage analysisflags defines helpers for processing flags of analysis driver tools.
go/analysis/internal/checkerPackage checker defines the implementation of the checker commands.
go/analysis/internal/factsPackage facts defines a serializable set of analysis.Fact.
go/analysis/multicheckerPackage multichecker defines the main function for an analysis driver with several analyzers.
go/analysis/passes/asmdeclPackage asmdecl defines an Analyzer that reports mismatches between assembly files and Go declarations.
go/analysis/passes/assignPackage assign defines an Analyzer that detects useless assignments.
go/analysis/passes/atomicPackage atomic defines an Analyzer that checks for common mistakes using the sync/atomic package.
go/analysis/passes/atomicalignPackage atomicalign defines an Analyzer that checks for non-64-bit-aligned arguments to sync/atomic functions.
go/analysis/passes/boolsPackage bools defines an Analyzer that detects common mistakes involving boolean operators.
go/analysis/passes/buildssaPackage buildssa defines an Analyzer that constructs the SSA representation of an error-free package and returns the set of all functions within it.
go/analysis/passes/buildtagPackage buildtag defines an Analyzer that checks build tags.
go/analysis/passes/cgocallPackage cgocall defines an Analyzer that detects some violations of the cgo pointer passing rules.
go/analysis/passes/compositePackage composite defines an Analyzer that checks for unkeyed composite literals.
go/analysis/passes/copylockPackage copylock defines an Analyzer that checks for locks erroneously passed by value.
go/analysis/passes/ctrlflowPackage ctrlflow is an analysis that provides a syntactic control-flow graph (CFG) for the body of a function.
go/analysis/passes/deepequalerrorsPackage deepequalerrors defines an Analyzer that checks for the use of reflect.DeepEqual with error values.
go/analysis/passes/errorsasThe errorsas package defines an Analyzer that checks that the second argument to errors.As is a pointer to a type implementing error.
go/analysis/passes/fieldalignmentPackage fieldalignment defines an Analyzer that detects structs that would take less memory if their fields were sorted.
go/analysis/passes/findcallPackage findcall defines an Analyzer that serves as a trivial example and test of the Analysis API.
go/analysis/passes/findcall/cmd/findcallThe findcall command runs the findcall analyzer.
go/analysis/passes/framepointerPackage framepointer defines an Analyzer that reports assembly code that clobbers the frame pointer before saving it.
go/analysis/passes/httpresponsePackage httpresponse defines an Analyzer that checks for mistakes using HTTP responses.
go/analysis/passes/ifaceassertPackage ifaceassert defines an Analyzer that flags impossible interface-interface type assertions.
go/analysis/passes/inspectPackage inspect defines an Analyzer that provides an AST inspector (golang.org/x/tools/go/ast/inspect.Inspect) for the syntax trees of a package.
go/analysis/passes/internal/analysisutilPackage analysisutil defines various helper functions used by two or more packages beneath go/analysis.
go/analysis/passes/loopclosurePackage loopclosure defines an Analyzer that checks for references to enclosing loop variables from within nested functions.
go/analysis/passes/lostcancelPackage lostcancel defines an Analyzer that checks for failure to call a context cancellation function.
go/analysis/passes/lostcancel/cmd/lostcancelThe lostcancel command applies the golang.org/x/tools/go/analysis/passes/lostcancel analysis to the specified packages of Go source code.
go/analysis/passes/nilfuncPackage nilfunc defines an Analyzer that checks for useless comparisons against nil.
go/analysis/passes/nilnessPackage nilness inspects the control-flow graph of an SSA function and reports errors such as nil pointer dereferences and degenerate nil pointer comparisons.
go/analysis/passes/nilness/cmd/nilnessThe nilness command applies the golang.org/x/tools/go/analysis/passes/nilness analysis to the specified packages of Go source code.
go/analysis/passes/pkgfactThe pkgfact package is a demonstration and test of the package fact mechanism.
go/analysis/passes/printfPackage printf defines an Analyzer that checks consistency of Printf format strings and arguments.
go/analysis/passes/shadowPackage shadow defines an Analyzer that checks for shadowed variables.
go/analysis/passes/shadow/cmd/shadowThe shadow command runs the shadow analyzer.
go/analysis/passes/shiftPackage shift defines an Analyzer that checks for shifts that exceed the width of an integer.
go/analysis/passes/sortslicePackage sortslice defines an Analyzer that checks for calls to sort.Slice that do not use a slice type as first argument.
go/analysis/passes/stdmethodsPackage stdmethods defines an Analyzer that checks for misspellings in the signatures of methods similar to well-known interfaces.
go/analysis/passes/stringintconvPackage stringintconv defines an Analyzer that flags type conversions from integers to strings.
go/analysis/passes/stringintconv/cmd/stringintconvThe stringintconv command runs the stringintconv analyzer.
go/analysis/passes/structtagPackage structtag defines an Analyzer that checks struct field tags are well formed.
go/analysis/passes/testinggoroutine
go/analysis/passes/testsPackage tests defines an Analyzer that checks for common mistaken usages of tests and examples.
go/analysis/passes/unmarshalThe unmarshal package defines an Analyzer that checks for passing non-pointer or non-interface types to unmarshal and decode functions.
go/analysis/passes/unmarshal/cmd/unmarshalThe unmarshal command runs the unmarshal analyzer.
go/analysis/passes/unreachablePackage unreachable defines an Analyzer that checks for unreachable code.
go/analysis/passes/unsafeptrPackage unsafeptr defines an Analyzer that checks for invalid conversions of uintptr to unsafe.Pointer.
go/analysis/passes/unusedresultPackage unusedresult defines an analyzer that checks for unused results of calls to certain pure functions.
go/analysis/singlecheckerPackage singlechecker defines the main function for an analysis driver with only a single analysis.
go/analysis/unitcheckerThe unitchecker package defines the main function for an analysis driver that analyzes a single compilation unit during a build.
go/ast/astutilPackage astutil contains common utilities for working with the Go AST.
go/ast/inspectorPackage inspector provides helper functions for traversal over the syntax trees of a package, including node filtering by type, and materialization of the traversal stack.
go/buildutilPackage buildutil provides utilities related to the go/build package in the standard library.
go/callgraphPackage callgraph defines the call graph and various algorithms and utilities to operate on it.
go/callgraph/chaPackage cha computes the call graph of a Go program using the Class Hierarchy Analysis (CHA) algorithm.
go/callgraph/rtaThis package provides Rapid Type Analysis (RTA) for Go, a fast algorithm for call graph construction and discovery of reachable code (and hence dead code) and runtime types.
go/callgraph/staticPackage static computes the call graph of a Go program containing only static call edges.
go/cfgPackage cfg constructs a simple control-flow graph (CFG) of the statements and expressions within a single function.
godocPackage godoc is a work-in-progress (2013-07-17) package to begin splitting up the godoc binary into multiple pieces.
godoc/analysisPackage analysis performs type and pointer analysis and generates mark-up for the Go source view.
godoc/golangorgenvPackage golangorgenv provides environment information for programs running at golang.org and its subdomains.
godoc/redirectPackage redirect provides hooks to register HTTP handlers that redirect old godoc paths to their new equivalents and assist in accessing the issue tracker, wiki, code review system, etc.
godoc/staticPackage static exports a map of static file content that supports the godoc user interface.
godoc/utilPackage util contains utility types and functions for godoc.
godoc/vfsPackage vfs defines types for abstract file system access and provides an implementation accessing the file system of the underlying OS.
godoc/vfs/gatefsPackage gatefs provides an implementation of the FileSystem interface that wraps another FileSystem and limits its concurrency.
godoc/vfs/httpfsPackage httpfs implements http.FileSystem using a godoc vfs.FileSystem.
godoc/vfs/mapfsPackage mapfs file provides an implementation of the FileSystem interface based on the contents of a map[string]string.
godoc/vfs/zipfsPackage zipfs file provides an implementation of the FileSystem interface based on the contents of a .zip file.
go/expectPackage expect provides support for interpreting structured comments in Go source code as test expectations.
go/gccgoexportdataPackage gccgoexportdata provides functions for reading export data files containing type information produced by the gccgo compiler.
go/gcexportdataPackage gcexportdata provides functions for locating, reading, and writing export data files containing type information produced by the gc compiler.
go/internal/cgo
go/internal/gccgoimporterPackage gccgoimporter implements Import for gccgo-generated object files.
go/internal/gcimporterPackage gcimporter provides various functions for reading gc-generated object files that can be used to implement the Importer interface defined by the Go 1.5 standard library package.
go/internal/packagesdriverPackage packagesdriver fetches type sizes for go/packages and go/analysis.
go/loaderPackage loader loads a complete Go program from source code, parsing and type-checking the initial packages plus their transitive closure of dependencies.
go/packagesPackage packages loads Go packages for inspection and analysis.
go/packages/gopackagesThe gopackages command is a diagnostic tool that demonstrates how to use golang.org/x/tools/go/packages to load, parse, type-check, and print one or more Go packages.
go/packages/packagestestPackage packagestest creates temporary projects on disk for testing go tools on.
goplsThe gopls command is an LSP server for Go.
gopls/docCommand generate updates settings.md from the UserOptions struct.
gopls/integration/govim
gopls/integration/parsePackage parse provides functions to parse LSP logs.
gopls/integration/replayReplay logs.
gopls/internal/hooksPackage hooks adds all the standard gopls implementations.
gopls/internal/regtestPackage regtest provides a framework for writing gopls regression tests.
go/pointerPackage pointer implements Andersen's analysis, an inclusion-based pointer analysis algorithm first described in (Andersen, 1994).
go/ssaPackage ssa defines a representation of the elements of Go programs (packages, types, functions, variables and constants) using a static single-assignment (SSA) form intermediate representation (IR) for the bodies of functions.
go/ssa/interpPackage ssa/interp defines an interpreter for the SSA representation of Go programs.
go/ssa/ssautil
go/types/objectpathPackage objectpath defines a naming scheme for types.Objects (that is, named entities in Go programs) relative to their enclosing package.
go/types/typeutilPackage typeutil defines various utilities for types, such as Map, a mapping from types.Type to interface{} values.
go/vcsPackage vcs exposes functions for resolving import paths and using version control systems, which can be used to implement behavior similar to the standard "go get" command.
importsPackage imports implements a Go pretty-printer (like package "go/format") that also adds or removes import statements as necessary.
internal/analysisinternalPackage analysisinternal exposes internal-only fields from go/analysis.
internal/apidiff
internal/eventPackage event provides a set of packages that cover the main concepts of telemetry in an implementation agnostic way.
internal/event/corePackage core provides support for event based telemetry.
internal/event/export
internal/event/export/eventtestPackage eventtest supports logging events to a test.
internal/event/export/metricPackage metric aggregates events into metrics that can be exported.
internal/event/export/ocagentPackage ocagent adds the ability to export all telemetry to an ocagent.
internal/event/export/ocagent/wire
internal/event/export/prometheus
internal/event/keys
internal/event/label
internal/fakenet
internal/fastwalkPackage fastwalk provides a faster version of filepath.Walk for file system scanning tools.
internal/gocommandPackage gocommand is a helper for calling the go command.
internal/gopathwalkPackage gopathwalk is like filepath.Walk but specialized for finding Go packages, particularly in $GOPATH and $GOROOT.
internal/importsPackage imports implements a Go pretty-printer (like package "go/format") that also adds or removes import statements as necessary.
internal/jsonrpc2Package jsonrpc2 is a minimal implementation of the JSON RPC 2 spec.
internal/jsonrpc2/servertestPackage servertest provides utilities for running tests against a remote LSP server.
internal/lspPackage lsp implements LSP for gopls.
internal/lsp/analysis/fillreturnsPackage fillreturns defines an Analyzer that will attempt to automatically fill in a return statement that has missing values with zero value elements.
internal/lsp/analysis/fillstructPackage fillstruct defines an Analyzer that automatically fills in a struct declaration with zero value elements for each field.
internal/lsp/analysis/nonewvarsPackage nonewvars defines an Analyzer that applies suggested fixes to errors of the type "no new variables on left side of :=".
internal/lsp/analysis/noresultvaluesPackage noresultvalues defines an Analyzer that applies suggested fixes to errors of the type "no result values expected".
internal/lsp/analysis/simplifycompositelitPackage simplifycompositelit defines an Analyzer that simplifies composite literals.
internal/lsp/analysis/simplifyrangePackage simplifyrange defines an Analyzer that simplifies range statements.
internal/lsp/analysis/simplifyslicePackage simplifyslice defines an Analyzer that simplifies slice statements.
internal/lsp/analysis/undeclarednamePackage undeclaredname defines an Analyzer that applies suggested fixes to errors of the type "undeclared name: %s".
internal/lsp/analysis/unusedparamsPackage unusedparams defines an analyzer that checks for unused parameters of functions.
internal/lsp/browserPackage browser provides utilities for interacting with users' browsers.
internal/lsp/cachePackage cache implements the caching layer for gopls.
internal/lsp/cmdPackage cmd handles the gopls command line.
internal/lsp/cmd/testPackage cmdtest contains the test suite for the command line behavior of gopls.
internal/lsp/debugPackage debug exports debug information for gopls.
internal/lsp/debug/tagPackage tag provides the labels used for telemetry throughout gopls.
internal/lsp/diffPackage diff supports a pluggable diff algorithm.
internal/lsp/diff/difftestPackage difftest supplies a set of tests that will operate on any implementation of a diff algorithm as exposed by "golang.org/x/tools/internal/lsp/diff"
internal/lsp/diff/myersPackage myers implements the Myers diff algorithm.
internal/lsp/fakePackage fake provides fake implementations of a text editor, LSP client plugin, and Sandbox environment for use in tests.
internal/lsp/fuzzyPackage fuzzy implements a fuzzy matching algorithm.
internal/lsp/helperInvoke with //go:generate helper/helper -t Server -d protocol/tsserver.go -u lsp -o server_gen.go invoke in internal/lsp
internal/lsp/lsprpcPackage lsprpc implements a jsonrpc2.StreamServer that may be used to serve the LSP on a jsonrpc2 channel.
internal/lsp/modPackage mod provides core features related to go.mod file handling for use by Go editors and tools.
internal/lsp/protocolPackage protocol contains the structs that map directly to the wire format of the "Language Server Protocol".
internal/lsp/snippetPackage snippet implements the specification for the LSP snippet format.
internal/lsp/sourcePackage source provides core features for use by Go editors and tools.
internal/lsp/source/completionPackage completion provides core functionality for code completion in Go editors and tools.
internal/lsp/source/genapijsonCommand genapijson generates JSON describing gopls' external-facing API, including user settings and commands.
internal/lsp/testsPackage tests exports functionality to be used across a variety of gopls tests.
internal/memoizePackage memoize supports memoizing the return values of functions with idempotent results that are expensive to compute.
internal/packagesinternalPackage packagesinternal exposes internal-only fields from go/packages.
internal/proxydirPackage proxydir provides functions for writing module data to a directory in proxy format, so that it can be used as a module proxy by setting GOPROXY="file://<dir>".
internal/spanPackage span contains support for representing with positions and ranges in text files.
internal/stackPackage stack provides support for parsing standard goroutine stack traces.
internal/stack/gostacksThe gostacks command processes stdin looking for things that look like stack traces and simplifying them to make the log more readable.
internal/stack/stacktest
internal/testenvPackage testenv contains helper functions for skipping tests based on which tools are present in the environment.
internal/toolPackage tool is a harness for writing Go tools.
internal/typesinternal
internal/xcontextPackage xcontext is a package to offer the extra functionality we need from contexts that is not available from the standard context package.
playgroundPackage playground registers HTTP handlers at "/compile" and "/share" that proxy requests to the golang.org playground service.
playground/socketPackage socket implements an WebSocket-based playground backend.
presentPackage present implements parsing and rendering of present files, which can be slide presentations as in golang.org/x/tools/cmd/present or articles as in golang.org/x/blog (the Go blog).
refactor/egPackage eg implements the example-based refactoring tool whose command-line is defined in golang.org/x/tools/cmd/eg.
refactor/importgraphPackage importgraph computes the forward and reverse import dependency graphs for all packages in a Go workspace.
refactor/renamePackage rename contains the implementation of the 'gorename' command whose main function is in golang.org/x/tools/cmd/gorename.
refactor/satisfyPackage satisfy inspects the type-checked ASTs of Go packages and reports the set of discovered type constraints of the form (lhs, rhs Type) where lhs is a non-trivial interface, rhs satisfies this interface, and this fact is necessary for the package to be well-typed.
txtarPackage txtar implements a trivial text-based file archive format.

Updated 2020-11-30. Refresh now. Tools for package owners.