IntelliJ IDEA Scala plugin 2017.2: SBT 1.0, improved SBT Shell, Play 2.6 and better implicits management

This summer, we are happy to announce a number of new features and improvements in the Scala Plugin. Some of them we decided to introduce in the 2017.1 updates, as soon as they were ready. And the rest are coming to you now – with IntelliJ IDEA 2017.2. We appreciate the contributions of all EAP participants. So, let’s do a brief overview of the recent changes.

Debugging in SBT Shell

Not so long ago we introduced SBT Shell which makes work with SBT project in IntelliJ IDEA more convenient. We continued to improve this feature and can now announce its integration with debugger. With one button click the SBT Shell launches the Debugger server and connects to it.SBT_Debug

Before debugging, just make sure you’ve run the Debugger server via a click on the left-side panel in SBT Shell.

Play 2.6 support

Play Framework recently released its 2.6 version with lots of cool features. We’ve provided support for all this new functionality via gutter icons, code highlighting, navigation and project wizard to make your work more comfortable and effective.

play26

Implicits management

We’ve improved the Type Annotations inspection by including implicit declarations processing. Any implicit is worth being explicitly annotated. It significantly increases the performance of compilation and IDE code analysis. It reduces the risk of a type inconsistency. Moreover it’s obligatorily in Dotty. You can configure this inspection by going to Preferences / Editor / Code Style / Scala / Type Annotations.

impl_decl

Another feature – if you call Smart Completion for following types: akka.actor.ActorRef, scala.concurrent.Future and collections from java.util, scala.collection, it also suggests implicit conversions, and adds import statements automatically:

impl_ask_gif_10fps

SBT 1.0 support

In the middle of July, Lightbend announced SBT 1.0.0-RC2. A list of new features, fixes, and other changes you may find here. We keep track of SBT 1.0 progress and support of all its new functionality. The Scala Plugin 2017.2.5 already has partial support of SBT 1.0 RC2, and we have plans to declare complete support in newest plugin update.

Your feedback on these improvements is very welcome. Expect more features and improvements in the 2017.2 updates of the IntelliJ Scala plugin.

P.S: Don’t forget to report bugs / ideas to our issue tracker.

Drive to develop!

This entry was posted in New Features, Release report. Bookmark the permalink.

15 Responses to IntelliJ IDEA Scala plugin 2017.2: SBT 1.0, improved SBT Shell, Play 2.6 and better implicits management

  1. kubukoz says:

    Good stuff! Any news on whether you’re going to support “find usages” for implicits anytime soon? :)

    • Anton Yalyshev says:

      That’s a good point. Indeed the Scala Plugin gathers a lot of useful information for its Type Inference. And this information is just partially available for a user. Definitely we want to provide it entirely, in a most convenient way.
      I can say that we already have some progress in this task, but it’s a bit early to give a public announcement regarding exact time and description of the feature. With a high probability, it will be done in observable future.

  2. me says:

    ok then observable future.subscribe ( f => emailMeFeatureAvailable(f.get()))

  3. Sven says:

    And still no [Ctrl]+[D] support for the SBT console, so that it still isn’t usable for play projects :-(

  4. Peter Goggi Jr says:

    I don’t see any option in Editor > Code Style > Scala > Type Annotations to enable the type annotation requirement for implicit declarations. Am I missing something?

  5. Carfield Yim says:

    My intelliJ keep complainting this

    ==== Maven Central: tried

    https://repo1.maven.org/maven2/org/scala-sbt/sbt/0.13.16/sbt-0.13.16.pom

    — artifact org.scala-sbt#sbt;0.13.16!sbt.jar:

    https://repo1.maven.org/maven2/org/scala-sbt/sbt/0.13.16/sbt-0.13.16.jar

    It probably because this file is not exist anymore, how can I tell intelliJ use 1.0 version of SBT?

  6. Nick says:

    How can I create an configuration that connects and runs a specific task on sbt shell?

  7. Justin Kaeser says:

    That’s currently a missing feature. Please vote on it on YouTrack to give it more weight: https://youtrack.jetbrains.com/issue/SCL-11748

  8. David Pérez says:

    When will be SBT 1.0 support official?

    • Justin Kaeser says:

      sbt 1.0 support is already official :)

      • Julian Fleischer says:

        for me that official sbt 1.0 support does not work.

        when importing an sbt 1.0 project and /not/ using sbt shell it can’t build the project. when importang it and using sbt shell it can’t run the tests, so I have to use “testOnly …” in the shell. That is fine with me but why am I using an Integrated Development Environment again? Also not being able to run tests from the IDE is a big bummer.

        sbt 1.0.2 and latest stable release.

Leave a Reply

Your email address will not be published. Required fields are marked *