I am working on a project with jline version3 in java but in completion, I need to have "else if" but it puts \ to escape space as an escape character and I don't have any escape character also I tried null instead of a char[] but it crashes with null pointer exception
also, I checked https://github.com/jline/jline3/issues/173
Error is:
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)
I assume that you are using JLine builtin completer
StringsCompleterandDefaultParser.If you have completion candidate that have space character(s) then either
defaultParser.escapeChars != nullordefaultParser.escapeChars == null.That is how
StringsCompleteris supposed to work. See StringsCompleterTest.java methods:escapeCharsNull()andescapeChars().NPE is fixed in commit 68a9c1f. You should use JLine version 3.10 or greater.