diff --git a/vscode-dotty/package.json b/vscode-dotty/package.json index 127c6569ede8..ccb808ca4511 100644 --- a/vscode-dotty/package.json +++ b/vscode-dotty/package.json @@ -51,7 +51,7 @@ "vscode:prepublish": "npm install && ./node_modules/.bin/tsc -p ./", "compile": "./node_modules/.bin/tsc -p ./", "test": "node ./node_modules/vscode/bin/test", - "postinstall": "node ./node_modules/vscode/bin/install && curl -L -o out/coursier https://github.com/coursier/coursier/raw/v1.0.0/coursier && curl -L -o out/load-plugin.jar https://github.com/scalacenter/load-plugin/releases/download/v0.1.0/load-plugin_2.12-0.1.0.jar" + "postinstall": "node ./node_modules/vscode/bin/install && curl -L -o out/coursier https://github.com/coursier/coursier/raw/v1.0.0/coursier && curl -L -o out/load-plugin.jar https://oss.sonatype.org/content/repositories/releases/ch/epfl/scala/load-plugin_2.12/0.1.0+2-496ac670/load-plugin_2.12-0.1.0+2-496ac670.jar" }, "extensionDependencies": [ "daltonjorge.scala" diff --git a/vscode-dotty/src/extension.ts b/vscode-dotty/src/extension.ts index c8b4f7b5ca70..e3d84fc0095a 100644 --- a/vscode-dotty/src/extension.ts +++ b/vscode-dotty/src/extension.ts @@ -94,15 +94,21 @@ function configureIDE() { title: 'Configuring IDE...' }, (progress) => { + const applyLoadPlugin = "apply -cp " + loadPluginPath + " ch.epfl.scala.loadplugin.LoadPlugin" + const ifAbsentCommands = [ + "if-absent dotty.tools.sbtplugin.DottyPlugin", + "\"set every scalaVersion := \\\"0.8.0-bin-SNAPSHOT\\\"\"", + "\"load-plugin ch.epfl.lamp:sbt-dotty:0.2.0-SNAPSHOT dotty.tools.sbtplugin.DottyPlugin\"", + "\"load-plugin ch.epfl.lamp:sbt-dotty:0.2.0-SNAPSHOT dotty.tools.sbtplugin.DottyIDEPlugin\"" + ].join(" ") + const sbtPromise = cpp.spawn("java", [ "-jar", coursierPath, "launch", "org.scala-sbt:sbt-launch:1.1.2", "--", - "apply -cp " + loadPluginPath + " ch.epfl.scala.loadplugin.LoadPlugin", - "set every scalaVersion := \"0.8.0-bin-SNAPSHOT\"", - "load-plugin ch.epfl.lamp:sbt-dotty:0.2.0-SNAPSHOT dotty.tools.sbtplugin.DottyPlugin", - "load-plugin ch.epfl.lamp:sbt-dotty:0.2.0-SNAPSHOT dotty.tools.sbtplugin.DottyIDEPlugin", + applyLoadPlugin, + ifAbsentCommands, "configureIDE" ]) const sbtProc = sbtPromise.childProcess