What’s New in IntelliJ IDEA 2023.3

The IntelliJ IDEA 2023.3 release signifies the continued evolution of AI Assistant, which has now moved beyond the technical preview stage and features a host of exciting improvements. In other areas, this version includes comprehensive support for the latest Java 21 features, introduces an intuitive floating toolbar with editing actions, and adds a Run to Cursor inlay option for an enhanced debugging workflow. IntelliJ IDEA Ultimate now provides a seamless out-of-the-box Kubernetes development experience.

Key highlights

AI Assistant is out of preview

AI Assistant is out of preview
General Availability
Ultimate

JetBrains AI Assistant is now generally available with a number of new and improved features to increase your productivity in JetBrains IDEs.

The latest updates include enhanced code generation directly within the editor, context-aware AI chat that answers project-related queries without requiring you to copy code, and project-aware AI actions that use extended context to provide more comprehensive results. A new diff viewer makes it easier to identify changes the AI actions have made to your code.

Use AI Assistant in IntelliJ IDEA Ultimate as a supplemental feature with a JetBrains AI Service subscription.

Full support for Java 21 features

IntelliJ IDEA 2023.3 provides full support for the latest Java 21 features. These updates include significant additions such as virtual threads, record patterns, pattern matching for switch expressions, and sequenced collections, along with previews for newly introduced language features such as string templates, scoped values, and more.

Run to Cursor inlay option in the debugger

Run to Cursor inlay option in the debugger

IntelliJ IDEA 2023.3 introduces a new Run to Cursor inlay option that allows you to execute up to a specific line of code while debugging. Once your program is suspended, simply hover over the line of code you want to execute up to and click on the Run to Cursor popup. You can also use this feature by invoking the keyboard shortcut (Alt + F9) after the caret is placed on the desired line.

Floating toolbar with editing actions

Floating toolbar with editing actions

IntelliJ IDEA 2023.3 introduces a floating toolbar that appears next to selected code fragments and provides easy access to editing actions such as Extract, Surround, Reformat, and Comment, as well as context actions. You can use the kebab menu (three vertical dots) to customize the floating toolbar. To hide it, you can either use the same menu or go to Settings/Preferences | Advanced Settings | Editor and check the Hide floating toolbar for code editing option.

Out-of-the-box Kubernetes development experience

Out-of-the-box Kubernetes development experience
Ultimate

IntelliJ IDEA Ultimate 2023.3 bundles the Kubernetes plugin, meaning that all the plugin’s features for developing Kubernetes-based applications are now available out of the box. This integration streamlines the workflow for deploying, debugging, and managing Kubernetes clusters directly from the IDE.

User experience

Option to hide the main toolbar in the default viewing mode

Option to hide the main toolbar in the default viewing mode

In response to your feedback about the new UI, we’ve implemented an option to hide the main toolbar when using the IDE’s default viewing mode, just like in the old UI. To remove the toolbar, go to View | Appearance and uncheck the Toolbar option.

Default tool window layout option

Default tool window layout option

IntelliJ IDEA 2023.3 further improves the ability to save multiple tool window layouts and switch between them, introduced in v2023.1. The new Default layout option provides a quick way to revert your workspace’s appearance to its default state. This layout is not customizable and can be accessed through Window | Layouts.

Color-coded editor tabs by default

To enhance your navigation experience when working simultaneously with a variety of file types in the editor, we’ve introduced default color-coding for editor tabs, mirroring their appearance in the Project tool window. You can manage this setting in Settings/Preferences | Appearance & Behavior | File Colors.

New product icon for macOS

New product icon for macOS

For the IntelliJ IDEA 2023.3 release, we have redesigned the IntelliJ IDEA icon for macOS to align it with the operating system’s standard style guidelines.

Speed Search available via shortcut

The Speed Search functionality, which allows you to quickly navigate within tool windows and dialogs, is now available via a shortcut. Once the focus is placed on a tree or list, you can easily invoke the search from the tool window’s Options menu. Alternatively, you can use the shortcut Ctrl+F, or simply start typing your query. You can assign a custom shortcut for the Speed Search feature in Settings / Preferences | Keymap.

Java

Inspection for migrating from string concatenation to string templates

Inspection for migrating from string concatenation to string templates

Following the release of string templates in Java 21, we’ve implemented a new inspection to streamline the replacement of concatenated strings. The IDE will now provide a quick-fix suggestion to replace concatenation with the STR template processor.

Move refactoring for local classes

Move refactoring for local classes

It’s now possible to apply the Move refactoring to local classes, allowing you to relocate them within your codebase. To do this, start by applying the Convert local to inner refactoring, which can be accessed through context actions or by pressing F6. Once the conversion is complete, invoke the Move refactoring by pressing F6 again and select the desired destination for the class.

Reworked code completion for static methods

Reworked code completion for static methods

We have enhanced code completion for utility methods, which are often static and located in other classes. Now, when the target class is the first parameter, static methods are treated the same as instance methods, making relevant completion suggestions more discoverable. To keep the code completion popup uncluttered and make the suggestions for utility methods easier to find, we've collected them into a list that appears when you invoke code completion a second time. This may be changed in the future as the feature evolves.

Improved inspections for constant conditional expressions

IntelliJ IDEA’s code analysis now covers more scenarios when identifying and highlighting potential errors in conditional expressions that always evaluate to the same value. For example, the IDE can now recognize possible string lengths or estimate string concatenation outcomes, prompting inspections when redundant or potentially problematic code is detected. Learn more.

Kotlin

Onboarding tips in the sample project

Onboarding tips in the sample project

For those new to IntelliJ IDEA and Kotlin, there is an option to open a new project containing sample code, which now comes with onboarding tips. In the New Project wizard, check Generate code with onboarding tips to get a basic sandbox project with hints demonstrating some of the IDE’s essential features. Following these tips in the sample project allows you to try out various features, making it easier to familiarize yourself with the IDE.

Compact Kotlin project structure for JPS

Compact Kotlin project structure for JPS

Now, for the IntelliJ build system, you can create a project that uses a concise project structure with less folder nesting. The path to the Main file appears as src/Main.kt instead of src/main/kotlin/Main.kt. This helps you save time navigating the project and reduces the overall complexity in projects where extensive nesting isn’t needed.

Auto-configuration for Kotlin in Java Gradle projects

Auto-configuration for Kotlin in Java Gradle projects

If you add a Kotlin file to a Java module, IntelliJ IDEA can now automatically add all the necessary Kotlin dependencies by changing the build scripts. You can easily review these changes and undo them. Auto-configuration is currently available for Gradle projects that meet specific criteria, explained in this blog post.

K2 compiler

K2 compiler
Beta

In the recent Kotlin 1.9.20 release, we announced the Beta version of the K2 compiler. Projects that use the K2 compiler are now fully supported in the IDE, and the bundled Kotlin IDE plugin treats them the same as K1-based projects.

It is important to note that the bundled Kotlin IDE plugin still uses the K1-compiler under the hood. A K2-based IDE plugin is under development and will be announced in the near future.

Support for the latest Kotlin version included in IDE updates

As of v2023.3, support for new Kotlin versions comes bundled in IntelliJ IDEA and Android Studio updates, meaning that you no longer need to update the Kotlin plugin from JetBrains Marketplace. With every major IDE release, you can expect built-in support for upcoming Beta and Stable versions of Kotlin.

KMP wizard

IntelliJ IDEA 2023.3 introduces a new way to create Kotlin Multiplatform projects – the Kotlin Multiplatform web wizard. The wizard ensures the same user experience on all platforms, and it also means you will get new updates faster as they come out independently of the major IDE releases. We are planning to implement an IDE version and create a command line tool in the future. The new wizard currently covers the most popular Kotlin Multiplatform use cases, and we will continue to add more functionality to it.

Kotlin modules

Kotlin modules are back! With v2023.3, it is once again possible to add Kotlin modules to your project, meaning that you can create multi-module Kotlin projects with ease. We will continue to improve the reworked functionality.

Scala

Better Scala 3 support

Better Scala 3 support

IntelliJ IDEA 2023.3 offers enhanced Scala 3 support with a particular focus on enums. The IDE now detects and warns about unextendable enums, provides improved propagation of annotations and modifiers to generated symbols, and offers precise type widening of apply methods, considering only direct supers. Errors due to duplicate synthetic elements are now highlighted correctly, and auto-completion for enums has been enhanced. Furthermore, we've improved Scala 3 code analysis, eliminating the invalid error highlighting that occasionally occurred in seemingly random cases. We've also refined code highlighting for inline parameter modifiers, in addition to enhancing the Parameter Info popup.

Improved syntax highlighting for Scala

Improved syntax highlighting for Scala

IntelliJ IDEA has become much better at detecting unreachable code, and many red code false positives have been eliminated. The IDE now accurately identifies code used within the context of thrown exceptions and try, catch, and finally blocks, while also taking into account implicit imports. Additionally, we've introduced the ability to suppress the Unused declaration and Method can be private inspections for non-standard Scala files, like worksheets.

Enhanced inlay hint settings

Enhanced inlay hint settings

In IntelliJ IDEA 2023.3, we've revamped the workflow for configuring inlay hints for Scala, making it easier to understand the types of inlay hints available and how to utilize them. These hints are now aligned and positioned on the right-hand side of the screen, ensuring they don't obstruct your code.

The X-Ray feature

The X-Ray feature

Inlay hints and other information that appears in the editor is meant to enhance code readability and make coding easier. However, too much detail can clutter the interface. With the new X-Ray feature for Scala, you can disable these hints and then double-press and hold Ctrl to toggle them back on when you need additional information. This allows you to keep the editor clean until you want to consult the hints.

UI improvements for Scala

UI improvements for Scala

Scala settings are now easily discoverable through text search. In the Find Usages pane, we've added the File Structure button, allowing you to access more comprehensive information about how specific elements are used within your codebase. To improve the readability of your code, the Structure tool window now uses ?=> to distinguish implicit parameters from regular ones. We've also introduced new icons for runnable objects, test classes, exception classes, and enums in both the Structure and Project tool windows.

Using directives

Using directives

We have enhanced IntelliJ IDEA’s support for the Scala CLI in several ways. First, you can now use auto-completion for using directives, and when you do, their elements are automatically formatted and highlighted correctly. Second, when you auto-import a symbol, it will be seamlessly integrated into the file under the using directives, resulting in cleaner and more organized code.

sbt improvements

Previously, the Scala plugin included transitive dependencies among the direct ones, leading to instances where unnecessary project dependencies were considered. The plugin now calculates all transitive dependencies while importing or reloading. This revised approach gives you more control over the project structure. We’ve ensured that sbt modules correctly depend on the standard Scala library, eliminating any instances where they might mistakenly rely on the Scala SDK. Additionally, we've addressed the issues that were causing disruptions in the sbt command history when importing or reloading sbt projects, and we've improved the process for fetching available Scala and sbt versions when creating a new project. Also, we've made a decision to drop support for the sbt-android plugin starting with this release.

Version control systems

Support for GitLab snippets

Support for GitLab snippets

Expanding the GitLab integration introduced with the IntelliJ IDEA 2023.2 release, we’ve added support for GitLab snippets. You can now create public or private snippets directly within the IDE. To create a new snippet, select a code fragment in the editor (or a file or folder in the Project tool window), right-click on the selection to call the context menu, and choose the Create Snippet option. A dialog will appear, prompting you to provide general information about your snippet and define its privacy settings.

All-in-one diff viewer

IntelliJ IDEA 2023.3 introduces a revamped way to review changes. Now, instead of going through each file one by one, you can see all of the modified files from a changeset in a single scrollable frame. This new diff viewer is compatible with GitLab, GitHub, and JetBrains Space reviews.

Build tools

Faster Gradle importing and indexing

Faster Gradle importing and indexing

Gradle projects now open faster because the IDE no longer automatically downloads the source JAR files for all dependencies. If you need to access specific source files, you can navigate to them using the Ctrl+B shortcut and opt to download them when prompted by the IDE.

Fast Maven import for all projects

Fast Maven import for all projects

We’ve enabled the new fast Maven project import mechanics for all projects, including ones created using the older import implementation. This significantly improves the import time. The first time you open a project in version 2023.3, the IDE will perform a full resync and notify you about the migration. You can adjust this setting in Settings/Preferences | Build, Execution, Deployment | Build Tools | Maven | Importing.

Grouping of Maven project modules based on their qualified names

We’ve revamped the way the IDE handles the grouping of project modules. Now, it automatically groups modules based on their qualified names. If you need to, you can manually rename modules, and these names will persist during subsequent reloadings of Maven projects.

Maven support updates

Maven 3.9.3 is now bundled with IntelliJ IDEA.

The IDE no longer supports Maven 3.0.

Frameworks and technologies

Enhanced Structure tool window in the HTTP Client

Enhanced Structure tool window in the HTTP Client
Ultimate

We’ve improved the Structure tool window in the HTTP Client to streamline navigation within large .http files. This update introduces color-coded labels for request types and lists their contents more clearly.

Support for in-place variables in the HTTP Client

Support for in-place variables in the HTTP Client
Ultimate

The HTTP Client now supports declaring variables using @. You no longer need any extra environment files to reuse values across requests, and the IDE provides code completion for the values so you can easily add them.

OAuth 2.0 Support
Ultimate

The HTTP Client now provides support for authentication with the OAuth 2.0 Password and Client Credentials grant types. With this update, you can reference authentication data in your requests using the new syntax {$auth.token("my-keycloak1")} and navigate to the JSON file containing the authentication details. This change streamlines the request execution process, eliminating the need to manually retrieve tokens. Learn more.

Enhanced JSON request body completion in the HTTP Client

Enhanced JSON request body completion in the HTTP Client
Ultimate

IntelliJ IDEA Ultimate 2023.3 makes it easier to work with JSON request bodies when generating HTTP requests. The IDE now inserts all required parameters on the first level of the request body. It also provides autocompletion for nested JSON objects and arrays.

Visual editing for OpenAPI specifications

Visual editing for OpenAPI specifications
Ultimate

We’ve implemented visual editing capabilities to help you quickly compose well-formatted OpenAPI specifications using live templates. These actions are available for both YAML and JSON files. To insert a template for an object, simply hover over the relevant line in the gutter and click the + icon.

Preview for OpenAPI specifications 3.1 with Swagger UI 5.0

Preview for OpenAPI specifications 3.1 with Swagger UI 5.0
Ultimate

The integrated version of Swagger UI has been updated to 5.0. You can switch between Redoc and the updated Swagger UI preview in OpenAPI files via the floating toolbar action. As of v5.0, Swagger UI also supports OpenAPI 3.1 specifications.

Automatic code completion for URL path references

Automatic code completion for URL path references
Ultimate

We’ve improved the code completion functionality for handling URLs. Now, when you type / in places where a URL path is expected, the IDE automatically populates the code completion popup with the URLs of server endpoints. When doing so, it considers both available APIs within your application and attached OpenAPI specifications to help you specify the URL path more quickly.

Quarkus and Micronaut beans in the Beans tool window

Quarkus and Micronaut beans in the Beans tool window
Ultimate

In addition to Spring components, the Beans tool window now also includes Quarkus and Micronaut ones to provide a comprehensive and well-structured overview of your project’s bean configuration.

Support for the Micronaut expression language

Support for the Micronaut expression language
Ultimate

IntelliJ IDEA Ultimate now provides code highlighting, completion, and inspections for the Micronaut expression language. It also provides corresponding syntax highlighting in all relevant annotations.

Support for Quarkus Qute type-safe templates

Support for Quarkus Qute type-safe templates
Ultimate

IntelliJ IDEA Ultimate now supports Quarkus Qute type-safe templates, meaning it now provides code completion for parameter declarations, available parameters, and parameter instance members. You can also use Find Usages (Ctrl+Alt+Shift+F7) and Go to Declaration (Ctrl + B) to navigate to parameter usages in your templates.

Run with Coverage and Profile with IntelliJ Profiler available for Quarkus projects
Ultimate

You can now use the Run with Coverage and Profile with IntelliJ Profiler run configurations for Quarkus projects. Both run configurations can be conveniently accessed directly from the Run widget.

Spring 6.1 feature support
Ultimate

Support for Spring 6.1 features has been extended. For the new RestClient, the IDE now offers full support, including URL autocompletion, the Find Usages functionality, and the ability to view all client usages in the Endpoints tool window. In addition, we’ve implemented SQL highlighting and parameter name code completion for the new JdbcClient. IntelliJ IDEA Ultimate now also recognizes the @Scheduled scheduler attribute, providing completion suggestions and validation for bean names used within this context.

Spring GraphQL support
Ultimate

We’ve introduced a new Spring GraphQL plugin that adds several valuable features for developing Spring applications built with GraphQL Java. When the plugin is installed, the IDE offers code navigation and completion suggestions for Spring GraphQL, as well as schema mapping. You can also navigate to GraphQL schema implementations and view them in the Endpoints tool window.

Integration of the GraphQL plugin with the HTTP Client

Integration of the GraphQL plugin with the HTTP Client
Ultimate

IntelliJ IDEA Ultimate 2023.3 integrates the GraphQL plugin with the HTTP Client. You can now generate GraphQL requests, introduce variable injections into message bodies, and benefit from code completion capabilities while working with GraphQL injections, all in the HTTP Client.

Option to add and edit Spring Boot starters via Spring Initializr

Option to add and edit Spring Boot starters via Spring Initializr
Ultimate

You can now add and modify Spring Boot starters within an existing module of your project, making it easier to manage Maven and Gradle dependencies and adjust your project’s configuration. To add or remove a starter dependency, use Ctrl+Click on the Edit Starters inlay widget that appears next to the <dependencies> or dependencies { block of a pom.xml or build.gradle file, respectively.

Option to create data sources from Spring Boot configurations

Option to create data sources from Spring Boot configurations
Ultimate

IntelliJ IDEA Ultimate can now automatically detect and add data source configurations based on your Spring Boot application.yaml and application.properties files. To use this feature, simply click on the datasource icon in the gutter.

Option to establish Kafka connections in Spring projects

Option to establish Kafka connections in Spring projects
Ultimate

IntelliJ IDEA Ultimate is now capable of creating Kafka connections in Spring-based applications, leveraging the data from both the application.yaml and the application.properties configuration files. To connect to a Kafka cluster, first make sure that you have the Kafka plugin installed and then use the corresponding icon in the gutter.

Bicep support

Bicep support
Ultimate

We’ve introduced initial support for Bicep, an infrastructure-as-code language tailored for Azure. It translates into Azure Resource Manager (ARM) templates and is intended for close integration with Azure services. The IDE now offers code highlighting along with code completion that is facilitated through the language server protocol for Bicep.

Remote development and collaboration

Improved support for Dev Containers
Ultimate

In IntelliJ IDEA 2023.3, we've significantly extended the support for Dev Containers. You can now easily add extra development tools, runtimes, and libraries using Dev Container Features, simplifying the setup of essential components. We've also introduced Docker Compose support for Dev Containers, allowing you to launch both the main container and dependent containers from the IDE. In addition, we’ve implemented automatic port forwarding, meaning that any ports the application starts listening to in a Dev Container are seamlessly forwarded. Learn more.

Kubernetes

Working with databases in Kubernetes

Working with databases in Kubernetes
Ultimate

IntelliJ IDEA Ultimate 2023.3 offers an enhanced user experience when working with databases hosted in Kubernetes. For example, you can now configure port forwarding within Kubernetes while establishing a database connection.

Support for $schema within comments in YAML files

Support for $schema within comments in YAML files
Ultimate

The IDE can now identify references to specific YAML schemas included as comments. It also provides code completion and syntax validation within YAML files based on the specified schema, regardless of whether it’s stored locally or accessed remotely.

Option to add cluster contexts from a file

Option to add cluster contexts from a file
Ultimate

With IntelliJ IDEA Ultimate 2023.3, you can easily add kubeconfig contexts from clusters located in directories outside of the required system. The project will include links to kubeconfig files, making these clusters available while you work on your project. The kubeconfig contents added in this way won’t be copied to or modified in the system (~/.kube/config). This feature is especially useful when you frequently add and remove Kubernetes clusters from cloud or on-premises environments. Learn more.

Auto-installation of Kubernetes tooling

Auto-installation of Kubernetes tooling
Ultimate

When you start using the Kubernetes plugin, which is now bundled with IntelliJ IDEA, you may need to install kubectl and/or Helm. If you don’t have them on your computer already, the IDE will offer to automatically install them for you.

Improved debugging with Telepresence
Ultimate

Telepresence allows you to debug the microservices of a Kubernetes application locally, as if your workstation were a part of the cluster. By connecting to the cluster using Telepresence, you gain access to the cluster’s namespace from your workstation and can interact with the DNS names of other microservices. With Telepresence interception, you can redirect traffic from other cluster services to selected ports on your workstation and debug microservices entirely locally using familiar IDE tools.

In this release, we’ve made the Telepresence workflow more accessible by moving it to the cluster’s context menu. We've also streamlined interception management for a smoother debugging experience.

Support for import blocks in Terraform

Support for import blocks in Terraform
Ultimate

IntelliJ IDEA Ultimate 2023.3 supports top-level import blocks from version 1.5 of the Terraform configuration language. import blocks allow you to bring the current infrastructure under Terraform’s management. When import is used within a code block, it becomes part of the standard plan and apply stages and ceases to be a state operation. Terraform performs automatic code generation for imported resources, saving you time when developing infrastructure as code.

Performance

Download of shared JDK indexes enabled by default

To boost the IDE’s startup speed, we’ve made the download of shared JDK indexes the default. IntelliJ IDEA will now seamlessly connect to a dedicated resource in the background, fetching and applying shared indexes for your JDK automatically.

Database tools

Data visualization

Data visualization
Ultimate

IntelliJ IDEA Ultimate 2023.3 integrates the Lets-Plot library for streamlined, no-code data visualization.

Reworked import functionality

Reworked import functionality
Ultimate

IntelliJ IDEA 2023.3 offers reworked import functionality, marking the completion of the transition to the new Modify Object UI. It is now possible to import to multiple targets and make simultaneous edits, such as by changing the formats or encoding for several files or altering schemas for multiple targets.

Introspection improvements
Ultimate

This release introduces a number of updates for introspection:

  • Introspection intervals for each data source.
  • Automatic introspection level for Oracle.
  • Support for new objects in SQL Server: partition functions, partition schemes, partitions and related table and index properties, ledger tables, and filegroups.
  • Support for materialized views in Redshift, which are now introspected and displayed in a dedicated node.
Customizable number formats in the data editor

Customizable number formats in the data editor
Ultimate

This release provides much greater flexibility regarding how numbers appear in the data editor. Most significantly, you can specify the decimal and grouping separators.

DynamoDB support

DynamoDB support
Ultimate

In version 2023.3, we've introduced highly anticipated DynamoDB support, including a data viewer, PartiQL support in the editor, and introspection for tables that have keys and indexes.

Web development

Improvements for TypeScript

Improvements for TypeScript
Ultimate

IntelliJ IDEA Ultimate 2023.3 solves some of the inconsistencies with adding import type statements. We’ve added the option to configure the usage of the TypeScript import type statement or type specifier when importing a type. We’ve also improved the behavior for the exports field of package.json for TypeScript files.

Improvements for Vue 3

Improvements for Vue 3
Ultimate

We’ve added support for defineSlots, providing completion and navigation for the slot name, as well as rename refactoring. We’ve also introduced completion support for properties with defineExpose. In IntelliJ IDEA Ultimate 2023.3, required imports for components will be added based on the name specified by the defineOptions function.

Improved Angular support

Improved Angular support
Ultimate

We’ve improved support for strict template type checking in Angular templates. We’ve also supported the new control-flow syntax from v17 and signals, including live templates like signal, computed, and effect. There are also new quick-fixes available with Alt+Enter. For example, you can create @Input and @Output properties from a component template.

New functionality for testing JavaScript

New functionality for testing JavaScript
Ultimate

IntelliJ IDEA Ultimate 2023.3 brings new capabilities for testing your JavaScript code. Cypress and Playwright tests are now automatically detected and can be run from a Run icon in the editor. We’ve also introduced initial support for the native Node.js test runner. Tests declared with the node:test API are now recognized, enabling running and debugging directly from your code without extra packages.

Space integration

Start coding directly from a repository or code review

Start coding directly from a repository or code review

Navigate from a repository or code review in Space to the corresponding files in your IDE via the Start coding button.

Search Maven packages

Search Maven packages

IntelliJ IDEA 2023.3 now recognizes Maven packages hosted in Space repos and suggests them in the code completion pop-up.

Other

Plugin updates

Starting with IntelliJ IDEA 2023.3, we’ve made changes to plugin distribution. The Android, Ant, and GlassFish plugins are now available through JetBrains Marketplace. This also applies to the XPathView plugin for IntelliJ IDEA Community Edition.