Allow a single trailing underscore in lowerCamelCase (#2707)
diff --git a/lib/src/utils.dart b/lib/src/utils.dart
index 1fe2834..aa95658 100644
--- a/lib/src/utils.dart
+++ b/lib/src/utils.dart
@@ -7,7 +7,7 @@
final _identifier = RegExp(r'^([(_|$)a-zA-Z]+([_a-zA-Z0-9])*)$');
final _lowerCamelCase = RegExp(
- r'^(_)*[?$a-z][a-z0-9?$]*(([A-Z][a-z0-9?$]*)|([_][0-9][a-z0-9?$]*))*$');
+ r'^(_)*[?$a-z][a-z0-9?$]*(([A-Z][a-z0-9?$]*)|([_][0-9][a-z0-9?$]*))*_?$');
final _lowerCaseUnderScore = RegExp(r'^([a-z]+([_]?[a-z0-9]+)*)+$');
diff --git a/test/utils_test.dart b/test/utils_test.dart
index f578ca9..8861880 100644
--- a/test/utils_test.dart
+++ b/test/utils_test.dart
@@ -189,11 +189,12 @@
'\$foo',
'bar\$',
'foo\$Generated',
- 'foo\$Generated\$Bar'
+ 'foo\$Generated\$Bar',
+ 'foo_',
];
testEach(good, isLowerCamelCase, isTrue);
- var bad = ['Foo', 'foo_', 'foo_bar', '_X'];
+ var bad = ['Foo', 'foo_bar', '_X'];
testEach(bad, isLowerCamelCase, isFalse);
});