diff --git a/encoding/textpb/encode.go b/encoding/textpb/encode.go index ebc33b71..93eab316 100644 --- a/encoding/textpb/encode.go +++ b/encoding/textpb/encode.go @@ -27,8 +27,10 @@ func Marshal(m proto.Message) ([]byte, error) { type MarshalOptions struct { pragma.NoUnkeyedLiterals - // Set Compact to true to have output in a single line with no line breaks. - Compact bool + // If Indent is a non-empty string, it causes entries for a Message to be + // preceded by the indent and trailed by a newline. Indent can only be + // composed of space or tab characters. + Indent string // Resolver is the registry used for type lookups when marshaling out // google.protobuf.Any messages in expanded form. If Resolver is not set, @@ -49,14 +51,9 @@ func (o MarshalOptions) Marshal(m proto.Message) ([]byte, error) { return nil, err } - indent := " " - if o.Compact { - indent = "" - } delims := [2]byte{'{', '}'} - const outputASCII = false - b, err := text.Marshal(v, indent, delims, outputASCII) + b, err := text.Marshal(v, o.Indent, delims, outputASCII) if !nerr.Merge(err) { return nil, err } diff --git a/encoding/textpb/encode_test.go b/encoding/textpb/encode_test.go index 6a6cd7a2..b2fed473 100644 --- a/encoding/textpb/encode_test.go +++ b/encoding/textpb/encode_test.go @@ -1111,7 +1111,8 @@ value: "\x80" for _, tt := range tests { tt := tt t.Run(tt.desc, func(t *testing.T) { - t.Parallel() + // Use 2-space indentation on all MarshalOptions. + tt.mo.Indent = " " b, err := tt.mo.Marshal(tt.input) if err != nil && !tt.wantErr { t.Errorf("Marshal() returned error: %v\n", err) diff --git a/internal/impl/export.go b/internal/impl/export.go index 12ce51bc..801457bc 100644 --- a/internal/impl/export.go +++ b/internal/impl/export.go @@ -91,6 +91,6 @@ func (Export) ExtensionTypeOf(d pref.ExtensionDescriptor, t interface{}) pref.Ex // MessageStringOf returns the message value as a string, // which is the message serialized in the protobuf text format. func (Export) MessageStringOf(m pref.ProtoMessage) string { - b, _ := textpb.MarshalOptions{Compact: true}.Marshal(m) + b, _ := textpb.Marshal(m) return string(b) } diff --git a/protogen/protogen.go b/protogen/protogen.go index 23bc69a2..1aade1b1 100644 --- a/protogen/protogen.go +++ b/protogen/protogen.go @@ -1110,7 +1110,7 @@ func (g *GeneratedFile) metaFile(content []byte) (string, error) { } } - b, err := textpb.MarshalOptions{Compact: true}.Marshal(info) + b, err := textpb.Marshal(info) if err != nil { return "", err }