diff options
author | Joseph K. Strauss <joseph.k.strauss@gmail.com> | 2018-06-06 23:39:08 -0400 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2018-06-06 20:39:08 -0700 |
commit | c627dd1c20577115a111b293296dd06392220880 (patch) | |
tree | 1313fd32d87d1c8b6102b393fde1590eceee0cf6 /main/src | |
parent | ecb931f769080c89f17f76e51840c560ed079d57 (diff) | |
download | mill-c627dd1c20577115a111b293296dd06392220880.tar.gz mill-c627dd1c20577115a111b293296dd06392220880.tar.bz2 mill-c627dd1c20577115a111b293296dd06392220880.zip |
Allow hyphens in module and task names (#362)
* Allow bacticked tasks
* Prevent stack overflow
* Test for illegal bacticked identifiers
* Filter out illegal backticked identifiers
The only legal identifiers are aplanumeric, unserscore (_), and
hyphens (-).
* Remove unused method that is invalid
* Document valid characters for module/task names
Diffstat (limited to 'main/src')
-rw-r--r-- | main/src/mill/main/ReplApplyHandler.scala | 8 | ||||
-rw-r--r-- | main/src/mill/main/Resolve.scala | 12 |
2 files changed, 9 insertions, 11 deletions
diff --git a/main/src/mill/main/ReplApplyHandler.scala b/main/src/mill/main/ReplApplyHandler.scala index 9ce30142..22a247cc 100644 --- a/main/src/mill/main/ReplApplyHandler.scala +++ b/main/src/mill/main/ReplApplyHandler.scala @@ -44,10 +44,10 @@ object ReplApplyHandler{ def pprintModule(m: mill.define.Module, evaluator: Evaluator[_]) = { pprint.Tree.Lazy( ctx => Iterator(m.millInternal.millModuleEnclosing, ":", m.millInternal.millModuleLine.toString) ++ - (if (m.millInternal.reflect[mill.Module].isEmpty) Nil + (if (m.millInternal.reflectAll[mill.Module].isEmpty) Nil else ctx.applyPrefixColor("\nChildren:").toString +: - m.millInternal.reflect[mill.Module].map("\n ." + _.millOuterCtx.segment.pathSegments.mkString("."))) ++ + m.millInternal.reflectAll[mill.Module].map("\n ." + _.millOuterCtx.segment.pathSegments.mkString("."))) ++ (evaluator.rootModule.millDiscover.value.get(m.getClass) match{ case None => Nil case Some(commands) => @@ -57,10 +57,10 @@ object ReplApplyHandler{ ")()" } }) ++ - (if (m.millInternal.reflect[Target[_]].isEmpty) Nil + (if (m.millInternal.reflectAll[Target[_]].isEmpty) Nil else { Seq(ctx.applyPrefixColor("\nTargets:").toString) ++ - m.millInternal.reflect[Target[_]].sortBy(_.label).map(t => + m.millInternal.reflectAll[Target[_]].map(t => "\n ." + t.label + "()" ) }) diff --git a/main/src/mill/main/Resolve.scala b/main/src/mill/main/Resolve.scala index 4baac312..d0a08c87 100644 --- a/main/src/mill/main/Resolve.scala +++ b/main/src/mill/main/Resolve.scala @@ -15,7 +15,7 @@ object ResolveMetadata extends Resolve[String]{ val targets = obj .millInternal - .reflect[Target[_]] + .reflectAll[Target[_]] .map(_.toString) val commands = for{ (cls, entryPoints) <- discover.value @@ -127,8 +127,7 @@ object ResolveSegments extends Resolve[Segments] { val target = obj .millInternal - .reflect[Target[_]] - .find(_.label == last) + .reflectSingle[Target[_]](last) .map(t => Right(t.ctx.segments)) val command = @@ -193,16 +192,15 @@ object ResolveTasks extends Resolve[NamedTask[Any]]{ Right( obj.millInternal.modules .filter(_ != obj) - .flatMap(m => m.millInternal.reflect[Target[_]]) + .flatMap(m => m.millInternal.reflectAll[Target[_]]) ) - case "_" => Right(obj.millInternal.reflect[Target[_]]) + case "_" => Right(obj.millInternal.reflectAll[Target[_]]) case _ => val target = obj .millInternal - .reflect[Target[_]] - .find(_.label == last) + .reflectSingle[Target[_]](last) .map(Right(_)) val command = Resolve.invokeCommand(obj, last, discover, rest).headOption |