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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
IntelliJ IDEA 2022.3 now fully supports the features introduced in
Kotlin 1.7.20,
including the new ..<
operator and data object declarations.
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.
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.
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 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 #.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
If you have Web Inspector open, autocompletion will suggest options for possible locators, highlighting them in an embedded browser.
You can now use the familiar Ctrl+Click shortcut or a context menu action to navigate between elements on a web page.
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.
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.
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.
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.
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.
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.
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.
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.