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!

This entry was posted in Uncategorized. Bookmark the permalink.

31 Responses to Heading to the Perfect Scala Code Analysis

  1. Jason Webb says:

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

  2. Volodymyr Barna says:

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


  3. sciss says:

    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.

  4. Oleksii says:


  5. aparo77 says:

    I have a lot of issues with macros.


    and the simple example:


    It marks read all macro added values/methods.

    • Alexander Podkhalyuzin says:

      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:

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

      • David Hoyt says:

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

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

  7. Vitalii says:

    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:

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

      Best regards,
      Alexander Podkhalyuzin.

  8. Eric P says:

    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:

      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.

  9. planetenkiller says:
  10. Alex says:

    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”

  11. triampurum says:

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

  12. Erik Post says:

    Slick and Scalaz please. :)

  13. Robert Gibson says:

    What about the Scala SDK itself?

    • Alexander Podkhalyuzin says:

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

  14. Anton Kulaga says:

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

  15. Bruno says:

    Project for spotting false errors highlighting : SBT.

  16. Matthew de Detrich says:

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

    Shapeless 2.0
    Scalaz 7.0.6

    • Alexander Podkhalyuzin says:

      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.

Leave a Reply

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