Author: reto
Date: Sat Aug 11 09:36:45 2012
New Revision: 1371894
URL: http://svn.apache.org/viewvc?rev=1371894&view=rev
Log:
CLEREZZA-619: retrieving platform specific terminal, this makes autocompletion
work on unix console. The terminal has yet to be used in the shell for things
to be likely to work on windows too.
Modified:
incubator/clerezza/trunk/shell/src/main/scala/org/apache/clerezza/shell/ConsoleShell.scala
incubator/clerezza/trunk/shell/src/main/scala/org/apache/clerezza/shell/Shell.scala
Modified:
incubator/clerezza/trunk/shell/src/main/scala/org/apache/clerezza/shell/ConsoleShell.scala
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/shell/src/main/scala/org/apache/clerezza/shell/ConsoleShell.scala?rev=1371894&r1=1371893&r2=1371894&view=diff
==============================================================================
---
incubator/clerezza/trunk/shell/src/main/scala/org/apache/clerezza/shell/ConsoleShell.scala
(original)
+++
incubator/clerezza/trunk/shell/src/main/scala/org/apache/clerezza/shell/ConsoleShell.scala
Sat Aug 11 09:36:45 2012
@@ -53,6 +53,9 @@ class ConsoleShell() {
bundle.stop()
stoppedBundle = Some(bundle)
}
+ //this call sets the console terminal to the right
settings
+ //and it mast not be invoked when there is no console
input, or the system will stop
+ jline.Terminal.setupTerminal()
val in = Channels.newInputStream(
(new
FileInputStream(FileDescriptor.in)).getChannel());
interruptibleIn = new InterruptibleInputStream(in)
Modified:
incubator/clerezza/trunk/shell/src/main/scala/org/apache/clerezza/shell/Shell.scala
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/shell/src/main/scala/org/apache/clerezza/shell/Shell.scala?rev=1371894&r1=1371893&r2=1371894&view=diff
==============================================================================
---
incubator/clerezza/trunk/shell/src/main/scala/org/apache/clerezza/shell/Shell.scala
(original)
+++
incubator/clerezza/trunk/shell/src/main/scala/org/apache/clerezza/shell/Shell.scala
Sat Aug 11 09:36:45 2012
@@ -69,6 +69,7 @@ class Shell(factory: InterpreterFactory,
private var imports = Set[String]()
private var terminationListeners = Set[Shell.TerminationListener]();
+ val terminal = new jline.UnixTerminal
val interpreterLoop = new InterpreterLoop(new BufferedReader(new
InputStreamReader(inStream)), new PrintWriter(out, true)) {
override def createInterpreter() {
@@ -135,31 +136,11 @@ class Shell(factory: InterpreterFactory,
override lazy val completion =
Option(interpreter) map (x => new Completion(x))
val consoleReader = {
- val terminal = new jline.UnixTerminal
- /*val terminal = new jline.Terminal {
- override def
initializeTerminal() {logger.warn("JLINE: initializing echo")}
-
- override def isEchoEnabled = {
logger.warn("JLINE: is enabled echo")
- true}
-
- override def isSupported = {
logger.warn("JLINE: is supported echo")
- true}
-
- override def enableEcho() {
logger.warn("JLINE: enabling echo")}
-
- override def disableEcho()
{logger.warn("JLINE: disabling echo") }
-
- override def getTerminalHeight
= 24
-
- override def getTerminalWidth =
80
-
- override def getEcho = false
- }*/
+
val r = new
jline.ConsoleReader(inStream, out, null, terminal)
r setHistory (History().jhistory)
r setBellEnabled false
completion foreach { c =>
- logger.warn("JLINE: adding
completor : "+c.jline)
r addCompletor c.jline
r setAutoprintThreshhold 250
}
@@ -191,7 +172,7 @@ class Shell(factory: InterpreterFactory,
true
}
}
-
+ /* a second completor is ignored, would have
to wrapp the above
r addCompletor new Completor {
def complete(p1: String, p2:
Int, candidates: java.util.List[_]) = {
logger.warn("JLINE:
candidates : "+candidates)
@@ -205,7 +186,7 @@ class Shell(factory: InterpreterFactory,
}
0
}
- }
+ }*/
r
}