mirror of https://github.com/sbt/sbt.git
fix tab completion for filtered parsers
This commit is contained in:
parent
07a318d3b4
commit
1021f0dac8
|
|
@ -147,8 +147,8 @@ object Parser extends ParserMain
|
||||||
a.ifValid {
|
a.ifValid {
|
||||||
a.result match
|
a.result match
|
||||||
{
|
{
|
||||||
case Some(av) => if( f(av) ) success( av ) else Parser.failure(msg(seen))
|
case Some(av) if f(av) => success( av )
|
||||||
case None => new Filter(a, f, seen, msg)
|
case _ => new Filter(a, f, seen, msg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -471,7 +471,7 @@ private final class MapParser[A,B](a: Parser[A], f: A => B) extends ValidParser[
|
||||||
}
|
}
|
||||||
private final class Filter[T](p: Parser[T], f: T => Boolean, seen: String, msg: String => String) extends ValidParser[T]
|
private final class Filter[T](p: Parser[T], f: T => Boolean, seen: String, msg: String => String) extends ValidParser[T]
|
||||||
{
|
{
|
||||||
def filterResult(r: Result[T]) = p.resultEmpty.filter(f, msg(seen))
|
def filterResult(r: Result[T]) = r.filter(f, msg(seen))
|
||||||
lazy val result = p.result filter f
|
lazy val result = p.result filter f
|
||||||
lazy val resultEmpty = filterResult(p.resultEmpty)
|
lazy val resultEmpty = filterResult(p.resultEmpty)
|
||||||
def derive(c: Char) = filterParser(p derive c, f, seen + c, msg)
|
def derive(c: Char) = filterParser(p derive c, f, seen + c, msg)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue