Early Access Program

IntelliJ IDEA 2020.1 EAP: Java 14, improvements for Git and UI, and much more

Today we are happy to open the Early Access Program for the next major release of IntelliJ IDEA – v2020.1. We are kicking off the new decade with a host of new improvements, check out all the details in this post!

As always, you can download the new EAP from our website, get it from our free Toolbox App, or update using snaps if you’re an Ubuntu user.


Let’s get right to the point! Here’s what’s new in the IntelliJ IDEA 2020.1 EAP:


Download JDK from the IDE

Imagine you are starting a new preconfigured project (Spring/Maven/Gradle, etc.) or a plain, simple Java project and you need to add a new JDK. With IntelliJ IDEA 2020.1 this will no longer be such a chore, as you can now download, extract, and set up a JDK right from the New Project wizard:

Once you have configured and created an application, the IDE will automatically download and set up the chosen Java version, allowing you to jump straight into coding without having to switch contexts.

Similarly, when you open an existing project, IntelliJ IDEA automatically checks whether there is already a suitable JDK available on your machine. If not, the IDE will suggest downloading one:

Note that you can now also download and configure Java when you’re setting up a Project Structure (File | Project Structure) in an existing project, and you can configure the Gradle JDK (Preferences / Settings | Build, Execution, Deployment | Build Tools | Gradle).

Support for Java 14

The IntelliJ IDEA 2020.1 EAP adds support for Java 14, which is also still in its Early Access stages and is planned for public release in March 2020.

This first EAP build allows you to play around with some of the new Java features, such as Records and Pattern Matching.


With this first EAP, you can create Java Records right from the New Java Class popup (Cmd+N/Ctrl+N from the Project tool window) just like you would for usual classes and interfaces:

In addition to the code insight features, such as code autocompletion and navigation, the IDE allows you to quickly generate a canonical or custom constructor and it will notify you about any existing errors:

Note that support for Records is still a work in progress, and some of the features, such as the code formatter, refactorings, and quick documentation will be added later in future EAP builds.

Pattern Matching

IntelliJ IDEA now also supports pattern matching of `instanceof` that will be included in Java 14. In this first EAP build, the IDE already provides full code insight support including inline renaming (Refactor | Rename or Shift+F6) of pattern variables. There’s also a new inspection and a quick-fix that enables you to quickly simplify the verbose instanceof-and-cast idioms with the new and concise pattern variables:


Quick Type Definition

With v2020.1, not only can you quickly view the definition of a variable, field, method, or any other symbol (View | Quick Definition), but you can also quickly view its type definition. To do so, put the caret on the desired symbol, then go to View | Quick Type Definition:

The IDE doesn’t have a default keyboard shortcut for this action yet, but you can manually set one up in the Preferences / Settings | Keymap.

Improved Navigation Bar

The Navigation Bar (View | Appearance | Navigation Bar) now displays methods in Java classes and interfaces, making it much easier to navigate between them:

And as a minor improvement, Quick Documentation now appears on mouseover by default. You can disable this option in Preferences / Settings | Editor | General.

UI improvements

JetBrains Mono font by default

IntelliJ IDEA and other IntelliJ-based IDEs are now using the brand new JetBrains Mono font (Preferences / Settings | Editor | Font) as their default. Learn all the details about this new beautiful typeface from the dedicated resource on our website.

Unified IntelliJ Light theme

The default light theme is now unified across all the different operating systems and is called “IntelliJ Light”. If the new theme doesn’t take your fancy, you can quickly roll back to the older default one for your OS: go to View | Quick Switch Scheme | Theme, and choose the `OS_NAME Light` theme (e.g. `macOS Light` for Mac).


Branches popup

  • The Branches popup now features an explicit search field that enables you to look for existing remote and local branches. Previously, you could find specific branches just by starting to type, but the absence of the explicit search field made this option unclear and rarely used.
  • The Refresh button has been reworked, so that you can now use it to update the existing remote branches.
  • Incoming (blue) and outgoing (green) commit indicators have been added to the status bar:

New “Interactively Rebase from Here” dialog

We have given Interactively Rebase from Here a substantial rework. This is a dialog that allows you to edit, combine, and remove your previous commits in order to make your commit history more linear and comprehensible.

To invoke this dialog, go to the Log tab of the Git tool window, select the oldest commit in the series of commits you want to edit, right-click it, and choose Interactively Rebase from Here:

And here’s what now opens in v2020.1:

Unlike the previous dialog, which was basically a list of available actions for the chosen commits, the new dialog is truly interactive. It features a nice graph that shows the actions you applied to each commit, it shows the commit details, and it allows you to see the diff and quickly reset the applied changes. Try it out and let us know what you think!

Other improvements for Git:

  • The Version Control tool window is now called the Git tool window, or Subversion/Mercurial/Perforce if you are using any of these instead of Git.
  • When you check out a new project from Version Control, the IDE will assist you with downloading and setting Git up if you don’t already have it on your machine.

Build tools

Maven and Gradle importing updates

v2020.1 makes the importing of Maven and Gradle changes less obtrusive. First of all, we’ve removed the annoying auto-import that used to always trigger, as well as the balloon that used to constantly show up and suggest importing updates before you’d finished updating the script. Instead, there’s now a floating notification in the upper-right part of the editor that will prompt you to load the changes:

You can now also use the shortcuts Ctrl+Shift+O for Windows and Linux /Shift+Cmd+I for Mac to load the changes.

If there are any external changes to the build scripts, such as VCS updates or edits made outside of the IDE, IntelliJ IDEA will reload the related projects automatically.

We’ve also removed the option to enable/disable auto-import from the settings, as the improvements mentioned above have made it redundant.

JetBrains Runtime

JBR8 End of Support

With v2020.1 EAP we are fully moving to JetBrains Runtime 11 (JBR11), and will no longer distribute builds with JetBrains Runtime 8 (JBR8). Please note that all the IntelliJ IDEA 2020.1 updates both in the IDE and the Toolbox App are coming with JBR11.

Please note that there’s a known issue with patch-updating JDK11 builds on 32-bit Windows and Linux machines, which should be fixed in one of the upcoming EAP builds: IDEA-229379.


Code insight for R2DBC, reactive SQL clients for Micronaut and Quarkus, and other 3rd-party libraries

IntelliJ IDEA has been long providing language injection for editing SQL strings used with the standard JPA and JDBC queries, but it used to treat 3rd-party SQL libraries as usual strings. Starting with v2020.1 the IDE automatically injects SQL fragments for popular 3rd-party libraries, such as R2DBC, providing code autocompletion and navigation for SQL statements and fields:

Similarly, we added full code insight support for reactive SQL clients (Vert.x SQL Clients) in Micronaut and Quarkus:

The list of supported libraries includes Apache DbUtils, Apache Spark SQL, R2DBC, Vert.x SQL Clients, Fluent JDBC, JDBI, Sql2o, Jodd DbQuery, jasync-sql, and jOOQ.

URL code completion for Android Volley

IntelliJ IDEA now supports the Android Volley library, and provides code autocompletion for URL path references, as well as code navigation to the related resources. For instance, if you are using Spring Boot as a backend for your Android app, the IDE will suggest existing URL paths in the autocompletion list (Ctrl+Space), and will enable you to navigate to the related controller or endpoint:

Check out the full release notes for the exact list of closed tickets.

Give this first EAP build a thorough try, and please share your feedback with us here in the comments, in our issue tracker, or on Twitter.

That is it for today. We’ll keep publishing the EAP builds for v2020.1 with more fixes and improvements each week. Stay tuned!

Happy Developing!

Comments below can no longer be edited.

61 Responses to IntelliJ IDEA 2020.1 EAP: Java 14, improvements for Git and UI, and much more

  1. Avatar

    Chinese user says:

    January 24, 2020

    Could you please add some CDN support for jetbrains maven repository in China, because the jdk, jbr and jetbrains SDK download speed is really terrible!

    • Avatar

      Artem Sarkisov says:

      January 27, 2020

      Could you specify how you download all the artefacts? JB’s resources are already distributed via CDN.

      • Avatar

        Shiro Hama says:

        February 13, 2020

        Hey, bro. I use the offical version and slow download question still happen..
        We still have to use VPN to download plugins for IDE… (Crying) .

  2. Avatar

    Mark says:

    January 24, 2020

    One thing you neglected to mention is that if you’re using an in-house wrapper for SQL queries, it’s easy to have IntelliJ recognize that as well.

  3. Avatar

    Edoardo Luppi says:

    January 24, 2020

    I’m really looking forward to the JRE/JDK 11 as the default environment for IDEA! I’d like to start developing plugins targeting release 11 too. Anyway, I think 2020 will be a positive year! Congrats.

    • Avatar

      Olivier says:

      June 9, 2020

      “I think 2020 will be a positive year!” still sure about this?

  4. Avatar

    Sebo Molnár says:

    January 24, 2020

    Are we able to disable “Load changes” button and rather leave it to be automatically done when there are some new changes?

    • Avatar

      Artem Sarkisov says:

      January 27, 2020

      No, IntelliJ IDEA will no longer load manual changes automatically to avoid importing build scripts in inconsistent state (e.g., not all dependencies are added etc.).

      But it will load automatically changes coming from VCS updates, branch switches and in other situations, when build scripts (pom.xml’s) are expected to be correct

  5. Avatar

    Maccimo says:

    January 25, 2020

    Lowercase ‘u’ and ‘v’ in new font are indistinguishable making whole font unusable.

    • Avatar

      Sarah says:

      January 26, 2020

      Something must not be right on your end, because they are very distinguishable on my end. u is curved and v comes to a very crisp point.

      • Avatar

        Robin says:

        February 11, 2020

        That’s right, you can even see that in the screenshots above

  6. Avatar

    PaulH says:

    January 25, 2020

    @Maccimo – you may want to check your setup, because those two letters are clearly distinguishable even at type sizes much smaller than would typically be used.

  7. Avatar

    Suresh says:

    January 25, 2020

    Awesome updates as usual.. Also, what happened to the dark toolbar on mac? It seems I can’t enable it back.

  8. Avatar

    Maccimo says:

    January 25, 2020

    Problems visible even on screenshots in this article.
    Letter ‘u’ in new branded font has no vertical line at the right bottom and this fact make it harder to distinguish from ‘v’. Uppercase letters is big enough to have no such problem.

    • Avatar

      Tagir Valeev says:

      January 29, 2020

      The ‘u’ shape was the first issue I reported when I started using the new font. However, after a few days, I get used to it, and now I like it. I’m using JB Mono for several months already and I don’t remember I ever mixed ‘u’ and ‘v’

  9. Avatar

    Lőrinc says:

    January 26, 2020

    Love it! 🙂

  10. Avatar

    Sebastian says:

    January 27, 2020

    unfortunately, 2020.1 EAP 1 (re-)introduced the errors using play!framework (v1.x) that were present in all 2019.3 EAP builds [1]. This got fixed in the final 2019.3 though.

    It looks like it’s the same problem:

    Reference element is not the same element for which references were queried

    java.lang.RuntimeException: Element: com.intellij.psi.impl.source.PsiPlainTextFileImpl; reference: com.intellij.play.references.PlayControllerActionPsiReferenceProvider$ControllerPsiReference; reference element: com.intellij.psi.impl.source.tree.PsiPlainTextImpl
    at com.intellij.psi.PsiReferenceServiceImpl.assertReferencesHaveSameElement(PsiReferenceServiceImpl.java:47)
    at com.intellij.psi.PsiReferenceServiceImpl.getReferences(PsiReferenceServiceImpl.java:23)
    at com.intellij.psi.search.SingleTargetRequestResultProcessor.processTextOccurrence(SingleTargetRequestResultProcessor.java:32)

    I reported it here: [2].

    [1]: https://blog.jetbrains.com/idea/2019/10/whats-new-in-intellij-idea-2019-3-eap8/#comment-505465

    [2]: https://ea.jetbrains.com/browser/ea_reports/5380442

    • Avatar

      Artem Sarkisov says:

      January 27, 2020

      Thank you for the report! The issue was found and fixed, and will be available in one of the upcoming v20201. EAP builds!

      • Avatar

        Sebastian says:

        January 28, 2020

        Great, thank you!

  11. Avatar

    Nemo says:

    January 27, 2020

    I just upgraded to EAP version. It gets stuck on splash screen after starting it on my Windows 10 machine. On Linux I got at least the EAP Licence agreement popup and after approving it the progress bar appeared on the splash screen. After that IntelliJ IDEA started OK. Any idea why can’t I run it on Windows? Any logs that I can look at?

  12. Avatar

    Nemo says:

    January 27, 2020

    Sadly I can’t start IntelliJ IDEA after upgrading to this EAP. It gets stuck on the splash screen on my Windows box. On linux it asks for EAP licence agreement (not sure why again?) and after clicking the popup out it starts up. Any idea why? Any logs that I can look at?

  13. Avatar

    Tom Prior says:

    January 27, 2020

    These updates are brilliant! Thanks a million. One minor thing – there used to be a preference to set the cursor blink rate and setting it to 0 meant that the cursor didn’t blink anymore. I can’t seem to find this preference in 2020.1.

  14. Avatar

    Dario says:

    January 28, 2020

    I see polishing in many locations; it looks like this could be a great release! I’m also loving the new Git interactive rebase dialog, but it seems to be missing the squash option. Also, as already mentioned somewhere, selecting multiple commits and choosing fixup doesn’t seem to honor all of them. Keep up the good work!

    • Avatar

      Dmitriy Smirnov says:

      January 28, 2020

      Thanks for the kind words!

      > it seems to be missing the squash option

      Squash and Fixup are similar actions, the difference is in commit-message. So we wanted to make a combined action that will squash/fixup depending on the user choice but it has not been implemented yet. So the option to squash will be back in future updates

      > Selecting multiple commits and choosing fixup doesn’t seem to honor all of them

      Known issue – https://youtrack.jetbrains.com/issue/IDEA-231025

  15. Avatar

    Pierre says:

    January 28, 2020

    I’m very confused about the new Interactivly Rebase dialog.
    normally we squash all our commits before we merge a feature branch.

    but with the new dialog i don’t know how to squash all my commits into one :-/

    • Avatar

      Dmitriy Smirnov says:

      January 28, 2020

      Squash and Fixup are similar actions, the difference is in commit-message. So we wanted to make a combined action that will squash/fixup depending on the user choice but it has not been implemented yet. So the option to squash will be back in future updates

  16. Avatar

    Ward Lootens says:

    February 3, 2020

    Previously, the _Local Changes_ were displayed in a separate tab on the _Version Control_ tool (now _Git_).
    Now, they seem to be shown in a dedicated _Commit tool_, which is confusting me.
    Any way this could be changed?

    • Avatar

      Nikolay says:

      February 4, 2020


      • Avatar

        Pierre Liebsch says:

        February 4, 2020

        just go to settings -> version control -> commit dialog und uncheck the first checkbox. then you have the old commit dialog

        • Avatar

          Ward Lootens says:

          February 7, 2020

          Nope, that doesn’t fix the issue I describe.
          There are still 2 tool tabs
          – Git (with branches, git log etc…)
          – Commit (with local changes and shelf)

          IMHO, these are very related

    • Avatar

      Sergei Morozov says:

      February 4, 2020

      This is indeed really weird to have the local changes displayed in a different window than the rest of the Git-related info. In the end, those local changes are calculated against the last _Git commit_.

      I’d rather see the Local Changes tab back in the Git window than have to deal with two windows for the same purpose (version control).

    • Avatar

      Sorin Jucovschi says:

      February 8, 2020

      I agree with what Ward is saying. I would prefer having the Local Changes tab inside the Git or Subversion one (I’m currently working with both SCMs).
      Can we vote on this? Is there a reason for splitting these two? Is is because of the new Git and Subversion panels?

      You guys are doing a fantastic job! I would never consider using any other IDE than IntelliJ 🙂

      • Avatar

        Evgeny Nacu says:

        February 13, 2020

        Absolutely agree.
        Currently I’m a bit confused with this decision (moving local changes to separate tool window)

    • Avatar

      Martin says:

      February 14, 2020

      I agree with Ward. I opt for the well known ‘Local changes’ tab inside ‘Versions control’ or ‘Git’. Its extremly usefull to see the local changes without having to open another window.

      • Avatar

        Pierre says:

        February 15, 2020

        Luckily in the newest 2020.1 version it’s again in the git/vcs window.
        Not really happy that the diff window opens automatically, but at least it’s back where it has to be.

    • Avatar

      Suresh G says:

      February 19, 2020

      Yes, moving local git changes to a separate commit window is really confusing at first. I was expecting the same under the new Git tab. It would be great if both can merged under the same tab.

    • Avatar

      Peter says:

      February 25, 2020

      Had to google and find this thread to even find my local changes (in the new commit tab under View -> Tool Windows -> Commit). Please move it back to the Git Tab. A separate Tab has no benefit to me at all.
      The automatically opening diff window is also very confusing and does not appear always, sometimes only after IDEA loses focus. I thought its the usual popup and closed IDEA instead ^^

    • Avatar

      Julian says:

      April 23, 2020

      OMG this confused me so much

  17. Avatar

    Daniele says:

    February 6, 2020

    I’ve had problems since the first build of 2020.1.
    In particular, once it has finished indexing the editor it is unusable due to a very high input lag (I use windows). Is there anything I can do?

    • Avatar

      Artem Sarkisov says:

      February 6, 2020

      Hi Daniele!

      Please submit an issue to our bug tracker (https://youtrack.jetbrains.com/issues/IDEA) and attach your idea.log file (Help | Show Log in…) after you reproduce the bug. Please also describe the steps to reproduce the issue and a little code sample or a sample project if possible. Thank you and sorry for the inconvenience.

  18. Avatar

    Martin Jones says:

    April 6, 2020

    Love the improvements, well done.
    I found a few blocker issues for our plugin. Will these be fixed in the actual release?

    1) IDEA freezes and needs to be killed or wait up to 20 minutes. It sort of kills my productivity. https://youtrack.jetbrains.com/issue/IDEA-235635

    2) Support for local/remote tomcat is broken https://youtrack.jetbrains.com/issue/IDEA-232967

    3) The merged open/import action on welcome screen completely broke our plugin import. The custom import provider doesn’t show up. Our projects can be 3GB of complicated directory structure. Is this a bug or do we need to redesign our plugin?
    https://youtrack.jetbrains.com/issue/IDEA-236073 might need reopen.

    4) Also automated recursive scanning of subdirectories is not a good idea. i.e. Eclipse importer seems to find all eclipse modules. This will cause performance hit on 3GB projects. Can we turn that off in custom plugins, perhaps?

    5) custom plugin collision break IDEA. Will this issue find its way to this release? https://youtrack.jetbrains.com/issue/IDEA-231230

    • Avatar

      arsnisnevich says:

      April 6, 2020


      Here’s the answer to some questions so far:

      1. I answered you in the issue
      4. Could you point to a particular place in code, please? It isn’t quite clear what change are you talking about.
      5. Answered in the issue

    • Avatar

      arsnisnevich says:

      April 6, 2020

      In regards to the other questions:
      2. The responsible developer will investigate this soon, though we cannot provide an estimation on the fix yet
      3. Developer has answered in https://youtrack.jetbrains.com/issue/IDEA-233469#focus=streamItem-27-4065264.0-0

  19. Avatar

    Don Lindsay says:

    April 16, 2020

    2020.1 is incredibly slow for development with Java 1.8 and Spring boot. Coming from 2019.4 and going to 2020.1 is incredibly painful. It is almost unusable to work with. I am running on a Mac Pro with 128gb ram, 16 xeon processors on 10.15.4 and should not be experiencing any of these issues. I also have a 1gigabit fiber connection for internet.

    • Avatar

      V says:

      April 16, 2020


      IntelliJ IDEA 2020.1 (Ultimate Edition)
      Build #IU-201.6668.121, built on April 8, 2020
      Runtime version: 11.0.6+8-b765.25 amd64
      VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
      Linux 5.4.31-1-lts
      GC: ParNew, ConcurrentMarkSweep
      Memory: 1937M
      Cores: 16
      Registry: ide.find.use.editor.font=true, debugger.watches.in.variables=false, new.search.everywhere=false
      Non-Bundled Plugins: SBT ChangeListAction, com.perl5, org.scalafmt.ScalaFmt, org.jetbrains.kotlin, com.jetbrains.plugins.ini4idea, BashSupport, org.intellij.scala, Pythonid, org.toml.lang
      Current Desktop: X-Cinnamon

    • Avatar

      olgakli says:

      May 6, 2020

      Hello Don, can you please report an issue at the YouTrack (https://youtrack.jetbrains.com/issues/IDEA) providing a CPU snapshot (https://intellij-support.jetbrains.com/hc/en-us/articles/207241235-Reporting-performance-problems). Thank you

  20. Avatar

    John says:

    April 23, 2020

    Please restore option of disabling auto import, currently after chaning build file I have to wait 10 minutes, this is terrible

  21. Avatar

    Scott says:

    April 27, 2020

    Without at doubt this is the worst user interface in the history of computing. I’ll admit – I missed it. It’s about 8 pixels by 16 pixels, correct? So, instead of allowing me to choose if I’d like the computer – the thing that does things automatically pretty well – to just help me I know have to click on the smallest dialog box in history every. Time. I. Add. A. Dependency.

  22. Avatar

    Enayat Tahvildari says:

    May 1, 2020

    Would you please add a Fetch icon to the git toolbar

    • Avatar

      Dmitriy Smirnov says:

      May 6, 2020

      What exact toolbar do you mean?

      Currently Fetch is available in the Branches popup, in the Branches view in the Log, and in VCS operations popup.

  23. Avatar

    Martin says:

    May 6, 2020

    “We’ve also removed the option to enable/disable auto-import from the settings, as the improvements mentioned above have made it redundant.”

    So you are forcing us to click more buttons. Great? Please add the option back, give us the choice at least.

  24. Avatar

    Vini says:

    June 4, 2020

    “Maven and Gradle importing updates” –>
    I don’t like to not have the choice.
    Please add a boolean somewhere else to activate this behaviour.

Discover more