【问题标题】:How to add values to key and save autocompletion with JLine?如何使用 JLine 向键添加值并保存自动完成?
【发布时间】:2015-01-29 14:51:09
【问题描述】:

我正在尝试实现一个带有自动完成功能的简单 shell 应用程序。我使用JLine 库。不知道这可能是一个常见问题,但是当我尝试向参数添加一些值时,我的自动完成功能不起作用。

这是我的代码 sn-p

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(按 Tab 完成)

我应该这样做以获得--username--password 的下一个提示?

【问题讨论】:

    标签: java autocomplete jline


    【解决方案1】:

    您的登录完成程序使用“连接”字符串作为标识符,而不是登录名......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-14
      • 2021-11-22
      • 1970-01-01
      • 2015-09-16
      • 2014-09-28
      相关资源
      最近更新 更多