consoleui
consoleui copied to clipboard
Upgrade JLine to 3.19.0
Removed ConsoleReaderImpl
, CUIRenderer
and *Prompt
classes. New implementation removed also compile dependency of Jansi
jar. PromptBuilder
works as before.
Two new modules:
- Rewritten
ConsolePrompt
In addition to theprompt()
method it includes also classUiConfig
forConsoleUI
configurations. - Rewritten
AbstractPrompt
Contains classes for all prompt implementations and methods for rendering. Implementation uses JLineBindingReader
to read terminal input andDisplay
to write output. Highlighting is done usingAttributedStringBuilder
class.
Features that are not available in this pull request: ~~1. tab completion. This require implementation in consoleui.~~ 2. not possible to set page sizes for long lists. ~~If the list does not fit to the terminal a broken list will be created. This should be relatively easy to resolve.~~
New features:
- color configuration using
UI_COLORS
environment variable. Details see classUiConfig
and JLine wiki. JLine extended format with true color support will be available in JLine version 3.19.1. - cursor pointer and checkbox configuration, see details in
UiConfig
class.
I have tested a new implementation in Linux, Windows 10 CMD and gitbash.
Wow. It looks like a big step forward for ConsoleUI. I started a jline3 port months ago but didn't finish it. I think I mainly struggled because of some classes only poorly documented that are important to use in ConsoleUI. Let me review and test again (a bit) before the merge. What was the intention to update ConsoleUI for you? Looks like you are a jline3 contributor?
Initially I was going to implement a fix for https://github.com/jline/jline3/issues/592 in JLine. Then looking around I found ConsoleUI and ended up to write this pull request. In future I might use ConsoleUI also in my JLine powered CLI.
Hi. Sorry, for the late reply to your pull request. I merged your pull request to a new branch to test a little bit. With the completers I have problems with cursor navigation on my Mac (iTerm). It looks like that up and down keys are not recognized correctly. Interresting - cursor keys when navigating in the ConsoleUI lists work as expected. There are some other minor things in cursor movement to fix. I will dig a little deeper into this...
OK, what can I do to help out here, this is a great project. I want to see it keep going.
Sorry, for not releasing a new version with the jline3 support. I promise, I will resume work on this in the coming days. For the question about menus: do you think about a simple one-menu-as-input, or a full-fledged hierarchical menu system?
Sorry, for not releasing a new version with the jline3 support. I promise, I will resume work on this in the coming days. For the question about menus: do you think about a simple one-menu-as-input, or a full-fledged hierarchical menu system?
Hey @awegmann, i found this great library and I wanna use it for some cli projects but I need a jline 3 support
Are you going to release a new version?
Sorry, for not releasing a new version with the jline3 support. I promise, I will resume work on this in the coming days. For the question about menus: do you think about a simple one-menu-as-input, or a full-fledged hierarchical menu system?
Hey @awegmann, i found this great library and I wanna use it for some cli projects but I need a jline 3 support
Are you going to release a new version?
Hi Roniel.
ConsoleUI will be part of jline3 starting with the next release. https://github.com/jline/jline3/milestone/52
But I don't know when this will be released.
Regards, Andreas