Hi all,
I'm new to JLine, and I'm trying to read multiple lines from the reader when the user presses Shift+Enter. I read in a previous conversation that this feature is built-in to JLine 3. And that I just need to override the parse method after implementing a custom parser, which is what I did. However, I still haven't achieved the desired result.
This is my parse method:
@Override
public ParsedLine parse(String line, int cursor, ParseContext context) throws SyntaxError {
ParsedLine parsedLine = this.defaultParser.parse(line, cursor, context);
if (context == ParseContext.SECONDARY_PROMPT) {
throw new EOFError(-1, -1, "continutation required", line);
}
return parsedLine;
}
What did I do wrong?
This is the whole class:
public class OPMParser implements Parser {
private DefaultParser defaultParser;
public OPMParser() {
this.defaultParser = new DefaultParser();
}
@Override
public ParsedLine parse(String line, int cursor, ParseContext context) throws SyntaxError {
ParsedLine parsedLine = this.defaultParser.parse(line, cursor, context);
if (context == ParseContext.SECONDARY_PROMPT) {
throw new EOFError(-1, -1, "continutation required", line);
}
return parsedLine;
}
@Override
public ParsedLine parse(String line, int cursor) throws SyntaxError {
return Parser.super.parse(line, cursor);
}
@Override
public boolean isEscapeChar(char ch) {
return Parser.super.isEscapeChar(ch);
}
@Override
public boolean validCommandName(String name) {
return Parser.super.validCommandName(name);
}
@Override
public boolean validVariableName(String name) {
return Parser.super.validVariableName(name);
}
@Override
public String getCommand(String line) {
return Parser.super.getCommand(line);
}
@Override
public String getVariable(String line) {
return Parser.super.getVariable(line);
}
}
Thanks in advance for your help.
Hamza,