private int completeSpecial(List<Completion> candidates, String userInput,
      List<String> inputTokens, String cmd,
      String converterHint) {
    if (inputTokens.get(0).equals(cmd)) {
      String prefix = userInput.equals(cmd) ? " " : "";
      String existing = String.join(" ", inputTokens.subList(1, inputTokens.size())).toLowerCase();
      List<Completion> all = new ArrayList<>();
      Converter<?> converter = converterFor(converterHint);
      if (converter != null) {
        converter.getAllPossibleValues(all, null, null, null, null);
        candidates.addAll(all.stream().filter(c -> c.getValue().toLowerCase().startsWith(existing))
            .map(c -> new Completion(prefix + c.getValue()))
            .collect(Collectors.toList()));
        return Math.min(userInput.length(), cmd.length() + 1);
      }
    }
    return 0;
  }
uses a specific converter directly, bypassing the need to find it by the command's options
geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/GfshParser.java