summaryrefslogtreecommitdiff
path: root/scalaplugin/src/main
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2017-12-14 07:29:33 -0800
committerLi Haoyi <haoyi.sg@gmail.com>2017-12-14 07:43:07 -0800
commitd38196041663959ed71881d6d83a27d4639f3134 (patch)
tree7b8cec4b7b807d2a6697172213974c1babc40335 /scalaplugin/src/main
parenta97697a3c7294eb6dda30740fc6cdd92a9966ccd (diff)
downloadmill-d38196041663959ed71881d6d83a27d4639f3134.tar.gz
mill-d38196041663959ed71881d6d83a27d4639f3134.tar.bz2
mill-d38196041663959ed71881d6d83a27d4639f3134.zip
Move `Evaluator`s to be long lived, and make tests pass
Diffstat (limited to 'scalaplugin/src/main')
-rw-r--r--scalaplugin/src/main/scala/mill/scalaplugin/GenIdea.scala19
-rw-r--r--scalaplugin/src/main/scala/mill/scalaplugin/ScalaModule.scala1
2 files changed, 14 insertions, 6 deletions
diff --git a/scalaplugin/src/main/scala/mill/scalaplugin/GenIdea.scala b/scalaplugin/src/main/scala/mill/scalaplugin/GenIdea.scala
index ca37c6dc..cb59bdba 100644
--- a/scalaplugin/src/main/scala/mill/scalaplugin/GenIdea.scala
+++ b/scalaplugin/src/main/scala/mill/scalaplugin/GenIdea.scala
@@ -1,7 +1,8 @@
package mill.scalaplugin
import ammonite.ops._
-import mill.discover.Mirror.Segment
+import mill.define.Target
+import mill.discover.Mirror.{LabelledTarget, Segment}
import mill.discover.{Discovered, Mirror}
import mill.eval.{Evaluator, PathRef}
import mill.util.{OSet, PrintLogger}
@@ -13,16 +14,22 @@ object GenIdea {
rm! pwd/".idea"
rm! pwd/".idea_modules"
- for((relPath, xml) <- xmlFileLayout(obj)){
+ val discovered = implicitly[Discovered[T]]
+ val mapping = Discovered.mapping(obj)(discovered)
+ val workspacePath = pwd / 'out
+
+ val evaluator = new Evaluator(workspacePath, mapping, new PrintLogger(true))
+
+ for((relPath, xml) <- xmlFileLayout(obj, evaluator, mapping)){
write.over(pwd/relPath, pp.format(xml))
}
}
- def xmlFileLayout[T: Discovered](obj: T): Seq[(RelPath, scala.xml.Node)] = {
+ def xmlFileLayout[T: Discovered](obj: T,
+ evaluator: Evaluator,
+ mapping: Map[Target[_], LabelledTarget[_]]): Seq[(RelPath, scala.xml.Node)] = {
+
val discovered = implicitly[Discovered[T]]
- val mapping = Discovered.mapping(obj)(discovered)
- val workspacePath = pwd / 'out
- val evaluator = new Evaluator(workspacePath, mapping, new PrintLogger(true))
val modules = Mirror
.traverse(obj, discovered.mirror){ (h, p) =>
diff --git a/scalaplugin/src/main/scala/mill/scalaplugin/ScalaModule.scala b/scalaplugin/src/main/scala/mill/scalaplugin/ScalaModule.scala
index f7db3006..ca70cee5 100644
--- a/scalaplugin/src/main/scala/mill/scalaplugin/ScalaModule.scala
+++ b/scalaplugin/src/main/scala/mill/scalaplugin/ScalaModule.scala
@@ -181,6 +181,7 @@ trait ScalaModule extends Module with TaskModule{ outer =>
def allSources = T{ Seq(sources()) }
def compile: T[CompilationResult] = T.persistent{
compileScala(
+ ZincWorker(),
scalaVersion(),
allSources().map(_.path),
compileDepClasspath().map(_.path),