format

package
v0.0.0-...-f8a98f6 Latest Latest
Warning

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

Go to latest
Published: Feb 7, 2020 License: BSD-3-Clause Imports: 8 Imported by: 0

Documentation

Overview

Package format implements standard formatting of Go source.

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func Node

func Node(dst io.Writer, fset *token.FileSet, node interface{}) error

Node formats node in canonical gofmt style and writes the result to dst.

The node type must be *ast.File, *printer.CommentedNode, []ast.Decl, []ast.Stmt, or assignment-compatible to ast.Expr, ast.Decl, ast.Spec, or ast.Stmt. Node does not modify node. Imports are not sorted for nodes representing partial source files (i.e., if the node is not an *ast.File or a *printer.CommentedNode not wrapping an *ast.File).

The function may return early (before the entire result is written) and return a formatting error, for instance due to an incorrect AST.

Example
const expr = "(6+2*3)/4"

// parser.ParseExpr parses the argument and returns the
// corresponding ast.Node.
node, err := parser.ParseExpr(expr)
if err != nil {
	log.Fatal(err)
}

// Create a FileSet for node. Since the node does not come
// from a real source file, fset will be empty.
fset := token.NewFileSet()

var buf bytes.Buffer
err = Node(&buf, fset, node)
if err != nil {
	log.Fatal(err)
}

fmt.Println(buf.String())
Output:

(6 + 2*3) / 4

func Source

func Source(src []byte) ([]byte, error)

Source formats src in canonical gofmt style and returns the result or an (I/O or syntax) error. src is expected to be a syntactically correct Go source file, or a list of Go declarations or statements.

If src is a partial source file, the leading and trailing space of src is applied to the result (such that it has the same leading and trailing space as src), and the result is indented by the same amount as the first line of src containing code. Imports are not sorted for partial source files.

Types

This section is empty.

Jump to

Keyboard shortcuts

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