Help us shape the future of Go! Take the 2026 Go Developer Survey

printer

package
v1.24.2 Latest Latest
Warning

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

Go to latest
Published: Sep 24, 2026 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Overview

Package printer implements printing of AST nodes.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Fprint

func Fprint(output io.Writer, fset *token.FileSet, node any) error

Fprint "pretty-prints" an AST node to output. It calls Config.Fprint with default settings.

Types

type CommentedNode

type CommentedNode struct {
	Node     any
	Comments []*ast.CommentGroup
}

A CommentedNode bundles an AST node and corresponding comments. It may be provided as argument to any of the Fprint functions.

type CommentedNodes

type CommentedNodes struct {
	Node           any
	CommentedStmts map[js.Stmt]*ast.CommentGroup
}

by XGo

type Config

type Config struct {
	Mode     Mode // default: 0
	Tabwidth int  // default: 8
	Indent   int  // default: 0 (all code is indented at least by this much)
}

A Config node controls the output of Fprint.

func (*Config) Fprint

func (cfg *Config) Fprint(output io.Writer, fset *token.FileSet, node any) error

Fprint "pretty-prints" an AST node to output for a given configuration cfg. Position information is interpreted relative to the file set fset.

type Mode

type Mode uint

A Mode value is a set of flags (or 0). They control printing.

const (
	RawFormat Mode = 1 << iota // do not use a tabwriter; if set, UseSpaces is ignored
	TabIndent                  // use tabs for indentation independent of UseSpaces
	UseSpaces                  // use spaces instead of tabs for alignment
	SourcePos                  // emit //line directives to preserve original source positions
)

Jump to

Keyboard shortcuts

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