Author: reto
Date: Sat Jun 2 11:27:16 2012
New Revision: 1345489
URL: http://svn.apache.org/viewvc?rev=1345489&view=rev
Log:
CLEREZZA-709: autocomplete for common prefix of multiple matches
Modified:
incubator/clerezza/trunk/parent/shell/src/main/scala/org/apache/clerezza/shell/Shell.scala
Modified:
incubator/clerezza/trunk/parent/shell/src/main/scala/org/apache/clerezza/shell/Shell.scala
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/parent/shell/src/main/scala/org/apache/clerezza/shell/Shell.scala?rev=1345489&r1=1345488&r2=1345489&view=diff
==============================================================================
---
incubator/clerezza/trunk/parent/shell/src/main/scala/org/apache/clerezza/shell/Shell.scala
(original)
+++
incubator/clerezza/trunk/parent/shell/src/main/scala/org/apache/clerezza/shell/Shell.scala
Sat Jun 2 11:27:16 2012
@@ -171,6 +171,18 @@ class Shell(factory: InterpreterFactory,
CandidateListCompletionHandler.setBuffer(reader, candidates.get(0).toString,
pos)
} else {
import
collection.JavaConversions._
+ def
commonHead(a: String,b: String):String = {
+ if
(a.isEmpty || b.isEmpty) {
+ ""
+ } else {
+
if (a(0) == b(0)) {
+
a(0)+commonHead(a.tail, b.tail)
+
} else ""
+ }
+ }
+ val canStrings
= candidates.map(_.toString)
+ val
longestCommonPrefix = canStrings.tail.foldRight(canStrings.head)((a,b) =>
commonHead(a,b))
+
CandidateListCompletionHandler.setBuffer(reader, longestCommonPrefix, pos)
out.println()
out.println(candidates.mkString("\t"))
out.print(prompt)