Как отобразить историю команд с помощью jline3?
Я хочу, чтобы самая последняя введенная команда отображалась, когда пользователь нажимает клавишу со стрелкой вверх.
Terminal
определяется следующим образом (код Scala):
val terminal: Terminal =
TerminalBuilder.builder
.system(true)
.build
LineReader
определяется так:
def reader(parser: Parser, terminal: Terminal): LineReader = {
val lineReader: LineReader = LineReaderBuilder.builder
.terminal(terminal)
.completer(shellManager.topShell.completer)
.parser(parser)
.variable(LineReader.HISTORY_FILE, historyFile)
.history(new DefaultHistory())
.build
lineReader.unsetOpt(LineReader.Option.INSERT_TAB)
lineReader
}
Обновление: я обнаружил, что выше на самом деле работает на некоторых консолях, а не на других. Я все еще выясняю, что работает, а что нет. Любое понимание будет оценено.
1 ответ
Это должно работать из коробки. Если у вас есть проблема с конкретным терминалом, сообщите, какой именно терминал вы используете. Что бы это ни стоило, это не может работать изнутри инструментов сборки (gradle, maven) или IDE (Eclipse, Intellij IDEA).