toSnakeCase method
Returns a new String by turning CamelCase into snake_case.
Implementation
String toSnakeCase() => [
RegExp(r'(.)([A-Z][a-z]+)'),
RegExp(r'()__([A-Z])'),
RegExp(r'([a-z0-9])([A-Z])'),
].fold(this, (String r, re) {
return r.replaceAllMapped(re, (match) => '${match[1]}_${match[2]}');
}).toLowerCase();