isValidDartIdentifier method
Check if a string is a valid Dart identifier
Implementation
bool isValidDartIdentifier(String name) {
if (name.isEmpty) return false;
// Must start with letter or underscore
if (!RegExp(r'^[a-zA-Z_]').hasMatch(name)) return false;
// Can only contain letters, digits, and underscores
if (!RegExp(r'^[a-zA-Z_][a-zA-Z0-9_]*$').hasMatch(name)) return false;
// Cannot be a Dart reserved word
const reservedWords = {
'abstract',
'as',
'assert',
'async',
'await',
'break',
'case',
'catch',
'class',
'const',
'continue',
'covariant',
'default',
'deferred',
'do',
'dynamic',
'else',
'enum',
'export',
'extends',
'extension',
'external',
'factory',
'false',
'final',
'finally',
'for',
'Function',
'get',
'hide',
'if',
'implements',
'import',
'in',
'interface',
'is',
'late',
'library',
'mixin',
'new',
'null',
'on',
'operator',
'part',
'required',
'rethrow',
'return',
'set',
'show',
'static',
'super',
'switch',
'sync',
'this',
'throw',
'true',
'try',
'typedef',
'var',
'void',
'while',
'with',
'yield',
};
return !reservedWords.contains(name);
}