Как отобразить историю команд с помощью 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).

Другие вопросы по тегам