camelOrPascalToSnake method

String camelOrPascalToSnake()

Converts this string from camel-case or pascal-case to snake-case.

void foo() {
  print('abcDef'.camelToSnake()); // 'abc_def'
  print('AbcDef'.camelToSnake()); // 'abc_def'
}

Implementation

String camelOrPascalToSnake() {
  // See https://stackoverflow.com/a/1176023
  return replaceAllMapped(
    RegExp("(?<!^)(?=[A-Z])"),
    (m) => "_${m.group(0)!}",
  ).toLowerCase();
}