IntelliJ IDEA 2020.1 EAP was updated today. The new EAP build adds improvements to the debugger and the profiler, and it introduces a new Commit toolwindow along with the LightEdit mode. Keep reading to learn all about these exciting changes.
Debugger
Dataflow analysis assistance
IntelliJ IDEA v2020.1 adds dataflow analysis assistance to the debugger, which predicts and shows you possible exceptions and always true/always false conditions based on the current state of the program execution.
When you debug Java code and reach a breakpoint, the IDE runs the dataflow analysis based on the current state of the program and shows you what will happen next, before the code execution reaches that point:

You can read all the details about this new feature in Integrating Java Dataflow Analysis and the Debugger.
Pin to top
Another small but helpful improvement is the ability to pin any of an object’s fields to the top of its fields list. This can come in handy when the object has so many fields that it becomes difficult to find the ones you need to investigate:

We’ve added another minor debugger improvement that allows you to connect to a debugging session from a remote machine through IPv6.
Profiler
Focus on method calls
Now when you analyze your application’s performance with the CPU profiler, you can use a number of additional options to focus more specifically on a chosen method call and filter out the unnecessary ones:
- Focus on Subtree shows the selected method call and all the following calls in the subtree. When this is selected, the parent time-sample counter displays the overall time spent in the selected subtree.
- Focus on Call shows the selected method and the methods that call it. When this is selected, every time frame shows only the time spent in the selected method.
- Exclude Subtree ignores the selected method call and all the following calls in the subtree.
- Exclude Call excludes the selected method and all calls to it.

Visit the Profiling tools section to learn how to install and use this feature to analyze applications in IntelliJ IDEA Ultimate.
Collapse recursive calls
IntelliJ IDEA now detects recursive calls when the same method is called higher up in the stack. The IDE now encourages you to take these calls out of the subtree, allowing you to bypass recursion and focus on the methods that consume most of the resources and on the calls that they make.
Recursive calls are indicated with this new special icon in the Call Tree tab:

Analyze HProf memory snapshots
IntelliJ IDEA 2020.1 enables you to open .hprof memory dump files without taking up too much of your RAM.
To open the .hprof file, go to Help | Find action and type “hprof” to find the Open Hprof Snapshot action:

Once you have chosen the .hprof file, the IDE will open it in the Profiler tool window:

A number of tabs appear in the picture above. Here’s what they do:
- Summary shows common information like the total size, number of instances and stack traces of the file.
- GC Roots shows all the root objects grouped by classes.
- Classes lists all classes sorted by their numbers of instances or size.
- Object view (double-click on an object) lists all the class instances with the field value viewer.
Note that in v2020.1 we are working on the very first version of this new feature. More sophisticated analysis should become available in the next major versions. As usual, we’re excited to see your feedback and suggestions in the comments.
Other improvements
New Commit tool window
We have been working on the new commit tool window for quite some time. In the previous EAP series, we tested several approaches to the Commit UI. Now in 2020.1 we’ve come up with a new tool window for the task. Here is what it looks like:

The new commit tool window incorporates the Local Changes and Shelf tabs. This tool window covers all commit-related tasks, like checking diffs, selecting files and chunks to commit, and entering a commit message. Commit is a vertical tool window located on the left, which leaves room for the entire editor to show the diff.
We are still working to improve the new tool window, and your suggestions and general feedback are very welcome in the comments!
LightEdit Mode
The new LightEdit Mode allows you to open files in a simple editor window without creating or loading a project. It’s been developed in response to a frequent request to use IntelliJ IDEA as a general-purpose text editor [IDEA-62898].
The easiest way to try LightEdit mode is to open a file from the command line by executing “idea file” where file refers to a file that exists in the local file system:

For more information on how to create a command line launcher, see Opening files from command line.
You can also use the Open action from the IntelliJ IDEA’s welcome screen or Open with…| IntelliJ IDEA from your OS’s system file manager.
Though the LightEdit Mode doesn’t provide the full set of the IDE features, it starts and works considerably faster. LightEdit mode is convenient for quick changes in arbitrary local text, source, and configuration files. This feature is in an early stage of development, and we are planning to implement gradual improvements and fixes over the coming EAP builds.
Preview intentions
You can now preview intentions before you apply them to your code. After pressing Alt+Enter to choose an available intention action, you now can also press Alt+Space to see a preview:

Zen Mode
The new Zen Mode has been added to get rid of possible distractions and to help you focus completely on your code. In its essence, this new mode combines the Distraction Free Mode and the Full Screen Mode, so that you don’t have to enable or disable both of these modes every time you want to enter or exit them.
Just like with any other editor mode, to enable the Zen Mode, go to View | Appearance | Enter Zen Mode, or choose it from the Quick Switch Scheme popup (Ctrl+` | View mode | Enter Zen Mode).
Check out the full release notes for the exact list of closed tickets.
That’s it for now! We’ll keep publishing the EAP builds for v2020.1 with more fixes and improvements each week. Stay tuned!
And Happy Developing!
Data flow analysis and the new Commit UI look incredible. Having more room to view diffs is always good. Is there a keymap to check/uncheck boxes in the commit staging left panel and the commit diff view? It would tremendously speed up my workflow if this is so.
Zen Mode is great but can we be sure to test it more with multiple projects/IDEs open? There are a lot of hiccups with Distraction Free mode with multiple windows open on MacOS.
In the commit panel use the space bar to check/uncheck boxes.
For checking/unchecking in the commit diff view you can use your own shortcut (define a keymap for “include lines into commit” in the keymap setting).
I have a lot of problems with this EAP.
All default javascript objects are not recognized (“window” for instance) and my IDE already crashed twice.
Hello Fabio, please create an issue at the YouTrack (https://youtrack.jetbrains.com/issues/IDEA) attaching to it the idea.log file after the bug reproduction (Help | Show Log in Finder) and providing the description of steps to reproduce and a little code sample or sample project if possible. Thank you and sorry for inconvenience.
Zen mode is cool, but can we also get the line numbers there?
Yes you can: Invoke Search Everywhere (Double Shift) or Find Action (Shift+Cmd+A / Ctrl+Shift+A) when in the Zen Mode, and look for “show line numbers”.
The separator between split editors is nearly impossible to see in the EAP. You can’t tell where one editor ends and another starts. Please revert that UI change.
Hi Joe,
There weren’t any significant UI changes related to splits in 2020.1. Do you have any custom UI theme plugins enabled?
In any case, feel free to file a new issue providing necessary details so we can investigate: https://youtrack.jetbrains.com/newIssue
Regarding the new commit tool window, unfortunately the new UI layout works fine only if you have a really wide screen, otherwise the key UI part of the commit tool — a code diff will look as two narrow blocks where most of the space will be occupied by paddings — either tabs or spaces.
Further discussion:
https://youtrack.jetbrains.com/issue/IDEA-231847
I don’t understand why there are so many experiments with the commit dialog. It get’s worth each time. To me the last iteration, where commit and VSC history are combined worked okay. What bothers me most are two points:
Alt-9opens the commit dialog and I have found no shortcut that opens Git log view. The other thing is the position of the new commit dialog. Why can’t I resize or reposition it?You should be able both resize and reposition the commit dialog from the context menu (Right click | Move to…). Does that not work for you?
As for the shortcut for the Git log view, you may find the new one and reassign it in Settings | Keymap.
I also noticed that
Alt+9doesn’t show me the git log. As far as I know, we haveCtrl+Kto open the commit dialog. What about usingAlt+9to show the git log, andCtrl+Kto show the new commit dialog?Zen mode needs an option to hide all warnings (or even errors).
At the very least there should be shortcuts to change highlighting level.
Otherwise, it’s not zen at all with yellow and red popping up as soon as you type something.
For the Commit window, I’m mostly not unhappy with the old UI actually.
What I do miss however, is a feature to keep the commit-window open when I do not commit all files.
Not infrequently, I have some changes that I want to commit separately from others. Then I want to select the files / changes that I want to commit, commit them, then select other files to commit, commit them separately, repeat, then push.
There’s an (old) issue about that, and I understand your problem. For me it helped to create changelists for those different commits. And, of course: commit early, commit often
The Javadoc tooltip appears when I hover over any part of my code. It is a bit annoying after some time. Is there a way to disable it.
I really like the static analysis feature in the debugger. Using this analysis you can identify certain unreachable lines, for example everything in an
elseblock if theifcondition istrue. Could you remove/strike-through/darken/… the unreachable code, or maybe highlight the code that will be executed with certainty?Hi How to use LightEdit if the IDEA path always changing from build number to build number. I’m using Toolbox which automatically updates it.
And maybe you can add to toolbox the button which will create and update PATH automatically?