Heading to the Perfect Scala Code Analysis

We are extremely happy to let you know that the latest version of the Scala plugin (0.29.479) for the upcoming IntelliJ IDEA 13.0.2 has no false error highlighting for our own source base anymore. Moreover, a number of corresponding tests have been added to our TeamCity server, so we don’t expect to see a regression further.

The next step will be using source base of an external popular open-source project as a test for spotting false errors highlighting. That’s why we ask you for suggestions on such projects.

Let’s make IntelliJ IDEA code analysis better!

Comments below can no longer be edited.

30 Responses to Heading to the Perfect Scala Code Analysis

  1. Avatar

    Jason Webb says:

    January 23, 2014

    Shapeless. Would love to see shapeless supported. https://github.com/milessabin/shapeless

  2. Avatar

    xuwei_k says:

    January 23, 2014



  3. Avatar

    Volodymyr Barna says:

    January 23, 2014

    http://spray.io/ which is based on Shapeless.


  4. Avatar

    Johannes Stickel says:

    January 23, 2014

    Finagle: https://github.com/twitter/finagle

  5. Avatar

    sciss says:

    January 23, 2014

    First of all, great work. Almost all my project files are green now.

    The Scala Compiler itself might be a good candidate.

    I am seeing still one particular error when using my library [LucreSTM](https://github.com/Sciss/LucreSTM), where path dependent types such as `S#Var[String]` produce “wrong number of type parameters” errors (e.g. project [SoundProcesses](https://github.com/Sciss/SoundProcesses), class `TransportImpl`). One red error with “reassignment to val” when using named parameters (`BiGroupImpl`).

    Other than that, the new versions seems pretty good. I get some wrong orange for unused imported implicits, although they are in fact required.

  6. Avatar

    codingismy11to7 says:

    January 23, 2014


  7. Avatar

    Oleksii says:

    January 23, 2014


  8. Avatar

    aparo77 says:

    January 23, 2014

    I have a lot of issues with macros.


    and the simple example:


    It marks read all macro added values/methods.

    • Avatar

      Alexander Podkhalyuzin says:

      January 30, 2014

      We started support for Scala macros, but it’s not a simple task, so I can’t promise it will be done soon.

      Best regards,
      Alexander Podkhalyuzin.

    • Avatar

      Anton Kulaga says:

      February 9, 2014

      With quaziquotes and macroannotations macroses became mainstream. Some very popular libs like Slick2 and parboiled2 already heavily use them.

      • Avatar

        David Hoyt says:

        February 17, 2014

        +1 for quasiquotes (macro annotations seem hard — how would you be able to anticipate generated types?).

        When I use quasiquotes to extract a portion of the AST, it doesn’t pick up on the variable that’s been introduced.

  9. Avatar

    Pedro says:

    January 23, 2014

    Slick: https://github.com/slick/slick

  10. Avatar

    Andreas says:

    January 24, 2014

    Lift: http://liftweb.net

  11. Avatar

    Vitalii says:

    January 25, 2014

    Akka for Java — red highlighting of scala Props class:
    Props.create(CustomerActor.class); — picks wrong method:
    should pick:
    def create(clazz: Class[_], args: AnyRef*): Props = …
    but takes:
    def create[T <: Actor](creator: Creator[T]): Props = …

    • Avatar

      Alexander Podkhalyuzin says:

      January 27, 2014

      This is fixed in Scala plugin version for IntelliJ IDEA 13.0.2.

      Best regards,
      Alexander Podkhalyuzin.

  12. Avatar

    Eric P says:

    January 26, 2014

    1. Akka – it doesn’t use a lot of very advanced Scala features so it’s a good starting place.
    2. Play
    3. spray – heavy use of implicits
    4. scalaz – heavy use of everything

    • Avatar

      Alexander Podkhalyuzin says:

      January 27, 2014

      Hi, Eric,

      Thank you for suggestions. This is good point of view. I think it would be good decision to start from Akka then Play (and probably scalax.Graph as suggested earlier).

      Best regards,
      Alexander Podkhalyuzin.

  13. Avatar

    planetenkiller says:

    January 27, 2014

    reactivemongo: http://reactivemongo.org/

  14. Avatar

    Alex says:

    January 28, 2014

    When uses the worksheet if the import it’s outside of the object, the output it’s only the import and defined module “object name”

  15. Avatar

    triampurum says:

    January 28, 2014

    Great news!
    About next projects: +1 for scalaz.

  16. Avatar

    Erik Post says:

    January 28, 2014

    Slick and Scalaz please. 🙂

  17. Avatar

    Robert Gibson says:

    January 29, 2014

    What about the Scala SDK itself?

    • Avatar

      Alexander Podkhalyuzin says:

      January 29, 2014

      It’s good idea and it’s simpler than scalaz, but I still think we will start from something even more simpler.

  18. Avatar

    Anton Kulaga says:

    February 9, 2014

    Forgot to mention parboiled2 ( https://github.com/sirthias/parboiled2 ), new version of leading scala parsing library.

  19. Avatar

    Frederik Kraus says:

    February 15, 2014

    Finagle https://github.com/twitter/finagle

  20. Avatar

    Bruno says:

    February 24, 2014

    Project for spotting false errors highlighting : SBT.

  21. Avatar

    Oleg says:

    March 14, 2014

    Apache Kafka http://kafka.apache.org/downloads.html

  22. Avatar

    Matthew de Detrich says:

    May 19, 2014

    Late to the party, but libraries such as these are what is causing highlighting issues

    Shapeless 2.0
    Scalaz 7.0.6

    • Avatar

      Alexander Podkhalyuzin says:

      May 19, 2014

      Shapless 2.0 is problematic because of macros. We are working on it, but it’s not ready yet (I’ll say few words on Scaladays 2014 about it).

      As for next project, I decided to use scala-compiler sources as next test project and then most probably Scalaz.

Discover more