IntelliJ IDEA 2016.2
Preview

This is a preview of the second update in the 2016 release series.
In this update you'll find many important bugfixes and new features.
Join the preview and share your feedback!

Debugger

Watches and variables

The Watches view has been merged with Variables for more convenience.

Multiline expressions

Multiline expressions are now supported in breakpoint’s Condition and Evaluate and log, and Data Type Renderers.

Version control

Log

The Log viewer for Git and Mercurial continues getting better:

  • It loads in the background on every change (a commit, fetch, rebase, etc). As a result, it’s always ready when you open it.
  • We’ve reworked the way the Log shows the loading progress. Now, when refreshing, there’s a thin stripe shown under the toolbar.
  • When you select several commits, you see all commit details.
  • Ctrl+L can be used for navigating to the Filter field.

Patches

A patch can be applied from the clipboard (when the IDE obtains focus), or by dragging a file into the IDE.

If a file has been moved or renamed since a patch was created for it, the IDE will try to figure that out or let you manually choose the file to apply the patch to.

In case the file has been changed since a patch was created for it, but IntelliJ IDEA cannot find its original revision, you'll be prompted to apply the patch using a Merge-like dialog.

Also, the Apply Patch dialog provides the Show Diff action to compare the patch to your local version. While comparing, you can edit your the local version.

Case-only renames

We've added support for case-only renames in Git for Windows and macOS.

Unversioned files

The Commit dialog shows unversioned files so you don’t forget to commit something important.

Editor

Ligatures

We've added support for monospace font ligatures. To enable ligatures, go to SettingsEditorColors & FontsFont, choose a font that supports ligatures, e.g. FiraCode, Hasklig, Monoid or PragmataPro and select Enable font ligatures option.

Misc

Coding assistance for Regex has been extended with better error reporting, and code completion is now available for named group references

Inspections

The Inspection tool window has been redesigned for better ergonomics: now the code location for each problem is displayed, along with controls to apply a quick-fix or suppress the inspection

The IDE warns you when you instantiate new objects inside equals, hashCode, compareTo or Comparator.compare methods.

This helps avoid significant performance problems when, for example, objects of classes with such constructs are added to Set or Map, where these methods will be frequently invoked.

User interface

Notifications

We've reworked the way IntelliJ IDEA displays notifications to make them a little bit more friendly: the popups are now displayed in the right-hand bottom corner (next to the Event Log tool window icon), more compact, and grouped by the subsystem they came from.

Background images

Also, we’ve added a new action called Set Background Image. Give your IDE a custom look by choosing a background image for the editor and the IDE frame.

The action is available via Find Action and, for a selected image file, via the context menu for the Project tool window and Image Editor.

Spring Frameworks

Spring Core 4.3

  • A quick-fix suggesting to replace field injection with a constructor injection.
  • Generic types as qualifiers.
  • EventListener meta annotations defined with @AliasFor.
  • Highlighting and navigation for Spring messages in Console.
  • Better performance.

Spring Caching

  • Support for CacheResolver, CacheManager and KeyGenerator components.
  • An inspection that ensures that a cache name is provided for cache-related operations.
  • An inspection that warns you if you use Caching annotations on interfaces.
  • An inspection that warns you if you use CachePut and Cachable with the same method.
  • Support for Cachable meta annotations defined with @AliasFor.
  • Context dependent assistance for editing SpEl in annotations.
  • A gutter icon for navigating to other operations related to the same cache name.

Spring MVC

Code completion and navigation within FreeMarker or Velocity templates for defined variables.

Spring Security

  • Support for all major features added in Spring Security 4.0.
  • Context dependent assistance for editing SpEl in annotations and XML.

JavaScript

ECMAScript 6

The IDE now helps convert callback functions to arrow functions when you click Alt+Enter on the function keyword. Also, it can convert arrow functions to shorthand arrow functions.

Postfix completion

In addition to the .var postfix template, added earlier, now you can use .let and .const templates. As you might guess, when you press Tab these expand into declarations with let and const keywords.

React

The IDE can now understand component properties defined via propTypes and provides code completion for them.

The component lifecycle methods (e.g. componentDidMount, etc) aren't shown as unused anymore.

Another nice improvement is that now IntelliJ IDEA will automatically add {} instead of “” for React events like onClick, onChange, etc. Moreover, the IDE now understands React non-DOM attributes: key, ref and dangerouslySetInnerHTML.

AngularJS

We’ve added a collection of Live Templates for Angular 2. To use a template, type its abbreviation in the editor and then press Tab to expand it. Press Tab again to jump to the next edit location in the template.

Also, the Project Wizard now supports Angular CLI.

Npm, Grunt and Gulp

Now you can specify any Grunt, gulp or npm task as a Before launch task in a Run/Debug configuration.

HTML code style

Now you can configure whether you want the IDE to add single, double or no quotes at all when autocompleting attributes in HTML and JSX.

Database Tools

  • Code completion for database names in Data Sources and Drivers.
  • Auto-scroll from Editor option in the Database tool window.
  • Code completion is more relevant now: it doesn't suggest functions when a table name is expected.
  • Surround With now includes function.
  • Table Editor provides completion for column values.
  • Resizing columns via Ctrl+Shift+Right/Left.
  • PostgreSQL support has been extended to Schema Search Path, Range types and types with TimeZone.
  • Learn more…

Choose
your edition

Community

For JVM and Android development

Ultimate

For web and enterprise development
Java, Kotlin, Groovy, Scala
Android ?
Maven, Gradle, SBT
Git, SVN, Mercurial, CVS
Perforce, ClearCase, TFS
JavaScript, TypeScript ?
Java EE, Spring, GWT, Vaadin, Play, Grails, Other Frameworks ?
Database Tools, SQL