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

    Hello, Habr!

    I hasten to share the good news. IntelliJ IDEA 2016.3 is now available today - the next major update to our (and hopefully yours) favorite Java IDE. Read below about major changes and innovations.



    Java 8


    Since the release of Java 8, IntelliJ IDEA provides inspections to help you write the correct and idiomatic Java 8. In IntellIJ IDEA 2016.3 these inspections have been seriously redesigned, expanding 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 , toArrayother. Note: a similar inspection is available for Kotlin. Also, the IDE will suggest replacing the corresponding constructs with Map.computeIfAbsent , Collections.removeIf or ThreadLocal.withInitial where it 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 scala.meta support . IntelliJ IDEA supports the “new” macro annotations and provides assistance with editing scala.meta quasiquotes.

    Jvm debugger


    Class-level watches


    This powerful new 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 context of the class.



    Memory view


    This new plugin allows you to examine objects in the JVM memory while debugging code. The plugin shows the number of objects in memory, grouped by class name. As you navigate through the code while debugging, the Diff column shows how this number changes. Double-clicking on a class will open a dialog with objects. Also, the plugin allows you to track 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 the tips for some methods are redundant, you can ask the IDE not to show them.



    Semantic highlighting


    Previously featured 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 turned on in SettingsEditorColors & FontsLanguage DefaultsSemantic 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 IDE actions such as Build , Build Artifacts, and Run directly to Gradle. When this option is enabled, the IDE calls the appropriate Gradle tasks instead of standard actions. You can enable this option in SettingsBuild, Execution, DeploymentBuild ToolsGradleRunnerDelegate IDE build / run actions to Gradle .

    Gradle Composite Builds.


    This powerful new option allows you to replace any of the project dependencies with another project. This option requires Gradle 3.1 or later.

    Polyglot maven


    Now pom.xml can be written in Groovy, Scala, Ruby and other languages. (Note: hints for editing pom.xml are only available for Groovy.)

    Version control


    Log for Git and Mercurial


    The Log window has been redesigned again, this time with the goal of increasing ergonomics and speed. The panel of detailed changes has shifted to the right, freeing up more space. Description of 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 stored between IDE runs. 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 over the base revision. In addition, both Merge and Diff now offer syntax highlighting and navigation for non-basic revisions.



    Also added management of remote repositories.

    Javascript


    ECMAScript 6


    IntelliJ IDEA allows you to automatically convert variables declared by var to const / let , depending on the semantics of their use.



    For all require calls , the IDE will offer import auto-replace .



    For all classes declared using prototype functions and chains, the IDE will offer AutoCorrect to full classes.



    TypeScript


    Fixed the problem of renaming inherited methods.

    Flow


    Now, if you specify Flow as the version of JavaScript, and also specify the path to the Flow distribution, the appropriate 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, select the Loose application ... instead of the artifact on the Deployment tab in the WebSphere Run / Debug configuration window.

    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 that hides the visual elements of 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 related to the work of Instant Run . Now Instant Run should work more stable.

    APK Analyzer


    This utility allows you to analyze the contents of the APK.

    Database


    Editing multiple cells


    Now you can select several cells and edit them at the same time.

    Batch Submit Changes


    Now changes to the table are not sent immediately, but by pressing Ctrl + Enter ( Cmd + Enter for OS X) - in whole packages. Use Undo to roll back an unsent change.

    Usage Search


    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, displays, and triggers use the selected table.



    Clouds


    Google cloud tools


    Google introduced its own plugin for deploying applications on Google Cloud. Later, this plugin will completely replace the JetBrains plugin for working with the Google App Engine.

    OpenShift Origin (V3)


    The OpenShift plugin now supports the new version of OpenShift.

    Toolbox app


    Be sure to take a look at the Toolbox App , the new desktop application for conveniently installing and updating any JetBrains IDE.



    This is briefly all that the team managed to do in 4 months, not counting the bug fixes.

    Details, screenshots, and a video about the release can be found on the What's New page . You can also download the update there.

    As always, I will be happy to answer any questions.

    Also popular now: