我正在尝试使用自动完成实现一个简单的shell应用程序。我使用JLine
库。不知道这可能是一个常见的问题,但是当我尝试为参数添加一些值时,我的自动完成功能不起作用。
这是我的代码段
public class ConsoleDemo {
public static void main(String[] args) {
try {
ConsoleReader console = new ConsoleReader();
console.setPrompt("> ");
StringsCompleter exit = new StringsCompleter("exit");
StringsCompleter login = new StringsCompleter("connect");
StringsCompleter loginParams = new StringsCompleter("--url", "--username", "--password");
StringsCompleter export = new StringsCompleter("export");
StringsCompleter exportParam = new StringsCompleter("to");
ArgumentCompleter loginCompleter = new ArgumentCompleter(login, loginParams);
ArgumentCompleter exportCompleter = new ArgumentCompleter(export, exportParam);
console.addCompleter(loginCompleter);
console.addCompleter(exportCompleter);
console.addCompleter(exit);
String line;
while ((line = console.readLine()) != null) {
if ("exit".equals(line.trim())) {
exit(1);
}
console.println(line.trim() + valueOf(-1));
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
写作时
login --url http://localhost:8080/server
我无法使用Tab键进行自动填充password
。
login --url http://localhost:8080/server --us
(按标签完成)< - 也不起作用
我应该怎样做才能获得--username
和--password
的下一个提示?
答案 0 :(得分:0)
您的登录完成者正在使用" connect" string作为标识符,而不是登录....