Update to more recent version: jline: 1.0 -> 2.6+ (this has a dependency on jansi, so it makes sense to also update that to 1.8)
Involves (thanks for input from Jason Dillon): the api changes from 1->2 are mostly package name changes, some generic signatures and some spelling fixes (e.g. completor -> completer) etc.
Possible specifics (some may become irrelevant depending on the approach taken):
- Terminal is an intf now; use TerminalFactory to get instances of a Terminal
- Terminal.getTerminalWidth() is now simply Terminal.getWidth()
- ConsoleReader is now in jline.console
- history functionality is now in jline.console.history, History is an intf now
- completer functionality is now in jline.console.completer
- SimpleCompletor (in groovysh) is about the same as StringsCompleter
This will be a breaking change (albeit to a mostly internal api) since org.codehaus.groovy.tools.shell.Command has a method Completor getCompletor() which should probably be renamed to getCompleter() and will return a class in a different package.