Hi, Habr!
I hasten to share the good news.
IntelliJ IDEA 2016.3 , another major update of our (and hopefully, your) favorite Java IDE, has become available today. Read below for major changes and innovations.

')
Java 8
Since the release of Java 8, IntelliJ IDEA has provided inspections to help write correct and idiomatic Java 8. In IntellIJ IDEA 2016.3, these inspections have been seriously reworked, extending the scope beyond trivial examples. Now, if you press
Alt +
Enter inside a non-trivial for loop, the IDE will offer to rewrite it using the Stream API. In this case, the IDE will rely on almost all available APIs:
count ,
sum ,
flatMap ,
map ,
mapToInt ,
collect ,
filter ,
anyMatch ,
findFirst ,
toArray, and others. Note: similar inspection is available for Kotlin. The IDE will also propose replacing the corresponding constructs with
Map.computeIfAbsent ,
Collections.removeIf or
ThreadLocal.withInitial where this makes sense.

Scala
Scala.js
The updated Scala plugin now provides navigation and autocompletion for
js.Dynamic - based on variables and methods declared in JavaScript libraries or project files.
scala.meta
The plugin also received support for
scala.meta . IntelliJ IDEA supports βnewβ macro annotations and provides assistance with editing scala.meta quasiquotes.
JVM debugger
Class-level watches
This new powerful debugger feature allows you to add
Watch expressions at the class level. These expressions look like class fields, but their values ββare determined by the expressions themselves. Expressions are specified in the class context.

Memory View
This new plugin allows you to examine objects in JVM memory while debugging code. The plugin shows the number of objects in memory, grouped by class name. As you move while debugging through the code, the
Diff column shows how this number changes. Double clicking on the class will open a dialog with objects. Also, the plugin allows you to track the
stacktraces of creating objects.

Interface
Method parameter name hints
The
Parameter Hints option (enabled by default) shows the names of method parameters if literals or null are used as arguments. Such hints make the code more readable. If hints for some methods are redundant, you can ask the IDE not to show them.

Semantic highlighting
Previously available in KDevelop and several other IDEs, Semantic highlighting is now available in IntelliJ IDEA. This option adds unique colors to the standard highlight for each parameter and local variable. This option is turned off by default, but can be enabled in
Settings β
Editor β
Colors & Fonts β
Language Defaults β
Semantic highlighting .

Icons
File and folder icons have become flat. New icons have become clearer and less distracting.
Build tools
Delegate IDE build / run actions to Gradle
This new option allows you to delegate such IDE actions as
Build ,
Build Artifacts and
Run directly to Gradle. When this option is enabled, the IDE instead of the standard action calls the corresponding Gradle Tasks. Enable this option in
Settings β
Build, Execution, Deployment β
Build Tools β
Gradle β
Runner β
Delegate IDE build / run actions to Gradle .
Gradle Composite Builds.
This new powerful option allows you to replace any of the project dependencies with another project. This option requires Gradle 3.1 or higher.
Polyglot maven
Now pom.xml can be written in Groovy, Scala, Ruby and other languages. (Note: hints when editing
pom.xml are only available for Groovy.)
Version control
Log for Git and Mercurial
The
Log window is reworked again, this time to improve ergonomics and speed. The panel of detailed changes shifted to the right, freeing up more space. Description of the changes are now aligned and more readable. Tags with tags and branch names have shifted to the right and are displayed more elegantly. The search string is saved between IDE launches. For Git, searching by text, author and path has become much faster.
Merge and Diff
The
Merge window can now resolve conflicts automatically where possible. In such cases, the
Resolve icon with a magic wand will be displayed on the left. We also added markers that reflect the changes that will be applied on top of the base revision. In addition, both
Merge and
Diff now offer syntax highlighting and navigation for βnon-basicβ revisions.

Also added remote repository management.
Javascript
ECMAScript 6
IntelliJ IDEA allows you to automatically convert variables declared var to
const /
let , depending on the semantics of their use.

For all
require calls, the IDE will suggest an auto-exchange for
import .

For all classes declared using prototype functions and chains, the IDE will offer an autocorrect for full classes.

TypeScript
The problem of renaming inherited methods has been fixed.
Flow
Now, if you specify Flow as the JavaScript version, and also indicate the path to the Flow distribution, the corresponding inspections (and in some cases, auto-completion) will work.
Application servers
TomEE 7
TomEE support has been updated to the latest version.
Liberty
Now the IDE allows you to run
loose applications . To do this, on the
Deployment tab in the
WebSphere Run / Debug configuration window, instead of an artifact, select Loose application ....
React native
Now you can launch and debug React Native applications for OS X and Android directly from the IDE.

Android
Blueprint
This is a new mode in
Designer , which hides the visual elements of the components and reflects only their structure.
Constraint Layout
This is a powerful new
layout manager that allows you to create complex interface structures using a flat structure.
Instant run
According to information from the Android Tools team, the update fixes a large number of problems associated with the work of
Instant Run .
Instant Run should now work more stable.
APK Analyzer
This utility allows you to analyze the contents of the APK.
Database
Editing Multiple Cells
Now you can select multiple cells and edit them simultaneously.
Batch posting changes
Now changes in the table are not sent immediately, but by pressing
Ctrl +
Enter (
Cmd +
Enter for OS X) - in whole packets. Use
Undo to revert the unsent change.
Search for uses
Now you can search for the use of database objects in the source code of other database objects. For example, you can find out which procedures, functions, mappings and triggers use the selected table.

Clouds
Google Cloud Tools
Google
introduced its own plugin for deploying applications to Google Cloud. Later this plugin will completely replace JetBrains plugin for working with Google App Engine.
OpenShift Origin (V3)
The plugin for working with OpenShift now supports the new version of OpenShift.
Toolbox app
Do not forget to take a look at the
Toolbox App - a new desktop application for easy installation and updating any IDE from JetBrains.

In short, all that the team managed to do in 4 months, not counting the bug fixes.
Details, screenshots and videos about the release can be found on the
What's New page (in English). There you can
download the update.
As always, I will be glad to answer any questions.