Jline Terminal Writer выдает неверный форматированный вывод - PullRequest
0 голосов
/ 07 декабря 2018

У нас возникают некоторые проблемы с библиотечным терминалом Jline при попытке использовать его для записи.Когда мы пытаемся написать строку, используя оператор печати терминального писателя, он добавляет символы вокруг строки.

Пример: При печати: terminal.writer().print("Username:"); Мы получаем строку вывода как "� [? 1l�> � [? 1000l� [? 2004lПользовательское имя: � [? 1h� = � [? 2004h ", где мы хотим получить только" Имя пользователя: "в качестве вывода.

Мы попробовали решение по этой ссылке https://github.com/jline/jline3/issues/181, установив «BRACKETED_PASTE_OFF».Но это не сработало.

1 Ответ

0 голосов
/ 07 декабря 2018

У меня все получилось, мне пришлось использовать printAbove, чтобы удалить строку, добавленную при чтении строки, и установить BRACKETED_PASTE в значение false, чтобы удалить скобки, добавленные на этапе очистки:

final TerminalBuilder builder = TerminalBuilder.builder(); builder.jansi(false); builder.streams(in, out); terminal = builder.build(); reader = LineReaderBuilder.builder().terminal(terminal).build(); reader.option(BRACKETED_PASTE, false); reader.printAbove(StringToPrint); terminal.writer().print(StringToPrint);

...