我有一个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,谢谢!
发布于 2017-10-28 19:00:30
我认为这种方式是不可能的,因为TreeCompleter仅仅是一个围绕着RegexCompleter的包装器,实际上就是这样做的。因此,如果您想收集这些信息,应该在将节点传递给TreeCompleter构造函数之前,或者在创建TreeCompleter.Node实例之前进行,因为它们似乎没有提供公共访问器。一个明显的解决方案是使用自己的内部TreeCompleter类创建自己的Node包装器,以存储这些信息供以后使用。
https://stackoverflow.com/questions/46984024
复制相似问题