我正在尝试提供位置参数的完整信息。 我发现在某个地方注意到它们的支持不是很好,但是目前我无法在规范中找到确切的位置,而且我不确定这到底意味着什么。
同时,我在源代码中找到了CompletionCandidatesTest.java,这表明它们已经以某种方式得到支持,或者至少准备支持它。
这就是为什么我想知道它们是否有效,如果可以,我在做什么错。 目前,我在Groovy中的代码如下:
package com.some.package
import picocli.CommandLine
import picocli.CommandLine.Command
@Command
class TjTest implements Runnable {
static class TjTestCandidates implements Iterable<String> {
@Override
Iterator<String> iterator() {
return Arrays.asList("aaaa", "bbbb", "cccc", "dddd", "eeeee", "ffff").iterator()
}
}
@CommandLine.Option(names = "-x", completionCandidates = TjTestCandidates)
String x;
@CommandLine.Parameters(completionCandidates = TjTestCandidates)
String param;
@Override
public void run() {
println "Start"
println x
println param;
println "Stop"
}
public static void main(String[] args) {
CommandLine.run(new TjTest(), args);
}
}
我执行了必需的bash命令,如下所示:
java -cp "picocli-3.9.5.jar;tj.jar" picocli.AutoComplete -f -n tjtest com.some.package.TjTest
. tjtest_completion
它就像一个选项的魅力。不幸的是,我无法使其适用于参数。 我也在尝试:
答案 0 :(得分:0)
您的代码看起来不错。当前状态(picocli 3.9.5)是位置参数补全在JLine中有效,而在bash / zsh中无效。
有一个出色的todo item可以解决此问题。有人提供了一个pull request来解决此问题,但是它存在问题,尚未合并。
欢迎捐款!