Получение коллекции команд jline3 из TreeCompleter
У меня есть 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("testkey"),
node("tput")
)
Как я могу получить коллекцию имен команд? Для этого примера эти имена: bindkey
, cls
, custom
, help
, set
, testkey
а также tput
,
Проект GitHub, который содержит вышеуказанный код, находится здесь: https://github.com/mslinn/jline-example/blob/master/src/main/scala/CliLoop.scala
Мне все равно, если ответ на Java или Scala, спасибо!
1 ответ
Я не думаю, что это возможно, учитывая, что TreeCompleter
это просто обертка вокруг RegexCompleter
это на самом деле делает работу. Поэтому, если вы хотите собрать эту информацию, вы должны сделать это, прежде чем передать свои узлы TreeCompleter
конструктор или, возможно, прежде чем создавать TreeCompleter.Node
случаи, потому что они, кажется, не предоставляют общедоступные средства доступа. Одним из очевидных решений было бы создать свою собственную обертку вокруг TreeCompleter
с вашим собственным внутренним Node
класс, который будет хранить эту информацию для последующего использования.