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!

Comments below can no longer be edited.

7 Responses to IntelliJ IDEA 2017.3: VCS enhancements and more

  1. Avatar

    Jack Miller says:

    October 19, 2017

    These new and shiny features are all nice and helpful but it’s quite disappointing that you don’t fix the old and annoying bugs, for example for the ant build. When switching to the subscription model you even argued, that having subscriptions would allow you to fix “un-sexy” bugs. Why is that not happening?

    • Zlata Kalyuzhnaya

      Zlata Kalyuzhnaya says:

      October 26, 2017

      Hi Jack! Thanks for your feedback. We are very sorry about it, but it does happen sometimes. Please let me know the issue ID, and I’ll get back to you everything I will be able to find out.

  2. Avatar

    Raffaele Castagno says:

    October 19, 2017

    I’d love a new idea based replacement for sourcetree…

    Anyway, idea is the single most impressive piece of software I always show to shocked coworkers. They are mostly sublime text users, and that’s a powerful editor, but there’s no match with a war machine like idea.

    Keep the good stuff coming, folks!

  3. Avatar

    Adam Schwartz-Lowe says:

    October 20, 2017

    I have to say, I am REALLY looking forward to the enhancement that preserves the state of your branch when moving back and forth between different branches. Thanks!

  4. Avatar

    Jonathan says:

    October 20, 2017

    Can wait to get my hands on it

  5. Avatar

    B. Hudson says:

    October 21, 2017

    Will it auto trigger a build on branch change? I’d love to have that option. Combined with JRebel this gets me all the time.

    • Avatar

      Kirill Likhodedov says:

      October 21, 2017

      There is already an option Settings | Compiler | “Build project automatically”. If enabled, it tells IDEA to constantly build the project on every file change. It should work for branch switching as well.

Discover more