πŸ“œ ⬆️ ⬇️

IntelliJ IDEA 2016.3: Java 8 and ES6, improved debugger and interface, and much more

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.

Source: https://habr.com/ru/post/315838/


All Articles