Scala Plugin 1.3 EAP Brings Better Debugger

You’ll be pleased to know that our new Scala Plugin 1.3 EAP build brings several small but quite important improvements to the debugger:

  • The variables from outer scopes are visible in the Variables tab now: there is no need to evaluate expressions or step through frames anymore.
  • Stepping into now works in a more natural way for lambda expressions, methods implemented in traits, default arguments, specialization methods, etc.

We hope these improvements will make your life easier. Be sure to give the new build a try and share your feedback with us in our discussion forum and issue tracker.

For the complete list of changes, refer to Release Notes.

Develop with Pleasure!

This entry was posted in EAP, New Features and tagged , . Bookmark the permalink.

One Response to Scala Plugin 1.3 EAP Brings Better Debugger

  1. Tomas Dvorak says:

    Oh yes, please! I’m just so grateful for any improvements of the debugger! I actually didn’t use stepping at all, it was just too much pain and I’d consider stepping probably the most rudimentary feature of the debugger :/ Looking forward trying your improvements.

    If at all possible, could you please consider implementing breakpoints that are not line oriented, but expression oriented? It was not so necessary with Java < 8 (although it would be very useful), but now that lambdas are everywhere (Java 8, Scala), it is just a huge pain not be able to put a breakpoint inside the lambda unless it's on a separate line.

    It would also be tremendously useful to highlight not the line where the breakpoint was hit, but the very expression that is going to be executed next. Again, why should I analyze the stacktrace with cryptic synthetised classes just to try to guess what's gonna be executed next on a line with several lambdas?

    Smalltalk got this right decades ago. It is sad that the contemporary "state of the art" IDEs are not even catching up today :(

    Regards,
    Tomas Dvorak

Leave a Reply

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