0

我有一个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")
)

如何获取命令名称的集合?对于本示例,这些名称是:bindkeyclscustomhelpsettestkeytput

包含上述代码的 github 项目在这里:https ://github.com/mslinn/jline-example/blob/master/src/main/scala/CliLoop.scala

我不在乎答案是用 Java 还是 Scala,谢谢!

4

1 回答 1

0

我认为这种方式是不可能的,因为它TreeCompleter只是一个实际完成工作的包装器。RegexCompleter因此,如果您想收集这些信息,您应该在将节点传递给TreeCompleter构造函数之前或可能在创建TreeCompleter.Node实例之前进行,因为它们似乎不提供公共访问器。一个明显的解决方案是TreeCompleter使用您自己的内部Node类创建自己的包装器,该内部类将存储此信息以供以后使用。

于 2017-10-28T19:00:30.080 回答