@@ -117,8 +117,18 @@ String singleQuote(String input) {
117117}
118118
119119/// Chooses the Dart name of an extension.
120- String extensionName (FieldDescriptorProto descriptor, Set <String > usedNames) {
121- return _unusedMemberNames (descriptor, null , null , usedNames).fieldName;
120+ String extensionName (
121+ FieldDescriptorProto descriptor,
122+ Set <String > usedNames,
123+ bool lowercaseGroupNames,
124+ ) {
125+ return _unusedMemberNames (
126+ descriptor,
127+ null ,
128+ null ,
129+ usedNames,
130+ lowercaseGroupNames,
131+ ).fieldName;
122132}
123133
124134Iterable <String > extensionSuffixes () sync * {
@@ -281,6 +291,7 @@ MemberNames messageMemberNames(
281291 String parentClassName,
282292 Set <String > usedTopLevelNames, {
283293 Iterable <String > reserved = const [],
294+ bool lowercaseGroupNames = false ,
284295}) {
285296 final fieldList = List <FieldDescriptorProto >.from (descriptor.field);
286297 final sourcePositions = fieldList.asMap ().map (
@@ -340,7 +351,13 @@ MemberNames messageMemberNames(
340351 final index = indexes[field.name]! ;
341352 final sourcePosition = sourcePositions[field.name];
342353 takeFieldNames (
343- _unusedMemberNames (field, index, sourcePosition, existingNames),
354+ _unusedMemberNames (
355+ field,
356+ index,
357+ sourcePosition,
358+ existingNames,
359+ lowercaseGroupNames,
360+ ),
344361 );
345362 }
346363 }
@@ -470,14 +487,15 @@ FieldNames _unusedMemberNames(
470487 int ? index,
471488 int ? sourcePosition,
472489 Set <String > existingNames,
490+ bool lowercaseGroupNames,
473491) {
474492 if (_isRepeated (field)) {
475493 return FieldNames (
476494 field,
477495 index,
478496 sourcePosition,
479497 disambiguateName (
480- _defaultFieldName (_fieldMethodSuffix (field)),
498+ _defaultFieldName (_fieldMethodSuffix (field, lowercaseGroupNames )),
481499 existingNames,
482500 _memberNamesSuffix (field.number),
483501 ),
@@ -498,7 +516,7 @@ FieldNames _unusedMemberNames(
498516 }
499517
500518 final name = disambiguateName (
501- _fieldMethodSuffix (field),
519+ _fieldMethodSuffix (field, lowercaseGroupNames ),
502520 existingNames,
503521 _memberNamesSuffix (field.number),
504522 generateVariants: generateNameVariants,
@@ -535,11 +553,15 @@ String _defaultEnsureMethodName(String fieldMethodSuffix) =>
535553
536554/// The suffix to use for this field in Dart method names.
537555/// (It should be camelcase and begin with an uppercase letter.)
538- String _fieldMethodSuffix (FieldDescriptorProto field) {
556+ String _fieldMethodSuffix (
557+ FieldDescriptorProto field,
558+ bool lowercaseGroupNames,
559+ ) {
539560 var name = _nameOption (field)! ;
540561 if (name.isNotEmpty) return _capitalize (name);
541562
542- if (field.type != FieldDescriptorProto_Type .TYPE_GROUP ) {
563+ if (field.type != FieldDescriptorProto_Type .TYPE_GROUP ||
564+ lowercaseGroupNames) {
543565 return underscoresToCamelCase (field.name);
544566 }
545567
0 commit comments