diff options
-rw-r--r-- | book/src/main/scala/book/Book.scala | 6 | ||||
-rw-r--r-- | book/src/main/scalatex/book/handson/ClientServer.scalatex | 15 | ||||
-rw-r--r-- | build.sbt | 55 | ||||
-rw-r--r-- | examples/demos/build.sbt | 4 | ||||
-rw-r--r-- | examples/demos/src/main/scala/scrollmenu/ScrollSpy.scala (renamed from examples/demos/src/main/scala/scrollmenu/ScrollMenu.scala) | 42 | ||||
-rw-r--r-- | project/build.sbt | 4 | ||||
-rw-r--r-- | scalatex/api/src/main/scala/scalatex/package.scala (renamed from scalatexApi/src/main/scala/scalatex/package.scala) | 0 | ||||
-rw-r--r-- | scalatex/api/src/main/scala/scalatex/stages/Compiler.scala (renamed from scalatexApi/src/main/scala/scalatex/stages/Compiler.scala) | 0 | ||||
-rw-r--r-- | scalatex/api/src/main/scala/scalatex/stages/Omg/scala.scala | 8 | ||||
-rw-r--r-- | scalatex/api/src/main/scala/scalatex/stages/Parser.scala (renamed from scalatexApi/src/main/scala/scalatex/stages/Parser.scala) | 0 | ||||
-rw-r--r-- | scalatex/api/src/main/scala/scalatex/stages/Trim.scala (renamed from scalatexApi/src/main/scala/scalatex/stages/Trim.scala) | 0 | ||||
-rw-r--r-- | scalatex/api/src/test/scala/scalatex/BasicTests.scala (renamed from scalatexApi/src/test/scala/scalatex/BasicTests.scala) | 0 | ||||
-rw-r--r-- | scalatex/api/src/test/scala/scalatex/ErrorTests.scala (renamed from scalatexApi/src/test/scala/scalatex/ErrorTests.scala) | 0 | ||||
-rw-r--r-- | scalatex/api/src/test/scala/scalatex/ParserTests.scala (renamed from scalatexApi/src/test/scala/scalatex/ParserTests.scala) | 0 | ||||
-rw-r--r-- | scalatex/api/src/test/scala/scalatex/TestUtil.scala (renamed from scalatexApi/src/test/scala/scalatex/TestUtil.scala) | 0 | ||||
-rw-r--r-- | scalatex/build.sbt | 44 | ||||
-rwxr-xr-x | scalatex/compilerPlugin/src/main/resources/scalac-plugin.xml | 4 | ||||
-rwxr-xr-x | scalatex/compilerPlugin/src/main/scala/scalatex/CompilerPlugin.scala (renamed from scalatexPlugin/src/main/scala/scalatex/ScalaTexPlugin.scala) | 47 | ||||
-rw-r--r-- | scalatex/project/build.properties | 1 | ||||
-rw-r--r-- | scalatex/project/build.sbt | 1 | ||||
-rw-r--r-- | scalatex/scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala (renamed from scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala) | 0 | ||||
-rw-r--r-- | scalatex/scalaParser/src/main/scala/scalaParser/syntax/Basic.scala (renamed from scalaParser/src/main/scala/scalaParser/syntax/Basic.scala) | 0 | ||||
-rw-r--r-- | scalatex/scalaParser/src/main/scala/scalaParser/syntax/Identifiers.scala (renamed from scalaParser/src/main/scala/scalaParser/syntax/Identifiers.scala) | 0 | ||||
-rw-r--r-- | scalatex/scalaParser/src/main/scala/scalaParser/syntax/Literals.scala (renamed from scalaParser/src/main/scala/scalaParser/syntax/Literals.scala) | 0 | ||||
-rw-r--r-- | scalatex/scalaParser/src/test/scala/scalaParser/SyntaxTest.scala (renamed from scalaParser/src/test/scala/scalaParser/SyntaxTest.scala) | 0 | ||||
-rw-r--r-- | scalatex/scalatexSbtPlugin/src/main/scala/SbtPlugin.scala | 16 | ||||
-rw-r--r-- | scalatexApi/src/test/scala/scalatex/AdvancedTests.scala | 120 | ||||
-rwxr-xr-x | scalatexPlugin/src/main/resources/scalac-plugin.xml | 4 |
28 files changed, 154 insertions, 217 deletions
diff --git a/book/src/main/scala/book/Book.scala b/book/src/main/scala/book/Book.scala index d023d56..71c0d65 100644 --- a/book/src/main/scala/book/Book.scala +++ b/book/src/main/scala/book/Book.scala @@ -25,7 +25,7 @@ object Book { "META-INF/resources/webjars/font-awesome/4.2.0/fonts/fontawesome-webfont.woff", "css/side-menu.css", "example-opt.js", - "example-opt.js.map", +// "example-opt.js.map", "webpage/weather.js", "favicon.svg", "favicon.png" @@ -72,6 +72,7 @@ object Book { script(raw(googleAnalytics)) ), body( + onload:=s"Controller().main($data)", div(id:="layout")( a(href:="#menu", id:="menuLink", cls:="menu-link")( span @@ -83,8 +84,7 @@ object Book { div(id:="main-box")( txt ) - ), - script(raw(s"Controller().main($data)")) + ) ) ) ).render diff --git a/book/src/main/scalatex/book/handson/ClientServer.scalatex b/book/src/main/scalatex/book/handson/ClientServer.scalatex index 48d35f2..50afe76 100644 --- a/book/src/main/scalatex/book/handson/ClientServer.scalatex +++ b/book/src/main/scalatex/book/handson/ClientServer.scalatex @@ -1,5 +1,12 @@ @import BookData._ +@def lazyload(id: String) = script(raw(""" + document.addEventListener("load", function(){ + document.getElementById(id).src = 'https://hands-on-scala-js.herokuapp.com/' + }) +""")) + + @p Historically, sharing code across client & server has been a holy-grail for web development. There are many things which have made it hard in the past: @@ -75,7 +82,9 @@ @p Now, if we go to the browser at @code{localhost:8080}, we should see our web-page! - @iframe(src:="https://hands-on-scala-js.herokuapp.com/", width:="100%", height:="350px", "frameBorder".attr:="0") + @iframe(id:="heroku1", width:="100%", height:="350px", "frameBorder".attr:="0") + @lazyload("heroku1") + @p This is a real, live example running on a @lnk("Heroku server", "https://hands-on-scala-js.herokuapp.com/"). Feel free to poke around and explore the filesystem on the server, just to convince yourself that this actually works and is not just a mock up. @@ -215,7 +224,9 @@ @p Other than that, nothing much has changed. If you've done this correctly, the web application will look and behave exactly as it did earlier! - @iframe(src:="https://hands-on-scala-js.herokuapp.com/", width:="100%", height:="350px", "frameBorder".attr:="0") + @iframe(id:="heroku2", width:="100%", height:="350px", "frameBorder".attr:="0") + @lazyload("heroku2") + @p So why did we do this in the first place? @@ -16,67 +16,26 @@ val sharedSettings = Seq( autoCompilerPlugins := true ) -lazy val scalaParser = project.settings(sharedSettings:_*) - .settings( - libraryDependencies ++= Seq( - "com.lihaoyi" %% "utest" % "0.2.4", - "org.parboiled" %% "parboiled" % "2.0.1" - ), - testFrameworks += new TestFramework("utest.runner.JvmFramework") -) -lazy val scalatexApi = project.settings(sharedSettings:_*) - .dependsOn(scalaParser) - .settings( - libraryDependencies ++= Seq( - "com.lihaoyi" %% "utest" % "0.2.4", - "com.scalatags" %% "scalatags" % "0.4.2", - "org.scala-lang" % "scala-reflect" % scalaVersion.value, - "org.parboiled" %% "parboiled" % "2.0.1" - ), - testFrameworks += new TestFramework("utest.runner.JvmFramework") -) - -lazy val scalatexPlugin = Project( - id = "scalatexPlugin", - base = file("scalatexPlugin"), - dependencies = Seq(scalatexApi) -).settings(sharedSettings:_*).settings( - libraryDependencies += "org.scala-lang" % "scala-compiler" % scalaVersion.value, - publishArtifact in Compile := false -) lazy val book = Project( id = "book", - base = file("book"), - dependencies = Seq(scalatexApi) -).settings(sharedSettings:_*).settings( + base = file("book") +).settings(sharedSettings ++ inConfig(Compile)(scalatex.SbtPlugin.settings):_*).settings( libraryDependencies ++= Seq( "org.webjars" % "highlightjs" % "8.2-1", "org.webjars" % "pure" % "0.5.0", "org.webjars" % "font-awesome" % "4.2.0", + "com.scalatags" %% "scalatags" % "0.4.2", "com.lihaoyi" %%% "upickle" % "0.2.5" ), - (resources in Compile) ++= { + (resources in Compile) += { (fullOptJS in (demos, Compile)).value - Seq( - (artifactPath in (demos, Compile, fullOptJS)).value, - new java.io.File((artifactPath in (demos, Compile, fullOptJS)).value.getPath + ".map") - ) + (artifactPath in (demos, Compile, fullOptJS)).value }, + (unmanagedResourceDirectories in Compile) ++= (unmanagedResourceDirectories in (demos, Compile)).value, - scalacOptions in Compile ++= { - val jar = (Keys.`package` in (scalatexPlugin, Compile)).value - val addPlugin = "-Xplugin:" + jar.getAbsolutePath - // add plugin timestamp to compiler options to trigger recompile of - // main after editing the plugin. (Otherwise a 'clean' is needed.) - val dummy = "-Jdummy=" + jar.lastModified - val options = "-P:scalatex-options:" + sourceDirectory.value / "scalatex" - Seq(addPlugin, dummy) - }, - watchSources ++= { - ((sourceDirectory in Compile).value / "scalatex" ** "*.scalatex").get - }, + cloneRepos := { val localPath = target.value / "clones" if (!localPath.isDirectory){ diff --git a/examples/demos/build.sbt b/examples/demos/build.sbt index 5b55829..aa801b0 100644 --- a/examples/demos/build.sbt +++ b/examples/demos/build.sbt @@ -1,4 +1,6 @@ -import scala.scalajs.sbtplugin.ScalaJSPlugin.ScalaJSKeys.jsDependencies +import scala.scalajs.sbtplugin.ScalaJSPlugin.ScalaJSKeys._ + +(emitSourceMaps in fullOptJS) := false scalaJSSettings diff --git a/examples/demos/src/main/scala/scrollmenu/ScrollMenu.scala b/examples/demos/src/main/scala/scrollmenu/ScrollSpy.scala index ce3f07f..736f9b3 100644 --- a/examples/demos/src/main/scala/scrollmenu/ScrollMenu.scala +++ b/examples/demos/src/main/scala/scrollmenu/ScrollSpy.scala @@ -15,7 +15,7 @@ case class MenuNode(frag: dom.HTMLElement, id: String, start: Int, end: Int) */ class ScrollSpy(structure: Tree[String], main: dom.HTMLElement){ - val (headers, domTrees) = { + lazy val domTrees = { var i = -1 def recurse(t: Tree[String], depth: Int): Tree[MenuNode] = { val curr = @@ -40,26 +40,26 @@ class ScrollSpy(structure: Tree[String], children ) } - def offset(el: dom.HTMLElement, parent: dom.HTMLElement): Double = { - if (el == parent) 0 - else el.offsetTop + offset(el.offsetParent.asInstanceOf[dom.HTMLElement], parent) - } - val headers = { - val menuItems = { - def rec(current: Tree[String]): Seq[String] = { - current.value +: current.children.flatMap(rec) - } - rec(structure).tail - } - js.Array( - menuItems.map(Controller.munge) - .map(dom.document.getElementById) - .map(offset(_, main)):_* - ) - } val domTrees = recurse(structure, 0) - (headers, domTrees) + domTrees + } + def offset(el: dom.HTMLElement, parent: dom.HTMLElement): Double = { + if (el == parent) 0 + else el.offsetTop + offset(el.offsetParent.asInstanceOf[dom.HTMLElement], parent) + } + lazy val headers = { + val menuItems = { + def rec(current: Tree[String]): Seq[String] = { + current.value +: current.children.flatMap(rec) + } + rec(structure).tail + } + + js.Array( + menuItems.map(name => dom.document.getElementById(Controller.munge(name))) + .map((el) => () => offset(el, main)):_* + ) } var open = false @@ -113,8 +113,8 @@ class ScrollSpy(structure: Tree[String], val t @ Tree(m, children) = tree val win = if(m.start == -1) true else { - val before = headers(m.start) <= scrollTop - val after = (m.end >= headers.length) || headers(m.end) > scrollTop + val before = headers(m.start)() <= scrollTop + val after = (m.end >= headers.length) || headers(m.end)() > scrollTop before && after } val childIndexes = children.map(walkIndex) diff --git a/project/build.sbt b/project/build.sbt index e04b021..489e892 100644 --- a/project/build.sbt +++ b/project/build.sbt @@ -4,4 +4,6 @@ addSbtPlugin("com.lihaoyi" % "utest-js-plugin" % "0.2.4") addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "0.7.4") -libraryDependencies += "org.eclipse.jgit" % "org.eclipse.jgit" % "3.5.1.201410131835-r"
\ No newline at end of file +libraryDependencies += "org.eclipse.jgit" % "org.eclipse.jgit" % "3.5.1.201410131835-r" + +addSbtPlugin("com.lihaoyi" % "scalatex-sbt-plugin" % "0.1.0") diff --git a/scalatexApi/src/main/scala/scalatex/package.scala b/scalatex/api/src/main/scala/scalatex/package.scala index 1f13e63..1f13e63 100644 --- a/scalatexApi/src/main/scala/scalatex/package.scala +++ b/scalatex/api/src/main/scala/scalatex/package.scala diff --git a/scalatexApi/src/main/scala/scalatex/stages/Compiler.scala b/scalatex/api/src/main/scala/scalatex/stages/Compiler.scala index 3df8da7..3df8da7 100644 --- a/scalatexApi/src/main/scala/scalatex/stages/Compiler.scala +++ b/scalatex/api/src/main/scala/scalatex/stages/Compiler.scala diff --git a/scalatex/api/src/main/scala/scalatex/stages/Omg/scala.scala b/scalatex/api/src/main/scala/scalatex/stages/Omg/scala.scala new file mode 100644 index 0000000..81fa1f9 --- /dev/null +++ b/scalatex/api/src/main/scala/scalatex/stages/Omg/scala.scala @@ -0,0 +1,8 @@ +package scalatex.stages.Omg + +/** + * Created by haoyi on 12/3/14. + */ +class scala { + +} diff --git a/scalatexApi/src/main/scala/scalatex/stages/Parser.scala b/scalatex/api/src/main/scala/scalatex/stages/Parser.scala index 0b87d97..0b87d97 100644 --- a/scalatexApi/src/main/scala/scalatex/stages/Parser.scala +++ b/scalatex/api/src/main/scala/scalatex/stages/Parser.scala diff --git a/scalatexApi/src/main/scala/scalatex/stages/Trim.scala b/scalatex/api/src/main/scala/scalatex/stages/Trim.scala index 8993734..8993734 100644 --- a/scalatexApi/src/main/scala/scalatex/stages/Trim.scala +++ b/scalatex/api/src/main/scala/scalatex/stages/Trim.scala diff --git a/scalatexApi/src/test/scala/scalatex/BasicTests.scala b/scalatex/api/src/test/scala/scalatex/BasicTests.scala index 4bc362c..4bc362c 100644 --- a/scalatexApi/src/test/scala/scalatex/BasicTests.scala +++ b/scalatex/api/src/test/scala/scalatex/BasicTests.scala diff --git a/scalatexApi/src/test/scala/scalatex/ErrorTests.scala b/scalatex/api/src/test/scala/scalatex/ErrorTests.scala index d8cd4f5..d8cd4f5 100644 --- a/scalatexApi/src/test/scala/scalatex/ErrorTests.scala +++ b/scalatex/api/src/test/scala/scalatex/ErrorTests.scala diff --git a/scalatexApi/src/test/scala/scalatex/ParserTests.scala b/scalatex/api/src/test/scala/scalatex/ParserTests.scala index 9a4ee63..9a4ee63 100644 --- a/scalatexApi/src/test/scala/scalatex/ParserTests.scala +++ b/scalatex/api/src/test/scala/scalatex/ParserTests.scala diff --git a/scalatexApi/src/test/scala/scalatex/TestUtil.scala b/scalatex/api/src/test/scala/scalatex/TestUtil.scala index 5a72677..5a72677 100644 --- a/scalatexApi/src/test/scala/scalatex/TestUtil.scala +++ b/scalatex/api/src/test/scala/scalatex/TestUtil.scala diff --git a/scalatex/build.sbt b/scalatex/build.sbt new file mode 100644 index 0000000..4769bad --- /dev/null +++ b/scalatex/build.sbt @@ -0,0 +1,44 @@ +val sharedSettings = Seq( + version := "0.1.0", + organization := "com.lihaoyi", + crossScalaVersions:= Seq("2.10.4", "2.11.2"), + scalaVersion := "2.11.4", + libraryDependencies += "com.lihaoyi" %% "acyclic" % "0.1.2" % "provided", + addCompilerPlugin("com.lihaoyi" %% "acyclic" % "0.1.2"), + autoCompilerPlugins := true +) + +lazy val scalaParser = project.settings(sharedSettings:_*) + .settings( + name := "scala-parser-lite", + libraryDependencies ++= Seq( + "com.lihaoyi" %% "utest" % "0.2.4", + "org.parboiled" %% "parboiled" % "2.0.1" + ), + testFrameworks += new TestFramework("utest.runner.JvmFramework") + ) +lazy val api = project.settings(sharedSettings:_*) + .dependsOn(scalaParser) + .settings( + name := "scalatex-api", + libraryDependencies ++= Seq( + "com.lihaoyi" %% "utest" % "0.2.4", + "com.scalatags" %% "scalatags" % "0.4.2", + "org.scala-lang" % "scala-reflect" % scalaVersion.value, + "org.parboiled" %% "parboiled" % "2.0.1" + ), + testFrameworks += new TestFramework("utest.runner.JvmFramework") + ) + +lazy val scalatexSbtPlugin = project.settings(sharedSettings:_*) + .settings( + name := "scalatex-sbt-plugin", + scalaVersion := "2.10.4", + sbtPlugin := true +) +lazy val compilerPlugin = project.settings(sharedSettings:_*) + .dependsOn(api) + .settings( + name := "scalatex-compiler-plugin", + libraryDependencies += "org.scala-lang" % "scala-compiler" % scalaVersion.value +)
\ No newline at end of file diff --git a/scalatex/compilerPlugin/src/main/resources/scalac-plugin.xml b/scalatex/compilerPlugin/src/main/resources/scalac-plugin.xml new file mode 100755 index 0000000..a446f13 --- /dev/null +++ b/scalatex/compilerPlugin/src/main/resources/scalac-plugin.xml @@ -0,0 +1,4 @@ +<plugin> + <name>demo-plugin</name> + <classname>scalatex.CompilerPlugin</classname> +</plugin>
\ No newline at end of file diff --git a/scalatexPlugin/src/main/scala/scalatex/ScalaTexPlugin.scala b/scalatex/compilerPlugin/src/main/scala/scalatex/CompilerPlugin.scala index 6686258..e122de5 100755 --- a/scalatexPlugin/src/main/scala/scalatex/ScalaTexPlugin.scala +++ b/scalatex/compilerPlugin/src/main/scala/scalatex/CompilerPlugin.scala @@ -7,40 +7,52 @@ import scala.reflect.io.VirtualFile import scala.tools.nsc.{ Global, Phase } import scala.tools.nsc.plugins.{ Plugin, PluginComponent } -class ScalaTexPlugin(val global: Global) extends Plugin { +class CompilerPlugin(val global: Global) extends Plugin { import global._ - println(options) - val name = "scalatex-plugin" - val description = "Enforces coding standards" + + override def init(options: List[String], error: String => Unit): Boolean = true + + val name = "scalatex" + val description = "Compiles scalatex files into Scala compilation units" val components = List[PluginComponent](DemoComponent) private object DemoComponent extends PluginComponent { - val global = ScalaTexPlugin.this.global + + val global = CompilerPlugin.this.global import global._ override val runsAfter = List("parser") override val runsBefore = List("namer") val phaseName = "Demo" - val scalatexRoot = "book/src/main/scalatex" + override def newPhase(prev: Phase) = new GlobalPhase(prev) { + val splitOptions = options.map(o => o.splitAt(o.indexOf(":")+1)) + val scalatexRoots = splitOptions.collect{case ("root:", p) => p} override def run() = { - def recursiveListFiles(f: java.io.File): Array[java.io.File] = { - val (dirs, files) = f.listFiles().partition(_.isDirectory) - files ++ dirs.flatMap(recursiveListFiles) + def recursiveListFiles(f: java.io.File): Iterator[java.io.File] = { + val (dirs, files) = + Option(f.listFiles()) + .toSeq + .flatten + .partition(_.isDirectory) + files.iterator ++ dirs.iterator.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) { + for { + scalatexRoot <- scalatexRoots + file <- recursiveListFiles(new java.io.File(scalatexRoot)) + } { + val name = file.getCanonicalPath + val fakeJfile = new java.io.File(name) + val txt = io.Source.fromFile(name).mkString + val virtualFile = new VirtualFile(name) { override def file = fakeJfile } val sourceFile = new BatchSourceFile(virtualFile, txt) val unit = new CompilationUnit(sourceFile) - val name = file.getName - val objectName = name.slice(name.lastIndexOf('/'), name.lastIndexOf('.')) + val objectName = name.slice(name.lastIndexOf('/')+1, name.lastIndexOf('.')) val pkgName = Paths.get(scalatexRoot) - .relativize(file.getParentFile.toPath) + .relativize(fakeJfile.getParentFile.toPath) .toString .split("/") .map(s => s"package $s") @@ -49,8 +61,9 @@ class ScalaTexPlugin(val global: Global) extends Plugin { val shim = s""" $pkgName import scalatags.Text.all._ + object $objectName{ - def apply() = scalatex.twf("${file.getPath}") + def apply() = scalatex.twf("${name}") } """ unit.body = global.newUnitParser(shim).parse() diff --git a/scalatex/project/build.properties b/scalatex/project/build.properties new file mode 100644 index 0000000..748703f --- /dev/null +++ b/scalatex/project/build.properties @@ -0,0 +1 @@ +sbt.version=0.13.7 diff --git a/scalatex/project/build.sbt b/scalatex/project/build.sbt new file mode 100644 index 0000000..f1db6ad --- /dev/null +++ b/scalatex/project/build.sbt @@ -0,0 +1 @@ +addSbtPlugin("com.lihaoyi" % "utest-js-plugin" % "0.2.4") diff --git a/scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala b/scalatex/scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala index de9f039..de9f039 100644 --- a/scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala +++ b/scalatex/scalaParser/src/main/scala/scalaParser/ScalaSyntax.scala diff --git a/scalaParser/src/main/scala/scalaParser/syntax/Basic.scala b/scalatex/scalaParser/src/main/scala/scalaParser/syntax/Basic.scala index 8d3232a..8d3232a 100644 --- a/scalaParser/src/main/scala/scalaParser/syntax/Basic.scala +++ b/scalatex/scalaParser/src/main/scala/scalaParser/syntax/Basic.scala diff --git a/scalaParser/src/main/scala/scalaParser/syntax/Identifiers.scala b/scalatex/scalaParser/src/main/scala/scalaParser/syntax/Identifiers.scala index 4bc972f..4bc972f 100644 --- a/scalaParser/src/main/scala/scalaParser/syntax/Identifiers.scala +++ b/scalatex/scalaParser/src/main/scala/scalaParser/syntax/Identifiers.scala diff --git a/scalaParser/src/main/scala/scalaParser/syntax/Literals.scala b/scalatex/scalaParser/src/main/scala/scalaParser/syntax/Literals.scala index 9fd9d5b..9fd9d5b 100644 --- a/scalaParser/src/main/scala/scalaParser/syntax/Literals.scala +++ b/scalatex/scalaParser/src/main/scala/scalaParser/syntax/Literals.scala diff --git a/scalaParser/src/test/scala/scalaParser/SyntaxTest.scala b/scalatex/scalaParser/src/test/scala/scalaParser/SyntaxTest.scala index fe5fc2c..fe5fc2c 100644 --- a/scalaParser/src/test/scala/scalaParser/SyntaxTest.scala +++ b/scalatex/scalaParser/src/test/scala/scalaParser/SyntaxTest.scala diff --git a/scalatex/scalatexSbtPlugin/src/main/scala/SbtPlugin.scala b/scalatex/scalatexSbtPlugin/src/main/scala/SbtPlugin.scala new file mode 100644 index 0000000..f09dc17 --- /dev/null +++ b/scalatex/scalatexSbtPlugin/src/main/scala/SbtPlugin.scala @@ -0,0 +1,16 @@ +package scalatex + +import sbt.Keys._ +import sbt._ +object SbtPlugin extends sbt.Plugin{ + val scalatexDirectory = taskKey[sbt.File]("Clone stuff from github") + override val settings = Seq( + scalatexDirectory := sourceDirectory.value / "scalatex", + scalacOptions += { + "-P:scalatex:root:" + scalatexDirectory.value.getCanonicalPath + }, + watchSources += scalatexDirectory.value, + addCompilerPlugin("com.lihaoyi" %% "scalatex-compiler-plugin" % "0.1.0"), + libraryDependencies += "com.lihaoyi" %% "scalatex-api" % "0.1.0" + ) +} diff --git a/scalatexApi/src/test/scala/scalatex/AdvancedTests.scala b/scalatexApi/src/test/scala/scalatex/AdvancedTests.scala deleted file mode 100644 index cbca40a..0000000 --- a/scalatexApi/src/test/scala/scalatex/AdvancedTests.scala +++ /dev/null @@ -1,120 +0,0 @@ -//package scalatex -// -//import utest._ -//import scalatex.stages._ -//import scalatags.Text.all._ -// -// -///** -//* Created by haoyi on 7/14/14. -//*/ -//object AdvancedTests extends TestSuite{ -// import TestUtil._ -// -// val tests = TestSuite{ -// 'localDef{ -// check( -// tw(""" -// @lol(n: Int) = @{ -// "omg" * n -// } -// -// @lol(2) -// """), -// "omgomg" -// ) -// } -// 'innerTemplate{ -// check( -// tw(""" -// @lol(f: Int) = -// omg @f -// -// @lol(1) -// @lol(2: Int) -// @lol(3 + 1) -// """), -// tw(""" -// @lol(f: Int) ={ -// omg @f -// } -// @lol(1) -// @lol(2: Int) -// @lol(3 + 1) -// """), -// tw(""" -// @lol(f: Int) = { -// omg @f -// } -// @lol(1) -// @lol(2: Int) -// @lol(3 + 1) -// """), -// """ -// omg1omg2omg4 -// """ -// ) -// } -// 'innerInnerTemplate{ -// check( -// tw(""" -// @lol(f: Int) = -// @wtf(g: Int) = -// wtf @g -// -// @wtf(1 + 2 + 3) -// @wtf(f) -// -// @lol(1) -// @lol(2: Int) -// @lol(3 + 1) -// """), -// tw(""" -// @lol(f: Int) = { -// @wtf(g: Int) = { -// wtf @g -// } -// @wtf(1 + 2 + 3) -// @wtf(f) -// } -// @lol(1) -// @lol(2: Int) -// @lol(3 + 1) -// """), -// tw(""" -// @lol(f: Int) = { -// @wtf(g: Int) = -// wtf @g -// -// @wtf(1 + 2 + 3) -// @wtf(f) -// } -// @lol(1) -// @lol(2: Int) -// @lol(3 + 1) -// """), -// tw(""" -// @lol(f: Int) = -// @wtf(g: Int) = { -// wtf @g -// } -// @wtf(1 + 2 + 3) -// @wtf(f) -// -// @lol(1) -// @lol(2: Int) -// @lol(3 + 1) -// """), -// """ -// wtf6 -// wtf1 -// wtf6 -// wtf2 -// wtf6 -// wtf4 -// """ -// ) -// } -// -// } -//} diff --git a/scalatexPlugin/src/main/resources/scalac-plugin.xml b/scalatexPlugin/src/main/resources/scalac-plugin.xml deleted file mode 100755 index d4062fa..0000000 --- a/scalatexPlugin/src/main/resources/scalac-plugin.xml +++ /dev/null @@ -1,4 +0,0 @@ -<plugin> - <name>demo-plugin</name> - <classname>scalatex.ScalaTexPlugin</classname> -</plugin>
\ No newline at end of file |