snakeCase property

String get snakeCase

Chuyển đổi chuỗi sang định dạng snake_case. Ví dụ: "helloWorld" -> "hello_world", "MyAwesomeClass" -> "my_awesome_class"

Implementation

String get snakeCase {
  if (isEmpty) return this;

  // Chuyển PascalCase/camelCase sang snake_case (thêm _ trước chữ hoa)
  String result = replaceAllMapped(
    RegExp(r'(?<=[a-z])([A-Z])'),
    (match) => '_${match.group(1)!.toLowerCase()}',
  );

  // Xử lý các trường hợp khác như dấu cách, gạch ngang thành gạch dưới
  result = result.replaceAll(RegExp(r'[ -]'), '_');

  // Chuyển toàn bộ thành chữ thường và loại bỏ nhiều dấu gạch dưới liên tiếp
  return result.toLowerCase().replaceAll(RegExp(r'_+'), '_');
}