tools module - golang.org/x/tools - Go Packages (original) (raw)

Path

Synopsis

parse

Package parse provides support for parsing benchmark results as generated by 'go test -bench'.

Package parse provides support for parsing benchmark results as generated by 'go test -bench'.

Package blog implements a web server for articles written in present format.

Package blog implements a web server for articles written in present format.

atom

Package atom defines XML data structures for an Atom feed.

Package atom defines XML data structures for an Atom feed.

benchcmp command

Deprecated: benchcmp is deprecated in favor of benchstat: golang.org/x/perf/cmd/benchstat

Deprecated: benchcmp is deprecated in favor of benchstat: golang.org/x/perf/cmd/benchstat

bisect command

Bisect finds changes responsible for causing a failure.

Bisect finds changes responsible for causing a failure.

bundle command

Bundle creates a single-source-file version of a source package suitable for inclusion in a particular target package.

Bundle creates a single-source-file version of a source package suitable for inclusion in a particular target package.

callgraph command

callgraph: a tool for reporting the call graph of a Go program.

callgraph: a tool for reporting the call graph of a Go program.

compilebench command

Compilebench benchmarks the speed of the Go compiler.

Compilebench benchmarks the speed of the Go compiler.

deadcode command

The deadcode command reports unreachable functions in Go programs.

The deadcode command reports unreachable functions in Go programs.

eg command

The eg command performs example-based refactoring.

The eg command performs example-based refactoring.

file2fuzz command

file2fuzz converts binary files, such as those used by go-fuzz, to the Go fuzzing corpus format.

file2fuzz converts binary files, such as those used by go-fuzz, to the Go fuzzing corpus format.

fiximports command

The 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.

The 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.

go-contrib-init command

The go-contrib-init command helps new Go contributors get their development environment set up for the Go contribution process.

The go-contrib-init command helps new Go contributors get their development environment set up for the Go contribution process.

godex command

The godex command prints (dumps) exported information of packages or selected package objects.

The godex command prints (dumps) exported information of packages or selected package objects.

goimports command

Command goimports updates your Go import lines, adding missing ones and removing unreferenced ones.

Command goimports updates your Go import lines, adding missing ones and removing unreferenced ones.

gomvpkg command

The gomvpkg command moves go packages, updating import declarations.

The gomvpkg command moves go packages, updating import declarations.

gonew command

Gonew starts a new Go module by copying a template module.

Gonew starts a new Go module by copying a template module.

gotype command

The gotype command, like the front-end of a Go compiler, parses and type-checks a single Go package.

The gotype command, like the front-end of a Go compiler, parses and type-checks a single Go package.

goyacc command

Goyacc is a version of yacc for Go.

Goyacc is a version of yacc for Go.

html2article command

This program takes an HTML file and outputs a corresponding article file in present format.

This program takes an HTML file and outputs a corresponding article file in present format.

present command

Present displays slide presentations and articles.

Present displays slide presentations and articles.

present2md command

Present2md converts legacy-syntax present files to Markdown-syntax present files.

Present2md converts legacy-syntax present files to Markdown-syntax present files.

splitdwarf command

Splitdwarf uncompresses and copies the DWARF segment of a Mach-O executable into the "dSYM" file expected by lldb and ports of gdb on OSX.

Splitdwarf uncompresses and copies the DWARF segment of a Mach-O executable into the "dSYM" file expected by lldb and ports of gdb on OSX.

Package macho implements access to Mach-O object files.

ssadump command

ssadump: a tool for displaying and interpreting the SSA form of Go programs.

ssadump: a tool for displaying and interpreting the SSA form of Go programs.

stress command

The stress utility is intended for catching sporadic failures.

The stress utility is intended for catching sporadic failures.

stringer command

Stringer is a tool to automate the creation of methods that satisfy the fmt.Stringer interface.

Stringer is a tool to automate the creation of methods that satisfy the fmt.Stringer interface.

toolstash command

Toolstash 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.

Toolstash 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.

intsets

Package intsets provides Sparse, a compact and fast representation for sparse sets of int values.

Package intsets provides Sparse, a compact and fast representation for sparse sets of int values.

Package copyright checks that files have the correct copyright notices.

Package copyright checks that files have the correct copyright notices.

Package cover provides support for parsing coverage profiles generated by "go test -coverprofile=cover.out".

Package cover provides support for parsing coverage profiles generated by "go test -coverprofile=cover.out".

analysis

Package analysis defines the interface between a modular static analysis and an analysis driver program.

Package analysis defines the interface between a modular static analysis and an analysis driver program.

Package analysistest provides utilities for testing analyzers.

analysis/checker

Package 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.

Package 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.

analysis/internal/analysisflags

Package analysisflags defines helpers for processing flags (-help, -json, -fix, -diff, etc) common to unitchecker and {single,multi}checker.

Package analysisflags defines helpers for processing flags (-help, -json, -fix, -diff, etc) common to unitchecker and {single,multi}checker.

analysis/internal/checker

Package internal/checker defines various implementation helpers for the singlechecker and multichecker packages, which provide the complete main function for an analysis driver executable based on go/packages.

Package internal/checker defines various implementation helpers for the singlechecker and multichecker packages, which provide the complete main function for an analysis driver executable based on go/packages.

analysis/multichecker

Package multichecker defines the main function for an analysis driver with several analyzers.

Package multichecker defines the main function for an analysis driver with several analyzers.

Package appends defines an Analyzer that detects if there is only one variable in append.

analysis/passes/asmdecl

Package asmdecl defines an Analyzer that reports mismatches between assembly files and Go declarations.

Package asmdecl defines an Analyzer that reports mismatches between assembly files and Go declarations.

Package assign defines an Analyzer that detects useless assignments.

analysis/passes/atomic

Package atomic defines an Analyzer that checks for common mistakes using the sync/atomic package.

Package atomic defines an Analyzer that checks for common mistakes using the sync/atomic package.

analysis/passes/atomicalign

Package atomicalign defines an Analyzer that checks for non-64-bit-aligned arguments to sync/atomic functions.

Package atomicalign defines an Analyzer that checks for non-64-bit-aligned arguments to sync/atomic functions.

analysis/passes/bools

Package bools defines an Analyzer that detects common mistakes involving boolean operators.

Package bools defines an Analyzer that detects common mistakes involving boolean operators.

analysis/passes/buildssa

Package buildssa defines an Analyzer that constructs the SSA representation of an error-free package and returns the set of all functions within it.

Package buildssa defines an Analyzer that constructs the SSA representation of an error-free package and returns the set of all functions within it.

Package buildtag defines an Analyzer that checks build tags.

analysis/passes/cgocall

Package cgocall defines an Analyzer that detects some violations of the cgo pointer passing rules.

Package cgocall defines an Analyzer that detects some violations of the cgo pointer passing rules.

Package composite defines an Analyzer that checks for unkeyed composite literals.

Package copylock defines an Analyzer that checks for locks erroneously passed by value.

analysis/passes/ctrlflow

Package ctrlflow is an analysis that provides a syntactic control-flow graph (CFG) for the body of a function.

Package ctrlflow is an analysis that provides a syntactic control-flow graph (CFG) for the body of a function.

Package deepequalerrors defines an Analyzer that checks for the use of reflect.DeepEqual with error values.

analysis/passes/defers

Package defers defines an Analyzer that checks for common mistakes in defer statements.

Package defers defines an Analyzer that checks for common mistakes in defer statements.

The defers command runs the defers analyzer.

Package directive defines an Analyzer that checks known Go toolchain directives.

analysis/passes/errorsas

The errorsas package defines an Analyzer that checks that the second argument to errors.As is a pointer to a type implementing error.

The errorsas package defines an Analyzer that checks that the second argument to errors.As is a pointer to a type implementing error.

analysis/passes/fieldalignment

Package fieldalignment defines an Analyzer that detects structs that would use less memory if their fields were sorted.

Package fieldalignment defines an Analyzer that detects structs that would use less memory if their fields were sorted.

analysis/passes/findcall

Package findcall defines an Analyzer that serves as a trivial example and test of the Analysis API.

Package findcall defines an Analyzer that serves as a trivial example and test of the Analysis API.

The findcall command runs the findcall analyzer.

analysis/passes/framepointer

Package framepointer defines an Analyzer that reports assembly code that clobbers the frame pointer before saving it.

Package framepointer defines an Analyzer that reports assembly code that clobbers the frame pointer before saving it.

Package gofix defines an Analyzer that checks "//go:fix inline" directives.

analysis/passes/hostport

Package hostport defines an analyzer for calls to net.Dial with addresses of the form "%s:%d" or "%s:%s", which work only with IPv4.

Package hostport defines an analyzer for calls to net.Dial with addresses of the form "%s:%d" or "%s:%s", which work only with IPv4.

The httpmux command runs the httpmux analyzer.

Package httpresponse defines an Analyzer that checks for mistakes using HTTP responses.

Package ifaceassert defines an Analyzer that flags impossible interface-interface type assertions.

The ifaceassert command runs the ifaceassert analyzer.

analysis/passes/inline

Package inline defines an analyzer that inlines calls to functions and uses of constants marked with a "//go:fix inline" directive.

Package inline defines an analyzer that inlines calls to functions and uses of constants marked with a "//go:fix inline" directive.

The inline command applies the inliner to the specified packages of Go source code.

analysis/passes/inspect

Package inspect defines an Analyzer that provides an AST inspector (golang.org/x/tools/go/ast/inspector.Inspector) for the syntax trees of a package.

Package inspect defines an Analyzer that provides an AST inspector (golang.org/x/tools/go/ast/inspector.Inspector) for the syntax trees of a package.

Package ctrlflowinternal exposes internals of ctrlflow.

Package gofixdirective searches for and validates go:fix directives.

analysis/passes/loopclosure

Package loopclosure defines an Analyzer that checks for references to enclosing loop variables from within nested functions.

Package loopclosure defines an Analyzer that checks for references to enclosing loop variables from within nested functions.

analysis/passes/lostcancel

Package lostcancel defines an Analyzer that checks for failure to call a context cancellation function.

Package lostcancel defines an Analyzer that checks for failure to call a context cancellation function.

The lostcancel command applies the golang.org/x/tools/go/analysis/passes/lostcancel analysis to the specified packages of Go source code.

analysis/passes/modernize

Package modernize provides a suite of analyzers that suggest simplifications to Go code, using modern language and library features.

Package modernize provides a suite of analyzers that suggest simplifications to Go code, using modern language and library features.

The modernize command suggests (or, with -fix, applies) fixes that clarify Go code by using more modern features.

Package nilfunc defines an Analyzer that checks for useless comparisons against nil.

analysis/passes/nilness

Package nilness inspects the control-flow graph of an SSA function and reports errors such as nil pointer dereferences and degenerate nil pointer comparisons.

Package nilness inspects the control-flow graph of an SSA function and reports errors such as nil pointer dereferences and degenerate nil pointer comparisons.

analysis/passes/nilness/cmd/nilness command

The nilness command applies the golang.org/x/tools/go/analysis/passes/nilness analysis to the specified packages of Go source code.

The nilness command applies the golang.org/x/tools/go/analysis/passes/nilness analysis to the specified packages of Go source code.

The pkgfact package is a demonstration and test of the package fact mechanism.

analysis/passes/printf

Package printf defines an Analyzer that checks consistency of Printf format strings and arguments.

Package printf defines an Analyzer that checks consistency of Printf format strings and arguments.

analysis/passes/reflectvaluecompare

Package reflectvaluecompare defines an Analyzer that checks for accidentally using == or reflect.DeepEqual to compare reflect.Value values.

Package reflectvaluecompare defines an Analyzer that checks for accidentally using == or reflect.DeepEqual to compare reflect.Value values.

The reflectvaluecompare command applies the reflectvaluecompare checker to the specified packages of Go source code.

Package shadow defines an Analyzer that checks for shadowed variables.

The shadow command runs the shadow analyzer.

analysis/passes/shift

Package shift defines an Analyzer that checks for shifts that exceed the width of an integer.

Package shift defines an Analyzer that checks for shifts that exceed the width of an integer.

analysis/passes/sigchanyzer

Package sigchanyzer defines an Analyzer that detects misuse of unbuffered signal as argument to signal.Notify.

Package sigchanyzer defines an Analyzer that detects misuse of unbuffered signal as argument to signal.Notify.

analysis/passes/slog

Package slog defines an Analyzer that checks for mismatched key-value pairs in log/slog calls.

Package slog defines an Analyzer that checks for mismatched key-value pairs in log/slog calls.

analysis/passes/sortslice

Package sortslice defines an Analyzer that checks for calls to sort.Slice that do not use a slice type as first argument.

Package sortslice defines an Analyzer that checks for calls to sort.Slice that do not use a slice type as first argument.

analysis/passes/stdmethods

Package stdmethods defines an Analyzer that checks for misspellings in the signatures of methods similar to well-known interfaces.

Package stdmethods defines an Analyzer that checks for misspellings in the signatures of methods similar to well-known interfaces.

analysis/passes/stdversion

Package stdversion reports uses of standard library symbols that are "too new" for the Go version in force in the referring file.

Package stdversion reports uses of standard library symbols that are "too new" for the Go version in force in the referring file.

Package stringintconv defines an Analyzer that flags type conversions from integers to strings.

The stringintconv command runs the stringintconv analyzer.

Package structtag defines an Analyzer that checks struct field tags are well formed.

Package testinggoroutine defines an Analyzerfor detecting calls to Fatal from a test goroutine.

analysis/passes/tests

Package tests defines an Analyzer that checks for common mistaken usages of tests and examples.

Package tests defines an Analyzer that checks for common mistaken usages of tests and examples.

analysis/passes/timeformat

Package timeformat defines an Analyzer that checks for the use of time.Format or time.Parse calls with a bad format.

Package timeformat defines an Analyzer that checks for the use of time.Format or time.Parse calls with a bad format.

analysis/passes/unmarshal

The unmarshal package defines an Analyzer that checks for passing non-pointer or non-interface types to unmarshal and decode functions.

The unmarshal package defines an Analyzer that checks for passing non-pointer or non-interface types to unmarshal and decode functions.

The unmarshal command runs the unmarshal analyzer.

Package unreachable defines an Analyzer that checks for unreachable code.

analysis/passes/unsafeptr

Package unsafeptr defines an Analyzer that checks for invalid conversions of uintptr to unsafe.Pointer.

Package unsafeptr defines an Analyzer that checks for invalid conversions of uintptr to unsafe.Pointer.

Package unusedresult defines an analyzer that checks for unused results of calls to certain pure functions.

The unusedresult command applies the golang.org/x/tools/go/analysis/passes/unusedresult analysis to the specified packages of Go source code.

Package unusedwrite checks for unused writes to the elements of a struct or array object.

Package usesgenerics defines an Analyzer that checks for usage of generic features added in Go 1.18.

Package waitgroup defines an Analyzer that detects simple misuses of sync.WaitGroup.

analysis/singlechecker

Package singlechecker defines the main function for an analysis driver with only a single analysis.

Package singlechecker defines the main function for an analysis driver with only a single analysis.

analysis/unitchecker

The unitchecker package defines the main function for an analysis driver that analyzes a single compilation unit during a build.

The unitchecker package defines the main function for an analysis driver that analyzes a single compilation unit during a build.

ast/astutil

Package astutil contains common utilities for working with the Go AST.

Package astutil contains common utilities for working with the Go AST.

ast/edge

Package edge defines identifiers for each field of an ast.Node struct type that refers to another Node.

Package edge defines identifiers for each field of an ast.Node struct type that refers to another Node.

ast/inspector

Package inspector provides helper functions for traversal over the syntax trees of a package, including node filtering by type, and materialization of the traversal stack.

Package inspector provides helper functions for traversal over the syntax trees of a package, including node filtering by type, and materialization of the traversal stack.

buildutil

Package buildutil provides utilities related to the go/build package in the standard library.

Package buildutil provides utilities related to the go/build package in the standard library.

callgraph

Package callgraph defines the call graph and various algorithms and utilities to operate on it.

Package callgraph defines the call graph and various algorithms and utilities to operate on it.

callgraph/cha

Package cha computes the call graph of a Go program using the Class Hierarchy Analysis (CHA) algorithm.

Package cha computes the call graph of a Go program using the Class Hierarchy Analysis (CHA) algorithm.

callgraph/internal/chautil

Package chautil provides helper functions related to class hierarchy analysis (CHA) for use in x/tools.

Package chautil provides helper functions related to class hierarchy analysis (CHA) for use in x/tools.

callgraph/rta

This 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.

This 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.

callgraph/static

Package static computes the call graph of a Go program containing only static call edges.

Package static computes the call graph of a Go program containing only static call edges.

callgraph/vta

Package 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.

Package 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.

trie implements persistent Patricia trie maps.

cfg

Package cfg constructs a simple control-flow graph (CFG) of the statements and expressions within a single function.

Package cfg constructs a simple control-flow graph (CFG) of the statements and expressions within a single function.

gccgoexportdata

Package gccgoexportdata provides functions for reading export data files containing type information produced by the gccgo compiler.

Package gccgoexportdata provides functions for reading export data files containing type information produced by the gccgo compiler.

gcexportdata

Package 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.

Package 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.

Package gccgoimporter implements Import for gccgo-generated object files.

loader

Package loader loads a complete Go program from source code, parsing and type-checking the initial packages plus their transitive closure of dependencies.

Package loader loads a complete Go program from source code, parsing and type-checking the initial packages plus their transitive closure of dependencies.

packages

Package packages loads Go packages for inspection and analysis.

Package packages loads Go packages for inspection and analysis.

packages/gopackages command

The 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.

The 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.

packages/internal/linecount command

The linecount command shows the number of lines of code in a set of Go packages plus their dependencies.

The linecount command shows the number of lines of code in a set of Go packages plus their dependencies.

packages/internal/nodecount command

The nodecount program illustrates the use of packages.Load to print the frequency of occurrence of each type of syntax node among the selected packages.

The nodecount program illustrates the use of packages.Load to print the frequency of occurrence of each type of syntax node among the selected packages.

ssa

Package 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.

Package 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.

ssa/interp

Package ssa/interp defines an interpreter for the SSA representation of Go programs.

Package ssa/interp defines an interpreter for the SSA representation of Go programs.

types/internal/play command

The play program is a playground for go/types: a simple web-based text editor into which the user can enter a Go program, select a region, and see type information about it.

The play program is a playground for go/types: a simple web-based text editor into which the user can enter a Go program, select a region, and see type information about it.

types/objectpath

Package objectpath defines a naming scheme for types.Objects (that is, named entities in Go programs) relative to their enclosing package.

Package objectpath defines a naming scheme for types.Objects (that is, named entities in Go programs) relative to their enclosing package.

types/typeutil

Package typeutil defines various utilities for types, such as Map, a hash table that maps types.Type to any value.

Package typeutil defines various utilities for types, such as Map, a hash table that maps types.Type to any value.

Package imports implements a Go pretty-printer (like package "go/format") that also adds or removes import statements as necessary.

Package imports implements a Go pretty-printer (like package "go/format") that also adds or removes import statements as necessary.

Package analyzerutil provides implementation helpers for analyzers.

analysis/driverutil

Package driverutil defines implementation helper functions for analysis drivers such as unitchecker, {single,multi}checker, and analysistest.

Package driverutil defines implementation helper functions for analysis drivers such as unitchecker, {single,multi}checker, and analysistest.

analysis/generated

Package generated defines an analyzer whose result makes it convenient to skip diagnostics within generated files.

Package generated defines an analyzer whose result makes it convenient to skip diagnostics within generated files.

analysis/typeindex

Package typeindex defines an analyzer that provides a golang.org/x/tools/internal/typesinternal/typeindex.Index.

Package typeindex defines an analyzer that provides a golang.org/x/tools/internal/typesinternal/typeindex.Index.

astutil

Package astutil provides various AST utility functions for gopls.

Package astutil provides various AST utility functions for gopls.

astutil/free

Package free defines utilities for computing the free variables of a syntax tree without type information.

Package free defines utilities for computing the free variables of a syntax tree without type information.

bisect

Package bisect can be used by compilers and other programs to serve as a target for the bisect debugging tool.

Package bisect can be used by compilers and other programs to serve as a target for the bisect debugging tool.

cfginternal

Package cfginternal exposes internals of go/cfg.

Package cfginternal exposes internals of go/cfg.

diff

Package diff computes differences between text files or strings.

Package diff computes differences between text files or strings.

diff/difftest

Package difftest supplies a set of tests that will operate on any implementation of a diff algorithm as exposed by "golang.org/x/tools/internal/diff"

Package difftest supplies a set of tests that will operate on any implementation of a diff algorithm as exposed by "golang.org/x/tools/internal/diff"

diff/lcs

package lcs contains code to find longest-common-subsequences (and diffs)

package lcs contains code to find longest-common-subsequences (and diffs)

diff/myers

Package myers implements the Myers diff algorithm.

Package myers implements the Myers diff algorithm.

diffp

Package diffp implements a basic diff algorithm equivalent to patience diff.

Package diffp implements a basic diff algorithm equivalent to patience diff.

drivertest

The drivertest package provides a fake implementation of the go/packages driver protocol that delegates to the go list driver.

The drivertest package provides a fake implementation of the go/packages driver protocol that delegates to the go list driver.

edit

Package edit implements buffered position-based editing of byte slices.

Package edit implements buffered position-based editing of byte slices.

event

Package event provides a set of packages that cover the main concepts of telemetry in an implementation agnostic way.

Package event provides a set of packages that cover the main concepts of telemetry in an implementation agnostic way.

event/core

Package core provides support for event based telemetry.

Package core provides support for event based telemetry.

Package eventtest supports logging events to a test.

Package metric aggregates events into metrics that can be exported.

expect

Package expect provides support for interpreting structured comments in Go source code (including go.mod and go.work files) as test expectations.

Package expect provides support for interpreting structured comments in Go source code (including go.mod and go.work files) as test expectations.

facts

Package facts defines a serializable set of analysis.Fact.

Package facts defines a serializable set of analysis.Fact.

fmtstr

Package fmtstr defines a parser for format strings as used by fmt.Printf.

Package fmtstr defines a parser for format strings as used by fmt.Printf.

gcimporter

Package 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.

Package 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.

gocommand

Package gocommand is a helper for calling the go command.

Package gocommand is a helper for calling the go command.

gopathwalk

Package gopathwalk is like filepath.Walk but specialized for finding Go packages, particularly in GOPATHandGOPATH and GOPATHandGOROOT.

Package gopathwalk is like filepath.Walk but specialized for finding Go packages, particularly in GOPATHandGOPATH and GOPATHandGOROOT.

goplsexport

Package goplsexport provides various backdoors to not-yet-published parts of x/tools that are needed by gopls.

Package goplsexport provides various backdoors to not-yet-published parts of x/tools that are needed by gopls.

goroot

Package goroot is a copy of package internal/goroot in the main GO repot.

Package goroot is a copy of package internal/goroot in the main GO repot.

imports

Package imports implements a Go pretty-printer (like package "go/format") that also adds or removes import statements as necessary.

Package imports implements a Go pretty-printer (like package "go/format") that also adds or removes import statements as necessary.

jsonrpc2

Package jsonrpc2 is a minimal implementation of the JSON RPC 2 spec.

Package jsonrpc2 is a minimal implementation of the JSON RPC 2 spec.

jsonrpc2/servertest

Package servertest provides utilities for running tests against a remote LSP server.

Package servertest provides utilities for running tests against a remote LSP server.

jsonrpc2/stack

Package stack provides support for parsing standard goroutine stack traces.

Package stack provides support for parsing standard goroutine stack traces.

jsonrpc2_v2

Package jsonrpc2 is a minimal implementation of the JSON RPC 2 spec.

Package jsonrpc2 is a minimal implementation of the JSON RPC 2 spec.

mcp

The mcp package provides an SDK for writing model context protocol clients and servers.

The mcp package provides an SDK for writing model context protocol clients and servers.

Package oauthex implements extensions to OAuth2.

!+

!+

mcp/jsonschema

Package jsonschema is an implementation of the [JSON Schema specification], a JSON-based format for describing the structure of JSON data.

Package jsonschema is an implementation of the [JSON Schema specification], a JSON-based format for describing the structure of JSON data.

modindex

Package modindex contains code for building and searching an Index of the Go module cache.

Package modindex contains code for building and searching an Index of the Go module cache.

modindex/gomodindex command

A command for building and maintaining the module cache a.out The commands are: 'update', which attempts to update an existing index, 'query', which looks up things in the index.

A command for building and maintaining the module cache a.out The commands are: 'update', which attempts to update an existing index, 'query', which looks up things in the index.

packagepath

Package packagepath provides metadata operations on package path strings.

Package packagepath provides metadata operations on package path strings.

packagesinternal

Package packagesinternal exposes internal-only fields from go/packages.

Package packagesinternal exposes internal-only fields from go/packages.

packagestest

Package packagestest creates temporary projects on disk for testing go tools on.

Package packagestest creates temporary projects on disk for testing go tools on.

pkgbits

Package pkgbits implements low-level coding abstractions for Unified IR's export data format.

Package pkgbits implements low-level coding abstractions for Unified IR's export data format.

pprof

Package pprof provides minimalistic routines for extracting information from profiles.

Package pprof provides minimalistic routines for extracting information from profiles.

proxydir

Package 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://".

Package 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://".

refactor

Package refactor provides operators to compute common textual edits for refactoring tools.

Package refactor provides operators to compute common textual edits for refactoring tools.

Package inline implements inlining of Go function calls.

robustio

Package robustio wraps I/O functions that are prone to failure on Windows, transparently retrying errors up to an arbitrary timeout.

Package robustio wraps I/O functions that are prone to failure on Windows, transparently retrying errors up to an arbitrary timeout.

ssainternal

Package ssainternal exposes setters for internals of go/ssa.

Package ssainternal exposes setters for internals of go/ssa.

stdlib

Package stdlib provides a table of all exported symbols in the standard library, along with the version at which they first appeared.

Package stdlib provides a table of all exported symbols in the standard library, along with the version at which they first appeared.

testenv

Package testenv contains helper functions for skipping tests based on which tools are present in the environment.

Package testenv contains helper functions for skipping tests based on which tools are present in the environment.

testfiles

Package testfiles provides utilities for writing Go tests with files in testdata.

Package testfiles provides utilities for writing Go tests with files in testdata.

tool

Package tool is a harness for writing Go tools.

Package tool is a harness for writing Go tools.

typeparams

Package typeparams contains common utilities for writing tools that interact with generic Go code, as introduced with Go 1.18.

Package typeparams contains common utilities for writing tools that interact with generic Go code, as introduced with Go 1.18.

typeparams/genericfeatures

The genericfeatures package provides utilities for detecting usage of generic programming in Go packages.

The genericfeatures package provides utilities for detecting usage of generic programming in Go packages.

typesinternal

Package typesinternal provides helpful operators for dealing with go/types:

Package typesinternal provides helpful operators for dealing with go/types:

typesinternal/typeindex

Package typeindex provides an Index of type information for a package, allowing efficient lookup of, say, whether a given symbol is referenced and, if so, where from; or of the inspector.Cursor for the declaration of a particular types.Object symbol.

Package typeindex provides an Index of type information for a package, allowing efficient lookup of, say, whether a given symbol is referenced and, if so, where from; or of the inspector.Cursor for the declaration of a particular types.Object symbol.

xcontext

Package xcontext is a package to offer the extra functionality we need from contexts that is not available from the standard context package.

Package xcontext is a package to offer the extra functionality we need from contexts that is not available from the standard context package.

Package playground registers an HTTP handler at "/compile" that proxies requests to the golang.org playground service.

Package playground registers an HTTP handler at "/compile" that proxies requests to the golang.org playground service.

socket

Package socket implements a WebSocket-based playground backend.

Package socket implements a WebSocket-based playground backend.

Package 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).

Package 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).

eg

Package eg implements the example-based refactoring tool whose command-line is defined in golang.org/x/tools/cmd/eg.

Package eg implements the example-based refactoring tool whose command-line is defined in golang.org/x/tools/cmd/eg.

importgraph

Package importgraph computes the forward and reverse import dependency graphs for all packages in a Go workspace.

Package importgraph computes the forward and reverse import dependency graphs for all packages in a Go workspace.

rename

Package rename contains the obsolete implementation of the deleted golang.org/x/tools/cmd/gorename.

Package rename contains the obsolete implementation of the deleted golang.org/x/tools/cmd/gorename.

satisfy

Package 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.

Package 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.

Package txtar implements a trivial text-based file archive format.

Package txtar implements a trivial text-based file archive format.