summaryrefslogtreecommitdiff
path: root/scalatexPlugin/src/main/scala/scalatex/ScalaTexPlugin.scala
diff options
context:
space:
mode:
authorLi Haoyi <haoyi@dropbox.com>2014-11-02 00:30:33 -0700
committerLi Haoyi <haoyi@dropbox.com>2014-11-02 00:30:33 -0700
commitd00a2e25a9ee527fa39feb04c3137715501e9fda (patch)
tree250e6272708f3f346e2e91ef2f0b76eebfc953b3 /scalatexPlugin/src/main/scala/scalatex/ScalaTexPlugin.scala
parent00746e5c8d1d731d0a0cb581f3bddadde31d0d31 (diff)
downloadhands-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/main/scala/scalatex/ScalaTexPlugin.scala')
-rwxr-xr-xscalatexPlugin/src/main/scala/scalatex/ScalaTexPlugin.scala21
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._