@@ -19,9 +19,11 @@ type bbsGenerateHelperInterface interface {
1919 genFromProtoMethod (g * protogen.GeneratedFile , msg * protogen.Message )
2020 genToProtoSliceMethod (g * protogen.GeneratedFile , msg * protogen.Message )
2121 genFromProtoSliceMethod (g * protogen.GeneratedFile , msg * protogen.Message )
22- genFriendlyEnums (g * protogen.GeneratedFile , msg * protogen.Message )
22+ genMessageEnums (g * protogen.GeneratedFile , msg * protogen.Message )
2323 genAccessors (g * protogen.GeneratedFile , msg * protogen.Message )
2424 genEqual (g * protogen.GeneratedFile , msg * protogen.Message )
25+
26+ genGlobalEnum (g * protogen.GeneratedFile , eNuM * protogen.Enum )
2527}
2628type bbsGenerateHelper struct {}
2729
@@ -392,27 +394,33 @@ func getCustomType(field *protogen.Field) string {
392394 return customType .(string )
393395}
394396
395- func (bbsGenerateHelper ) genFriendlyEnums (g * protogen.GeneratedFile , msg * protogen.Message ) {
397+ func (bbsGenerateHelper ) genGlobalEnum (g * protogen.GeneratedFile , eNuM * protogen.Enum ) {
398+ genEnumTypeWithValues (g , eNuM , nil )
399+ genEnumValueMaps (g , eNuM )
400+ genEnumStringFunc (g , eNuM )
401+ }
402+
403+ func (bbsGenerateHelper ) genMessageEnums (g * protogen.GeneratedFile , msg * protogen.Message ) {
396404 for _ , eNuM := range msg .Enums {
397405 if * debug {
398406 log .Printf ("Nested Enum: %+v\n " , eNuM )
399407 }
400408
401- genEnumTypeWithValues (g , msg , eNuM )
409+ genEnumTypeWithValues (g , eNuM , msg )
402410 genEnumValueMaps (g , eNuM )
403411 genEnumStringFunc (g , eNuM )
404412 }
405413}
406414
407- func genEnumTypeWithValues (g * protogen.GeneratedFile , msg * protogen.Message , eNuM * protogen.Enum ) {
415+ func genEnumTypeWithValues (g * protogen.GeneratedFile , eNuM * protogen.Enum , msg * protogen.Message ) {
408416 copysafeName , _ := getCopysafeName (g , eNuM .GoIdent )
409417 g .P ("type " , copysafeName , " int32" )
410418 g .P ("const (" )
411419 for _ , enumValue := range eNuM .Values {
412420 if isEnumValueDeprecated (enumValue ) {
413421 g .P ("// Deprecated: marked deprecated in proto file" )
414422 }
415- enumValueName := getEnumValueName (g , msg , enumValue )
423+ enumValueName := getEnumValueName (g , enumValue , msg )
416424 actualValue := enumValue .Desc .Number ()
417425
418426 g .P (enumValueName , " " , copysafeName , "=" , actualValue )
@@ -455,14 +463,18 @@ func genEnumStringFunc(g *protogen.GeneratedFile, eNuM *protogen.Enum) {
455463 g .P ("}" )
456464}
457465
458- func getEnumValueName (g * protogen.GeneratedFile , msg * protogen.Message , enumValue * protogen.EnumValue ) string {
459- copysafeParentName , _ := getCopysafeName (g , msg .GoIdent )
466+ func getEnumValueName (g * protogen.GeneratedFile , enumValue * protogen.EnumValue , msg * protogen.Message ) string {
460467 copysafeEnumValueName , _ := getCopysafeName (g , enumValue .GoIdent )
461468 customName := proto .GetExtension (enumValue .Desc .Options ().(* descriptorpb.EnumValueOptions ), E_BbsEnumvalueCustomname )
462469
463470 result := copysafeEnumValueName
464471 if len (customName .(string )) > 0 {
465- result = copysafeParentName + "_" + customName .(string )
472+ if msg == nil {
473+ result = customName .(string )
474+ } else {
475+ copysafeParentName , _ := getCopysafeName (g , msg .GoIdent )
476+ result = copysafeParentName + "_" + customName .(string )
477+ }
466478 }
467479 return result
468480
@@ -695,8 +707,22 @@ func protocVersion(plugin *protogen.Plugin) string {
695707}
696708
697709var ignoredMessages []string = []string {"ProtoRoutes" }
710+ var ignoredEnums []string = []string {}
698711
699712func generateFileContent (file * protogen.File , g * protogen.GeneratedFile ) {
713+ for _ , eNuM := range file .Enums {
714+ if * debug {
715+ log .Printf ("New Enum Detected: %+v\n \n " , eNuM )
716+ }
717+
718+ if slices .Contains (ignoredMessages , getUnsafeName (g , eNuM .GoIdent )) {
719+ log .Printf ("\t Ignoring enum %s" , eNuM .Desc .Name ())
720+ continue
721+ }
722+
723+ helper .genGlobalEnum (g , eNuM )
724+ }
725+
700726 for _ , msg := range file .Messages {
701727 if * debug {
702728 log .Printf ("New Message Detected: %+v\n \n " , msg )
@@ -706,7 +732,7 @@ func generateFileContent(file *protogen.File, g *protogen.GeneratedFile) {
706732 log .Printf ("\t Ignoring message %s" , msg .Desc .Name ())
707733 continue
708734 }
709- helper .genFriendlyEnums (g , msg )
735+ helper .genMessageEnums (g , msg )
710736 helper .genCopysafeStruct (g , msg )
711737 helper .genToProtoMethod (g , msg )
712738 helper .genFromProtoMethod (g , msg )
0 commit comments