RFR: JDK-8214491: Upgrade to JLine 3.9.0

Jan Lahoda jan.lahoda at oracle.com
Wed Dec 5 17:18:56 UTC 2018


Hi Robert,

On 4.12.2018 23:59, Robert Field wrote:
> I saw no issues with JShell tool and test portions of the webrev.  I did
> not review the nashorn changes.

Thanks for looking at this!

>
> Testing it: editing multi-line snippets is vastly easier and more
> intuitive.
> There is one issue, with the old mechanism, as horridly clunky as it
> was, you could add new lines of code (a frequently needed functionality).
> Since <return> is accept, I could find no way to add lines with this
> JLine 3 version.  Thoughts?

One possibility that comes to mind: pressing Enter inside the snippet 
would add a new line, Enter at the very end of a (complete) snippet 
would confirm that snippet. Could be fairly convenient/intuitive. What 
do you think?

>
> I looked into readline commands as an approach to addressing this, found
> nothing.  However, most readline commands worked. Ctrl-u however did not
> behave as documented in readline (instead deleting to the beginning of
> the line).  I notice that the there is zero in-command documentation of
> command-line editing -- not even a mention.  Independent from the review
> of this port, it seems we should have in-command documentation of
> command editing -- even more so now that multiline editing is useful.

This is about enhancing /help, right? I'll see what I can do.

>
> The JShell User Manual will also need a little edit in the History
> Navigation section.

Where is that?

Thanks,
     Jan

>
> -Robert
>
>
> On 11/29/18 1:06 PM, Jan Lahoda wrote:
>> Hi,
>>
>> I'd like to update the internal JLine used by JShell and jjs to JLine
>> 3.9.0. Two notable advantages of this version is multi-line snippet
>> editing and better UI on Windows (escape sequence support on Windows).
>> As a consequence, this patch drops EditingHistory, as it does not seem
>> to be needed anymore.
>>
>> JBS:
>> https://bugs.openjdk.java.net/browse/JDK-8214491
>>
>> The full patch is here:
>> http://cr.openjdk.java.net/~jlahoda/8214491/webrev.00/
>>
>>
>> To make the changes more clear, I've split it into two:
>> -replacement of existing JLine with the new on in jdk.internal.le, no
>> changes to JLine code:
>> http://cr.openjdk.java.net/~jlahoda/8214491/webrev.00.replace/
>>
>> -tweaks to JLine (repackaging, eliminating references to j.u.l.Logger,
>> adding hooks to wrap input streams with our stop-detecting input
>> stream, adding unicode escapes to unicode characters, support for
>> Windows without JNA), adjustments to JShell and jjs (unfortunately,
>> 3.9.0 is not compatible with the JLine 2 branch, so the changes are
>> substantial):
>> http://cr.openjdk.java.net/~jlahoda/8214491/webrev.00.update/
>>
>> Any feedback is welcome!
>>
>> Thanks,
>>     Jan


More information about the kulla-dev mailing list