parser: github.com/pingcap/parser/format Index | Files

package format

import "github.com/pingcap/parser/format"

Index

Package Files

format.go

Constants

const (
    DefaultRestoreFlags = RestoreStringSingleQuotes | RestoreKeyWordUppercase | RestoreNameBackQuotes
)

func OutputFormat Uses

func OutputFormat(s string) string

OutputFormat output escape character with backslash.

type Formatter Uses

type Formatter interface {
    io.Writer
    Format(format string, args ...interface{}) (n int, errno error)
}

Formatter is an io.Writer extended formatter by a fmt.Printf like function Format.

func FlatFormatter Uses

func FlatFormatter(w io.Writer) Formatter

FlatFormatter returns a newly created Formatter with the same functionality as the one returned by IndentFormatter except it allows a newline in the 'format' string argument of Format to pass through if the indent level is current zero.

If the indent level is non-zero then such new lines are changed to a space character. There is no indent string, the %i and %u format verbs are used solely to determine the indent level.

The FlatFormatter is intended for flattening of normally nested structure textual representation to a one top level structure per line form.

FlatFormatter(os.Stdout, " ").Format("abc%d%%e%i\nx\ny\n%uz\n", 3)

output in the form of a Go quoted string literal:

"abc3%%e x y z\n"

func IndentFormatter Uses

func IndentFormatter(w io.Writer, indent string) Formatter

IndentFormatter returns a new Formatter which interprets %i and %u in the Format() formats string as indent and unindent commands. The commands can nest. The Formatter writes to io.Writer 'w' and inserts one 'indent' string per current indent level value. Behaviour of commands reaching negative indent levels is undefined.

IndentFormatter(os.Stdout, "\t").Format("abc%d%%e%i\nx\ny\n%uz\n", 3)

output:

abc3%e
    x
    y
z

The Go quoted string literal form of the above is:

"abc%%e\n\tx\n\tx\nz\n"

The commands can be scattered between separate invocations of Format(), i.e. the formatter keeps track of the indent level and knows if it is positioned on start of a line and should emit indentation(s). The same output as above can be produced by e.g.:

f := IndentFormatter(os.Stdout, " ")
f.Format("abc%d%%e%i\nx\n", 3)
f.Format("y\n%uz\n")

type RestoreCtx Uses

type RestoreCtx struct {
    Flags     RestoreFlags
    In        io.Writer
    JoinLevel int
}

RestoreCtx is `Restore` context to hold flags and writer.

func NewRestoreCtx Uses

func NewRestoreCtx(flags RestoreFlags, in io.Writer) *RestoreCtx

NewRestoreCtx returns a new `RestoreCtx`.

func (*RestoreCtx) WriteKeyWord Uses

func (ctx *RestoreCtx) WriteKeyWord(keyWord string)

WriteKeyWord writes the `keyWord` into writer. `keyWord` will be converted format(uppercase and lowercase for now) according to `RestoreFlags`.

func (*RestoreCtx) WriteName Uses

func (ctx *RestoreCtx) WriteName(name string)

WriteName writes the name into writer `name` maybe wrapped in quotes and escaped according to RestoreFlags.

func (*RestoreCtx) WritePlain Uses

func (ctx *RestoreCtx) WritePlain(plainText string)

WritePlain writes the plain text into writer without any handling.

func (*RestoreCtx) WritePlainf Uses

func (ctx *RestoreCtx) WritePlainf(format string, a ...interface{})

WritePlainf write the plain text into writer without any handling.

func (*RestoreCtx) WriteString Uses

func (ctx *RestoreCtx) WriteString(str string)

WriteString writes the string into writer `str` may be wrapped in quotes and escaped according to RestoreFlags.

type RestoreFlags Uses

type RestoreFlags uint64

RestoreFlag mark the Restore format

const (
    RestoreStringSingleQuotes RestoreFlags = 1 << iota
    RestoreStringDoubleQuotes
    RestoreStringEscapeBackslash

    RestoreKeyWordUppercase
    RestoreKeyWordLowercase

    RestoreNameUppercase
    RestoreNameLowercase
    RestoreNameDoubleQuotes
    RestoreNameBackQuotes

    RestoreSpacesAroundBinaryOperation
)

Mutually exclusive group of `RestoreFlags`: [RestoreStringSingleQuotes, RestoreStringDoubleQuotes] [RestoreKeyWordUppercase, RestoreKeyWordLowercase] [RestoreNameUppercase, RestoreNameLowercase] [RestoreNameDoubleQuotes, RestoreNameBackQuotes] The flag with the left position in each group has a higher priority.

func (RestoreFlags) HasKeyWordLowercaseFlag Uses

func (rf RestoreFlags) HasKeyWordLowercaseFlag() bool

HasKeyWordLowercaseFlag returns a boolean indicating whether `rf` has `RestoreKeyWordLowercase` flag.

func (RestoreFlags) HasKeyWordUppercaseFlag Uses

func (rf RestoreFlags) HasKeyWordUppercaseFlag() bool

HasKeyWordUppercaseFlag returns a boolean indicating whether `rf` has `RestoreKeyWordUppercase` flag.

func (RestoreFlags) HasNameBackQuotesFlag Uses

func (rf RestoreFlags) HasNameBackQuotesFlag() bool

HasNameBackQuotesFlag returns a boolean indicating whether `rf` has `RestoreNameBackQuotes` flag.

func (RestoreFlags) HasNameDoubleQuotesFlag Uses

func (rf RestoreFlags) HasNameDoubleQuotesFlag() bool

HasNameDoubleQuotesFlag returns a boolean indicating whether `rf` has `RestoreNameDoubleQuotes` flag.

func (RestoreFlags) HasNameLowercaseFlag Uses

func (rf RestoreFlags) HasNameLowercaseFlag() bool

HasNameLowercaseFlag returns a boolean indicating whether `rf` has `RestoreNameLowercase` flag.

func (RestoreFlags) HasNameUppercaseFlag Uses

func (rf RestoreFlags) HasNameUppercaseFlag() bool

HasNameUppercaseFlag returns a boolean indicating whether `rf` has `RestoreNameUppercase` flag.

func (RestoreFlags) HasSpacesAroundBinaryOperationFlag Uses

func (rf RestoreFlags) HasSpacesAroundBinaryOperationFlag() bool

HasSpacesAroundBinaryOperationFlag returns a boolean indicating whether `rf` has `RestoreSpacesAroundBinaryOperation` flag.

func (RestoreFlags) HasStringDoubleQuotesFlag Uses

func (rf RestoreFlags) HasStringDoubleQuotesFlag() bool

HasStringDoubleQuotesFlag returns a boolean indicating whether `rf` has `RestoreStringDoubleQuotes` flag.

func (RestoreFlags) HasStringEscapeBackslashFlag Uses

func (rf RestoreFlags) HasStringEscapeBackslashFlag() bool

HasStringEscapeBackslashFlag returns a boolean indicating whether `rf` has `RestoreStringEscapeBackslash` flag.

func (RestoreFlags) HasStringSingleQuotesFlag Uses

func (rf RestoreFlags) HasStringSingleQuotesFlag() bool

HasStringSingleQuotesFlag returns a boolean indicating when `rf` has `RestoreStringSingleQuotes` flag.

Package format imports 4 packages (graph) and is imported by 46 packages. Updated 2019-12-15. Refresh now. Tools for package owners.