我有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,谢谢!
答案 0 :(得分:0)
我认为这种方式不可能,因为TreeCompleter
只是wrapper RegexCompleter
实际完成工作。因此,如果要收集此信息,则应在将节点传递给TreeCompleter
构造函数之前或在创建TreeCompleter.Node
实例之前执行此操作,因为它们似乎不提供公共访问器。一个显而易见的解决方案是使用您自己的内部TreeCompleter
类围绕Node
创建自己的包装器,该类将存储此信息以供以后使用。