txtpbfmt
provides several configuration options that customize the specifics
of the output format. These are configured by adding a comment line to top of
the proto file (before the first non-empty non-comment line) of the form:
# txtpbfmt: [config-option]
This doc describes each of these options.
# txtpbfmt: allow_triple_quoted_strings
Permit usage of Python-style """
or '''
delimited strings.
# txtpbfmt: allow_unnamed_nodes_everywhere
Allow unnamed nodes everywhere. Default is to allow only top-level nodes to be unnamed.
# txtpbfmt: expand_all_children
Expand all children irrespective of the initial state.
# txtpbfmt: preserve_angle_brackets
Whether angle brackets used instead of curly braces should be preserved when outputting a formatted textproto.
# txtpbfmt: remove_duplicate_values_for_repeated_fields
Remove lines that have the same field name and scalar value as another.
# txtpbfmt: skip_all_colons
Skip colons whenever possible.
# txtpbfmt: smartquotes
Use single quotes around strings that contain double but not single quotes.
# txtpbfmt: sort_fields_by_field_name
Sort fields by field name.
# txtpbfmt: sort_repeated_fields_by_content
Sort adjacent scalar fields of the same field name by their contents.
# txtpbfmt: sort_repeated_fields_by_subfield=[subfieldSpec]
Sort adjacent message fields of the given field name by the contents of the given subfield path.
subfieldSpec
is of one of two forms:
-
fieldName.subfieldName1.subfieldName2...subfieldNameN
, which will sort fields namedfieldName
by the value of the final subfield namedsubfieldNameN
. -
subfieldName
, which will sort any field by its subfield namedsubfieldName
# txtpbfmt: reverse_sort
Sorts all sort_*
fields in descending order instead of the default ascending
order. Does nothing if not used with at least 1 other sort_*
field.
# txtpbfmt: wrap_html_strings
Whether strings that appear to contain HTML tags should be wrapped (requires WrapStringsAtColumn to be set).
# txtpbfmt: wrap_strings_at_column=[column]
Max columns for string field values. If zero, no string wrapping will occur.
Strings that may contain HTML tags will not be wrapped unless
wrap_html_strings
is also specified.