Scala Plugin 1.3 is Available for IntelliJ IDEA 14.0.3

We’ve just released Scala Plugin 1.3! If you haven’t been following the recent EAP, here’s what this new update has to offer:

  • Debugger improvements
    • Variables from the outer scopes are visible in the Variables tab now: there is no need to evaluate expressions or step through frames anymore.
    • Step into action now works in a more natural way for lambda expressions, methods implemented in traits, default arguments, specialization methods, etc.
  • Support for Monocle
  • Unused imports inspections are now aware about the implicit parameters in the implicit conversions for extension methods
  • Possibility to have custom compiler settings for different modules
  • Fixed requirement of Invalidate Caches to get rid of weird error highlighting in project
  • Fixed Specs2 3.M1 support
  • Automake with enabled compiler server is working now
  • SBT shared source roots support for ScalaJS projects (see SCL-7859)

Find the complete list of changes in the Release Notes.

Note that to use Scala Plugin 1.3, you need the most recent version of IntelliJ IDEA (IntelliJ IDEA 14.0.3).

Don’t forget to share your feedback with us in the discussion forum and the issue tracker.

Develop with Pleasure!

Posted in Release report | Tagged , , | Leave a comment

Scala Plugin 1.3 RC is Available

You’ll be glad to know that we’ve just released a fresh RC build for the upcoming Scala plugin update. This build fixes the recently introduced performance regression and brings several other bugfixes and enhancements.

Be sure to give the new build a try and share your feedback with us in our discussion forum and issue tracker.

Posted in EAP | 2 Comments

Scala Plugin 1.3 EAP 1.2.67 is Available

You’ll be glad to know that a fresh EAP build for Scala Plugin 1.3 is already available, and it brings a lot of improvements:

  • Monocle support
  • Unused imports inspections are now aware about the implicit parameters in the implicit conversions for extension methods
  • Fixed requirement of Invalidate Caches to get rid of weird error highlighting in project.
  • Fixed Specs2 3.M1 support
  • Automake with enabled compiler server is working now
  • Possibility to have custom compiler settings for different modules
  • SBT shared source roots support for ScalaJS projects (see SCL-7859)

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.

Posted in EAP, New Features | 5 Comments

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!

Posted in EAP, New Features | Tagged | 3 Comments

Scala Plugin 1.2 is Available

Winter is coming, and we brace ourselves with the new features for Scala developers, so check out the new Scala Plugin 1.2 for IntelliJ IDEA 14 (if you haven’t done so yet.)

One of the notable improvements it brings is the Ahead-of-time Code Completion, a brand new type of code completion that suggests variable and parameter names along with their types based on the classes available in a context:

More details on how this works can be found in the corresponding EAP announcement.

Another important thing is that you can now switch between EAP (Early Access Program) and Release update channels via an option in the Settings → Languages & Frameworks →  Scala → Misc:

For the complete list of changes see Release Notes.

We hope you’ll enjoy the new features, and as always are waiting for your feedback in the discussion forum and the issue tracker.

Develop with Pleasure!

Posted in New Features, Release report | Tagged , , | 6 Comments

Scala Plugin 1.2 RC Introduces Ahead-of-time Code Completion

With the just published Scala Plugin 1.2 RC build, we’re happy to pioneer a new kind of coding assistance, which we like to call “ahead of time” (AOT) code completion.

Have you ever noticed that unlike Java, in Scala we have to spend more time actually typing all the parameter and variable names? In Java we can always do this:

  1. automatically complete a type reference,
  2. then automatically complete a corresponding parameter or variable name.

Which is very quick and really convenient. Unfortunately, this won’t do in Scala directly because of these reasons:

  • order of variable type and name is reversed and,
  • type annotation is optional and therefore may never exist.

So everyone programming Scala was completely denied all of this completion coolness… until now. We’ve changed the rules: now it’s possible to automatically complete both the name and the type before actually adding a type reference (and that is why we call it “ahead of time” completion):

scala_aot_completion_1

Basically, for class and method parameters you can imagine that autocomplete is invoked one step further, on the type reference, with a search string capitalized, so that:

  • you can start autocomplete either via “auto-popup”, or manually, by pressing Ctrl + Space,
  • you may press Ctrl + Space one more time, to broaden the scope of search,
  • it’s possible to start a search from the middle of type name (“element” for “element: PsiElement”),
  • it’s possible to use CamelHumps (“mEve” for “mouseEvent: MouseEvent”),
  • the type reference is automatically imported, if needed.

As for values and variables, we’ve modified the described algorithm so that no type annotation is inserted (only the name part is completed), and the search scope is reduced to explicitly imported classes:

scala_aot_completion_2

This algorithm is still work in progress, so the current restrictions may be loosened after we get more intel from people who are actually using it.

The current implementation is available in Scala Plugin 1.2 RC. You may toggle the AOT completion via Settings / Scala / Core page.

So, now we can develop with even more pleasure, and we hope that other languages (yo Kotlin!) and IDEs will follow. Your suggestions are welcome!

Posted in EAP, New Features | Tagged , | 8 Comments

Interview with Shadaj Laddad: Programming Changes the Way You Think

Scala Days is not only a major event for the Scala community, but also a great place to meet amazing people and get inspiration. If you’ve been to Scala Days in Berlin this year, you might have seen a great talk “Serious Fun with Scala“ by a 14 years old Shadaj Laddad, Scala enthusiast and wunderkind. We couldn’t miss the chance to catch Shadaj and ask him a few questions for our blog about Scala, learning programming, game development, math and science.

At OSCON 2014 you gave a splendid opening keynote “The Wonders of Programming”. At your age this talk has not only made you famous as one of the youngest programmers, but also made you the youngest enthusiast who encourages other people to program. How did it happen that you got interested in programming?

I started getting into programming when I was around 6 years old. My dad got me the (just released at the time) Lego Mindstorms NXT kit, a robotics platform that uses Lego parts but also has motors and sensors that can be programmed with a simple graphical language. I started out following the directions that came with the kit, but in the process I learned how I can make my own creations. Next, my dad got me Learn to Program by Chris Pine. This book teaches Ruby, but assumes that the reader has no previous knowledge of programming. The book showed many interesting applications of programming concepts such as how a simulation game could use a two-dimensional array to store building locations. I continued to learn new programming languages such as Python through another book, Hello World. Somewhere along the line, I started to learn Scala. As I learned about different ways programming can be used for all sorts of applications my interest in programming grew. This still continues today when I see a tweet or a GitHub project showing some interesting technique.

You’ve programed in Logo, NXT Mindstorms, Ruby, Python, C and Java, but Scala is your favorite. Can you tell us why do you prefer Scala? What makes it special? Is there anything you liked in other programming languages?

Continue reading

Posted in Interviews | Leave a comment

Scala Plugin 1.1.362 EAP is Out

Good news for everyone who’s already tried IntelliJ IDEA 14 with updated Scala plugin. Today we’ve released its upcoming 1.1 EAP build.

One of the notable changes is the simplified configuration of the Scala plugin update channel via Settings → Languages & Frameworks →  Scala → Misc:

Screen Shot 2014-12-01 at 15.31.28

Before you can start using these new update channel settings you’ll need to install the 1.1.362 EAP build from Scala plugin EAP page or by specifying the new EAP repository URL in Settings → Plugins → Browse repositories → Manage repositories.

For the complete list of changes see Release Notes.

As always, you’re welcome to share your feedback in our discussion forum and issue tracker.

Develop with Pleasure!

Scala plugin EAP page

Posted in EAP | Tagged , , | 6 Comments

Scala Plugin Update for IntelliJ IDEA 14 RC is Out

Following IntelliJ IDEA 14 RC that has been released a couple of days ago, we’re publishing a Scala plugin update for it. In this post you will find what’s new in this build:

Scala plugin project migrates to SBT

First of all, Scala plugin project itself now uses SBT for build and dependency management. This is good in a number of ways, one of which is that the SBT task that comes with the project will let you download a correct version of IntelliJ IDEA as a dependency.

Rethinking the project configuration model

Another change is that we’ve finally decided to get rid of the Scala facet and replace it with so called Scala SDK library that, in addition to the standard Scala libraries, has a classpath to Scala compiler:

Screen Shot 2014-10-30 at 17.31.33

This change unfortunately is not backward-compatible, and that means you’ll have to convert the your projects to use them with IntelliJ IDEA 14, but don’t worry, it will do it automatically.

Anonymous functions evaluation

And last, but not least, the updated Evaluate expression and Watches now let you evaluate anonymous functions:

Screen Shot 2014-10-30 at 17.38.12

This feature still has several limitations and not everything may work as expected (e.g. it doesn’t allow you to access private members unused in other anonymous functions/classes) but we hope to fix it soon.

That’s it for now. For the complete list of changes, please refer to the Release Notes.

The IntelliJ IDEA 14 release is around a corner, it’s your last chance to submit your feedback, use our discussion forum or report bugs directly to the issue tracker.

Develop with Pleasure!

Posted in EAP, New Features | Tagged , , | 44 Comments

Scala plugin EAP 1.0.182.5 for IntelliJ IDEA 14 EAP is Out

New IntelliJ IDEA 14 EAP is already available, and we just released the new Scala plugin for it. You can get the latest update via Settings → Plugins.

Here’s a brief overview of what’s new in this version:

  • Parameter info for infix method calls
  • Java to Scala converter fixes
  • Error highlighting fixes
  • Type variable in patterns support
  • Performance improvements for big “for expressions”
  • New inspection: explicit type for implicit functions
  • New inspection: detect useless expressions
  • Change signature for constructors

scala_parameter_info

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

As always, you’re welcome to share your feedback in our discussion forum or issue tracker.

Develop with Pleasure!

Posted in Uncategorized | Tagged , | 8 Comments