IntelliJ IDEA 2016.3 Public Preview

There is an old saying, “time flies when you’re having fun.” By that measure, the past three months have been a lot of fun! But today it’s time to give you a glimpse of what has kept us having fun (and busy): IntelliJ IDEA 2016.3, the next update planned for this Fall, is available as a public preview. Everyone is very welcome to download and try its new features, and of course we’re eager to hear your feedback on it.

Here’s a list of the most notable changes in the update: Continue reading

Posted in Beta Releases, New Features | Tagged , | 6 Comments

IntelliJ IDEA 2016.2.5 Update is Available

We’ve just released IntelliJ IDEA 2016.2.5. In addition to bugfixes, it brings the support for macOS Sierra.

As usual, you can get this update either from our website, or via the Check for Updates command right your current IntelliJ IDEA installation, or you could try an alternative and use JetBrains Toolbox App, which has recently been made available as RC.

This brand new way has the advantage that you can use it to manage any of JetBrains IDE you have installed, not just IntelliJ IDEA, from a simple desktop tool.

Develop with Pleasure!

Posted in Releases | Tagged , , | 2 Comments

IntelliJ IDEA 2016.3 EAP: Gradle Composite Builds and Android Studio 2.2

Fresh IntelliJ IDEA 2016.3 EAP build, packed with various improvements is here.

This and all future builds will have the Gradle composite builds support, so you can substitute any of your project dependencies with another project.

Imagine your project has compilation time dependencies to org.sample:number-utils and org.sample:string-utils:

Now, you’d like to change something in these libraries (a very common case). Normally you’d need to open the sources of these libraries as separate projects, make the changes, build, upload new artifacts to the repository, then update the dependencies in your project and only after that, verify if the changes worked ok. Another change? Rinse, repeat.

With composite builds, everything is much, much simpler. All you have to is to attach the Gradle projects of these libraries via the Add button in the Gradle tool window (my-utils in our case), and then select Compose Build Configuration from the context menu for the original project.

Then, refresh your Gradle project, and you’re all set. Now you can make any changes to the attached projects and immediately get feedback—IntelliJ IDEA will use module dependencies instead of binary ones.

Note, this feature requires Gradle 3.1 or higher. Composite builds work nicely with the option that delegates the IDE build and run actions to Gradle:

We hope this will make your life a tad easier. If you’re using Maven, don’t worry: adding a similar feature for Maven is on our roadmap.

Also, in this build we have features coming from Android Studio 2.2:

  • The Blueprint mode in the Designer that hides all of the visuals from views and shows only their outlines. You can choose to have it side by side with the Designer.
  • Constraint Layout, a new layout manager which allows to create large and complex layouts with a flat view hierarchy. It’s similar to Relative Layout in that all views are laid out according to relationships between sibling views and the parent layout, but it’s more flexible and easier to use.
  • Many stability and reliability improvements to Instant Run. If you have previously disabled Instant Run, the Android team encourages you to re-enable it. Let us know if you come across further issues.

And among other news:

  • Filter values in the Log viewer for Git and Mercurial are now persisted between IDE restarts.
  • Support for SVN 1.8’s automatic reintegration merge.

That’s it for now. Download the EAP build, give it a spin, and share your feedback via our issue tracker.

UPDATE: Code Sample Browser and Espresso Test Recorder are removed from the post as they haven’t been merged yet from Android Studio. This work is still in progress.

Develop with Pleasure!

Posted in EAP Releases, New Features | Tagged , , , , , | 24 Comments

IntellIJ IDEA 2016.3 EAP: JavaScript, TypeScript, React and Angular and More

Although recently we’ve been posting a lot about IntelliJ IDEA 2016.3 EAP and new features it brings, we did very little mention of JavaScript and companions. Well, it’s time to correct this oversight because the WebStorm wasn’t just sitting there all this time, and since IntelliJ IDEA and WebStorm share the common platform, here’s what they contributed.

ECMAScript 6

For ECMAScript 6, we now have better support for destructuring assignments:

Also, the Find usages and Show usages actions have been extended to support default-exported functions and classes:

Angular 2

Coding assistance for Angular 2 templates is now more precise and aware of available types:

Set of the Live Templates has been updated to comply with John Papa’s recommendations.


The Project Wizard got an option to create new React projects with Create React App:

Before using this option, make sure that you have create-react-app installed and globally available on your computer (“npm install -g create-react-app”).


Stylelint, a code quality tool for stylesheets is now integrated so that you can see errors reported by it right in the editor:

You can install Stylelint via NPM, then add the .stylelintrc file and enable the integration via PreferencesLanguages & FrameworksStylesheetsStylelint.


TypeScript support is improved with a new inspection that warns you when an import statement can be shortened, and provides a quick-fix to do that:

Generated JavaScript files are now automatically excluded and don’t appear in code completion, search results, and other places they don’t belong.

All these improvements are already available in the latest IntelliJ IDEA 2016.3 EAP build. Give them a try and share your feedback with us via our issue tracker.

Also, make sure you’ve seen the IntelliJ IDEA 2016.3 EAP announcement (where we mentioned the improvements concerning Flow, PostCSS and TypeScript refactorings).

Develop with Pleasure!

Posted in EAP Releases, New Features | Tagged , , , , , | 1 Comment

Java Annotated Monthly – October 2016

September is a busy conference month, in particular a number of the Java-related JetBrains team were at JavaZone and JavaOne.  To save you some time, cash, and pain, October’s annotated monthly is going to be a little heavy on links to videos and slides – we go to conferences so that you don’t have to.


Continue reading

Posted in News & Events | Tagged , , , , | 8 Comments

Fresh EAP with Refactorings to Java 8, Better VCS and Gradle Integrations

A new IntellIJ IDEA 2016.3 EAP build is out and ready to try. Other than the usual amount of bugfixes, it brings a couple of noticeable improvements.

More Refactorings to Java 8

First of all, we continue with tuning the inspections that help refactor regular code into idiomatic Java 8.

Continue reading

Posted in EAP Releases, New Features | Tagged , , , , , , | 11 Comments

IntelliJ IDEA 2016.3 EAP: Faster Git Log, Parameter Hints and More

Hooray! Fresh IntelliJ IDEA 2016.3 EAP build is out! Among the numerous bugfixes, this build addresses one of the issues that prevented it from being used on macOS Sierra. Users of macOS Sierra, we’re kindly asking you to thoroughly test this build and let us know if the problem is gone.

Faster Search in Git Log

The new build brings a dramatic speed improvement to searching thru Git Logs, particularly for the Text, Author and Path filters.

Now, after the project has been opened (for the first time) and all the important startup tasks are completed, IntelliJ IDEA scans all repositories and builds indexes for all commits. This takes a while (for a large project like IntelliJ IDEA itself, it takes approx. 15 mins). During this time the search speed is the same as before, but after the index is built, the search results appear almost immediately. Each refresh triggers an incremental update of the index, so you won’t be spending much time on it.

Managing Git remotes

Also, we’ve finally added a way to manage Git remotes: via VCSGitConfigure Remotes. Now you can add, edit and remove remotes for every repo in the project:

Note that adding a remote is also available in the Push dialog.

Parameter hints

The editor has also got a notable improvement—parameter hints for literals and nulls used as method arguments. These hints make code much more readable:

Without these hints, understanding the semantics methods like this would be much harder:

Note that these hints are not displayed for:

  • Methods with one or less arguments.
  • Arguments shorter than 3 characters.
  • Paired arguments: e.g beginIndex and endIndexstartOffset and endOffset, etc.

This feature is still experimental and we appreciate your feedback on it very much.

More accurate inspections for the Optional type

Inspections that check for the correct use of the Optional type have been rewritten to use data flow analysis for better accuracy:

Conditional breakpoints

The icon for conditional breakpoints has slightly changed and now has a small question mark:


Spring-wise, we’ve added support for meta-annotations based on @RequestMapping: e.g. @GetMapping, @PostMapping and custom user annotations.


The last but not least, the support for Hibernate has been updated to 5.2.

Download the EAP build if you want to give these new features a try. Your feedback as always is very welcome in our issue tracker.

Develop with Pleasure!

Posted in EAP Releases, New Features | Tagged , , , , , , , | 17 Comments

IntelliJ IDEA 2016.3 EAP: Polyglot Maven, Grails View, Inspections and More

Say hello to the fresh IntelliJ IDEA 2016.3 EAP build, which brings several new features worth checking out.

Support for Polyglot Maven

First of all, we’ve added the support for Polyglot Maven. In case you don’t know, this is a set of Maven extensions that allows the POM file to be written in Groovy, Scala, Ruby and other languages.

While project import works for any language, coding assistance within POM files is available only for Groovy.

Apart from that you can work with the projects that use Polyglot Maven just as with any other Maven projects.

The Show Effective POM action works as usual and is especially useful if you want to see how Maven interprets the DSL.

Building Groovy resources

Speaking about Groovy, we’ve added actions that build Groovy files located in resource folders. They’re available via the main menu BuildGroovy Resources. Build Resources is incremental while Rebuild Resources builds from the scratch.

Grails view

The Grails developers will be happy to know that the Grails view is back for Grails 3. Now, instead of a tool window, it’s tab inside of the Project tool window:

Artifacts are grouped by their type and reside outside of the sources folder. If you define a class within the src/main/groovy source folder and annotate it with @Artifact(“Controller”), the Grails view will show it under the Controllers node.

All the Project tool window settings are applicable to the Grails view as well, including Flatten Packages.

Items under the Plugins node (always the last in the list) navigate to the corresponding GrailsPlugin class.

Inspection that inlines local variables used only by return statements

IntelliJ IDEA has many inspections aimed at making code shorter and simpler. In this EAP build, we’ve added one more that we hope you’ll find useful.

The new inspection finds local variables used only by return statements, and provides a quick fix that inlines these variables–by replacing their assignments with return statements.

When the returned value can’t be inlined into return statement, the quick fix attempts to move the return statement as close to the computation of the returned value as possible:

Adding runtime assertions for not-null-annotated code

IntelliJ IDEA’s compiler (Settings → Build, Execution, DeploymentCompiler) has an option to generate runtime assertions for the methods and parameters annotated with org.jetbrains.annotations.NotNull.


Starting now it supports non-JetBrains annotations as well–JSR-305 in particular. Click Configure annotations to change the default behaviour:

The blue arrows indicate which annotation is be used by the IDE in inspections. Use the Check button to change them.

Here we’d like to thank Vladimir Dolzhenko who contributed to this improvement.

Resource bundle editor showing unused properties

The Resource Bundle editor now tells which properties are unused in the project:

Spring Initializr

Layout of the Spring Initializr has been reworked to fit more items and provide additional information. As a bonus, it now has the Search field.

Download the EAP build, give it a try and share your feedback with us. If you see something works not as it’s intended, write to our issue tracker.

Develop with Pleasure!

Posted in EAP Releases, New Features | Tagged , , , | 2 Comments

Share Your Stats to Improve Code Completion via Machine Learning

Code completion is, no doubt, one of the most useful features of any IDE. This is why IntelliJ IDEA offers it in so many flavors: Basic Completion, Smart Completion, Second Completion, Second Smart Completion, Statement Completion, and Hippie Completion.

Each of these completion types already uses different algorithms and heuristics, but we’d like take them even further with machine learning, which we believe can be a huge improvement to the completion efficiency. However, to really implement it, we need more data from you.

Here comes the idea of our new plugin: Completion Stats Collector. What this plugin does is it collects data about how you’re using code completion, anonymizes it and sends to us. Again, the plugin doesn’t send any of your personal data or code, just generic info about how code completion is used.

What are the benefits of installing this plugin? Mainly, of course, helping us to improve code completion. Less important, yet nice, you’ll always use the latest and most efficient completion algorithms tuned personally for you. In the beginning you won’t notice any big improvements (the opposite in theory may be possible sometimes). Later, as we keep improving the algorithm, we bet you’ll start noticing the difference.

The downside of using the plugin is a slight outgoing traffic—with the maximum around 20KB/hour, based on how heavily you use code completion. In future we’ll do our best to keep the traffic as low as possible.

Like the idea of helping us improve the completion? Install the plugin! Meanwhile, we’ll be happy to answer questions, get suggestions or feedback.

Develop with Pleasure!

Posted in New Features, News & Events | Tagged , | 6 Comments

Webinar Recording: Introduction to Akka Actors with Java 8

Last week we had a pleasure of hosting a webinar in partnership with Lightbend about Akka Actors and Java 8. In it, Johan gave an introduction into how to write Actors and also answered a great number of questions. If you missed the webinar, but the topic is interesting to you, you’re welcome to watch the recording:

Jump directly to a topic you’re most interested in using the following links:

The sources of the project used by Johan can be found on GitHub.

For slides, use this link.

Also, please suggest other topics you’d like us to cover in our further webinars and the authors you’d like to have as webinar guests. In case you’d like to be such guest yourself, write to me about it.

Speaking to you

Johan AndrénJohan Andrén is a member of the Akka team at Lightbend. He has been working professionally with tech on the JVM since 2005, focused on Scala and Lightbend technologies the last five years. He is located in Stockholm, Sweden. Follow Johan on Twitter.

Develop with Pleasure!

Posted in Webinars | Tagged , | Leave a comment