diff options
author | Roman Timushev <rtimush@gmail.com> | 2017-12-25 03:29:37 +0100 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2017-12-24 18:29:37 -0800 |
commit | a0d16d40156f639090235f67117fe11ce0dbb5e9 (patch) | |
tree | 02f4bc826addc7b16cb44618ff84ebd2faf855fa /scalaplugin | |
parent | 981b7191a2a666447c85c6632d5a2c626d19a849 (diff) | |
download | mill-a0d16d40156f639090235f67117fe11ce0dbb5e9.tar.gz mill-a0d16d40156f639090235f67117fe11ce0dbb5e9.tar.bz2 mill-a0d16d40156f639090235f67117fe11ce0dbb5e9.zip |
Fix Idea project for cross-modules (#80)
Diffstat (limited to 'scalaplugin')
-rw-r--r-- | scalaplugin/src/main/scala/mill/scalaplugin/GenIdea.scala | 14 |
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"> |