IntelliJ IDEA 2020.2 is released!

Posted on by Zlata Kalyuzhnaya

IntelliJ IDEA 2020.2 is packed with an amazing set of features, including more advanced support for GitHub pull requests, a new Inspections Widget that displays the number of warnings and errors in an opened file and allows you to quickly navigate between them, the Problems tool window that offers details of the issues in your current file and allows you to fix them fast, and the Related Problems inlay hint that notifies you when your changes break other files. There is also a bunch of new features for a number of frameworks and technologies including Jakarta EE, Quarkus, Micronaut, Amazon SQS API, and OpenAPI.

Java

  • Java 15 will be out in September and IntelliJ IDEA 2020.2 is fully ready for it. We’ve updated our support for the Records feature, which is now in its second preview, added basic support for Sealed Classes, and provided full support for Text Blocks, which are a full-fledged feature in Java 15.
  • If changes that you make to a Java method or field will cause errors in other files, the IDE will instantly notify you about that with an inlay hint. Click on this hint and the IDE will give you a list of the errors so you can fix them.
  • If an exception happens while running your app, the IDE can use static analysis to find its root cause and pinpoint the exact statement that caused the exception.
  • You can easily create inspections from structural searches, and specify a distinct description and severity for each of them.
  • The Introducing Variable refactorings can now replace occurrences of a variable in intermediate scopes, as opposed to only replacing one or all occurrences.
  • You can now start typing the Stream API method directly in a collection or array, and the IDE will suggest to automatically insert ‘.stream()’ for you.
  • Another Stream API improvement is that the IDE now suggests chained calls of expected type in the autocompletion.
  • We’ve added a new action that can convert an optional chain to a chain of ‘if’ statements.
  • You can collapse several statements into a loop, and the ‘unroll loop’ intention action will now get the loop size from dataflow.
  • Our data flow analysis can report non-trivial expressions that are known to evaluate to 0, and warns you about unnecessary comparisons where Math.min or Math.max is never bigger or smaller than another operand.
  • We’ve grouped the Java live templates under the Java node in Settings/Preferences to make it easier for you to locate them among the live templates for all the other languages.

To learn more, visit the Java section of the What’s new page.

Editor

  • We’re pleased to introduce our brand new Inspections Widget, which displays the number of warnings and errors in the current file and allows you to easily navigate between them.
  • There’s a new Problems tool window that shows the list of warnings and errors in the current file and gives you a description of those problems, and you can quickly fix them directly from the tool window.
  • Preview the result of intention actions and quick-fixes before you actually apply them to your code.
  • We’ve updated the background processes dialog to make it less visually cluttered.
  • The UI of the status bar has been tidied up to look neater.

Find more details in the Editor section of the What’s new page.

Version Control

  • Now the entire GitHub pull request workflow can be done directly from IntelliJ IDEA. It’s possible to browse, assign, manage, and even merge pull requests, view the timeline and inline comments, submit comments and reviews, and accept changes.
  • IntelliJ IDEA 2020.2 supports Git installed in WSL 2 for working with projects located in Linux or Windows file systems.
  • The Git dialogs for actions such as merge, pull, and rebase have been updated to have greater visual consistency and less clutter.
  • We’ve added the ability to squash commits from the Git log view.
  • The Drop Commits action is now available from the Git log as well.
  • Now when you are comparing 2 branches in IntelliJ IDEA, you’ll be able to see the commits of the compared branches in one view.
  • We’ve switched GitHub authorization from password-based, which is deprecated and will stop working soon, to OAuth.

To learn more, visit the Version Control section of the What’s new page.

Frameworks and technologies

  • We’ve added support for Jakarta EE 9. The IDE now supports the following Jakarta EE technologies: CDI, JPA, Batch, Bean Validation, JSF, JAX-RS, WebSocket, Servlets, JSP, JSON-P, JSON-B, Security, and EJB and JTA specifications.
  • You can create both Java EE 8 and Jakarta EE 9 projects from our updated New Project wizard.
  • The IDE now offers highlighting and code completion for the .properties and YAML configuration files in your Quarkus projects.
  • You can navigate from the Quarkus properties files to configured beans and vice versa using the IDE. You can also navigate from Java code to properties files.
  • The IDE now provides gutter navigation for injected beans. We’ve also updated our inspections so they will work with the Quarkus simplified syntax.
  • IntelliJ IDEA provides code completion for URL path references in REST Assured tests. Navigation from URLs to the related resources is now also available.
  • The IDE now integrates the Swagger UI tool.
  • IntelliJ IDEA can now calculate a structural diff between OpenAPI specifications.
  • It’s now possible to generate a new Micronaut project through the New Project wizard.
  • For Micronaut and Amazon SQS API applications that use asynchronous communication via RabbitMQ or Kafka, the IDE now provides navigation via gutter icons, find usages, and name completion for message queues and topics.
  • The IDE can automatically generate JAX-RS and MicroProfile HTTP requests and open them in the integrated editor-based REST Client.
  • The Selenium plugin now integrates with Selenoid and provides an easy way to run a new test environment right from the browsers.json file.

To learn more, visit the Frameworks and technologies section of the What’s new page.

Profiler

  • Our HPROF memory viewer has been enhanced with this release. In addition to general information about the heap, it now also shows the calculated retained sizes of objects, shortest paths to garbage collector roots, dominator tree for objects (retained objects), and incoming references. Learn more.

User Experience

  • The new Shared Indexes plugin, which allows you to download indexes instead of building them locally, makes it possible to cut indexing time on large projects by around 60–75%.
  • Сompletion for Java and PHP languages is now available during indexing.
  • We’ve updated the progress bar indicators to make them less visually cluttered. The UI of the status bar has been updated as well.

For further details on these new features, please visit the User Experience section of the What’s new page

Terminal

  • It is now possible to call IDE features right from the Terminal. When you see a highlighted command in the Terminal, press Cmd/Ctrl+Enter to open the corresponding GUI tool. Learn more.

Build Tools

  • IntelliJ IDEA 2020.2 supports Maven wrapper that automatically installs the necessary Maven version into your project.
  • Now it’s possible to set a Maven version for each project individually in IntelliJ IDEA. Previously, the Maven version was shared across all opened projects.
  • The build output of IntelliJ IDEA’s native builder is now shown in the Build tool window – the tool window that we already use to report the Gradle and Maven output.
  • The IDE now provides project name completion and navigation from a project name to the build.gradle files.

See more details in the Build Tools section of the What’s new page.

JavaScript and TypeScript

  • New smart intentions will help you perform some actions faster. For example, you can now quickly convert a for loop with a numeric index into a forEach array method.
  • Now it’s even easier than before to make Prettier the default formatter in your JavaScript projects, simply enable the new “On code reformat” checkbox.
  • We’ve added support for Nuxt.js and Vue-specific code style settings.

For more details, visit the WebStorm What’s new page.

Database

  • You can view and edit a long cell value in a separate panel using the new Maximize mode.
  • It is now easier to observe and edit boolean values, as they are shown not as checkboxes but as raw values.
  • We’ve made it possible to preview the query with your changes in the data editor.
  • We have added support for a new SQL dialect – Google BigQuery. The IDE correctly highlights your queries and offers coding assistance for them.

For more details, visit the Database Tools section of the What’s new page.

Docker

  • IntelliJ IDEA 2020.2 allows you to securely connect to Docker on Windows, as we have added support for TLS connections to the Docker daemon from IntelliJ IDEA.

To learn more, visit the Docker section of the What’s new page.

Kubernetes

  • You can now specify a custom kubeconfig file in Preferences / Settings | Build, Execution, Deployment | Kubernetes.
  • We’ve added editing support for ConfigMaps/Secrets, and what’s more, the IDE takes information not only from the current project but also from the cluster.
  • It is now possible to call Find Usages from the cluster for ConfigMaps/Secrets and their keys.

For more details, please visit the Kubernetes section of the What’s new page

Scala

  • We’ve added auto-import for Implicits. Learn more.
  • Now both braces are added and removed automatically and on the fly based on code indents. Learn more.
  • We now show navigatable gutter icons for companions. You can also navigate to a companion by using Go To on a class, trait, or object keyword.
  • IntelliJ IDEA can render Scaladoc right in the editor, so it looks crisp and concise.
  • We’ve also improved Scaladoc rendering in the Quick Documentation popup – it can now properly handle paragraphs, lists, and macros.
  • You can now autocomplete a method’s name and its arguments in a single step, as long as appropriate values are present in the current scope.
  • You can now apply a “static” function to an argument using dot notation, which can be used in conjunction with algebraic data types (ADTs).

To learn more, visit the Scala section of the What’s new page or read the Scala release blog post.

Android

  • IntelliJ IDEA 2020.2 includes all the changes from Android Studio 4.0. To learn more about the features of this new version, please refer to the Android Studio blog post.

Miscellaneous changes

  • IntelliJ IDEA 2020.2 detects if you are using a screen reader and will automatically enable IntelliJ IDEA’s accessibility features.
  • IntelliJ IDEA 2020.2 adds support for Unicode emoji characters on Linux.
  • We’ve significantly improved the performance of remote debugging for Java projects.
  • We’ve migrated from JavaFX to JCEF (Chromium Embedded Framework). Starting with v2020.2, we stop bundling JavaFX and start offering it as a separate plugin so that external plugins that depend on JavaFX can use it as a dependency.
  • The Alt+6 (Linux and Windows) / Cmd+6 (macOS) shortcut was reassigned, and now instead of invoking TODO it will invoke the Problems tool window.
  • Starting with v2020.2 the IDE won’t support running and testing projects on Java 5 or older Java versions. The editor continues to support Java 5.
  • We’ve unbundled many plugins for technologies which are no longer in active use: JBoss Seam, JBoss jbpm, Play Framework, Flash/Flex, ASP, CFML and Struts 2.

A full list of all the issues addressed in this release can be found in the release notes.

Please let us know what you think! We really appreciate your feedback, and we encourage you to continue to share your thoughts and suggestions with us. You can reach us on Twitter, Facebook, our discussion forum, issue tracker, or here in the comments!

Make sure to visit the What’s new page for more details and screenshots and don’t forget to check out our overview video.

Update to IntelliJ IDEA 2020.2 and enjoy a set of amazing new features in your favorite Java IDE!

Happy Developing!

Subscribe

Subscribe for updates