Heading to the Perfect Scala Code Analysis

Posted on by Alexander Podkhalyuzin

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.

31 Responses to Heading to the Perfect Scala Code Analysis

  1. Jason Webb says:

    January 23, 2014

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

  2. xuwei_k says:

    January 23, 2014

    Scalaz

    https://github.com/scalaz/scalaz

  3. Volodymyr Barna says:

    January 23, 2014

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

    https://github.com/spray/spray

  4. Johannes Stickel says:

    January 23, 2014

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

  5. 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. codingismy11to7 says:

    January 23, 2014

    scalax.collection.Graph

  7. Oleksii says:

    January 23, 2014

    play2

  8. aparo77 says:

    January 23, 2014

    I have a lot of issues with macros.

    https://github.com/scalamacros/paradise/

    and the simple example:

    https://github.com/scalamacros/sbt-example-paradise

    It marks read all macro added values/methods.

    • 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.

    • Anton Kulaga says:

      February 9, 2014

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

      • 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. Pedro says:

    January 23, 2014

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

  10. Andreas says:

    January 24, 2014

    Lift: http://liftweb.net

  11. 完璧なScalaコード解析に向けて | JetBrains ブログ says:

    January 25, 2014

    […] 原文 This entry was posted in IntelliJ IDEA. Bookmark the permalink. ← PhpStormを使ったPHPアプリケーションのプロファイリング […]

  12. 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 = …

    • Alexander Podkhalyuzin says:

      January 27, 2014

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

      Best regards,
      Alexander Podkhalyuzin.

  13. 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

    • 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.

  14. planetenkiller says:

    January 27, 2014

    reactivemongo: http://reactivemongo.org/

  15. 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”

  16. triampurum says:

    January 28, 2014

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

  17. Erik Post says:

    January 28, 2014

    Slick and Scalaz please. 🙂

  18. Robert Gibson says:

    January 29, 2014

    What about the Scala SDK itself?

    • 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.

  19. Anton Kulaga says:

    February 9, 2014

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

  20. Frederik Kraus says:

    February 15, 2014

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

  21. Bruno says:

    February 24, 2014

    Project for spotting false errors highlighting : SBT.

  22. Oleg says:

    March 14, 2014

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

  23. 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
    Shapeless-Contrib

    • 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.