2

tools · pkg.go.dev

 3 years ago
source link: https://pkg.go.dev/golang.org/x/tools
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Discover Packages golang.org/x/tools

tools

module

README

Go Tools

This subrepository holds the source for various packages and tools that support the Go programming language.

Some of the tools, godoc and vet for example, are included in binary Go distributions.

Others, including the Go guru and the test coverage tool, can be fetched with go get.

Packages include a type-checker for Go and an implementation of the Static Single Assignment form (SSA) representation for Go programs.

Download/Install

The easiest way to install is to run go get -u golang.org/x/tools/.... You can also manually git clone the repository to $GOPATH/src/golang.org/x/tools.

JS/CSS Formatting

This repository uses prettier to format JS and CSS files.

The version of prettier used is 1.18.2.

It is encouraged that all JS and CSS code be run through this before submitting a change. However, it is not a strict requirement enforced by CI.

Report Issues / Send Patches

This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see https://golang.org/doc/contribute.html.

The main issue tracker for the tools repository is located at https://github.com/golang/go/issues. Prefix your issue with "x/tools/(your subdir):" in the subject line, so it is easy to find.

Directories

Path Synopsis
benchmark
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 atom defines XML data structures for an Atom feed. authtest is a diagnostic tool for implementations of the GOAUTH protocol described in https://golang.org/issue/26232. cookieauth uses a “Netscape cookie file” to implement the GOAUTH protocol described in https://golang.org/issue/26232. gitauth uses 'git credential' to implement the GOAUTH protocol described in https://golang.org/issue/26232. netrcauth uses a .netrc file (or _netrc file on Windows) to implement the GOAUTH protocol described in https://golang.org/issue/26232. Deprecated: benchcmp is deprecated in favor of benchstat: golang.org/x/perf/cmd/benchstat The benchcmp command displays performance changes between benchmarks. Bundle creates a single-source-file version of a source package suitable for inclusion in a particular target package. callgraph: a tool for reporting the call graph of a Go program. Compilebench benchmarks the speed of the Go compiler. Cover is a program for analyzing the coverage profiles generated by 'go test -coverprofile=cover.out'. The digraph command performs queries over unlabelled directed graphs represented in text form.
eg
The eg command performs example-based refactoring. 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 getgo command installs Go to the user's system. Command server serves get.golang.org, redirecting users to the appropriate getgo installer based on the request path. The go-contrib-init command helps new Go contributors get their development environment set up for the Go contribution process. The godex command prints (dumps) exported information of packages or selected package objects. Godoc extracts and generates documentation for Go programs. Command goimports updates your Go import lines, adding missing ones and removing unreferenced ones. The gomvpkg command moves go packages, updating import declarations. The gorename command performs precise type-safe renaming of identifiers in Go source code. The gotype command, like the front-end of a Go compiler, parses and type-checks a single Go package. Goyacc is a version of yacc for Go. guru: a tool for answering questions about Go source code. Package serial defines the guru's schema for -json output. This program takes an HTML file and outputs a corresponding article file in present format. Present displays slide presentations and articles. Present2md converts legacy-syntax present files to Markdown-syntax present files. 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. ssadump: a tool for displaying and interpreting the SSA form of Go programs. The stress utility is intended for catching sporadic failures. Stringer is a tool to automate the creation of methods that satisfy the fmt.Stringer interface. 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.
container
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 cover provides support for parsing coverage profiles generated by "go test -coverprofile=cover.out". Package analysis defines the interface between a modular static analysis and an analysis driver program. Package analysistest provides utilities for testing analyzers. Package multichecker defines the main function for an analysis driver with several analyzers. Package asmdecl defines an Analyzer that reports mismatches between assembly files and Go declarations. Package assign defines an Analyzer that detects useless assignments. Package atomic defines an Analyzer that checks for common mistakes using the sync/atomic package. Package atomicalign defines an Analyzer that checks for non-64-bit-aligned arguments to sync/atomic functions. Package bools defines an Analyzer that detects common mistakes involving boolean operators. 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. 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. 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. The errorsas package defines an Analyzer that checks that the second argument to errors.As is a pointer to a type implementing error. Package fieldalignment defines an Analyzer that detects structs that would use less memory if their fields were sorted. Package findcall defines an Analyzer that serves as a trivial example and test of the Analysis API. The findcall command runs the findcall analyzer. Package framepointer defines an Analyzer that reports assembly code that clobbers the frame pointer before saving it. 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. 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 loopclosure defines an Analyzer that checks for references to enclosing loop variables from within nested functions. 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. Package nilfunc defines an Analyzer that checks for useless comparisons against nil. Package nilness inspects the control-flow graph of an SSA function and reports errors such as nil pointer dereferences and degenerate nil pointer comparisons. 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. Package printf defines an Analyzer that checks consistency of Printf format strings and arguments. Package reflectvaluecompare defines an Analyzer that checks for accidentally using == or reflect.DeepEqual to compare reflect.Value values. Package shadow defines an Analyzer that checks for shadowed variables. The shadow command runs the shadow analyzer. Package shift defines an Analyzer that checks for shifts that exceed the width of an integer. Package sigchanyzer defines an Analyzer that detects misuse of unbuffered signal as argument to signal.Notify. Package sortslice defines an Analyzer that checks for calls to sort.Slice that do not use a slice type as first argument. Package stdmethods defines an Analyzer that checks for misspellings in the signatures of methods similar to well-known interfaces. 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 tests defines an Analyzer that checks for common mistaken usages of tests and examples. 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. 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. Package unusedwrite checks for unused writes to the elements of a struct or array object. Package singlechecker defines the main function for an analysis driver with only a single analysis. The unitchecker package defines the main function for an analysis driver that analyzes a single compilation unit during a build. Package astutil contains common utilities for working with the Go AST. 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 buildutil provides utilities related to the go/build package in the standard library. Package callgraph defines the call graph and various algorithms and utilities to operate on it. Package cha computes the call graph of a Go program using the Class Hierarchy Analysis (CHA) algorithm. 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. Package static computes the call graph of a Go program containing only static call edges.
cfg
Package cfg constructs a simple control-flow graph (CFG) of the statements and expressions within a single function. Package expect provides support for interpreting structured comments in Go source code as test expectations. Package gccgoexportdata provides functions for reading export data files containing type information produced by the gccgo compiler. Package gcexportdata provides functions for locating, reading, and writing export data files containing type information produced by the gc compiler. Package loader loads a complete Go program from source code, parsing and type-checking the initial packages plus their transitive closure of dependencies. Package packages loads Go packages for inspection and analysis. 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. Package packagestest creates temporary projects on disk for testing go tools on. Package pointer implements Andersen's analysis, an inclusion-based pointer analysis algorithm first described in (Andersen, 1994).
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/interp defines an interpreter for the SSA representation of Go programs. Package objectpath defines a naming scheme for types.Objects (that is, named entities in Go programs) relative to their enclosing package. Package typeutil defines various utilities for types, such as Map, a mapping from types.Type to interface{} values.
vcs
Package 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. Package godoc is a work-in-progress (2013-07-17) package to begin splitting up the godoc binary into multiple pieces. Package analysis performs type and pointer analysis and generates mark-up for the Go source view. Package 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. Package static exports a map of static file content that supports the godoc user interface. Package util contains utility types and functions for godoc.
vfs
Package vfs defines types for abstract file system access and provides an implementation accessing the file system of the underlying OS. Package gatefs provides an implementation of the FileSystem interface that wraps another FileSystem and limits its concurrency. Package httpfs implements http.FileSystem using a godoc vfs.FileSystem. Package mapfs file provides an implementation of the FileSystem interface based on the contents of a map[string]string. Package zipfs file provides an implementation of the FileSystem interface based on the contents of a .zip file.
gopls module
Package imports implements a Go pretty-printer (like package "go/format") that also adds or removes import statements as necessary. Package playground registers an HTTP handler at "/compile" that proxies requests to the golang.org playground service. Package socket implements an 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).
refactor
eg
Package eg implements the example-based refactoring tool whose command-line is defined in golang.org/x/tools/cmd/eg. Package importgraph computes the forward and reverse import dependency graphs for all packages in a Go workspace. Package rename contains the implementation of the 'gorename' command whose main function is in golang.org/x/tools/cmd/gorename. 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.
internal
Package analysisinternal exposes internal-only fields from go/analysis. Package event provides a set of packages that cover the main concepts of telemetry in an implementation agnostic way. 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. Package ocagent adds the ability to export all telemetry to an ocagent. Package fastwalk provides a faster version of filepath.Walk for file system scanning tools. Package gocommand is a helper for calling the go command. Package gopathwalk is like filepath.Walk but specialized for finding Go packages, particularly in $GOPATH and $GOROOT. Package imports implements a Go pretty-printer (like package "go/format") that also adds or removes import statements as necessary. Package jsonrpc2 is a minimal implementation of the JSON RPC 2 spec. Package servertest provides utilities for running tests against a remote LSP server. Package jsonrpc2 is a minimal implementation of the JSON RPC 2 spec.
lsp
Package lsp implements LSP for gopls. Package fillreturns defines an Analyzer that will attempt to automatically fill in a return statement that has missing values with zero value elements. Package fillstruct defines an Analyzer that automatically fills in a struct declaration with zero value elements for each field. Package nonewvars defines an Analyzer that applies suggested fixes to errors of the type "no new variables on left side of :=". Package noresultvalues defines an Analyzer that applies suggested fixes to errors of the type "no result values expected". Package simplifycompositelit defines an Analyzer that simplifies composite literals. Package simplifyrange defines an Analyzer that simplifies range statements. Package simplifyslice defines an Analyzer that simplifies slice statements. Package undeclaredname defines an Analyzer that applies suggested fixes to errors of the type "undeclared name: %s". Package unusedparams defines an analyzer that checks for unused parameters of functions. Package browser provides utilities for interacting with users' browsers. Package cache implements the caching layer for gopls. Package cmd handles the gopls command line. Package cmdtest contains the test suite for the command line behavior of gopls. Package command defines the interface provided by gopls for the workspace/executeCommand LSP request. Package commandmeta provides metadata about LSP commands, by analyzing the command.Interface type. Package gen is used to generate command bindings from the gopls command interface. Package debug exports debug information for gopls. Package log provides helper methods for exporting log events to the internal/event package. Package tag provides the labels used for telemetry throughout gopls. Package diff supports a pluggable diff algorithm. 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/lsp/diff" Package myers implements the Myers diff algorithm. Package fake provides fake implementations of a text editor, LSP client plugin, and Sandbox environment for use in tests. Package fuzzy implements a fuzzy matching algorithm. Invoke with //go:generate helper/helper -t Server -d protocol/tsserver.go -u lsp -o server_gen.go invoke in internal/lsp Package lsprpc implements a jsonrpc2.StreamServer that may be used to serve the LSP on a jsonrpc2 channel. Package mod provides core features related to go.mod file handling for use by Go editors and tools. Package protocol contains the structs that map directly to the wire format of the "Language Server Protocol". Package regtest provides a framework for writing gopls regression tests. Package snippet implements the specification for the LSP snippet format. Package source provides core features for use by Go editors and tools. Package completion provides core functionality for code completion in Go editors and tools. Package template contains code for dealing with templates Package tests exports functionality to be used across a variety of gopls tests. Package memoize supports memoizing the return values of functions with idempotent results that are expensive to compute. Package packagesinternal exposes internal-only fields from go/packages. 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://<dir>". Package span contains support for representing with positions and ranges in text files. Package stack provides support for parsing standard goroutine stack traces. The gostacks command processes stdin looking for things that look like stack traces and simplifying them to make the log more readable. Package testenv contains helper functions for skipping tests based on which tools are present in the environment. Package tool is a harness for writing Go tools. Package typeparams provides functions to work indirectly with type parameter data stored in go/ast and go/types objects, while these API are guarded by a build constraint. Package typesinternal provides access to internal go/types APIs that are not yet exported. Package xcontext is a package to offer the extra functionality we need from contexts that is not available from the standard context package.

Details

  • checked

    Valid go.mod file

  • checked

    Redistributable license

  • checked

    Tagged version

  • unchecked

    Stable version

Repository


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK