Clone this repo:
  1. 6e6d8eb Merge pull request #196 from mvdan:descriptor-in-cmd by txtpbfmt team · 15 hours ago master
  2. de69cb9 txtpbfmt: move descriptor file loading into the fmt command by Daniel Martí · 6 days ago
  3. 1fd8a60 txtpbfmt: push strings to next line if field name plus string exceeds limits by txtpbfmt team · 6 weeks ago
  4. 6d48527 txtpbfmt: push strings to next line if field name plus string exceeds limits by txtpbfmt team · 9 weeks ago
  5. 4afb59e txtpbfmt: push strings to next line if field name plus string exceeds limits by txtpbfmt team · 9 weeks ago

Text Proto Formatter

txtpbfmt parses, edits and formats text proto files in a way that preserves comments.

This saves development (read/edit/review) time and enables automated edits.

How to format existing text proto files?

Install:

$ go install github.com/protocolbuffers/txtpbfmt/cmd/txtpbfmt@latest

Format files in-place:

$ ${GOPATH}/bin/txtpbfmt [FILES]

Write formatted input to stdout:

$ ${GOPATH}/bin/txtpbfmt < [FILE]

What does it do?

Main features:

main features

Configurable features:

Is there an API to edit text proto files while preserving comments?

Yes, see ast.go.

How to disable it?

You can disable formatting for a whole file by adding a comment with “# txtpbfmt: disable” to the top of the file (before the first non-empty non-comment line), eg:

# File overview ...

# txtpbfmt: disable

content: { ... }

Which file extension should I use for my text proto files?

The .textproto extension is the most used extension inside Google (the second most popular choice is .textpb).

Which tools support it? How to format on save?

Currently there is no open source integration with any editor.

See also