From 339c59bad400ba6c3b8f1cad01caaad985e1fafd Mon Sep 17 00:00:00 2001 From: Mark Harrah Date: Thu, 24 Mar 2011 21:23:11 -0400 Subject: [PATCH] tab completion: print message when input is invalid --- util/complete/JLineCompletion.scala | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/util/complete/JLineCompletion.scala b/util/complete/JLineCompletion.scala index 9103c3e72..c6fd26433 100644 --- a/util/complete/JLineCompletion.scala +++ b/util/complete/JLineCompletion.scala @@ -40,9 +40,17 @@ object JLineCompletion def parserAsCompletor(p: Parser[_]): ConsoleReader => Boolean = customCompletor(str => convertCompletions(Parser.completions(p, str))) def convertCompletions(c: Completions): (Seq[String], Seq[String]) = + { + val cs = c.get + if(cs.isEmpty) + (Nil, "{invalid input}" :: Nil) + else + convertCompletions(cs) + } + def convertCompletions(cs: Set[Completion]): (Seq[String], Seq[String]) = { val (insert, display) = - ( (Set.empty[String], Set.empty[String]) /: c.get) { case ( t @ (insert,display), comp) => + ( (Set.empty[String], Set.empty[String]) /: cs) { case ( t @ (insert,display), comp) => if(comp.isEmpty) t else (insert + comp.append, appendNonEmpty(display, comp.display.trim)) } (insert.toSeq, display.toSeq.sorted)