RFR: JDK-8214491: Upgrade to JLine 3.9.0
Jan Lahoda
jan.lahoda at oracle.com
Sat Dec 8 15:21:54 UTC 2018
Hi,
I've updated the patch to reflect the comments so far, the current
version is here:
http://cr.openjdk.java.net/~jlahoda/8214491/webrev.01/
Delta since the previous version is here for convenience:
http://cr.openjdk.java.net/~jlahoda/8214491/webrev.delta.00.01/
In this version, while editing a snippet, a new line can be added using
Alt-Enter (on platforms that support that), or Ctrl-Enter (on Windows).
And alternative patch is here:
http://cr.openjdk.java.net/~jlahoda/8214491/webrev.01a/
Delta:
http://cr.openjdk.java.net/~jlahoda/8214491/webrev.delta.00.01a/
In the alternative version, Enter will only "confirm" multi-line snippet
when the cursor is at the end of the snippet, otherwise it will add a
new line (so that a special shortcut is not needed; but a snippet cannot
be "confirmed" by pressing Enter in the middle of a multi-line snippet.)
The only difference between the .01 and .01a patches is the way they
allow to add new lines into the multi-line snippets. Other changes are
the same.
Any feedback on this is welcome.
Thanks!
Jan
On 5.12.2018 18:18, Jan Lahoda wrote:
> 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 nashorn-dev
mailing list