diff options
author | Li Haoyi <haoyi@dropbox.com> | 2014-11-02 00:30:33 -0700 |
---|---|---|
committer | Li Haoyi <haoyi@dropbox.com> | 2014-11-02 00:30:33 -0700 |
commit | d00a2e25a9ee527fa39feb04c3137715501e9fda (patch) | |
tree | 250e6272708f3f346e2e91ef2f0b76eebfc953b3 /scalatexPlugin/src | |
parent | 00746e5c8d1d731d0a0cb581f3bddadde31d0d31 (diff) | |
download | hands-on-scala-js-d00a2e25a9ee527fa39feb04c3137715501e9fda.tar.gz hands-on-scala-js-d00a2e25a9ee527fa39feb04c3137715501e9fda.tar.bz2 hands-on-scala-js-d00a2e25a9ee527fa39feb04c3137715501e9fda.zip |
Moved things into folders, sketched out a broad skeleton of the rest of the book
Diffstat (limited to 'scalatexPlugin/src')
-rwxr-xr-x | scalatexPlugin/src/main/scala/scalatex/ScalaTexPlugin.scala | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/scalatexPlugin/src/main/scala/scalatex/ScalaTexPlugin.scala b/scalatexPlugin/src/main/scala/scalatex/ScalaTexPlugin.scala index 4808661..910639f 100755 --- a/scalatexPlugin/src/main/scala/scalatex/ScalaTexPlugin.scala +++ b/scalatexPlugin/src/main/scala/scalatex/ScalaTexPlugin.scala @@ -1,5 +1,7 @@ package scalatex +import java.nio.file.Paths + import scala.reflect.internal.util.BatchSourceFile import scala.reflect.io.VirtualFile import scala.tools.nsc.{ Global, Phase } @@ -19,10 +21,15 @@ class ScalaTexPlugin(val global: Global) extends Plugin { override val runsBefore = List("namer") val phaseName = "Demo" - + val scalatexRoot = "book/src/main/scalatex" override def newPhase(prev: Phase) = new GlobalPhase(prev) { override def run() = { - for (file <- new java.io.File("book/src/main/scalatex/book").listFiles()) { + def recursiveListFiles(f: java.io.File): Array[java.io.File] = { + val these = f.listFiles + val (dirs, files) = f.listFiles().partition(_.isDirectory) + files ++ dirs.flatMap(recursiveListFiles) + } + for (file <- recursiveListFiles(new java.io.File(scalatexRoot))) { val txt = io.Source.fromFile(file).mkString val fakeJfile = new java.io.File(file.getName) val virtualFile = new VirtualFile(file.getName) { @@ -32,8 +39,16 @@ class ScalaTexPlugin(val global: Global) extends Plugin { val unit = new CompilationUnit(sourceFile) val name = file.getName val objectName = name.slice(name.lastIndexOf('/'), name.lastIndexOf('.')) + val pkgName = + Paths.get(scalatexRoot) + .relativize(file.getParentFile.toPath) + .toString + .split("/") + .map(s => s"package $s") + .mkString("\n") + val shim = s""" - package book + $pkgName import Book._ import Utils.sect import scalatags.Text.all._ |