Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade JLine to 3.19.0 #24

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open

Upgrade JLine to 3.19.0 #24

wants to merge 4 commits into from

Conversation

mattirn
Copy link

@mattirn mattirn commented Feb 3, 2021

Removed ConsoleReaderImpl, CUIRenderer and *Prompt classes. New implementation removed also compile dependency of Jansi jar. PromptBuilder works as before.

Two new modules:

  1. Rewritten ConsolePrompt
    In addition to the prompt() method it includes also class UiConfig for ConsoleUI configurations.
  2. Rewritten AbstractPrompt
    Contains classes for all prompt implementations and methods for rendering. Implementation uses JLine BindingReader to read terminal input and Display to write output. Highlighting is done using AttributedStringBuilder 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:

  1. color configuration using UI_COLORS environment variable. Details see class UiConfig and JLine wiki. JLine extended format with true color support will be available in JLine version 3.19.1.
  2. cursor pointer and checkbox configuration, see details in UiConfig class.

I have tested a new implementation in Linux, Windows 10 CMD and gitbash.

@awegmann
Copy link
Owner

awegmann commented Feb 3, 2021

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?

@mattirn
Copy link
Author

mattirn commented Feb 4, 2021

Initially I was going to implement a fix for jline/jline3#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.

@mattirn mattirn force-pushed the jline3 branch 2 times, most recently from 95edf26 to 5ec4f88 Compare February 6, 2021 22:12
@awegmann
Copy link
Owner

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...

@MTyson
Copy link
Contributor

MTyson commented Apr 22, 2023

OK, what can I do to help out here, this is a great project. I want to see it keep going.

@awegmann
Copy link
Owner

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?

@roniel-rhack
Copy link

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?

@awegmann
Copy link
Owner

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants