pp

package module
v3.2.0 Latest Latest
Warning

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

Go to latest
Published: Apr 23, 2022 License: MIT Imports: 19 Imported by: 0

README

pp Go Go Reference

Colored pretty printer for Go language

Usage

Just call pp.Print().

import "github.com/k0kubun/pp/v3"

m := map[string]string{"foo": "bar", "hello": "world"}
pp.Print(m)

API

fmt package-like functions are provided.

pp.Print()
pp.Println()
pp.Sprint()
pp.Fprintf()
// ...

You can also create own instances that do not interfere with the default printer:

mypp := pp.New()
mypp.SetOutput(os.Stderr)
mypp.Println()
// ...
Custom colors

If you require, you may change the colors (all or some) for syntax highlighting:

// Create a struct describing your scheme
scheme := pp.ColorScheme{
	Integer:       pp.Green | pp.Bold,
	Float:         pp.Black | pp.BackgroundWhite | pp.Bold,
	String:        pp.Yellow,
}

// Register it for usage
pp.SetColorScheme(scheme)

Look into ColorScheme struct for the field names.

If you would like to revert to the default highlighting, you may do so by calling pp.ResetColorScheme().

Out of the following color flags, you may combine any color with a background color and optionally with the bold parameter. Please note that bold will likely not work on the windows platform.

// Colors
Black
Red
Green
Yellow
Blue
Magenta
Cyan
White

// Background colors
BackgroundBlack
BackgroundRed
BackgroundGreen
BackgroundYellow
BackgroundBlue
BackgroundMagenta
BackgroundCyan
BackgroundWhite

// Other
Bold

// Special
NoColor

Demo

Timeline

UserStream event

Works on windows

License

MIT License

Documentation

Index

Constants

View Source
const (
	Black uint16
	Red
	Green
	Yellow
	Blue
	Magenta
	Cyan
	White
)
View Source
const (
	BackgroundBlack uint16
	BackgroundRed
	BackgroundGreen
	BackgroundYellow
	BackgroundBlue
	BackgroundMagenta
	BackgroundCyan
	BackgroundWhite
)
View Source
const (
	// Bold flag for ColorScheme.
	Bold uint16 = 1<<bitsBold | NoColor
)
View Source
const (
	// No color
	NoColor uint16 = 1 << 15
)

Variables

View Source
var (
	// If the length of array or slice is larger than this,
	// the buffer will be shorten as {...}.
	BufferFoldThreshold = 1024
	// PrintMapTypes when set to true will have map types will always appended to maps.
	PrintMapTypes = true
)
View Source
var (
	// DEPRECATED: Use PrettyPrinter.SetColoringEnabled().
	ColoringEnabled = true
)
View Source
var WithLineInfo bool

WithLineInfo add file name and line information to output call this function with care, because getting stack has performance penalty

Functions

func Errorf

func Errorf(format string, a ...interface{}) error

Errorf formats given arguments and returns it as error type.

func Fatal

func Fatal(a ...interface{})

Fatal prints given arguments and finishes execution with exit status 1.

func Fatalf

func Fatalf(format string, a ...interface{})

Fatalf prints a given format and finishes execution with exit status 1.

func Fatalln

func Fatalln(a ...interface{})

Fatalln prints given arguments with newline and finishes execution with exit status 1.

func Fprint

func Fprint(w io.Writer, a ...interface{}) (n int, err error)

Fprint prints given arguments to a given writer.

func Fprintf

func Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error)

Fprintf prints format to a given writer.

func Fprintln

func Fprintln(w io.Writer, a ...interface{}) (n int, err error)

Fprintln prints given arguments to a given writer with newline.

func GetDefaultOutput

func GetDefaultOutput() io.Writer

GetOutput returns pp's default output.

func Print

func Print(a ...interface{}) (n int, err error)

Print prints given arguments.

func Printf

func Printf(format string, a ...interface{}) (n int, err error)

Printf prints a given format.

func Println

func Println(a ...interface{}) (n int, err error)

Println prints given arguments with newline.

func ResetColorScheme

func ResetColorScheme()

ResetColorScheme resets colorscheme to default.

func ResetDefaultOutput

func ResetDefaultOutput()

Change Print* functions' output to default one.

func SetColorScheme

func SetColorScheme(scheme ColorScheme)

SetColorScheme takes a colorscheme used by all future Print calls.

func SetDefaultMaxDepth

func SetDefaultMaxDepth(v int)

SetMaxDepth sets the printer's Depth, -1 prints all

func SetDefaultOutput

func SetDefaultOutput(o io.Writer)

Change Print* functions' output to a given writer. For example, you can limit output by ENV.

func init() {
	if os.Getenv("DEBUG") == "" {
		pp.SetDefaultOutput(ioutil.Discard)
	}
}

func Sprint

func Sprint(a ...interface{}) string

Sprint formats given arguments and returns the result as string.

func Sprintf

func Sprintf(format string, a ...interface{}) string

Sprintf formats with pretty print and returns the result as string.

func Sprintln

func Sprintln(a ...interface{}) string

Sprintln formats given arguments with newline and returns the result as string.

Types

type ColorScheme

type ColorScheme struct {
	Bool            uint16
	Integer         uint16
	Float           uint16
	String          uint16
	StringQuotation uint16
	EscapedChar     uint16
	FieldName       uint16
	PointerAdress   uint16
	Nil             uint16
	Time            uint16
	StructName      uint16
	ObjectLength    uint16
}

To use with SetColorScheme.

type PrettyPrinter

type PrettyPrinter struct {
	// WithLineInfo adds file name and line information to output.
	// Call this function with care, because getting stack has performance penalty.
	WithLineInfo bool
	// contains filtered or unexported fields
}

func New

func New() *PrettyPrinter

New creates a new PrettyPrinter that can be used to pretty print values

func (*PrettyPrinter) Errorf

func (pp *PrettyPrinter) Errorf(format string, a ...interface{}) error

Errorf formats given arguments and returns it as error type.

func (*PrettyPrinter) Fatal

func (pp *PrettyPrinter) Fatal(a ...interface{})

Fatal prints given arguments and finishes execution with exit status 1.

func (*PrettyPrinter) Fatalf

func (pp *PrettyPrinter) Fatalf(format string, a ...interface{})

Fatalf prints a given format and finishes execution with exit status 1.

func (*PrettyPrinter) Fatalln

func (pp *PrettyPrinter) Fatalln(a ...interface{})

Fatalln prints given arguments with newline and finishes execution with exit status 1.

func (*PrettyPrinter) Fprint

func (pp *PrettyPrinter) Fprint(w io.Writer, a ...interface{}) (n int, err error)

Fprint prints given arguments to a given writer.

func (*PrettyPrinter) Fprintf

func (pp *PrettyPrinter) Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error)

Fprintf prints format to a given writer.

func (*PrettyPrinter) Fprintln

func (pp *PrettyPrinter) Fprintln(w io.Writer, a ...interface{}) (n int, err error)

Fprintln prints given arguments to a given writer with newline.

func (*PrettyPrinter) GetOutput

func (pp *PrettyPrinter) GetOutput() io.Writer

GetOutput returns pp's output.

func (*PrettyPrinter) Print

func (pp *PrettyPrinter) Print(a ...interface{}) (n int, err error)

Print prints given arguments.

func (*PrettyPrinter) Printf

func (pp *PrettyPrinter) Printf(format string, a ...interface{}) (n int, err error)

Printf prints a given format.

func (*PrettyPrinter) Println

func (pp *PrettyPrinter) Println(a ...interface{}) (n int, err error)

Println prints given arguments with newline.

func (*PrettyPrinter) ResetColorScheme

func (pp *PrettyPrinter) ResetColorScheme()

ResetColorScheme resets colorscheme to default.

func (*PrettyPrinter) ResetOutput

func (pp *PrettyPrinter) ResetOutput()

ResetOutput sets pp's output back to the default output

func (*PrettyPrinter) SetColorScheme

func (pp *PrettyPrinter) SetColorScheme(scheme ColorScheme)

SetColorScheme takes a colorscheme used by all future Print calls.

func (*PrettyPrinter) SetColoringEnabled

func (pp *PrettyPrinter) SetColoringEnabled(enabled bool)

func (*PrettyPrinter) SetDecimalUint

func (pp *PrettyPrinter) SetDecimalUint(enabled bool)

func (*PrettyPrinter) SetExportedOnly

func (pp *PrettyPrinter) SetExportedOnly(enabled bool)

func (*PrettyPrinter) SetOutput

func (pp *PrettyPrinter) SetOutput(o io.Writer)

SetOutput sets pp's output

func (*PrettyPrinter) SetThousandsSeparator

func (pp *PrettyPrinter) SetThousandsSeparator(enabled bool)

func (*PrettyPrinter) Sprint

func (pp *PrettyPrinter) Sprint(a ...interface{}) string

Sprint formats given arguments and returns the result as string.

func (*PrettyPrinter) Sprintf

func (pp *PrettyPrinter) Sprintf(format string, a ...interface{}) string

Sprintf formats with pretty print and returns the result as string.

func (*PrettyPrinter) Sprintln

func (pp *PrettyPrinter) Sprintln(a ...interface{}) string

Sprintln formats given arguments with newline and returns the result as string.

Jump to

Keyboard shortcuts

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