From a0d16d40156f639090235f67117fe11ce0dbb5e9 Mon Sep 17 00:00:00 2001 From: Roman Timushev Date: Mon, 25 Dec 2017 03:29:37 +0100 Subject: Fix Idea project for cross-modules (#80) --- scalaplugin/src/main/scala/mill/scalaplugin/GenIdea.scala | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'scalaplugin/src/main') 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() = { -- cgit v1.2.3