Как отобразить все команды, используя 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
будет отображать завершение вместо того, чтобы быть вставленным.