From 2d394c7551bddf7c4c2dd8e8f48acc55b0b4e78f Mon Sep 17 00:00:00 2001 From: Mark Harrah Date: Sat, 22 Jan 2011 15:07:59 -0500 Subject: [PATCH] move applyEffect to Command --- main/Command.scala | 5 ++++- main/Main.scala | 4 +--- main/ProjectNavigation.scala | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/main/Command.scala b/main/Command.scala index cee752b56..17b487886 100644 --- a/main/Command.scala +++ b/main/Command.scala @@ -56,7 +56,10 @@ object Command def validID(name: String) = Parser(OpOrID)(name).resultEmpty.isDefined - + + def applyEffect[T](p: Parser[T])(f: T => State): Parser[() => State] = + p map { t => () => f(t) } + def combine(cmds: Seq[Command]): State => Parser[() => State] = { val (simple, arbs) = separateCommands(cmds) diff --git a/main/Main.scala b/main/Main.scala index 76f5c0d9a..22548cc28 100644 --- a/main/Main.scala +++ b/main/Main.scala @@ -10,7 +10,7 @@ package sbt import sbt.build.{AggressiveCompile, Auto, BuildException, LoadCommand, Parse, ParseException, ProjectLoad, SourceLoad} import sbt.complete.{DefaultParsers, Parser} - import Command.{Analysis,HistoryPath,Logged,Watch} + import Command.{applyEffect,Analysis,HistoryPath,Logged,Watch} import scala.annotation.tailrec import scala.collection.JavaConversions._ import Function.tupled @@ -85,8 +85,6 @@ object Commands val base = (OptSpace ~> (name ~ assign.?).?) applyEffect(base)(t => runAlias(s, t) ) } - def applyEffect[T](p: Parser[T])(f: T => State): Parser[() => State] = - p map { t => () => f(t) } def runAlias(s: State, args: Option[(String, Option[String])]): State = args match { diff --git a/main/ProjectNavigation.scala b/main/ProjectNavigation.scala index 21f7178ed..521af7281 100644 --- a/main/ProjectNavigation.scala +++ b/main/ProjectNavigation.scala @@ -73,5 +73,5 @@ final class ProjectNavigation(s: State) val projectP = token(ID map (id => new ChangeProject(id)) examples projects.toSet ) success(ShowCurrent) | ( token(Space) ~> (token('/' ^^^ Root) | buildP | projectP) ) } - val command: Parser[() => State] = Commands.applyEffect(parser)(apply) + val command: Parser[() => State] = Command.applyEffect(parser)(apply) } \ No newline at end of file