@@ -195,18 +195,7 @@ func generateMessage(buf *Buffer, indentLevel int, message *descriptorpb.Descrip
195
195
indent := strings .Repeat (" " , indentLevel * 4 )
196
196
buf .Printf ("%smessage %s {" , indent , message .GetName ())
197
197
generateHeadOptions (buf , indent , message .GetOptions ().GetUninterpretedOption ())
198
- for _ , opt := range message .GetOptions ().GetUninterpretedOption () {
199
- if isOptionOneProtoExtends (opt ) {
200
- name := trimPackageFromName (string (opt .GetStringValue ()))
201
- buf .Printf ("%s // ↓↓↓↓↓ extends %s" , indent , name )
202
- parent := allMessageDescriptors [name ]
203
- for _ , field := range parent .GetField () {
204
- buf .Printf ("%s %s %s = %d%s;" , indent , stringifyField (message , field ), field .GetName (), field .GetNumber (), stringifyValueOptions (field .GetOptions ().GetUninterpretedOption ()))
205
- }
206
- buf .Printf ("%s // ↑↑↑↑↑ extends %s" , indent , name )
207
- buf .Printf ("" )
208
- }
209
- }
198
+ generateExtendedMessage (buf , indentLevel , message )
210
199
for _ , field := range message .GetField () {
211
200
buf .Printf ("%s %s %s = %d%s;" , indent , stringifyField (message , field ), field .GetName (), field .GetNumber (), stringifyValueOptions (field .GetOptions ().GetUninterpretedOption ()))
212
201
}
@@ -226,6 +215,23 @@ func generateMessage(buf *Buffer, indentLevel int, message *descriptorpb.Descrip
226
215
buf .Printf ("%s}" , indent )
227
216
}
228
217
218
+ func generateExtendedMessage (buf * Buffer , indentLevel int , message * descriptorpb.DescriptorProto ) {
219
+ indent := strings .Repeat (" " , indentLevel * 4 )
220
+ for _ , opt := range message .GetOptions ().GetUninterpretedOption () {
221
+ if isOptionOneProtoExtends (opt ) {
222
+ name := trimPackageFromName (string (opt .GetStringValue ()))
223
+ buf .Printf ("%s // ↓↓↓↓↓ extends %s" , indent , name )
224
+ parent := allMessageDescriptors [name ]
225
+ generateExtendedMessage (buf , indentLevel , parent )
226
+ for _ , field := range parent .GetField () {
227
+ buf .Printf ("%s %s %s = %d%s;" , indent , stringifyField (message , field ), field .GetName (), field .GetNumber (), stringifyValueOptions (field .GetOptions ().GetUninterpretedOption ()))
228
+ }
229
+ buf .Printf ("%s // ↑↑↑↑↑ extends %s" , indent , name )
230
+ buf .Printf ("" )
231
+ }
232
+ }
233
+ }
234
+
229
235
func generateHeadOptions (buf * Buffer , indent string , options []* descriptorpb.UninterpretedOption ) {
230
236
if len (options ) == 0 {
231
237
return
0 commit comments