tools – golang.org/x/tools Directories

tools/ directory

Directories

PathSynopsis
benchmark
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
cmd/auth
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/bisectBisect finds changes responsible for causing a failure.
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/deadcodeThe deadcode command reports unreachable functions in Go programs.
cmd/digraph
cmd/egThe eg command performs example-based refactoring.
cmd/file2fuzzfile2fuzz converts binary files, such as those used by go-fuzz, to the Go fuzzing corpus format.
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/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/gonewGonew starts a new Go module by copying a template module.
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/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/signature-fuzzer
cmd/signature-fuzzer/fuzz-driver
cmd/signature-fuzzer/fuzz-runner
cmd/signature-fuzzer/internal
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
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
container/intsetsPackage intsets provides Sparse, a compact and fast representation for sparse sets of int values.
copyrightPackage copyright checks that files have the correct copyright notices.
coverPackage cover provides support for parsing coverage profiles generated by "go test -coverprofile=cover.out".
go
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/checkerPackage checker provides an analysis driver based on the golang.org/x/tools/go/packages representation of a set of packages and all their dependencies, as produced by packages.Load.
go/analysis/internal
go/analysis/multicheckerPackage multichecker defines the main function for an analysis driver with several analyzers.
go/analysis/passes
go/analysis/passes/appendsPackage appends defines an Analyzer that detects if there is only one variable in append.
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/defersPackage defers defines an Analyzer that checks for common mistakes in defer statements.
go/analysis/passes/defers/cmd
go/analysis/passes/defers/cmd/defersThe defers command runs the defers analyzer.
go/analysis/passes/directivePackage directive defines an Analyzer that checks known Go toolchain directives.
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 use less memory if their fields were sorted.
go/analysis/passes/fieldalignment/cmd
go/analysis/passes/fieldalignment/cmd/fieldalignment
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
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/httpmux
go/analysis/passes/httpmux/cmd
go/analysis/passes/httpmux/cmd/httpmuxThe httpmux command runs the httpmux analyzer.
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/ifaceassert/cmd
go/analysis/passes/ifaceassert/cmd/ifaceassertThe ifaceassert command runs the ifaceassert analyzer.
go/analysis/passes/inspectPackage inspect defines an Analyzer that provides an AST inspector (golang.org/x/tools/go/ast/inspector.Inspector) for the syntax trees of a package.
go/analysis/passes/internal
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
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
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/reflectvaluecomparePackage reflectvaluecompare defines an Analyzer that checks for accidentally using == or reflect.DeepEqual to compare reflect.Value values.
go/analysis/passes/shadowPackage shadow defines an Analyzer that checks for shadowed variables.
go/analysis/passes/shadow/cmd
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/sigchanyzerPackage sigchanyzer defines an Analyzer that detects misuse of unbuffered signal as argument to signal.Notify.
go/analysis/passes/slogPackage slog defines an Analyzer that checks for mismatched key-value pairs in log/slog calls.
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/stdversionPackage stdversion reports uses of standard library symbols that are "too new" for the Go version in force in the referring file.
go/analysis/passes/stringintconvPackage stringintconv defines an Analyzer that flags type conversions from integers to strings.
go/analysis/passes/stringintconv/cmd
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/testinggoroutinePackage testinggoroutine defines an Analyzerfor detecting calls to Fatal from a test goroutine.
go/analysis/passes/testsPackage tests defines an Analyzer that checks for common mistaken usages of tests and examples.
go/analysis/passes/timeformatPackage timeformat defines an Analyzer that checks for the use of time.Format or time.Parse calls with a bad format.
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
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/passes/unusedresult/cmd
go/analysis/passes/unusedresult/cmd/unusedresultThe unusedresult command applies the golang.org/x/tools/go/analysis/passes/unusedresult analysis to the specified packages of Go source code.
go/analysis/passes/unusedwritePackage unusedwrite checks for unused writes to the elements of a struct or array object.
go/analysis/passes/usesgenericsPackage usesgenerics defines an Analyzer that checks for usage of generic features added in Go 1.18.
go/analysis/passes/waitgroupPackage waitgroup defines an Analyzer that detects simple misuses of sync.WaitGroup.
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
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/internal
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/callgraph/vtaPackage vta computes the call graph of a Go program using the Variable Type Analysis (VTA) algorithm originally described in "Practical Virtual Method Call Resolution for Java," Vijay Sundaresan, Laurie Hendren, Chrislain Razafimahefa, Raja Vallée-Rai, Patrick Lam, Etienne Gagnon, and Charles Godin.
go/callgraph/vta/internal
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/redirectPackage redirect provides hooks to register HTTP handlers that redirect old godoc paths to their new equivalents.
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 (including go.mod and go.work files) 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 reading and writing export data, which is a serialized description of the API of a Go package including the names, kinds, types, and locations of all exported declarations.
go/internal
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/internal
go/packages/packagestestPackage packagestest creates temporary projects on disk for testing go tools on.
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
go/types/internal
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 hash table that maps types.Type to any value.
importsPackage imports implements a Go pretty-printer (like package "go/format") that also adds or removes import statements as necessary.
internal
playgroundPackage playground registers an HTTP handler at "/compile" that proxies requests to the golang.org playground service.
playground/socketPackage socket implements a 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
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 obsolete implementation of the deleted 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.
Version
v0.30.0 (latest)
Published
Feb 10, 2025
Platform
linux/amd64
Last checked
2 hours ago

Tools for package owners.