What’s New in IntelliJ IDEA 2022.3

With IntelliJ IDEA 2022.3, you can preview the completely reworked look and feel of the IDE by switching to the new UI using a setting. With this release, we’ve introduced a new Settings Sync solution for synchronizing and backing up your custom user settings. Additionally, IntelliJ IDEA Ultimate offers a new way to work with projects in WSL 2, new actions for Spring beans autowiring and OpenAPI schema generation, and long-awaited Redis support. This new version of the IDE features many other improvements and upgrades that are covered in detail below.

Key updates

New IntelliJ IDEA UI available via a setting

In IntelliJ IDEA 2022.3, you can switch to the new UI and preview the IDE’s completely reworked look and feel, which is clean, modern, and powerful. Tick the New UI preview box in Settings/Preferences | Appearance & Behavior and give it a try while working on your projects. You can learn more about our plans concerning this change in this blog post.

New Settings Sync solution

New Settings Sync solution

The new Settings Sync plugin is now available for all IntelliJ-based IDEs (except Rider), both the free and paid editions. The new solution is capable of syncing most of the shareable settings from the platform, bundled plugins, and some third-party plugins. Please note that we are discontinuing support for the old IDE Settings Sync plugin and unbundling the Settings Repository. For more details about the new Settings Sync plugin and the migration process, refer to this article.

A new way to work with projects in WSL 2

A new way to work with projects in WSL 2
Ultimate

IntelliJ IDEA Ultimate 2022.3 brings an alternative way to work with projects running in WSL 2 file systems. Instead of running a full IDE on Windows, your IDE backend will launch directly in WSL 2 itself. You then simply connect to it the same way you would connect to any remote machine when using remote development in IntelliJ IDEA. This arrangement can provide better IDE performance when working with projects in WSL 2.

New actions for Spring beans autowiring and OpenAPI schema generation
Ultimate

With IntelliJ IDEA Ultimate 2022.3, you can now easily autowire Spring beans right from where you need them. This new action is available for Spring, Micronaut, and Jakarta EE CDI. Also, we’ve enhanced the user experience for documenting web APIs with OpenAPI specifications, by making it possible to instantly generate an OpenAPI definition for a Spring controller or JAX-RS resource. You can find additional details about these improvements in this blog post.

Redis support

Redis support
Ultimate

In IntelliJ IDEA Ultimate 2022.3, we’ve implemented long-awaited support for Redis. You can now connect to Redis Single Instance, explore key values in the data viewer, write and execute Redis queries with the help of our smart coding assistance, and more. See the details in this blog post.

User experience

Option to dock tool windows to floating editor tabs

Option to dock tool windows to floating editor tabs

To make arranging your working space and interacting with IntelliJ IDEA on multiple monitors more convenient, we’ve implemented the option to drag tool windows out of the main window and dock them to floating editor tabs.

Intention action preview enabled by default

Intention action preview enabled by default

In IntelliJ IDEA 2022.3, the preview functionality for intention actions is switched on by default so you can instantly see how your code will be altered once you apply the IDE’s suggestions. The preview appears when you open the list of available intention actions and hover on one option or another. You can disable the preview feature by pressing Ctrl+Q while the list of intention actions is open or manage it in Settings/Preferences | Editor | General | Appearance.

Improved user experience with Search Everywhere results

We have fine-tuned the algorithm behind the Search Everywhere result list to make its behavior more predictable and the selection of the elements you’re searching for more accurate. Now, when you start typing your query, the IDE freezes the first search results that appear and doesn’t re-sort them when more options are found. Also, machine-learning ranking is now enabled by default for the Files tab, resulting in the improved accuracy of the results and shorter search sessions.

Similar usages clusters in Find Usages results

Similar usages clusters in Find Usages results

Find Usages now provides you with more insightful information about how a code element is used in your project. With the help of a clustering algorithm, the IDE now analyzes search results, detects the most common usage patterns, and categorizes all found usages into groups based on their structural similarity. These usage clusters appear in the Preview tab of the Find Usages tool window.

Improved tips of the day

Improved tips of the day

We’ve made a number of changes to the appearance and behavior of tips of the day to make them more useful and easier to digest. We’ve updated the dialog’s design, added a heading for each tip to specify which area of the IDE is being described, and implemented a tip rating functionality to collect your feedback. Also, we’ve fine-tuned the algorithm that determines which tips appear to make them more relevant to your experience with the IDE and the project you’re working on. Learn more.

Improved Bookmarks

We’ve implemented a few UI improvements to Bookmarks. First, it is once again possible to bookmark files from editor tabs; just right-click on a tab to invoke the context menu and then select Bookmarks. Additionally, you can add all files in all open tabs to Bookmarks. You can either invoke the same context menu and select Bookmark Open Tabs, or call this action using the kebab (three dots) icon located on the right-hand side of the editor tabs pane. The IDE will put all open tabs into a new list of bookmarks, which you can name as you like.

Viewing library code in your preferred code style

Viewing library code in your preferred code style

IntelliJ IDEA 2022.3 provides the ability to read code in your preferred style, even if it differs from the file’s current formatting. You can apply a new visual formatting layer in Reader mode, which adjusts the appearance of the code according to your custom formatting scheme without requiring you to reformat the real code.

Performance improvements

We’ve made notable performance improvements to optimize the IDE’s startup experience: we parallelized some of the processes that used to run sequentially and reduced eager class loading. We have also improved UI responsiveness by moving action updates to a background thread, and enhanced indexing by implementing multithreaded VFS refresh.

Editor

Improved copy-cut-paste behavior

We've reworked the behavior of the paste action (Ctrl+V). Now when you copy (Ctrl+C) or cut (Ctrl+X) a line without any code selected, the paste action will add the contents of the clipboard above the current line, not at your caret as it did in previous versions. Also, there’s a new option in Settings/Preferences | Advanced Settings that lets you disable the selection of the copied line after invoking the Copy action with no selection.

Code Vision hints for JavaScript and TypeScript

Code Vision hints for JavaScript and TypeScript

We’ve implemented Code Vision inlay hints for JavaScript and TypeScript. These hints provide you with instant insights about your code right in the editor, displaying metrics like inheritors, usages, code authors, and related problems.

Java

New Java inspections and other improvements

We’ve implemented a range of new Java inspections and quick-fixes to protect your code from possible hazards and errors. There’s a new inspection that detects switch expressions that have a common statement in every branch, and offers a quick-fix to move the statement up into the switch expression and thus shorten the code. The IDE now reports redundant array length checks, as well as redundant parallel() calls after Collection.parallelStream(). Another new inspection reports the unnecessary creation of arrays, lists, or strings when only one element or character is used. You can learn more about the new inspections and quick-fixes in IntelliJ IDEA 2022.3 in this blog post.

Java 19 support

Java 19 support

IntelliJ IDEA 2022.3 supports new features from Java 19, which was released in September 2022. The IDE now supports record patterns as well as the changes to pattern matching for switch expressions, providing code highlighting, completion, and navigation. The existing inspections and quick-fixes were updated accordingly to support these changes. For details, refer to this blog post.

Kotlin

Support for Kotlin 1.7.20 features

Support for Kotlin 1.7.20 features

IntelliJ IDEA 2022.3 now fully supports the features introduced in Kotlin 1.7.20, including the new ..< operator and data object declarations.

Improved IDE performance for Kotlin

Improved IDE performance for Kotlin

We’ve optimized cache and index usage, making code analysis faster and more stable. We’ve also improved the code completion algorithm in .gradle.kts files, making it up to 4–5 times as fast according to our benchmarks.

Scala

Better Scala 3 support

Better Scala 3 support

In v2022.3, we’ve introduced a large number of upgrades to provide better Scala 3 support. The IDE now supports parameter untupling and quoted patterns, and it features many improvements to the support for match types and type variables. There is now type inference for type variables, and they are parsed correctly for pattern-matching purposes. Named arguments in the trait constructor are now correctly handled, and you can use an action to quickly create a Scala 3 enum file or just an empty Scala file for top-level definitions. We also have numerous TASTy Reader enhancements, resulting in better highlighting accuracy and improved editor performance.

New Can be private inspection

New Can be private inspection

Sometimes it is possible to make a public class, method, or field private or protected. When the code is complex, however, it can be challenging to know whether this is the case. A new Can be private inspection now helps you be sure, and it will also propose a quick-fix. By actually marking members that can be private as private, you can keep interfaces separate from implementation details, making it easier to understand the code. This also reduces the noise during autocompletion, making the process of using it easier and faster, with less cognitive load incurred. It even improves the performance of the compiler and of the IDE.

Parameter types and context bounds

Parameter types and context bounds

Parameter info is now displayed for type parameters (previously it was only displayed for value parameters), and it is now smarter. Formerly, you may have seen that in the Parameter Info popup, the context bounds were desugared, showing implicit parameters. Now the code in the prompt is resugared and more readable. This might be especially useful for maintainers of libraries that use higher-kinded types.

Create parameter from usage

Create parameter from usage

If you have an unresolved symbol inside a method, there is now a new quick-fix that lets you add this symbol to the list of the method's parameters.

Profiler

UI improvements for the Flame graph

UI improvements for the Flame graph
Ultimate

We’ve introduced a new functionality that groups sequences of calls that take the vast majority of their parent time and standard library method implementations (such as java.util) and shows them as collapsed lists on the Flame graph. This makes it easier to process the data and stay focused on the most likely targets for optimization – calls that require significant computational resources. Also, we’ve made the popup more responsive and added a scale to it to help you stay focused on the call’s duration relative to the total execution time of the recorded snapshot.

Merge All Project Windows action on macOS

New Collect native calls checkbox
Ultimate

For v2022.3, we’ve reworked the way native calls appear in snapshots. To reduce the number of calls and make it easier to investigate the most common performance issues, native calls are not collected and are excluded from the snapshot by default. If you still want to track native calls for the most complete possible picture of your application’s runtime, you can enable them in Settings/Preferences | Build, Execution, Deployment | Java Profiler.

Version control systems

Redesigned Review list for GitHub and Space

Redesigned Review list for GitHub and Space

We’ve reworked the Review list UI to help reduce cognitive load and provide the most important information about requests at a glance. As part of this improvement, we’ve also unified the look and feel across all supported review platforms.

Build tools

Improvements for working with build.gradle files in Groovy projects

IntelliJ IDEA 2022.3 provides code completion and navigation for Gradle version catalogs in Groovy build scripts. We’ve also fine-tuned code highlighting in build.gradle files for Groovy and implemented several new inspections. The IDE now highlights deprecated configuration methods and suggests relevant replacement options. It also detects incorrect usages of the plugins DSL in build scripts and provides a set of new inspections that encourage the use of task configuration avoidance APIs, as recommended by Gradle.

Merge All Project Windows action on macOS

Maven import using the new IntelliJ IDEA Workspace Model API

With IntelliJ IDEA 2022.3, we’ve introduced experimental Maven import functionality using the new IntelliJ Workspace Model API. This change promises up to a 10% speed increase when importing Maven projects. The option is now enabled by default in Settings/Preferences | Build, Execution, Deployment | Build Tools | Maven | Importing. Please note that not all functionality is available at this stage, meaning some manual module settings won’t be preserved upon reimport.

Maven2 Support plugin

Maven2 Support plugin

Starting from v2022.3, we’re unbundling support for Maven2, making it available through a separate plugin that you can find and install via Settings/Preferences | Plugins or download from Marketplace.

Run / Debug

Enhanced Data Flow Analysis assistance in the Java debugger

Enhanced Data Flow Analysis assistance in the Java debugger

We’ve improved the Data Flow Analysis (DFA) functionality in the Java debugger. It was already the case that the DFA assistant predicted the future values of some expressions. Now, when the analyzer can predict that a particular branch of the code won’t be executed, it will gray out that part of the code.

New option to exclude coverage annotations

IntelliJ IDEA 2022.3 lets you manage which annotations in your project will be used to exclude methods from coverage statistics. To notify the IDE about methods that you don’t want to test, first tag them with any annotation and then go to Settings/Preferences | Build, Execution, Deployment | Coverage and add the annotations to the Exclude annotations list.

Frameworks and technologies

Jakarta EE 10 support

Jakarta EE 10 support
Ultimate

IntelliJ IDEA Ultimate now provides full support for Jakarta EE 10. You can select Jakarta EE 10 in File | New Project | Jakarta EE to create a project using the new specification versions.

Support for Hibernate 6.1 features
Ultimate

IntelliJ IDEA Ultimate 2022.3 features improved code insight functionality for the JPQL language and supports the latest Hibernate 6.1 APIs, including set operations (union, intersect, and except), filter operations, subquery selects, and set aggregations.

Code insight improvements for Liquibase
Ultimate

We have extended the code insight functionality for working with Liquibase tools. You can now easily create new Liquibase changeset files by invoking File | New | Liquibase Changelog on a db/changelog/ directory. Also, IntelliJ IDEA Ultimate now provides highlighting, code completion, and validation for Liquibase YAML files and suggests all the available code completion options in liquibase.properties files.

Improved navigation and inspections for dependency injection in Micronaut
Ultimate

IntelliJ IDEA Ultimate 2022.3 provides a new inspection that checks bean injection points and reports missing or ambiguous dependencies. We’ve also improved navigation to injected dependencies and inspections with bean qualifiers (such as @Named, @Primary, and others). Additionally, you can now navigate to an injected bean using a gutter icon.

Micronaut Data: Improved MongoDB support
Ultimate

JSON fragments are now injected into Micronaut MongoDB query annotations. IntelliJ IDEA Ultimate also provides code highlighting for operators and parameters, as well as code completion for fields and operators. The navigation gutter icons are now shown for Micronaut mapped entity classes and their fields, allowing you to easily open the Database tool window for the mapped collection.

OpenAPI schema generation for Ktor projects

OpenAPI schema generation for Ktor projects
Ultimate

With IntelliJ IDEA Ultimate 2022.3 it is now possible to generate OpenAPI documentation for Ktor projects. To do so, just place the caret at the embeddedServer function call, press Alt+Enter, and select Generate OpenAPI documentation for current module from the popup. The IDE will generate an OpenAPI specification in the application resources.

Editing improvements for YAML
Ultimate

There’s a new quick-fix to suppress inspections with a comment in YAML files, including Kubernetes files, OpenAPI specifications, and docker-compose.yml files. We’ve also introduced a convenient option to fold multiline comments that make up a block of 3 or more lines and start with #.

HTTP Client improvements
Ultimate

The HTTP Client now supports script blocks that are executed before requests. You can generate some data before request execution and put it in the final request using variables. IntelliJ IDEA Ultimate now also provides the сrypto API, making your code capable of computing md5 or sha1 hash values for HTTP requests. For simple cases, the IDE now features a new set of random variables. In addition, we’ve added support for gRPC metadata in the HTTP Client, so you can pass metadata as request headers.

Code style improvements for the HTTP Client
Ultimate

The HTTP Client now provides better formatting options for requests with long URLs. You can also use the Put query parameters on separate lines intention action to break the query into smaller fragments on different lines. To help you manage HTTP request formatting, we’ve implemented a new option in Settings/Preferences | Editor | Code Style | HTTP Request | Wrapping and Braces.

Docker

Docker executable from WSL without Docker Desktop

Docker executable from WSL without Docker Desktop

As of v2022.3, IntelliJ IDEA supports connections to Docker that run in WSL. You can set up such a connection in Settings/Preferences | Build, Execution, Deployment | Docker.

Pull Docker image intention action

There is now an easy way to pull a required image without running it from a Dockerfile, docker-compose.yml, or even from tests that use Testcontainers. Simply call up the context actions (Alt+Enter ) on the highlighted image name and select Pull Docker image.

Support for the .dockerignore file type

Support for the .dockerignore file type

We’ve introduced full support for .dockerignore files, including code highlighting and completion. These files are now taken into account when you build an image from the IDE.

Support for the heredoc format in Dockerfiles

Support for the heredoc format in Dockerfiles

Here documents allow you to redirect subsequent Dockerfile lines to the input of RUN or COPY commands. IntelliJ IDEA now supports this syntax, so you can use it to generate config files or multiline scripts right in your Dockerfiles.

Docker connections from Docker Contexts

Docker connections from Docker Contexts

You can now set up additional Docker connections using Docker Contexts, if you already have the settings for them in your Docker config file. You can do so by calling the Add Service context menu in the Services view and selecting Docker Connections From Docker Contexts.

Deprecated Docker Machine removed from the list of supported connections

Since Docker Machine has been deprecated by Docker, we’ve removed it from the list of connections in Settings/Preferences | Build, Execution, Deployment | Docker. If you’re an active Docker Machine user, you can still connect to it with an API URL. You can either get a list of Docker machines and enter the corresponding URL there, or enter the path to the certs folder.

Remote development and collaboration

Actions unavailable to Code With Me session guests are clearly marked

Actions unavailable to Code With Me session guests are clearly marked

If a certain action has been disabled for guests, it now appears as grayed out and a more detailed explanation is provided if space permits. This reduces the risk of confusion and makes collaboration more straightforward.

Beta support for Linux ARM64 as a backend in remote development

Beta support for Linux ARM64 as a backend in remote development
Ultimate

The demand for ARM64 for the backend is growing, as evidenced by the fact that this was one of the most requested features. You can now host IntelliJ IDEA projects on ARM64 machines and work with them remotely from any laptop. All the processing will be done on the ARM64 machine while you work with a lightweight client.

Overview of forwarded ports

Overview of forwarded ports
Ultimate

Port forwarding is an important part of remote development. With that in mind, we’ve reworked the port forwarding interface to make it more useful. It now features a full overview of the open ports along with their statuses, as well as the option to add or remove ports.

Reworked overview of recent SSH projects

Reworked overview of recent SSH projects
Ultimate

The mechanism for reporting the statuses of host machines has been completely reworked. You can now clearly see which machines are running, unreachable, and so on, and all the checks are done in the background, which improves performance.

QA tools

Use the Web Inspector outside the IDE

Use the Web Inspector outside the IDE

The Aqua plugin provides advanced support for UI automation. In v2022.3, it introduces an update to Web Inspector that lets you use it in two modes: either inside the IDE or in a separate window if you want more space.

Locator verification

Locator verification

The Aqua plugin provides a new Web Inspector feature – the locator evaluator. For any locator you provide, the locator evaluator will highlight all of the elements it points to on the web page and tell you how many matches there are. You will also be offered alternative locator options.

Code completion for locators from web page

Code completion for locators from web page

If you have Web Inspector open, autocompletion will suggest options for possible locators, highlighting them in an embedded browser.

Seamless navigation to elements on a web page

Seamless navigation to elements on a web page

You can now use the familiar Ctrl+Click shortcut or a context menu action to navigate between elements on a web page.

Database tools

Quick filter in Database Explorer

Quick filter in Database Explorer
Ultimate

We’ve introduced a long-awaited update to the Database Explorer. Now, when using quick search, you also have the ability to filter objects. All non-matching objects will be hidden.

Formats for date and time data types in the data editor
Ultimate

It’s now possible to customize how fields of the Datetime/timestamp, Time, and Date types will be displayed in the data editor. The settings are located in Database | Data Editor and Viewer. We are going to add support for the Zoned time and Zoned timestamp types next.

Pattern-based schema filtering

Pattern-based schema filtering
Ultimate

As of v2022.3, it’s now possible to choose databases or schemas for introspection based on regular expression patterns. To do this, click on Add Pattern and define a regular expression pattern in the new node. The databases or schemas will be chosen according to that pattern. Adding multiple patterns will combine multiplicities, not create an intersection of them. The All node now behaves differently from previous versions; it doesn’t select the default schema automatically. You now need to choose between All schemas, Default schema, or applying a regexp filter.

Web development

New project templates for Next.js and Vite

New project templates for Next.js and Vite
Ultimate

The New Project wizard available on IntelliJ IDEA’s Welcome screen now includes project templates for Vite and Next.js. We’ve also updated the project template for Vue to make sure it follows the latest standards.

Vue updates

Vue updates
Ultimate

IntelliJ IDEA can now take care of unresolved imports and will offer suggestions for importing Vue components. We’ve also supported the props destructure syntax, improved the behavior of code completion and type checking for Vue library component props, and fixed several Nuxt 3 issues.

Vitest support

Vitest support
Ultimate

IntelliJ IDEA 2022.3 supports Vitest, a Vite-native unit test framework! You can run, re-run, and debug your tests in all of the key ways you’d expect, including through gutter icons. Also, watch mode is enabled with the All Tests scenario by default. Snapshot testing and coverage are supported in watch mode, too, giving you near-instant feedback on coverage when coding.

Type narrowing in Angular templates

Type narrowing in Angular templates
Ultimate

We’ve added support for type narrowing in Angular templates, which will provide more precise type information and better code completion suggestions. Additionally, IntelliJ IDEA now excludes the .angular cache folder from global searches to help provide better search results.

Educational capabilities

Programming courses right in your IDE

Programming courses right in your IDE

It’s now possible to learn Java, Kotlin, Scala, Python, Go, and other programming languages or improve your existing skills right in your IDE. The new feature also comes with the ability to create your own educational courses. To access this functionality, go to the Learn tab on the Welcome screen and click Enable Access. Note that for languages other than Java and Kotlin, you’ll need to install an additional plugin.

Other

  • It is now possible to run IntelliJ IDEA 2022.3 on Windows and Linux machines with ARM64 processors. At this point, the IDE installers are in Beta, and they are available from the website or the JetBrains Toolbox App for Windows, and only from the website for Linux.
  • The Android plugin bundled with IntelliJ IDEA now provides all the features of Android Studio Electric Eel Beta 2, including support for Android Gradle Plugin (AGP), version 7.4.0-beta02.