首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在完成中使用转义字符的jline问题

在完成中使用转义字符的jline问题
EN

Stack Overflow用户
提问于 2020-09-05 18:40:10
回答 1查看 423关注 0票数 0

我正在使用java中的jline version3处理一个项目,但在完成时,我需要有“tried”,但是它将\转义空间作为转义字符,并且我没有任何转义字符。我尝试了null而不是char[],但是它会崩溃,指针为空指针异常。

另外,我检查了https://github.com/jline/jline3/issues/173

错误是:

代码语言:javascript
复制
        at org.jline.reader.impl.DefaultParser$ArgumentList.escape(DefaultParser.java:383)
        at org.jline.reader.impl.LineReaderImpl$MenuSupport.update(LineReaderImpl.java:4403)
        at org.jline.reader.impl.LineReaderImpl$MenuSupport.next(LineReaderImpl.java:4317)
        at org.jline.reader.impl.LineReaderImpl.doMenu(LineReaderImpl.java:4471)
        at org.jline.reader.impl.LineReaderImpl.doList(LineReaderImpl.java:4614)
        at org.jline.reader.impl.LineReaderImpl.doComplete(LineReaderImpl.java:4149)
        at org.jline.reader.impl.LineReaderImpl.expandOrComplete(LineReaderImpl.java:3875)
        at org.jline.reader.impl.LineReaderImpl.readLine(LineReaderImpl.java:585)
        at org.jline.reader.impl.LineReaderImpl.readLine(LineReaderImpl.java:443)
        at REPLReader.readLine(REPLReader.java:99)
        at Compiler.getInputCode(Compiler.java:24)
        at CompilerMain.lex(CompilerMain.java:75)
        at CompilerMain.compile(CompilerMain.java:15)
        at Main.main(Main.java:59)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-07 15:01:03

我假设您使用的是JLine、内置完成器、StringsCompleterDefaultParser

如果您有具有空格字符的完成候选项,则可以选择

  1. 如果defaultParser.escapeChars != null
  2. 如果defaultParser.escapeChars == null的话,完成考试的候选人将被引用。

这就是StringsCompleter应该如何工作的。参见StringsCompleterTest.java方法:escapeCharsNull()escapeChars()

NPE在commit 68a9c1f中是固定的。您应该使用JLine版本3.10或更高版本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63757353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档