Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News JetBrains Releases IntelliJ IDEA 2021.3 with New Remote Development Feature

JetBrains Releases IntelliJ IDEA 2021.3 with New Remote Development Feature

This item in japanese

Lire ce contenu en français

With this release, IntelliJ offers remote development as a beta feature. The feature may be used from the IntelliJ IDEA Welcome screen, or alternatively by downloading the JetBrains Gateway via the Toolbox App. After installing an IDE backend and using a project on a remote machine, the experience is the same as working on a local machine.

Various bugs have been fixed to improve stability and the File menu now offers the Repair IDE action to resolve IDE issues.

⌘+mouse wheel or Ctrl+mouse wheel now change the font size for all open tabs at once.

A new inspection was added for Java in order to detect SQL injection, XSS flaws and other issues when using insecure data. Strings should be annotated as @Untainted for safe methods and @Tainted for unsafe methods by using the org.checkerframework.checker.tainting.qual dependency. IntelliJ will display a warning whenever a @Tainted or non-annotated String is passed to a method annotated with @Untainted.

The IDE can now detect blocking calls from non-blocking contexts by using @Blocking and @NonBlocking from the org.jetbrains:annotations:22.0.0 dependency of JetBrains annotations project. Some calls from Spring and Java EE are automatically evaluated as blocking, such as Spring’s CrudRepository and RestTemplate. IntelliJ displays a warning whenever those blocking methods are called from a non-blocking context.

Support for Spring Boot has been improved with auto-completion for values retrieved from the application.yaml file by Environment.getProperty(), @Value or @Scheduled.

For Java 16 and newer, the IDE suggests to replace collect(toList()) with .toList(), collection.addAll(List.of("value")) with collection.add(value) and map.putAll(Map.of("key", "value")) with map.put("key", "value").

IntelliJ now suggests declaring a local variable as final or as var via a gear icon next to the variable instead of a popup that hides the code.

The Kotlin Smart Step Into action allows debugging an expression with chained method calls and lambdas. On a line with more than one method call, click Step Into or use F7, then the IDE will display the method calls to step into and it’s possible to click on them.

Kotlin’s Constant conditions inspection warns about conditions and values which are always null, zero, true or false and may be enabled via Preferences/ Settings | Editor | Inspections | Kotlin | Probable bugs.

Inline hints for Kotlin ranges clarify what’s exactly meant with the range by displaying mathematical signs such as "<" to explain keywords like until.

The Maven configuration now resembles the Gradle configuration with one screen for all essential parameters and Modify options for other configuration elements. Maven settings can be configured per project in the .mvn/maven.config file which may be enabled through the checkbox Use settings from .mvn/maven.config via Preferences/ Settings | Build, Execution, Deployment | Maven.

The debugger’s vertical toolbar has been removed, which results in a more concise view with just one horizontal toolbar at the top of the window. By default, the most popular actions are displayed and the others are available through the More icon. The Debug tool window now offers the Evaluate expression dialog.

Groovy 4 with features such as switch expressions, sealed types, record-like classes, built-in type checkers, built-in macro methods, JavaShell and POJO annotation is now supported.

This version introduces the optional SSH configuration to use an HTTP or SOCKS proxy server. The checkbox Use global IDE proxy settings may be used to sync the SSH proxy settings with the global IDE proxy settings.

It’s now possible to split the editor of the Run tool window, similarly to how the editor window may be split.

Favorites and Bookmarks were quite similar features which were confusing. Favorites are now removed and Bookmarks improved, everything marked with F3 on macOS or F11 on Windows/Linux is added to the Bookmarks tool window.

Java Flight Recorder’s .jfr files may be compared within IntelliJ to detect possible performance degradation.

IntelliJ IDEA improved support for Selenium UI testing, including support for Selenium 4 and now allows updating page object classes without a visual editor. It’s also possible to use the visual editor to add elements from the gutter panel. Python templates are now supported for both Selenium and Zelenium.

Multilevel test runs with multiple child test runs are now supported and the parent test run combines the results of the child test runs.

The IntelliJ IDEA HTTP client has been improved and now offers support for gRPC requests, output redirection to a custom file or directory, text and JSON streams, HTTP request identifiers and binary responses. gRPC requests can be generated automatically by clicking on the gutter icon in the .proto files.

The Qute templating engine designed for Quarkus is now officially supported.

Helm templates for Kubernetes may be reformatted, block elements such as if and else are now highlighted and it’s now possible to rerun the last helm command from the Services tool window.

Podman may be used to manage pods after configuring a connection and checking the TCP socket radio button under Preferences/ Settings | Build, Execution, Deployment | Docker and supplying the requested information.

Connecting to the Docker daemon from Minikube is now possible via the Minikube radio button under Preferences/ Settings | Build, Execution, Deployment. Alternatively, it’s still possible to connect to the Docker daemon from Minikube manually via the TCP socket radio on the same settings page.

Next to the Docker Hub registry, the GitLab and JetBrains Space registries are now supported. The registries under the Services window may be expanded to select and download the desired image. Auto-completion when using images from the supported registries in a FROM statement is now available.

Docker compose V2 is supported via the docker compose instead of the docker-compose command by selecting the radio button Use Compose V2 under Preferences/ Settings | Build, Execution, Deployment | Docker | Tools.

The Clean up action for Networks, Volumes, Containers and Images nodes works the same as the Docker prune command-line option.

Android Studio Arctic Fox 2020.3.1 is now supported with features such as compose preview, layout inspector and live edit of literals.

When using Space, merge requests and code reviews may be created from the Core Reviews tool window by using the + icon. Blue dots indicate which files haven’t been reviewed yet, the dot is removed once the file is opened. To change that, status Mark as Not Viewed may be used.

The IntelliJ IDEA blog and the What’s New in IntelliJ IDEA 2021.3 page offer a full overview of all changes for this release.

Rate this Article