You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Dariusz Antoniuk (JIRA)" <ji...@apache.org> on 2017/11/14 21:46:00 UTC

[jira] [Commented] (GROOVY-6453) groovysh in Windows 7/8/10 doesn't support arrow keys and Del

    [ https://issues.apache.org/jira/browse/GROOVY-6453?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16252235#comment-16252235 ] 

Dariusz Antoniuk commented on GROOVY-6453:
------------------------------------------

You can add the following code to your groovy.rc as a workaround:
{noformat}
@groovy.transform.InheritConstructors
class WindowsTerminalControlCharFix extends jline.WindowsTerminal {
	@Override
	protected boolean isSystemIn(java.io.InputStream i) throws IOException {
			// groovysh wraps the input stream in WrappedInputStream, need to handle this case properly to enable windows controll character handling
			if (i instanceof org.codehaus.groovy.tools.shell.util.WrappedInputStream) {
					return super.isSystemIn(((org.codehaus.groovy.tools.shell.util.WrappedInputStream)i).wrapped);
			}
			return super.isSystemIn(i);
	}
}

// if no terminal specified use a version of windows terminal class that handles windows control characters properly - see https://issues.apache.org/jira/browse/GROOVY-6453
if (!System.getProperty("jline.terminal")) {
	jline.TerminalFactory.registerFlavor(jline.TerminalFactory.Flavor.WINDOWS, WindowsTerminalControlCharFix.class);
	System.setProperty("jline.terminal","win");
}
{noformat}

> groovysh in Windows 7/8/10 doesn't support arrow keys and Del
> -------------------------------------------------------------
>
>                 Key: GROOVY-6453
>                 URL: https://issues.apache.org/jira/browse/GROOVY-6453
>             Project: Groovy
>          Issue Type: Bug
>          Components: Groovysh
>    Affects Versions: 2.2.0
>         Environment: Windows 8, 64bit (v6.2, build 9200), java version "1.7.0_45" SE Runtime Environment (build 1.7.0_45-b18) HotSpot 64-Bit Server VM (build 24.45-b08, mixed mode), Russian locale (!)
>            Reporter: Andrew P Fink
>              Labels: console, jline
>
> I have bare windows 8 with fresh JDK. I run Groovysh in cmd.exe.
> Groovysh 2.1.9 works as expected.
> Groovysh 2.2.0 doesn't react to arrow keys and Del, i.e. up key doesn't show previous command, left key doesn't shift cursor etc.
> After some investigation I found what is working:
> ctrl-a   go to beginning of line
> ctrl-e   go to End of line
> ctrl-f   go Forward one char
> ctrl-b   go Backward one char
> ctrl-d   delete the char
> ctrl-h   and backspace = delete left char
> ctrl-p   recall previous line
> ctrl-n   recall next line
> ctrl-s   search
> ctrl-r   reverse search 
> It's nice and feel myself like a Linux hacker, but I want arrow keys too ;-)
> I tried different options:
> - upgrade jline2.10 to 2.11 - no effect
> - --terminal=unix - it helps, but duplicate prompt (groovy:000>) and no more colors in console 
> Looks like problem lies in new jline v2 (groovysh 2.1.9 uses jline1.0)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)