IntelliJ IDEA 2020.2

Review and merge GitHub pull requests from right inside the IDE.
July 29, 2020 - 14:50
New Version

Features

Java

  • Java 15 support - Although the release of Java 15 will take place in September, IntelliJ IDEA 2020.2 is already prepared for it. Support for the Records feature has been updated and is now in its second preview. Also added is basic support for sealed classes and, IntelliJ IDEA provides full support for Text Blocks.
  • Related problems inlay hint - If you introduce errors by changing the signature of a class, method, or field that has external usages, the IDE will notify you with an inlay hint. Click on the related problems inlay hint, and the IDE will open the Find tool window with a list of all the related problems occurring in external files.
  • Ability to create multiple Structural Search and Replace inspections - The IDE allows you to find and, if necessary, replace blocks of code that match a specific pattern using Structural Search and Replace. With IntelliJ IDEA 2020.2, you can create multiple structural search templates as inspections. For each SSR inspection, you can specify the severity level, add descriptions, and enable or disable them separately.
  • Pinpointing causes of runtime exceptions - This release supplements exception stack trace analysis with dataflow analysis. When you click on the stack trace, the IDE can take you to the exact place in your code where an exception appears, and it offers a suggestion that can help you find out why it happened.
  • Better autocompletion for Stream API methods - IntelliJ IDEA 2020.2 works even better with the Stream API. Instead of having to type 'stream()' and then type the right operation on the stream, you can start typing the stream method name within the collection itself, and IntelliJ IDEA will insert 'stream()' automatically. This works for any stream operation.
  • Scopes for Introduce Variable - With IntelliJ IDEA 2020.2, the Introduce Variable refactoring can selectively replace occurrences of a variable in an intermediate scope. You can now choose various options for replacement, rather than being limited to choosing only one or all occurrences. The editor highlights which occurrences will be replaced with a new variable as you hover over each of the choices.
  • Java live templates clean-up - You no longer need to search for Java-related templates because the new Java node includes all plain, surround, other, output, and iterations groups. You won’t get lost when searching for a live template to fit your needs. A separate Groovy node is available as well.

Editor

  • Problems tool window - This release adds the Problems tool window, which displays the warnings and errors related to the current file, along with descriptions of the issues. From this tool window, you can right-click on an issue to navigate to the line of code where the problem was encountered, and you can fix the issues one by one with Alt+Enter.
  • Inspections widget - The Inspections widget simplifies searching for warnings, errors, and other issues, and lets you easily navigate between them by pressing F2 or clicking the arrow icons. From the Inspections widget, you can select which issues you want to highlight: none, errors only, or all problems.
  • Intentions preview - To experiment with the possible outcomes of applying intention actions, you can preview their results before you actually apply them to your code. Press Alt+Enter to call Show Context Actions and select the intention action you need and then press Alt+Space on Apple macOS or Ctrl+Shift+I on Microsoft Windows and Linux to display the results preview.
  • Improved Spellchecker - The built-in spell checker has been improved: it works much faster, filters out irrelevant suggestions, and ranks valid suggestions based on context. Additionally, the IDE detects the language from the first couple of paragraphs in a file and suggests enabling the corresponding language model.

Version Control

  • Full GitHub pull requests support - The details of open pull requests are now one click away in a separate vertical tool window. The main editor window shows the conversation, and you can add comments directly. Pre-commit check results are displayed at the bottom of the window. If you have permission to manage pull requests, you can now browse, assign, manage, and merge them, view and submit comments, and accept changes right from inside the IDE.
  • Improved Git actions dialogs - This release revises the visual consistency for Merge, Pull, and Rebase dialogs. It also improves the dialogs so that they clearly identify what Git commands will be executed, and included some missing options. It also adds --rebase and --no-verify to the Pull and Merge dialogs, respectively.
  • Improved result display for the Compare Branches action - When you compare two branches in IntelliJ IDEA 2020.2, the IDE shows their commits in one view by opening their logs in the editor. In contrast to the VCS tool window, this view has enough space for a full report on what commits are in each branch and which files are affected.
  • Squash and drop local commits from the log - You can now select multiple commits from a local branch and squash them. In the Git tool window, open the Log tab, select local commits, and choose Squash Commits. If you decide to change the commit message, all the changes in those commits will be put into one single commit together with the updated message. In addition, you can now drop commits from the Git log.
  • Support for Git installed in WSL2 - IntelliJ IDEA 2020.2 allows you to use Git installed in WSL2 when you work with projects from Linux or Microsoft Windows file systems. Once you open a project from WSL, the IDE automatically switches to Git in WSL and lets you use all the related features.

Frameworks & Technologies

  • Jakarta EE 9 support - This release is ready for the Jakarta EE 9 release in September, and it already supports all the features that are available for Jakarta EE, including CDI, JPA, Batch, Bean Validation, JSF, JAX-RS, WebSocket, Servlets, JSP, JSON-P, JSON-B, Security, and EJB and JTA specifications.
  • Java Enterprise project wizard - If you need to create a Java EE 8 or Jakarta EE 9 project, you can now do it using the New Project wizard. A new Jakarta EE project is just steps away. Set it up by selecting the Java version, build tool, extensions, and other options.
  • Quarkus config files support: .properties and YAML - To make it easier for you to work with Quarkus configuration files, the IDE now provides code completion and highlighting, and it colors unused code gray for both .properties and YAML configuration files. Additionally, you can jump right from the configuration files to the configured beans and back.
  • Better Quarkus CDI support - With the current version of the IDE, you can use gutter navigation for injected beans and updated inspections that work perfectly with the Quarkus simplified syntax. Additionally, IntelliJ IDEA 2020.2 supports DefaultBean, AlternativePriority annotations, and injection by qualifier only (no need to use Inject).
  • Swagger UI support - With the newly added Swagger UI integration, it is now possible to preview your OpenAPI in a built-in panel in the IntelliJ IDEA editor. This is a great update for simplifying testing.
  • Swagger Diff Ultimate - The IDE has been improved so that it can calculate a structural diff between OpenAPI specifications. Knowing the Swagger/OpenAPI specifics, IntelliJ IDEA 2020.2 compares JSON or YAML files based on their structure, and you can preview the detected diff. To do so, choose Compare Open API Specifications from the context menu or invoke this action from the Search Everywhere dialog.
  • Project generation for Micronaut - Added the possibility to create new Micronaut projects directly from the wizard. Configure the project step-by-step and start working with it in no time.
  • Message Queue support for Micronaut and Amazon SQS API - If your Micronaut application uses asynchronous communication via RabbitMQ or Kafka, this update is for you. Navigate message queues and topics using gutter icons, find usages, and name completion. You can benefit from the same set of features for the Amazon SQS API.
  • JAX-RS and MicroProfile REST Client HTTP Requests Generation - For easy creation and testing of HTTP requests, IntelliJ IDEA will automatically generate JAX-RS and MicroProfile HTTP requests and then open them in the built-in REST Client. You can even use intention actions to generate HTTP requests on any URL if your project uses one of the enterprise frameworks: Spring, JAX-RS, Retrofit, OkHttp, or Micronaut.
  • URL code completion for REST Assured tests - Updated REST Assured tests with code completion for URL path references and navigation to the related resources.
  • Selenium plugin adds integration with Selenoid - The Selenium plugin now integrates with Selenoid and provides an easy way to run a new test environment right from the browsers.json file. All required browser images will be pulled automatically when the Selenoid container starts.

Profiler

  • HPROF memory viewer - Improved viewer mechanics help you analyze the heap, pointing out parts of the code that use large amounts of memory, and detect the causes of memory leaks. The HPROF memory viewer displays the calculated retained sizes of objects, the shortest paths to garbage collector roots, the dominator tree for objects (retained objects), and incoming references.

User Experience

  • Faster indexing with pre-built shared indexes - You can now speed up indexing by downloading indexes generated on another machine instead of building them locally. Use pre-built shared indexes for JDKs, or generate and distribute custom shared indexes to a target IDE build. Simply install the Shared Indexes plugin.
  • New possibilities during indexing - While IntelliJ IDEA 2020.2 is indexing your project, you can now continue writing code. The IDE now offers code completion suggestions for Java and PHP during indexing.

Terminal

  • Option to run IDE features from the Terminal - It is now possible to call IDE features right from the Terminal. With IntelliJ IDEA 2020.2, you can run highlighted commands in their corresponding GUI using the Ctrl + Enter / Cmd + Enter shortcut.

Build tools

  • Maven Wrapper support - IntelliJ IDEA 2020.2 now supports the Maven Wrapper, which automatically installs the necessary version of Maven into your project. If the Maven Wrapper is present and configured, the IDE automatically uses it and imports changes when they are required.
  • Maven versioning per project - You can now set a Maven version for each project instead of using the previous approach, which used the same version of Maven for all open projects.
  • Build tool output presentation - To provide a more consistent user experience, this release now displays the build output of IntelliJ IDEA’s native builder in the Build tool window instead of in the Messages tool window.
  • Better code insight in build.gradle files - IntelliJ IDEA 2020.2 provides project name completion and navigation for project names in build.gradle files.

JavaScript and TypeScript

  • New intention actions for better productivity - You can now quickly convert a for loop with a numeric index into a forEach array method. Reading documentation comments in JavaScript and TypeScript files has also become easier, as you can now render them right in the editor to minimize distractions.
  • Prettier as a default formatter Ultimate - Starting with this release, it is now easier to set Prettier as the default formatter for tidying up your code. Just enable the On code reformat checkbox in settings, and the IDE will use Prettier whenever you reformat your .js, .ts, .jsx, and .tsx files. If necessary, you can add other file types too.
  • Nuxt.js support - Added Nuxt.js support and Vue-specific code-style settings – great news if you work with the Vue.js framework.

Database

  • Separate editor for cell values - This release introduces some valuable tools for cases where you have a long value in a cell. Starting with this release, you can view and edit long values in a separate panel. The editor panel has a soft-wrap mode that can be toggled in the right-hand toolbar.
  • New UI for boolean values - It is now easier to observe and edit boolean values, which are now shown as raw values instead of as checkboxes. You can type f, t, d, n, g, or c to enter the corresponding values of false, true, default, null, generated, and computed. If you type anything else, you’ll get a drop-down list with possible values.
  • DML preview in the data editor - You can now preview a query with your changes in the data editor. To do so, click the DML button that becomes active if there are changes pending.
  • Google BigQuery dialect Ultimate - Added partial support for Google BigQuery. The IDE correctly highlights queries and offers coding assistance for them.

Scala

  • Auto-import for Implicits - While you can use View | Show Implicit Hints to display implicits (even absent ones), importing an implicit was never an easy task. The new Auto-import for implicits action works exactly like Auto-import for unresolved references. The automatic popup makes the feature more discoverable, but it’s also possible to disable the auto-popup and invoke the Import… quick-fix with Alt + Enter (more info).
  • Indentation-based brace handling - Both braces are added and removed automatically and on the fly based on code indents. In this way, you can try significant indentation while still keeping the braces, even in Scala 2. To take advantage of this feature, just don't think about the braces and let the IDE do the work.
  • First-class companions - In Scala, a companion class or trait and the companion object have a special relationship. Now it shows navigable gutter icons for companions. You can also navigate to a companion by using Go To on a class, trait, or object keyword. Companion object members can now easily be auto-completed or auto-imported.
  • In-editor Scaladoc rendering - Improved Scaladoc rendering in the Quick Documentation popup - it can now properly handle paragraphs, lists, and macros.
  • Completion Improvements - First, you can now autocomplete both the method’s name and its arguments in a single step, as long as appropriate values are present in the current scope. Second, you can now apply a "static" function to an argument using the dot notation, which can be used in conjunction with algebraic data types (ADTs). This functionality is a part of Hoogle Completion - the attempt to re-imagine Hoogle in a language that doesn't use Hindley-Milner type system (work in progress).

Docker

  • Run Selenoid Docker infrastructure from the browser - The Selenium plugin now features support for Selenoid, a powerful implementation of Selenium - a framework that uses Docker to provide a highly configurable fresh browser session for running tests. The new Selenium support in IntelliJ IDEA enables you to run Selenoid, make it connect to Docker, and run containers in one click.
  • Connect to Docker securely - IntelliJ IDEA 2020.2 allows you to securely connect to Docker on Microsoft Windows, as this release adds support for TLS connections to the Docker daemon from IntelliJ IDEA.

Kubernetes

  • Multiple configuration files - You can now specify a custom kubeconfig file in Preferences / Settings | Build, Execution, Deployment | Kubernetes. Alternatively, click the Show Settings… button in the Services view when selecting a Kubernetes root item. You can also specify a custom kubeconfig file either globally or for a current project. In other words, you can have a separate kubeconfig file for each of your projects.
  • ConfigMap and Secret support - Added completion for ConfigMaps/Secrets from the current project and from the cluster. Items from the cluster are marked in blue in the completion list. You can now navigate from a usage of ConfigMap/Secret to the corresponding ConfigMap/Secret resource in the project or cluster. The same goes for ConfigMap/Secret keys.

Other

  • IntelliJ IDEA 2020.2 includes all the changes from Android Studio 4.0.
  • IntelliJ IDEA can detect if you are using a screen-reader, and if so, it will automatically enable the IDE’s accessibility features.
  • IntelliJ IDEA 2020.2 lets you use Unicode emoji characters on Linux.
  • To avoid performance and rendering issues, it now offers a new integration with JCEF to run IntelliJ Platform plugins.
Full support for GitHub pull requests

IntelliJ IDEA

Comprehensive Java development environment.

Got a Question?

Live Chat with our JetBrains licensing specialists now.