encoding/jsonpb: change MarshalOptions.Compact option to Indent

This makes it consistent with jsonpb.MarshalOptions. This does change
the default to be in compact form.

Change-Id: I1b07f06f282c019b30f3f1cbb43f6c8cba18f385
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/168405
Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
diff --git a/encoding/textpb/encode.go b/encoding/textpb/encode.go
index ebc33b7..93eab31 100644
--- a/encoding/textpb/encode.go
+++ b/encoding/textpb/encode.go
@@ -27,8 +27,10 @@
 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 @@
 		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
 	}