summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2015-04-24 09:55:38 -0700
committerLi Haoyi <haoyi.sg@gmail.com>2015-04-24 09:55:38 -0700
commit1c871406fdd08157e70fe4dfe2f59c517f7d0357 (patch)
tree494ce288228c5b3cf82a3a2e27b0cc078e55663e
parent0fae432ed016499aa1e290a3518fcd7ca5d91832 (diff)
parentcdef282f9eb5a45d41228e4764a184df98bbb337 (diff)
downloadworkbench-1c871406fdd08157e70fe4dfe2f59c517f7d0357.tar.gz
workbench-1c871406fdd08157e70fe4dfe2f59c517f7d0357.tar.bz2
workbench-1c871406fdd08157e70fe4dfe2f59c517f7d0357.zip
Merge pull request #20 from nightscape/update_scala_js
First shot at updating Scala.js
-rw-r--r--build.sbt29
-rw-r--r--client/src/main/scala/workbench/WorkbenchClient.scala5
-rw-r--r--example/build.sbt12
-rw-r--r--example/project/build.properties2
-rw-r--r--example/project/build.sbt2
-rw-r--r--project/build.sbt2
-rw-r--r--src/main/scala/workbench/Plugin.scala25
-rw-r--r--src/main/scala/workbench/Server.scala11
8 files changed, 43 insertions, 45 deletions
diff --git a/build.sbt b/build.sbt
index e77fd6a..6fe54d2 100644
--- a/build.sbt
+++ b/build.sbt
@@ -1,6 +1,6 @@
import sbt.Keys._
-import scala.scalajs.sbtplugin.ScalaJSPlugin._
-import ScalaJSKeys._
+
+val scalaJsVersion = "0.6.2"
val defaultSettings = Seq(
unmanagedSourceDirectories in Compile <+= baseDirectory(_ / "shared" / "main" / "scala"),
@@ -11,7 +11,7 @@ lazy val root = project.in(file(".")).settings(defaultSettings:_*).settings(
name := "workbench",
version := "0.2.3",
organization := "com.lihaoyi",
- scalaVersion := "2.10.4",
+ scalaVersion := "2.10.5",
sbtPlugin := true,
publishArtifact in Test := false,
publishTo := Some("releases" at "https://oss.sonatype.org/service/local/staging/deploy/maven2"),
@@ -42,28 +42,27 @@ lazy val root = project.in(file(".")).settings(defaultSettings:_*).settings(
resolvers += Resolver.url("scala-js-releases",
url("http://dl.bintray.com/content/scala-js/scala-js-releases"))(
Resolver.ivyStylePatterns),
- addSbtPlugin("org.scala-lang.modules.scalajs" % "scalajs-sbt-plugin" % "0.5.4"),
+ addSbtPlugin("org.scala-js" % "sbt-scalajs" % scalaJsVersion),
libraryDependencies ++= Seq(
"org.scala-lang" % "scala-compiler" % scalaVersion.value,
- "org.scala-lang.modules.scalajs" % s"scalajs-compiler_${scalaVersion.value}" % "0.5.4",
- "org.scala-lang.modules.scalajs" %% "scalajs-tools" % "0.5.4",
"io.spray" % "spray-can" % "1.3.1",
"io.spray" % "spray-routing" % "1.3.1",
- "com.typesafe.akka" %% "akka-actor" % "2.3.0",
- "org.scala-lang.modules" %% "scala-async" % "0.9.1" % "provided",
- "com.lihaoyi" %% "autowire" % "0.2.3",
- "com.lihaoyi" %% "upickle" % "0.2.5"
+ "com.typesafe.akka" %% "akka-actor" % "2.3.9",
+ "org.scala-lang.modules" %% "scala-async" % "0.9.3" % "provided",
+ "com.lihaoyi" %% "autowire" % "0.2.5",
+ "com.lihaoyi" %% "upickle" % "0.2.8"
),
resolvers += "bintray/non" at "http://dl.bintray.com/non/maven"
)
-lazy val client = project.in(file("client"))
- .settings(defaultSettings ++ scalaJSSettings:_*)
+lazy val client = project.in(file("client")).enablePlugins(ScalaJSPlugin)
+ .settings(defaultSettings: _*)
.settings(
+ unmanagedSourceDirectories in Compile <+= baseDirectory(_ / ".." / "shared" / "main" / "scala"),
libraryDependencies ++= Seq(
- "org.scala-lang.modules.scalajs" %%% "scalajs-dom" % "0.6",
- "com.lihaoyi" %%% "autowire" % "0.2.3",
- "com.lihaoyi" %%% "upickle" % "0.2.5"
+ "org.scala-js" %%% "scalajs-dom" % "0.8.0",
+ "com.lihaoyi" %%% "autowire" % "0.2.4",
+ "com.lihaoyi" %%% "upickle" % "0.2.6"
),
emitSourceMaps := false
)
diff --git a/client/src/main/scala/workbench/WorkbenchClient.scala b/client/src/main/scala/workbench/WorkbenchClient.scala
index f4ee2c6..dc99bbc 100644
--- a/client/src/main/scala/workbench/WorkbenchClient.scala
+++ b/client/src/main/scala/workbench/WorkbenchClient.scala
@@ -1,11 +1,12 @@
package com.lihaoyi.workbench
import upickle._
import org.scalajs.dom
-import org.scalajs.dom.extensions._
+import org.scalajs.dom.ext._
import upickle.{Reader, Writer, Js}
import scala.scalajs.js
import scala.scalajs.js.annotation.JSExport
import scalajs.concurrent.JSExecutionContext.Implicits.runNow
+import org.scalajs.dom.raw._
/**
* The connection from workbench server to the client
@@ -69,7 +70,7 @@ object WorkbenchClient extends Api{
}
@JSExport
override def run(path: String, bootSnippet: Option[String]): Unit = {
- val tag = dom.document.createElement("script")
+ val tag = dom.document.createElement("script").asInstanceOf[HTMLElement]
var loaded = false
tag.setAttribute("src", path)
diff --git a/example/build.sbt b/example/build.sbt
index 0bca703..fed07bd 100644
--- a/example/build.sbt
+++ b/example/build.sbt
@@ -1,9 +1,7 @@
-// Turn this project into a Scala.js project by importing these settings
-import scala.scalajs.sbtplugin.ScalaJSPlugin._
-import ScalaJSKeys._
import com.lihaoyi.workbench.Plugin._
-scalaJSSettings
+// Turn this project into a Scala.js project by importing these settings
+enablePlugins(ScalaJSPlugin)
workbenchSettings
@@ -16,12 +14,12 @@ version := "0.1-SNAPSHOT"
resolvers += "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/"
libraryDependencies ++= Seq(
- "org.scala-lang.modules.scalajs" %%% "scalajs-dom" % "0.6"
+ "org.scala-js" %%% "scalajs-dom" % "0.8.0"
)
bootSnippet := "ScalaJSExample().main();"
-ScalaJSKeys.inliningMode := scala.scalajs.sbtplugin.InliningMode.Off
+disableOptimizer := true
-spliceBrowsers <<= spliceBrowsers.triggeredBy(ScalaJSKeys.fastOptJS in Compile)
+spliceBrowsers <<= spliceBrowsers.triggeredBy(fastOptJS in Compile)
diff --git a/example/project/build.properties b/example/project/build.properties
index be6c454..748703f 100644
--- a/example/project/build.properties
+++ b/example/project/build.properties
@@ -1 +1 @@
-sbt.version=0.13.5
+sbt.version=0.13.7
diff --git a/example/project/build.sbt b/example/project/build.sbt
index 9fd3498..f623fb6 100644
--- a/example/project/build.sbt
+++ b/example/project/build.sbt
@@ -1,4 +1,4 @@
-addSbtPlugin("org.scala-lang.modules.scalajs" % "scalajs-sbt-plugin" % "0.5.4")
+addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.1")
lazy val root = project.in(file(".")).dependsOn(file("../.."))
diff --git a/project/build.sbt b/project/build.sbt
index 58178ec..0dd657b 100644
--- a/project/build.sbt
+++ b/project/build.sbt
@@ -1 +1 @@
-addSbtPlugin("org.scala-lang.modules.scalajs" % "scalajs-sbt-plugin" % "0.5.4")
+addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.1")
diff --git a/src/main/scala/workbench/Plugin.scala b/src/main/scala/workbench/Plugin.scala
index dd3cab9..4c6fb9d 100644
--- a/src/main/scala/workbench/Plugin.scala
+++ b/src/main/scala/workbench/Plugin.scala
@@ -3,13 +3,13 @@ import scala.concurrent.ExecutionContext.Implicits.global
import sbt._
import sbt.Keys._
import autowire._
-import scala.scalajs.sbtplugin.ScalaJSPlugin.ScalaJSKeys
-import scala.scalajs.tools.io._
-import scala.scalajs.tools.optimizer.ScalaJSOptimizer
-import scala.scalajs.sbtplugin.ScalaJSPluginInternal._
-import scala.scalajs.sbtplugin.Implicits._
+import org.scalajs.sbtplugin.ScalaJSPlugin.AutoImport
+import org.scalajs.core.tools.io._
+import org.scalajs.core.tools.optimizer.ScalaJSOptimizer
+import org.scalajs.sbtplugin.ScalaJSPluginInternal._
+import org.scalajs.sbtplugin.Implicits._
-import ScalaJSKeys._
+import AutoImport._
object Plugin extends sbt.Plugin {
val refreshBrowsers = taskKey[Unit]("Sends a message to all connected web pages asking them to refresh the page")
@@ -137,15 +137,16 @@ object Plugin extends sbt.Plugin {
import ScalaJSOptimizer._
(scalaJSOptimizer in fastOptJS).value.optimizeCP(
- Inputs(input = (preLinkClasspath in fastOptJS).value),
- OutputConfig(
+ (scalaJSPreLinkClasspath in fastOptJS).value,
+ Config(
output = WritableFileVirtualJSFile(output),
cache = None,
wantSourceMap = (emitSourceMaps in fastOptJS).value,
relativizeSourceMapBase = relSourceMapBase,
- checkIR = (checkScalaJSIR in fastOptJS).value,
- disableInliner = (inliningMode in fastOptJS).value.disabled,
- batchInline = (inliningMode in fastOptJS).value.batch),
+ checkIR = (scalaJSOptimizerOptions in fastOptJS).value.checkScalaJSIR,
+ disableOptimizer = (scalaJSOptimizerOptions in fastOptJS).value.disableOptimizer,
+ batchMode = (scalaJSOptimizerOptions in fastOptJS).value.batchMode
+ ),
s.log
)
// end of C&P
@@ -165,7 +166,7 @@ object Plugin extends sbt.Plugin {
).call()
()
}
- }.dependsOn(packageJSDependencies, packageLauncher, compile)
+ }.dependsOn(packageJSDependencies, packageScalaJSLauncher, compile)
},
sjsReset := {
println("Clearing sjs REPL History")
diff --git a/src/main/scala/workbench/Server.scala b/src/main/scala/workbench/Server.scala
index 4df8b61..484999e 100644
--- a/src/main/scala/workbench/Server.scala
+++ b/src/main/scala/workbench/Server.scala
@@ -14,18 +14,17 @@ import spray.http.HttpHeaders.`Access-Control-Allow-Origin`
import concurrent.duration._
import scala.concurrent.Future
import scala.io.Source
-import scala.scalajs.tools.optimizer.{ScalaJSClosureOptimizer, ScalaJSOptimizer}
-import scala.scalajs.tools.io._
-import scala.scalajs.tools.logging.Level
+import org.scalajs.core.tools.optimizer.{ScalaJSClosureOptimizer, ScalaJSOptimizer}
+import org.scalajs.core.tools.io._
+import org.scalajs.core.tools.logging.Level
import scala.tools.nsc
import scala.tools.nsc.Settings
import scala.tools.nsc.backend.JavaPlatform
-import scala.tools.nsc.plugins.Plugin
import scala.tools.nsc.util.ClassPath.JavaContext
import scala.collection.mutable
import scala.tools.nsc.typechecker.Analyzer
-import scala.scalajs.tools.classpath.{CompleteNCClasspath, CompleteCIClasspath, PartialIRClasspath, PartialClasspath}
+import org.scalajs.core.tools.classpath.{CompleteClasspath, PartialClasspath}
import scala.tools.nsc.util.{JavaClassPath, DirectoryClassPath}
class Server(url: String, port: Int, bootSnippet: String) extends SimpleRoutingApp{
@@ -107,7 +106,7 @@ class Server(url: String, port: Int, bootSnippet: String) extends SimpleRoutingA
(function(){
$body
- WorkbenchClient().main(${upickle.write(bootSnippet)}, ${upickle.write(url)}, ${upickle.write(port)})
+ com.lihaoyi.workbench.WorkbenchClient().main(${upickle.write(bootSnippet)}, ${upickle.write(url)}, ${upickle.write(port)})
}).call(this)
"""
}