Early Access Program Features

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.

Now, when it’s appropriate, IntelliJ IDEA will prompt to replace certain code with:

  • Map.computeIfAbsent.
  • Collections.removeIf:
  • Map.getOrDefault:

As you can see, such inspections can make code much shorter and easier to read. For instance, look at the sample from a real codebase:

Just as with any other inspection, these can be run in batch mode on any scope withing your project.

Better VCS Integration

Earlier we mentioned that the layout of the Log viewer has been reworked to made it more compact. With this build, we’ve stepped even further and redesigned the branch labels:

Labels have been moved to the right side and are now displayed in a more elegant way. As a result, there’s more space for displaying the commit messages. Also, we’ve decided not to show tag names in this mode. If a branch and its tracked branch are on the same commit, they are displayed as “origin & master” (instead of “origin/master” + “master”).

A subtle, yet helpful improvement is the full syntax highlighting for non-local revisions in the Diff and Merge dialogs:

To get it working, we’re building the PSI tree rather than relying on lexer tokens. As a nice side-effect, you get the code navigation here as well.

Also, we’ve added line markers to the Merge dialog to indicate actual changes to the base revision:

We believe this will make it easier to understand what changes are actually going to be applied.

Delegating IDE build/run actions to Gradle

Last but not least, for Gradle projects, we’ve added an option that delegates the native IntelliJ IDEA Build, Build Artifacts (both WAR and EAR) and Run actions to Gradle: Settings → Build, Execution, Deployment  → Build Tools  → Gradle  → Runner  → Delegate IDE build/run actions to gradle.

When this option is selected, all these actions are performed via corresponding Gradle tasks. The Run action is delegated to the dynamic Gradle JavaExec task configured according to the run configuration. Exploded artifacts aren’t supported yet, but we’re working on it.

That’s it for now. You’re welcome to give these new features a try by downloading the new build–just as your feedback is welcome in our issue tracker.

Develop with Pleasure!