Minor improvements to the help system

This commit is contained in:
Alexander Söderberg 2020-09-21 19:29:15 +02:00
parent 3f96837cf1
commit d6ce74f2d9
No known key found for this signature in database
GPG key ID: C0207FF7EA146678

View file

@ -148,6 +148,8 @@ public final class CommandHelpHandler<C> {
final List<Command<C>> availableCommands = new LinkedList<>();
final Set<String> availableCommandLabels = new HashSet<>();
boolean exactMatch = false;
for (final VerboseHelpEntry<C> entry : verboseEntries) {
final Command<C> command = entry.getCommand();
@SuppressWarnings("unchecked") final StaticArgument<C> staticArgument = (StaticArgument<C>) command.getArguments()
@ -160,6 +162,13 @@ public final class CommandHelpHandler<C> {
}
}
for (final String alias : staticArgument.getAliases()) {
if (alias.equalsIgnoreCase(rootFragment)) {
exactMatch = true;
break;
}
}
if (rootFragment.equalsIgnoreCase(staticArgument.getName())) {
availableCommandLabels.clear();
availableCommands.clear();
@ -172,7 +181,7 @@ public final class CommandHelpHandler<C> {
/* No command found, return all possible commands */
if (availableCommands.isEmpty()) {
return new IndexHelpTopic<>(Collections.emptyList());
} else if (availableCommandLabels.size() > 1) {
} else if (!exactMatch || availableCommandLabels.size() > 1) {
final List<VerboseHelpEntry<C>> syntaxHints = new ArrayList<>();
for (final Command<C> command : availableCommands) {
final List<CommandArgument<C, ?>> arguments = command.getArguments();