summaryrefslogtreecommitdiff
path: root/scalaplugin/src/main/scala/mill/scalaplugin/GenIdea.scala
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2017-12-26 00:42:45 -0800
committerLi Haoyi <haoyi.sg@gmail.com>2017-12-26 00:42:45 -0800
commit2d7241efab9ad4589b1a7db8353607a417ab1567 (patch)
tree7a735ea82ab22314fd3d6950266babfc35d9f2e4 /scalaplugin/src/main/scala/mill/scalaplugin/GenIdea.scala
parentefc073009550976814b750aa5436b1cda1d8ef5b (diff)
downloadmill-2d7241efab9ad4589b1a7db8353607a417ab1567.tar.gz
mill-2d7241efab9ad4589b1a7db8353607a417ab1567.tar.bz2
mill-2d7241efab9ad4589b1a7db8353607a417ab1567.zip
- Shift `MappingCtx` into a magic `LoaderCtx` `Loader` to avoid circular dependencies between `Ctx` -> `Discovered` -> `Task`
- `mill idea` works now using `GenIdea` as a standalone `T.command` making use of the new contextually-available `Mapping` - Limit implicit `ReplApplyHandler` to `--repl` only, to avoid it kicking in if `build.sc` scripts are screwed up and adding further confusion
Diffstat (limited to 'scalaplugin/src/main/scala/mill/scalaplugin/GenIdea.scala')
-rw-r--r--scalaplugin/src/main/scala/mill/scalaplugin/GenIdea.scala14
1 files changed, 9 insertions, 5 deletions
diff --git a/scalaplugin/src/main/scala/mill/scalaplugin/GenIdea.scala b/scalaplugin/src/main/scala/mill/scalaplugin/GenIdea.scala
index 86e33d8d..c7ea448a 100644
--- a/scalaplugin/src/main/scala/mill/scalaplugin/GenIdea.scala
+++ b/scalaplugin/src/main/scala/mill/scalaplugin/GenIdea.scala
@@ -5,11 +5,13 @@ import mill.define.Target
import mill.discover.Mirror.{LabelledTarget, Segment}
import mill.discover.{Discovered, Mirror}
import mill.eval.{Evaluator, PathRef}
+import mill.util.Ctx.LoaderCtx
import mill.util.{OSet, PrintLogger}
object GenIdea {
- def apply[T](mapping: Discovered.Mapping[T]): Unit = {
+ def apply()(implicit ctx: LoaderCtx): Unit = {
+ val mapping = ctx.load(mill.discover.Discovered.Mapping)
val pp = new scala.xml.PrettyPrinter(999, 4)
rm! pwd/".idea"
rm! pwd/".idea_modules"
@@ -18,13 +20,12 @@ object GenIdea {
val evaluator = new Evaluator(workspacePath, mapping, new PrintLogger(true))
- for((relPath, xml) <- xmlFileLayout(mapping, evaluator)){
+ for((relPath, xml) <- xmlFileLayout(evaluator)){
write.over(pwd/relPath, pp.format(xml))
}
}
- def xmlFileLayout[T](evaluator: Evaluator): Seq[(RelPath, scala.xml.Node)] = {
-
+ def xmlFileLayout[T](evaluator: Evaluator[T]): Seq[(RelPath, scala.xml.Node)] = {
val modules = Mirror
.traverse(evaluator.mapping.base, evaluator.mapping.mirror){ (h, p) =>
@@ -77,7 +78,10 @@ object GenIdea {
val Seq(sourcePath: PathRef) =
evaluator.evaluate(OSet(mod.sources)).values
- val (destPath, jsonPath) = evaluator.resolveDestPaths(mapping.value(mod.compile))
+ val (destPath, jsonPath) = Evaluator.resolveDestPaths(
+ evaluator.workspacePath,
+ evaluator.mapping.value(mod.compile)
+ )
val elem = moduleXmlTemplate(
sourcePath.path,