@@ -509,12 +509,20 @@ private abstract class MRelationsCommon(
509509 /** Making large Relations a little readable. */
510510 private val userDir = sys.props(" user.dir" ).stripSuffix(" /" ) + " /"
511511 private def nocwd (s : String ) = s stripPrefix userDir
512- private def line_s (kv : (Any , Any )) =
513- " " + nocwd(" " + kv._1) + " -> " + nocwd(" " + kv._2) + " \n "
514- protected def relation_s (r : Relation [_, _]) = (
512+ private def formatAsLines (kvs : Seq [(Any , Any )], indentation : String ): Seq [String ] = {
513+ val stringified = kvs.map { case (k, v) => nocwd(k.toString) -> nocwd(v.toString) }
514+ val longestKey = stringified.map(_._1.length).max
515+ stringified.map {
516+ case (k, v) =>
517+ indentation + " " + k.padTo(longestKey, ' ' ) + " -> " + v + " \n "
518+ }
519+ }
520+ protected def relation_s (r : Relation [_, _], indentation : String ): String = {
515521 if (r.forwardMap.isEmpty) " Relation [ ]"
516- else (r.all.toSeq.map(line_s).sorted) mkString (" Relation [\n " , " " , " ]" )
517- )
522+ else
523+ formatAsLines(r.all.toSeq, indentation).sorted.mkString(" Relation [\n " , " " , indentation + " ]" )
524+ }
525+ protected def relation_s (r : Relation [_, _]): String = relation_s(r, " " )
518526}
519527
520528/**
@@ -663,22 +671,26 @@ private class MRelationsNameHashing(
663671 (srcProd :: libraryDep :: libraryClassName :: memberRef :: inheritance :: classes :: Nil ).hashCode
664672
665673 override def toString : String = {
666- val internalDepsStr = (internalDependencies.dependencies map {
667- case (k, vs) => k + " " + relation_s(vs)
668- }).mkString(" \n " , " \n " , " " )
669- val externalDepsStr = (externalDependencies.dependencies map {
670- case (k, vs) => k + " " + relation_s(vs)
671- }).mkString(" \n " , " \n " , " " )
674+ def color (s : String ) = Console .YELLOW + s + Console .RESET
675+ def nestedRelation (deps : Map [_, Relation [_, _]]): String = {
676+ if (deps.isEmpty) " Relation [ ]"
677+ else {
678+ val indentation = " "
679+ deps
680+ .map { case (k, vs) => color(k.toString) + " : " + relation_s(vs, indentation) }
681+ .mkString(" \n " + indentation, " \n " + indentation, " " )
682+ }
683+ }
672684 s """
673685 |Relations (with name hashing enabled):
674- | products: ${relation_s(srcProd)}
675- | library deps : ${relation_s(libraryDep)}
676- | library class names: ${relation_s(libraryClassName)}
677- | internalDependencies : $internalDepsStr
678- | externalDependencies : $externalDepsStr
679- | class names: ${relation_s(classes)}
680- | used names: ${relation_s(names)}
681- | product class names: ${relation_s(productClassName)}
686+ | ${color( " products" )} : ${relation_s(srcProd)}
687+ | ${color( " library dependencies " )} : ${relation_s(libraryDep)}
688+ | ${color( " library class names" )} : ${relation_s(libraryClassName)}
689+ | ${color( " internal dependencies " )} : ${nestedRelation(internalDependencies.dependencies)}
690+ | ${color( " external dependencies " )} : ${nestedRelation(externalDependencies.dependencies)}
691+ | ${color( " class names" )} : ${relation_s(classes)}
692+ | ${color( " used names" )} : ${relation_s(names)}
693+ | ${color( " product class names" )} : ${relation_s(productClassName)}
682694 """ .trim.stripMargin
683695 }
684696}
0 commit comments