Early Access Program Features

IntelliJ IDEA 2017.3: VCS enhancements and more

The IntelliJ IDEA 2017.3 EAP  is available! Before we take a look at the exciting new features the latest IntelliJ IDEA 2017.3 EAP build has to offer, let’s talk about the VCS features we briefly announced last week.

Version Control

If you use Git or Mercurial for version control, you can already view all commits to all the branches in the Log view. Starting with this EAP, the IDE shows the files changed by merge commits even if they only differ from one parent. Previously only the files that had merged conflicts were displayed.

showchangestoparent

Furthermore, the IDE now displays a 3-panel Diff for merge conflicts.

IntelliJ IDEA currently provides a useful tool for managing your tasks – Tasks & Contexts. With IntelliJ IDEA 2017.3, we are expanding this functionality: you can now shelve changes related to your current task when starting a new task. You can then unshelve the changes when you switch back.

Screen Shot 2017-10-16 at 11.57.44

IntelliJ IDEA 2017.3 also supports working with multiple branches. When you switch between branches, the IDE preserves your workspace: the opened files, the current run configuration, and the breakpoints. The workspace associated with a branch will be automatically restored when you switch back to that branch.

branches&context

Changelists can now be renamed in the Shelf tab. It is also possible to shelve changes using drag-and-drop: drag a changelist from the Local Changes tab to the Shelf tab, and soon after the Shelf tab will be activated.

shelfchanges

Drag-and-drop a changelist from the Shelf tab to the Local Changes tab, and the IDE will let you select a changelist to put it into.

ShelfLocal

IntelliJ IDEA 2017.3 EAP now reads the author and commit details provided by git patches, so you don’t need to enter them manually when committing patches from the IDE.

commit-changes

Database tools

The IntelliJ IDEA 20173.3 EAP build brings a new feature to the database tools: the ability to group data sources.

GroupDataSources

Another enhancement in that area is support for Foreign Data Wrappers in PostgreSQL.

FDW

And last but not least, starting with this EAP, something color scheme designers may find useful: the ability to configure hints and tooltips background via | Preferences | Editor | Color Scheme | General | Hints and Popups |

Screen Shot 2017-10-18 at 16.25.27

JVM debugger

As the Debugger is one of most important tools for any developer, we’re constantly working on making it even more capable and easier to use.

IntelliJ IDEA provides essential features for debugging asynchronous applications: Async stacktraces. The Async Stacktraces feature shows the full picture of the data flow between the threads. It allows you to view the combined stack traces of all threads.

For this code example:

Screen Shot 2017-10-11 at 11.23.37

We’ll have the following stacktrace:

Screen Shot 2017-10-06 at 16.21.55

Until now, in order to use the Async stacktraces feature, you had to specify the stacktraces to capture and the point to insert. This approach was not very convenient. Another issue that you probably faced while using this feature was a significant overhead.

Screen Shot 2017-10-08 at 20.03.25

To make the Async Stacktraces feature easier to use, we developed a new mechanism: Instrumenting agent. The new Instrumenting agent method extends the Async Stacktraces feature and provides almost the same functionality, with a very low overhead. You won’t need to spend time on configuring Async Stacktraces anymore, as common capture points are built-in. Starting with this EAP, the new Instrumenting agent option is enabled by default.

You can also set up a special configuration manually, if needed. (Settings | Build, Execution, Deployment | Debugger | Async Stacktraces).

Screen Shot 2017-10-06 at 17.41.17

Another improvement in this update is also related to the Debugger. With IntelliJ IDEA 2017.2, we presented a separate plugin to visualize the Java Stream operations called Java Stream Debugger. In this IntelliJ IDEA 2017.3 EAP build, the Java Stream Debugger plugin is bundled and available inside the Debug tool window.

2017-10-04 17_03_19

Click here to learn more about the Java Stream Debugger.

Smarter code completion

The Smart Completion becomes aware of the type casts and uses them to suggest the chains of method calls. Please note that in order to use the Smart Completion feature, the project needs to be compiled by IntelliJ IDEA, don’t delegate the compilation to Gradle.

Screen Shot 2017-10-09 at 5.57.23 PM (1)

Improvements in Java inspections and actions

The IDE inspection for redundant throws declaration is now available on the fly.

InspectionThrows

IntelliJ IDEA 2017.3 provides quick-fix suggestions for deprecation inspections if a direct replacement method is available in JavaDoc.

QuickFixForDeprecation

IntelliJ IDEA detects different code inefficiencies, such as Invert boolean method inspection. If a method was used only in an invert way, the method would be highlighted and a quick-fix would be suggested. Starting from this new EAP build, this inspection is performed on the fly.

InspectionInverted

Starting with this EAP, IntelliJ IDEA warns you about duplicate Map keys.

InspectionMap

And about duplicate Set elements.

InspectionsSET

New inspections for Fuse Stream API call chain and subsequent sort/toArray/collection creation:

12102017

fuseStreamOperations.JustArrayList

fuseStreamOperationsToCollectionGeneric

There’s also a new intention action, Unroll loop:

UnrollLoopIntention
There are many more enhancements to different areas in this EAP:

VCS

  • The ClearCase plugin is not bundled anymore.
  • After a Drag & Drop from the Local tab to the Shelf tab in the Version Control Tool window, you can rename the changelist on the fly.
  • You can also select the place where to drop your file if you Drag & Drop from Shelf to Local tab.
  • When applying a patch from a file or the clipboard, the author and the commit message are automatically saved in the changelist and are used when the changelist is committed.

Feel free to grab a copy of the IntelliJ IDEA 2017.3 EAP build and explore all our new features! As always, your feedback is very welcome: here in the comments, in our issue tracker, or on Twitter.

Happy developing!

image description