askChoice method
Implementation
String askChoice(
String question,
List<String> options, {
String? defaultValue,
}) {
if (options.isEmpty) return '';
output.write('\n$question\n');
for (var i = 0; i < options.length; i++) {
final marker = options[i] == defaultValue ? '*' : ' ';
output.write(' $marker ${i + 1}. ${options[i]}\n');
}
while (true) {
final hint = defaultValue != null
? ' [${options.indexOf(defaultValue) + 1}]'
: '';
output.write('Enter number$hint: ');
final input = readLine()?.trim() ?? '';
if (input.isEmpty && defaultValue != null) {
return defaultValue;
}
final index = int.tryParse(input);
if (index != null && index >= 1 && index <= options.length) {
return options[index - 1];
}
output.write('Invalid choice. Try again.\n');
}
}