in lib/command_runner.dart [213:238]
String _similarCommandsText(String name, Iterable<Command<T>> commands) {
if (suggestionDistanceLimit <= 0) return '';
var distances = <Command<T>, int>{};
var candidates =
SplayTreeSet<Command<T>>((a, b) => distances[a]! - distances[b]!);
for (var command in commands) {
if (command.hidden) continue;
var distance = _editDistance(name, command.name);
if (distance <= suggestionDistanceLimit) {
distances[command] = distance;
candidates.add(command);
}
}
if (candidates.isEmpty) return '';
var similar = StringBuffer();
similar
..writeln()
..writeln()
..writeln('Did you mean one of these?');
for (var command in candidates) {
similar.writeln(' ${command.name}');
}
return similar.toString();
}