summaryrefslogtreecommitdiff
path: root/scalaplugin/src/main/scala/mill/scalaplugin/GenIdea.scala
diff options
context:
space:
mode:
authorRoman Timushev <rtimush@gmail.com>2017-12-25 03:29:37 +0100
committerLi Haoyi <haoyi.sg@gmail.com>2017-12-24 18:29:37 -0800
commita0d16d40156f639090235f67117fe11ce0dbb5e9 (patch)
tree02f4bc826addc7b16cb44618ff84ebd2faf855fa /scalaplugin/src/main/scala/mill/scalaplugin/GenIdea.scala
parent981b7191a2a666447c85c6632d5a2c626d19a849 (diff)
downloadmill-a0d16d40156f639090235f67117fe11ce0dbb5e9.tar.gz
mill-a0d16d40156f639090235f67117fe11ce0dbb5e9.tar.bz2
mill-a0d16d40156f639090235f67117fe11ce0dbb5e9.zip
Fix Idea project for cross-modules (#80)
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, 11 insertions, 3 deletions
diff --git a/scalaplugin/src/main/scala/mill/scalaplugin/GenIdea.scala b/scalaplugin/src/main/scala/mill/scalaplugin/GenIdea.scala
index f720123d..07a9e998 100644
--- a/scalaplugin/src/main/scala/mill/scalaplugin/GenIdea.scala
+++ b/scalaplugin/src/main/scala/mill/scalaplugin/GenIdea.scala
@@ -51,7 +51,7 @@ object GenIdea {
".idea"/"modules.xml",
allModulesXmlTemplate(
for((path, mod) <- modules)
- yield path.collect{case Segment.Label(v) => v}.mkString(".").toLowerCase
+ yield moduleName(path)
)
),
Tuple2(".idea_modules"/"root.iml", rootXmlTemplate())
@@ -85,9 +85,9 @@ object GenIdea {
Seq(destPath, jsonPath),
resolvedDeps.map(pathToLibName),
for(m <- mod.projectDeps)
- yield moduleLabels(m).collect{case Segment.Label(v) => v}.mkString(".").toLowerCase
+ yield moduleName(moduleLabels(m))
)
- Tuple2(".idea_modules"/s"${path.collect{case Segment.Label(v) => v}.mkString(".").toLowerCase}.iml", elem)
+ Tuple2(".idea_modules"/s"${moduleName(path)}.iml", elem)
}
fixedFiles ++ libraries ++ moduleFiles
}
@@ -97,6 +97,14 @@ object GenIdea {
val r = p.relativeTo(pwd/".idea_modules")
(Seq.fill(r.ups)("..") ++ r.segments).mkString("/")
}
+
+ def moduleName(p: Seq[Mirror.Segment]) = p.foldLeft(StringBuilder.newBuilder) {
+ case (sb, Segment.Label(s)) if sb.isEmpty => sb.append(s)
+ case (sb, Segment.Cross(s)) if sb.isEmpty => sb.append(s.mkString("-"))
+ case (sb, Segment.Label(s)) => sb.append(".").append(s)
+ case (sb, Segment.Cross(s)) => sb.append("-").append(s.mkString("-"))
+ }.mkString.toLowerCase()
+
def miscXmlTemplate() = {
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8 (1)" project-jdk-type="JavaSDK">