summaryrefslogtreecommitdiff
path: root/main/src
diff options
context:
space:
mode:
authorJoseph K. Strauss <joseph.k.strauss@gmail.com>2018-06-06 23:39:08 -0400
committerLi Haoyi <haoyi.sg@gmail.com>2018-06-06 20:39:08 -0700
commitc627dd1c20577115a111b293296dd06392220880 (patch)
tree1313fd32d87d1c8b6102b393fde1590eceee0cf6 /main/src
parentecb931f769080c89f17f76e51840c560ed079d57 (diff)
downloadmill-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.scala8
-rw-r--r--main/src/mill/main/Resolve.scala12
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