validateProjectName function
Implementation
ValidationResult validateProjectName(String name) {
if (name.isEmpty) {
return const ValidationFailure(
ruleName: 'not_empty',
message: 'Project name must not be empty.',
);
}
// Check characters
final validChars = RegExp(r'^[a-z0-9_]+$');
if (!validChars.hasMatch(name)) {
return const ValidationFailure(
ruleName: 'lowercase_alphanumeric_underscore',
message:
'Project name must contain only lowercase letters, digits, and underscores.',
);
}
// Check starts with digit
if (RegExp(r'^[0-9]').hasMatch(name)) {
return const ValidationFailure(
ruleName: 'no_starting_digit',
message: 'Project name must not start with a digit.',
);
}
// Check reserved words
if (dartKeywords.contains(name)) {
return const ValidationFailure(
ruleName: 'not_reserved_word',
message: 'Project name must not be a Dart reserved word.',
);
}
return const ValidationSuccess();
}