IntelliJ IDEA 2020.3 EAP5: ML Completion, Git Stage Support, Code With Me, and More

Irina Maryasova

It is now week five of our Early Access Program. We hope that you are enjoying all the new features we’ve added so far and that you’re ready for another set of updates. In IntelliJ IDEA 2020.3 EAP5, you will be able to stage changes in Git, customize your run configurations on one screen, use the debugger for Gradle tasks, and more.

We invite you to test out all the new features by downloading the EAP from our website, install it using the free Toolbox App, or update to this latest EAP using snaps if you’re an Ubuntu user.

Editor

Java code completion based on Machine-Learning

One of the EAP’s most exciting changes is being implemented inside the IntelliJ IDEA editor. This change introduces the early stages of Java code completion based on machine learning (ML), which is an alternative to the standard ranking mechanism. It applies rules learned from data we have gathered anonymously during our EAPs, which results in better suggestions.

Note that we have not collected any source code, only information about your interactions with the code completion UI.

In IntelliJ IDEA 2020.3 EAP5, you can get a sense of how much more relevant the code suggestions have become. To make changes to the list visible, you can go to Preferences/Settings | Editor | General | Code Completion and select the checkbox Mark position changes in the completion popup. This labels the options reranked by ML-completion with up/down arrow icons.

Give it a try – see how ML changes the ranking!

Multiple files per template

It is now possible to configure a custom template that creates several files at a time. To do so, go to Preferences / Settings | Editor | File and Code Templates, click + to create a new template, and then click the Create Child Template File icon next to the +.

You will see a new node appear under the parent file.

In the File name field you can specify a pattern to generate a file name and a path using predefined variables that are listed in the Description section.

You can now use your customized template. Let’s see how the files are generated.

Plugins

Code With Me

IntelliJ IDEA 2020.3 EAP5 adds support for Code With Me – a tool for collaborative development and pair programming:

The updated version of Code With Me lets you configure permissions and includes other important updates. Learn more in this blog post.

Built-in Lombok plugin

The Lombok plugin is included in IntelliJ IDEA out of the box! This is great news for those of you working with Project Lombok, as you no longer have to remember to update your plugin.

Run Configurations

Updated Run/Debug Configurations

IntelliJ IDEA features numerous run configurations, which is generally a good thing. But when they barely fit onto the screen and it becomes necessary to add tabs that you have to spend time customizing, this is less than ideal. Because of this, we’ve implemented a new UI for editing Run/Debug Configurations for Java Applications and JUnit.

The Before Launch section is now located at the top of the screen. It lets you use the + icon to quickly add all the tasks that the IDE will perform prior to starting your application. The added tasks are arranged as a sequence of tags, which you can drag and drop to easily change the order of execution.

As many users run applications via the command line, we’ve decided to imitate it in our updated UI. The Run section contains the most commonly used configs with in-field labels. Once they are filled in, they look like command-line text. If you need more info on what you should enter in each field, use the additional hints that appear when you hover over the field with the pointer.

You can customize your configurations to meet the requirements of your app by clicking Modify options. All the options you select will appear as tags below the key run configs. You can also quickly remove any options you’ve selected by clicking the X on their tags.

We removed the Logs section from the tab. You can add it to the bottom of the window using Modify options. Once you’ve added the Logs section, you can add, remove, and modify individual logs.

When you are finished editing, click the Apply button.

There is another update for Templates. You can now add/remove configuration fields per Java Application or JUnit template. Every time you create new run configurations, you will see all the pre-defined fields by default.

We’d be really interested to know what you think about the new Run/Debug Configuration window.

VCS

Git Stage Support

The long-awaited staging for Git is here! In IntelliJ IDEA 2020.3, you’ll be able to stage right from the IDE. Let’s see how.

First, you need to select the Enable staging area checkbox in the Preferences/Settings | Version Control | Git and click Apply.

Now your Commit view contains Staged and Unstaged files. When you are ready to stage your file, simply click the + icon next to it, and it will appear under the Staged node.

You can also stage changes right from the gutter.

Another way to add your updates to the staged files is via Show Diff.

When you click Commit, all the files from the Staged node will be committed.

Improved branches

Several enhancements in this EAP touch upon branches. First, the IDE now automatically corrects unaccepted symbols in the names of new branches, which helps you quickly create branches according to the accepted format.

Second, you can now see all the actions related to the current branch.

Finally, for remote branches, we’ve renamed the Merge into Current and Rebase Current onto Selected actions as Pull into Current Using Merge and Pull into Current Using Rebase, respectively.

Unified patches

In the past, the patch format has varied depending on the VCS that was used. We’ve received feedback that this was inconvenient and slowed work down. In light of these concerns, we’ve changed the default format for patches. They are now all created in the Git format.

Debugger

Better debugging for Gradle

Starting from IntelliJ IDEA 2020.3 EAP5, your debug session for Gradle tasks will be more user-friendly, as only one tab will open per session, and it will contain Frames and Variables, as well as the Console output. Debugger controls, such as Rerun failed tests, now also work as expected.

However, sometimes you may need the debugger to use it’s old behavior. If this is the case, you can simply clear the Reuse Gradle debug session for forked processes checkbox on the Edit configurations… screen.

Profiler (Ultimate)

Flame Graph

When you profile your application, you usually get a lot of data. We’ve improved the search mechanism of the Flame Graph and its visualization so you can quickly get the method metrics. You can click on the magnifying glass icon or type your search request inside the Flame Graph panel.

In v2020.3, we’ve added the search field, up/down arrows for fast navigation between search results, and the ability to search either in the whole Flame Graph or just in a specific subtree.

Kotlin

Since Kotlin changes are now released at the same time as IntelliJ IDEA, we’ll cover them in this blog as well. In this EAP, you can try out the following new types of inline refactorings, which you can apply via Refactor / Inline… or ⌘N on Mac or Ctrl+Alt+N on Windows and Linux.

Cross-language conversion is possible, meaning that now you can inline Kotlin elements from Java.

It is now possible to inline refactor the also, let, run, apply, and with scope functions.

We’ve improved the inlining of lambda expressions. Now the IDE analyzes their syntax more thoroughly and formats them correctly. See how neat your code looks with this update.

That’s all for today! Keep testing out the new features, and don’t miss the changes coming in next week’s EAP. You can check out the release notes for a full list of the improvements in EAP.

Please share your thoughts about these updates in the comments below, on Twitter, or via our issue tracker.

Happy developing!

Subscribe

Subscribe for updates