Как отобразить все команды, используя jline3

У меня есть TreeCompleter (Код Scala), который работает как ожидалось:

val treeCompleter = new TreeCompleter(
    node("bindkey"),
    node("cls"),
    node(
      "custom",
      node("Option1", node("Param1", "Param2")),
      node("Option2"),
      node("Option3")
    ),
    node("help"),
    node("set"),
    node("sleep"),
    node("testkey"),
    node("tput")
)   

Однако, если первое нажатие клавиши пользователя является вкладкой, я бы хотел, чтобы отображались все значения узлов верхнего уровня, которые должны показывать им доступные команды. Как это может быть сделано?

Проект GitHub, который содержит вышеуказанный код, находится здесь: https://github.com/mslinn/jline-example/blob/master/src/main/scala/CliLoop.scala

Мне все равно, если ответ на Java или Scala, спасибо!

1 ответ

Решение

Вам просто нужно сбросить INSERT_TAB опция:

reader.unsetOpt(LineReader.Option.INSERT_TAB)

Это сделает свое дело и tab будет отображать завершение вместо того, чтобы быть вставленным.

Другие вопросы по тегам