toSnakeCase function
Converts a lowerCamelCase name to snake_case.
Inserts an underscore before each uppercase letter and lowercases the result.
Examples: "fooBar" -> "foo_bar" "fooBarBaz" -> "foo_bar_baz" "foo" -> "foo" "" -> ""
Implementation
String toSnakeCase(String camelCase) {
if (camelCase.isEmpty) return camelCase;
final buffer = StringBuffer();
for (int i = 0; i < camelCase.length; i++) {
final ch = camelCase[i];
if (ch == ch.toUpperCase() && ch != ch.toLowerCase()) {
// Uppercase letter — insert underscore separator.
if (buffer.isNotEmpty) {
buffer.write('_');
}
buffer.write(ch.toLowerCase());
} else {
buffer.write(ch);
}
}
return buffer.toString();
}