Scala Plugin 1.3 is Available for IntelliJ IDEA 14.0.3

Alexander Podkhalyuzin

We’ve just released Scala Plugin 1.3! If you haven’t been following the recent EAP, here’s what this new update has to offer:

  • Debugger improvements
    • Variables from the outer scopes are visible in the Variables tab now: there is no need to evaluate expressions or step through frames anymore.
    • Step into action now works in a more natural way for lambda expressions, methods implemented in traits, default arguments, specialization methods, etc.
  • Support for Monocle
  • Unused imports inspections are now aware about the implicit parameters in the implicit conversions for extension methods
  • Possibility to have custom compiler settings for different modules
  • Fixed requirement of Invalidate Caches to get rid of weird error highlighting in project
  • Fixed Specs2 3.M1 support
  • Automake with enabled compiler server is working now
  • SBT shared source roots support for ScalaJS projects (see SCL-7859)

Find the complete list of changes in the Release Notes.

Note that to use Scala Plugin 1.3, you need the most recent version of IntelliJ IDEA (IntelliJ IDEA 14.0.3).

Don’t forget to share your feedback with us in the discussion forum and the issue tracker.

Develop with Pleasure!

Comments below can no longer be edited.

11 Responses to Scala Plugin 1.3 is Available for IntelliJ IDEA 14.0.3

  1. Sergey says:

    February 3, 2015

    It is very very slow. Unfortunately. Burns all cores..

  2. barx says:

    February 13, 2015

    That’s great, except that now it is useless. All attempts to compile things just throw up this:

    Error:scalac: Error: xsbt.CompilerInterface
    java.lang.ClassNotFoundException: xsbt.CompilerInterface
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:270)
    at sbt.compiler.AnalyzingCompiler.getInterfaceClass(AnalyzingCompiler.scala:117)
    at sbt.compiler.AnalyzingCompiler.call(AnalyzingCompiler.scala:99)
    at sbt.compiler.AnalyzingCompiler.newCachedCompiler(AnalyzingCompiler.scala:57)
    at sbt.compiler.AnalyzingCompiler.newCachedCompiler(AnalyzingCompiler.scala:52)
    at sbt.compiler.CompilerCache$$anon$2.apply(CompilerCache.scala:50)
    at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:39)
    at org.jetbrains.jps.incremental.scala.local.IdeaIncrementalCompiler.compile(IdeaIncrementalCompiler.scala:29)
    at org.jetbrains.jps.incremental.scala.local.LocalServer.compile(LocalServer.scala:26)
    at org.jetbrains.jps.incremental.scala.remote.Main$.make(Main.scala:62)
    at org.jetbrains.jps.incremental.scala.remote.Main$.nailMain(Main.scala:20)
    at org.jetbrains.jps.incremental.scala.remote.Main.nailMain(Main.scala)
    at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.martiansoftware.nailgun.NGSession.run(NGSession.java:319)

  3. Alex says:

    February 20, 2015

    same problem

  4. Ngu says:

    February 26, 2015

    Try to execute code in Worksheet and get this error:

    Internal error: xsbt.CompilerInterface
    org.jetbrains.jps.incremental.scala.remote.ClientEventProcessor.process(ClientEventProcessor.scala:22)
    org.jetbrains.jps.incremental.scala.remote.RemoteResourceOwner$class.handle(RemoteResourceOwner.scala:47)
    org.jetbrains.plugins.scala.compiler.RemoteServerRunner.handle(RemoteServerRunner.scala:14)
    org.jetbrains.jps.incremental.scala.remote.RemoteResourceOwner$$anonfun$send$1$$anonfun$apply$1$$anonfun$apply$3.apply(RemoteResourceOwner.scala:30)
    org.jetbrains.jps.incremental.scala.remote.RemoteResourceOwner$$anonfun$send$1$$anonfun$apply$1$$anonfun$apply$3.apply(RemoteResourceOwner.scala:29)
    org.jetbrains.jps.incremental.scala.package$.using(package.scala:21)
    org.jetbrains.jps.incremental.scala.remote.RemoteResourceOwner$$anonfun$send$1$$anonfun$apply$1.apply(RemoteResourceOwner.scala:29)
    org.jetbrains.jps.incremental.scala.remote.RemoteResourceOwner$$anonfun$send$1$$anonfun$apply$1.apply(RemoteResourceOwner.scala:25)
    org.jetbrains.jps.incremental.scala.package$.using(package.scala:21)
    org.jetbrains.jps.incremental.scala.remote.RemoteResourceOwner$$anonfun$send$1.apply(RemoteResourceOwner.scala:25)
    org.jetbrains.jps.incremental.scala.remote.RemoteResourceOwner$$anonfun$send$1.apply(RemoteResourceOwner.scala:24)
    org.jetbrains.jps.incremental.scala.package$.using(package.scala:21)
    org.jetbrains.jps.incremental.scala.remote.RemoteResourceOwner$class.send(RemoteResourceOwner.scala:24)
    org.jetbrains.plugins.scala.compiler.RemoteServerRunner.send(RemoteServerRunner.scala:14)
    org.jetbrains.plugins.scala.compiler.RemoteServerRunner$$anon$1$$anonfun$run$1.apply$mcVI$sp(RemoteServerRunner.scala:33)
    scala.collection.immutable.Range.foreach$mVc$sp(Range.scala:160)
    org.jetbrains.plugins.scala.compiler.RemoteServerRunner$$anon$1.run(RemoteServerRunner.scala:30)
    org.jetbrains.plugins.scala.worksheet.server.RemoteServerConnector.compileAndRun(RemoteServerConnector.scala:85)
    org.jetbrains.plugins.scala.worksheet.processor.WorksheetCompiler$$anon$1.run(WorksheetCompiler.scala:68)
    com.intellij.compiler.progress.CompilerTask.run(CompilerTask.java:202)
    com.intellij.openapi.progress.impl.ProgressManagerImpl$TaskRunnable.run(ProgressManagerImpl.java:621)
    com.intellij.openapi.progress.impl.ProgressManagerImpl$3.run(ProgressManagerImpl.java:194)
    com.intellij.openapi.progress.impl.ProgressManagerImpl.a(ProgressManagerImpl.java:281)
    com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:233)
    com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcess(ProgressManagerImpl.java:181)
    com.intellij.openapi.progress.impl.ProgressManagerImpl$9.run(ProgressManagerImpl.java:530)
    com.intellij.openapi.application.impl.ApplicationImpl$8.run(ApplicationImpl.java:406)
    java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
    java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    java.util.concurrent.FutureTask.run(FutureTask.java:138)
    java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
    java.lang.Thread.run(Thread.java:695)
    org.jetbrains.ide.PooledThreadExecutor$1$1.run(PooledThreadExecutor.java:56)

    • Ngu says:

      February 26, 2015

      Nvm. It’s my firewall settings.

      • DQ says:

        February 13, 2017

        I encounter the same problem and my firewall is turned off. could you please tell me how to set the firewall ?

  5. Matt Hughes says:

    March 7, 2015

    Turning off “Use external compile server for scala” in the preferences fixed the Internal error: xsbt.CompilerInterface exception for me.

    Seems like it should be off by default and have a useful error message if the external compile server is unreachable.

  6. Raaj says:

    March 12, 2015

    After updating both IDEA and Scala plug-in, I just can’t get anything to compile. Its clear that it doesn’t even recognize scala keywords like actor or self – what has changed? What do I need under modules, facets and libraries? I know that facets are gone but what project settings are required to get the basic things working? Help!!

    • Dmitry Naydanov says:

      March 12, 2015

      Do you use play2 framework?

      • Raaj says:

        March 12, 2015

        No, I am just trying to run my old scala programs and nothing is working. Have not tried running my play apps yet, but finding this very frustrating that I can’t create simple sbt-based scala programs straight out of the box. Unless something is messed up or I’m doing something stupid. But some clarity would be good as in exactly what what to configure and how. e.g. SDK, Facets, Libraries, etc.