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 , , | 30 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

Scala and Play 2.0 Plugin for IntelliJ IDEA 14 EAP is Out

We’re excited to tell you that we’ve just started the Scala plugin EAP for IntelliJ IDEA 14, so if you’re running an IntelliJ IDEA 14 EAP build, you can install the new Scala plugin via SettingsPlugins.

Screen Shot 2014-09-17 at 17.00.15

Here’s what the new Scala plugin brings you.

Continue reading

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

Scala and Play Plugins Update 0.41.2 is Out

Some of you might have noticed some regressions in the two recent updates (0.41 and 0.41.1). We apologize for this inconvenience and offer you this quick 0.41.2 update that fixes the problems.

We’d also like to announce that starting today we’re not adding any more new features to the Scala and Play plugins for IntelliJ IDEA 13 because we’re moving to the development of these plugins for IntelliJ IDEA 14 and are going to open their EAP soon. Stay tuned to our blog for more news.

Develop with Pleasure!

Posted in Release report | Tagged , | 4 Comments

Scala and Play 2 Plugins Update 0.41 is Out

Good news, everyone! New versions of the Scala and Play 2 plugins have just arrived, packed with long-awaited new features and improvements.

Major new features of the update are:

  • Scalastyle support
  • Show implicit parameters improvements
  • Better Spray support
  • Unicode arrows support
  • Unwrap/Remove action
  • Procedure syntax support
  • Error highlighting now checks variance position in your code
  • Improved code completion in SBT files
  • Quick-fixes that create classes, objects and traits from usages

For more details on these features check out the blog posts we published recently: about 0.41 EAP and 0.41 RC1.

Spread the word, and don’t forget to share your feedback with us through our discussion forum and issue tracker.

Develop with Pleasure!

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

Scala and Play 2 Plugins 0.41 RC1 is Out

To start using EAP builds just add a corresponding repository URL via Settings → Plugins → Browse repositories… → Manage repositories (just like with the nightly builds.) After that your IDE will automatically inform you about updates and install them for you. And, of course, you can always get the latest updates from Scala and Play 2 plugins EAP page and install them manually.

Here’s what’s new in the upcoming EAP (0.41):

  • Error highlighting now checks variance position in your code
  • Improved basic completion in SBT files:
    Screen Shot 2014-08-01 at 15.25.04
  • Create class, object or trait from usages.

For the full list of changes see Release Notes.

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

Develop with Pleasure!

Posted in Uncategorized | Leave a comment

Scala and Play 2 Plugins 0.41 EAP is Out

If you’ve ever used a nightly build of Scala or Play 2 plugins, then you probably know that mixed feeling of being on the edge and using the features none of your colleagues is even aware of yet, but at the same time expecting your entire environment to crash at any moment.

Well, we sort of took care of that second part by opening of Scala and Play 2 plugins EAP. With this EAP we intent to give you a much safer way to evaluate the upcoming features and influence development. EAP cycle includes new builds every two to three weeks, so you will have plenty of time to try it and provide feedback.

To start using EAP builds just add a corresponding repository URL via SettingsPluginsBrowse repositories…Manage repositories (just like with the nightly builds.) After that your IDE will automatically inform you about updates and install them for you. And, of course, you can always get the latest updates from Scala and Play 2 plugins EAP page and install them manually.

Here’s what’s new in the upcoming EAP (0.41): Continue reading

Posted in EAP, New Features | 16 Comments

Interview with Jason Zaugg on Scala, Dotty and IntelliJ IDEA

As some of you may know, this June the whole Scala plugin team took a break and went to Berlin to enjoy Scala Days 2014, and of course to meet IntelliJ IDEA users! Alexander Podkhalyuzin, a lead developer of the Scala plugin, used this chance to catch Jason Zaugg, a Scala rockstar and developer at Typesafe, and talk about Scala Compiler, Dotty and IntelliJ IDEA. Enjoy the interview!

Alexander: How did you first hear about Scala?

Jason: A colleague of mine saw Martin Odersky present Scala at a conference in 2008. He shared his impressions of the language at our team’s weekly tech talk, and my interest was piqued. I had already been drawn to functional programming from the perspective of a Java programmer who disliked code duplication. I’d used Ruby and Groovy on small projects, but was never happy with the compromises in type safety and performance. Scala seemed to offer the best of both worlds.

Alexander: You’ve helped the IntelliJ IDEA team a lot to improve the Scala plugin. What are your impressions about developing for IntelliJ Platform?

Jason: My contributions to the plugin were largely “scratching an itch”. Back in 2009, it was hard to sell Scala to a Java programmer who appreciated a powerful IDE. I knew a tiny bit about the IDE plugin architecture as I had built a plugin a few years earlier, and wondered how hard it would be to dive in and fix a few bugs. I learnt a lot about Scala in the process, and started to get a taste for the unique and rewarding challenge of working on programming language tooling.

I really liked the refactoring-friendly AST that underpins the IDEA architecture, together with the infrastructure for handling big code bases (indices, PSI stubs). I also liked the approach to unit testing taken in the Scala Plugin.

The downside of course is that is makes it hard to reuse the parser and typechecker from the language.

Continue reading

Posted in Interviews, News and Events | Tagged , | Leave a comment

IntelliJ IDEA Team at Scala Days 2014

The Scala community knows that the place to be on June 16th – 18th is Scala Days 2014 conference. So, the entire team behind the IntelliJ Scala plugin went to Berlin to embrace the awesomeness of this event.

Besides attending the talks (I wish I had enough time to hear them all), we delivered our own presentation Good to Great: IntelliJ IDEA and Scala (hosted by Alexander).

We also had a booth with amazing giveaways that included IntelliJ IDEA Yo-Yos (and stickers):

 

Even though the distribution of Yo-Yos was, undoubtedly, our main goal, we were very happy to meet IntelliJ Scala plugin users in person. What can I say? Sometimes we had a feeling of being rockstars (thanks for all the praise, folks!), sometimes, well, we could only humbly promise to fix this or that bug…

Meeting real Scala rockstars like Martin, Jason, Josh, just to name a few, was a real pleasure.

Thanks to everyone who took care to answer our questionnaire. You’ve been very helpful, and here’s just a few stats we’ve collected: Continue reading

Posted in News and Events | Tagged , , , | 1 Comment

Scala and Play 2.0 Plugins Update 0.38.437 is Out

Good news, everyone! The fresh versions of Scala and Play 2.0 plugins have arrived, and we’re going to briefly tell you what new goodies this update brings.

HOCON format

First of all, Roman Janusz has made a great contribution to Scala community by adding the HOCON format support to IntelliJ IDEA, and the Scala plugin now provides support for it out of the box.

Better import management

We have finally fixed the problem with incorrect imports (e.g. scala.Some), so you can use Optimize Imports to eliminate all bad imports in your code.

In addition, the Optimize Imports has been improved in several other ways:

  • Optimizing imports on the fly
  • Lexicographical sorting of import statements
  • Possibility to disable the grouping of imports from the same package in a single statement
  • Grouping imports
  • All imports are fully qualified by default

Faster and more user-friendly Scala worksheets

They’re just plain better. Read more details in the previous post.

Extract Trait refactoring

This is a new refactoring that helps you define new traits from existing classes.

Extract Method refactoring improved

This good old refactoring has been improved and can now search for duplicates and extract a case class when multiple output is detected. Plus, it now has fewer bugs and work a bit faster.

More inspections for collections

And last but not least, we have new code inspections for you! This time, they help you improve code working with collections:

  • contains(_ == x) ==> exists
  • getOrElse(null) ==> orNull
  • product, min, max ==> foldLeft, reduce
  • Option.map.getOrElse ==> fold
  • Map.get.getOrElse ==> getOrElse
  • !isEmpty ==> nonEmpty

That’s pretty much it. For the full list of changes, see the Release Notes.

As always, you’re welcome to share your feedback in our discussion forum as well as submit bug directly to the tracker.

Develop with Pleasure!

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