major update
AI Assistant
limited access
Ultimate
In this release, we have introduced an important addition to IntelliJ IDEA – the AI Assistant. AI Assistant currently has an initial set of AI-powered features, offering an integrated AI chat that can do things like automatically write documentation comments, suggest names, generate commit messages, and more.
JetBrains AI service provides technical support for AI Assistant. This service can currently be connected to OpenAI, and other language model providers will be included in the future. To access the Assistant's AI features, you need to install the AI Assistant plugin and log in to the JetBrains AI service with your JetBrains Account. The initial availability of JetBrains AI Services may be limited. For more information on AI Assistant and access instructions, check out this blog post .
In-editor performance tips
Ultimate
In IntelliJ IDEA 2023.2, we've enhanced the IntelliJ Profiler to provide even more valuable and easy-to-understand insights into application performance. New in-editor hints provide quick line-by-line analysis of code performance, helping you identify and resolve issues faster. Color-coded annotations in the editor's staple area highlight critical methods, allowing you to focus on performance bottlenecks. Therefore, you no longer need to perform thorough, time-consuming analysis using the Flame Graph and Call Tree views. Learn more in this blog post .
GitLab integration
IntelliJ IDEA 2023.2 introduces integration with GitLab to help simplify your development workflow. You can now use the Merge Request functionality directly in the IDE : view the list of requests, review changes, leave comments, and navigate to related views. Learn more .
user experience
Text Search in Search Everywhere
Search Everywhere (press Shift twice) is mainly used to search files, classes, methods, operations and settings. After this update, it will include a text search function similar to Find in Files . Text search results are now displayed when there are few or no other search results for a given query. This feature is enabled by default and can be managed in Settings/Preferences | Advanced Settings | Search Everywhere .
Colored item titles in the new UI
IntelliJ IDEA 2023.2 introduces colored headers that simplify navigation between multiple open projects. You can now assign each item a unique color and icon, making it easier to distinguish within your workspace. Headers now come with predefined colors by default, but you can also customize them. To set a new color for an item, first right-click on the header and access the context menu. Then, select the Change Project Color option and select the desired color from the suggested list, or browse the color palette. If you want to disable this feature, simply deselect the Show Project Gradient option in the context menu .
PreviousNext
Reworked the hamburger menu in the main toolbar on Windows and Linux
We've improved the behavior of the main toolbar hamburger menu in the new UI on Windows and Linux. Elements are now displayed horizontally above the toolbar after clicking the menu icon. Additionally, there is now an option to convert this menu into a separate toolbar at View | Appearance | Main menu as a Separate Toolbar (View | Appearance | Main menu as a Separate Toolbar).
Sort files by modification time in the Project view
IntelliJ IDEA 2023.2 adds the much-anticipated feature that lets you arrange files in the Project view based on modification time. This new feature automatically rearranges files whenever changes are saved in the project. To enable this feature, first open the three-dot menu in the Project view, then select Tree Appearance | Sort by Modification Time.
Light theme with light titles in the new UI
In v2023.2, we improved the light theme user experience by introducing an alternative Light with Light Header option that provides matching for window titles, tooltips, and notification balloons light color.
Updated window controls on macOS
When using the new UI in full screen mode on macOS, window controls will now appear on the main toolbar instead of floating bars as before.
Removed the title bar on Linux in the new UI
For the convenience of Linux users, the native title of the operating system has been removed in the new UI to make the interface more tidy. By default, the IDE's Customization header is displayed, which provides a range of workspace customization options. If you wish to revert the title to its previous appearance, deselect Merge main menu with window title in Settings | Appearance & Behavior | Appearance | UI Options header merge) option.
Check syntax highlighting in description
In Settings / Preferences | Editor | Inspections , code samples will now include syntax highlighting, making it easier to understand what triggered the inspection and decide whether to make it active or not. Disabled state.
Click to navigate between project directories
In the Project (project) view, a new Open Directories with Single Click (click to open the directory) option, can expand and collapse the project folder faster, faster response. After clicking the vertical three-dot menu, you can choose this option from the drop-down menu.
Improved main toolbar customization
We've expanded the customization options for the main toolbar of the new UI. You can now use the drop-down menu to quickly select actions to add to your toolbar. Right-click on any widget, select Add to Main Toolbar , and browse the available options.
Recommended plugins in Settings/ Preferences
To make it easier to configure the IDE for a specific project and extend its functionality with plugins, we've updated the UI in the Settings/Preferences | Plugins section. It now includes a set of recommended plugins, automatically defined based on your project specifics, and displayed at the top of the list.
Updated the UI of the Run/Debug widget in the Services tool window
We've reworked the UI for run and debug actions in the Services tool window so that the toolbar looks the same as the main Run/ Debug widget.
Pin the run configuration in the Run widget
To simplify the management of multiple run configurations, we implemented an option to pin the preferred configuration in the Run widget . To add a run configuration to the Pinned section, first open the three-dot menu next to its name, then select Pin . If there are multiple pinned configurations, they can be easily arranged by dragging and dropping them in the list.
Java
PreviousNext
New inspections and other code analysis improvements
We've improved and extended Java inspections to help you maintain high-quality code and detect potential issues more effectively. The new Incorrect 'MessageFormat' pattern check warns when pattern references do not match actual arguments , and it also detects MessageFormat
incorrect usage of quotes and curly braces in patterns. Additionally, the IDE will now report calls with explicit ChronoField
or ChronoUnit
actual parameters and suggest their replacement with calls to more specific methods, simplifying your code. Learn more about new inspections and other code analysis improvements in IntelliJ IDEA 2023.2 in this blog post .
Code highlighting and navigation for format strings
Now, when you place the text cursor on a format specifier, the IDE will highlight the corresponding argument and other specifiers pointing to it. Additionally, you can now use Go To Declaration (Ctrl+B) to jump to the associated code location for a specific format string placeholder.
PreviousNext
Improved @snippet
support for tags in Javadoc comments
@snippet
IntelliJ IDEA has improved tagging in Javadoc comments . It allows @snippet
markup comments to be added inside markup and renders correctly in the document. Code regions are supported, allowing you to specify sections of code to be referenced in Javadoc comments. Additionally, the IDE now supports @snippet
including external code snippets within tags, which will allow you to reference code snippets stored in separate files or sources and include them in your Javadoc documentation.
PreviousNext
Expanded refactoring options for multiple selected members
We've added new ways to apply certain refactorings to multiple members at the same time. You can now select multiple members directly in the Project or Structure tool window and call Extract Delegate , Extract Interface , Extract Superclass , Pull Members Up (pull members up) and Push Members Down (push members down). Additionally, IntelliJ IDEA now supports an extended range of refactorings with multiple text cursor selections, including Encapsulate Fields , Move Static Members , Extract Delegate , Extract Interface , and Extract Superclass (extract superclass). To take advantage of this feature, place the text cursor on each member you wish to apply the refactoring to, and the IDE will automatically preselect and check those members in the refactoring dialog.
Improved navigation for stack trace analysis
To improve stack trace analysis and resolve bugs faster, IntelliJ IDEA can now accurately guess where a method is in a report, even if line numbers are not available or have deviated.
Enhanced taint analysis for dynamic SQL queries
Ultimate
IntelliJ IDEA now better analyzes SQL concatenation and interpolation in Java and Kotlin, detecting potentially unsafe queries and keeping code safe from possible SQL injection vulnerabilities.
Scala
PreviousNext
Better Scala 3 support
IntelliJ IDEA 2023.2 focuses on simplifying the development experience with enhanced Scala 3 support. Notable improvements include fixes to Scala 3 enum highlighting, enum definition navigation, and correct resolution of enum cases in various contexts. The TASTy decompiler has been significantly enhanced to ensure accurate decompilation of popular Scala libraries such as Akka, Cats, Play, ZIO, and more. Also, the integration in the debugger scala-expression-compiler
will provide a better debugging experience for Scala developers. Other improvements include enhanced completion hints for Scala 3 generic apply methods, in-editor support for IArray, and improved support for "fewer braces" syntax.
better sbt support
This release brings many improvements to IntelliJ IDEA's sbt support. Environment variables set for sbt are preserved and processed correctly after reopening the project. The redesigned settings page File | Settings | Build, Execution, Deployment | Build Tools | sbt (File | Settings | Build, Execution, Deployment | Build Tools | sbt) is easier to use and adds Environment variables (environment variables) field, so you can pass custom environment variables to the sbt-shell process.
ScalaDoc renders
With this release, ScalaDoc's quick documentation is more aligned with Javadoc's. Notes, keywords, and text in the displayed statement will now be highlighted according to the selected theme. The list of extended features and classes will be split across multiple lines if the available space is exceeded. Additionally, Scala 3 keywords are now supported in the documentation.
Fixed type inference errors
The new version has a number of fixes for invalid type inference in some complex or rare cases, such as cases where types have complex bounds, sealed trait hierarchies may be unclear, or in complex pattern matching.
Zinc as default compiler
Given Zinc's recent performance improvements, we made it the default incremental compiler in v2023.2. This ensures inline
full support for incremental compilation of new Scala 3 features, including methods.
Improved management of source and target directories
Subfolders of the target folder are no longer automatically included as sources unless they are marked as managed. This will speed up searches in projects that generate source code. In addition, the IDE sbt-projectmatrix
provides better support for .
Performance Analyzer
Using Analysis Features from the Run Tool Window
Ultimate
In IntelliJ IDEA 2023.2, you can easily access the features of the IntelliJ profiler directly from the Run tool window. With new buttons, the Attach IntelliJ Profiler and Capture Memory Snapshot actions can be invoked with one click without opening the Profiler tool window or starting the application from scratch.
Default wall clock analysis mode
Ultimate
We've enhanced the profiling experience in IntelliJ IDEA 2023.2 by making wall clock profiling mode the default option. This profiling method takes into account the total time spent in the method, including wait time. It is measured in milliseconds and is the more powerful and intuitive option.
run/debug
PreviousNext
Reactor Mono
sum Flux
value evaluation
Ultimate
When debugging a reactive application, you can now easily evaluate Mono
and Flux
type watch and local variable values. The IDE now detects during a debug session and provides a corresponding or link in the Variables view to instantly evaluate Reactive Streams entries when clicked. By default, the debugger gets the first 100 entries. You can configure this amount in File | Settings | Languages & Frameworks | Reactive Streams (File | Settings | Languages & Frameworks | Reactive Streams).get
collectList
Flux
Continuous testing for Gradle, Maven and JPS projects
We've extended the automated testing functionality to be fully compatible with Maven, Gradle and JPS build systems. We've also made continuous testing mode easier to activate. To enable this mode, use the new Rerun Automatically button in the Run/ Debug tool window . Tests run automatically whenever changes are saved, providing instant feedback on code updates.
Inline breakpoint on return statement
IntelliJ IDEA provides improved support for setting breakpoints directly at return statements, similar to how setting is already implemented in lambda expressions. This improvement will provide developers with higher debugging precision and deeper code analysis, bringing more valuable insights into code behavior and return values. To set an inline breakpoint, simply right-click on the binding area next to the statement and select the return option.
version control system
Option to commit specific lines of code
IntelliJ IDEA 2023.2 introduces a highly anticipated feature to selectively commit specific parts of code blocks. To perform a partial commit, select the lines in the block and call Include these lines into commit from the context menu . The blocks will be divided into individual rows and the selected row will be highlighted. You can add or exclude rows from a selection using check boxes or the context menu.
performance
PreviousNext
New Tool to Easily Generate Shared Indexes
IntelliJ IDEA 2023.2 offers new command-line tools for quickly building and uploading shared indexes. It's designed to simplify teamwork and eliminate time spent indexing large projects locally. The new tool will simplify the process of building a shared index for teams with just a few clicks and no need for multiple scripts and services. Learn more .
Framework and Technology
PreviousNext
Run and debug Tomcat on WSL
Ultimate
Starting with IntelliJ IDEA 2023.2, you can run and debug applications deployed to Tomcat on the Windows Subsystem for Linux (WSL). To use Tomcat-based applications on WSL, you need to declare environment variables in the /etc/environment
or file.~/.bashrc
JAVA_HOME
Send gRPC requests using TLS in the HTTP client
Ultimate
You can now send gRPC requests over Transport Layer Security (TLS) in the HTTP client. TLS provides encryption and authentication to ensure the confidentiality and integrity of data transmissions. Request syntax support https://
and grpcs://
schema.
PreviousNext
Improvements for Swagger Codegen
Ultimate
The IDE will now provide a better user experience when setting up Swagger Codegen configuration. We've reworked the Edit Swagger Codegen Configuration dialog to make it easier to customize the run configuration to your needs. Additionally, you can now also access Swagger Codegen run configurations directly from the stapling area, without specifying additional settings.
PreviousNext
Support for Swagger and OpenAPI schemas in the HTTP client
Ultimate
HTTP clients now understand Swagger and OpenAPI specifications and provide corresponding code completion options for JSON request bodies.
Redoc UI preview for OpenAPI and Swagger files
Ultimate
IntelliJ IDEA now supports Redoc UI preview for OpenAPI and Swagger specification files (including YAML and JSON files) , allowing you to switch between Redoc and Swagger UI within the IDE. With the Redocly integration, you can access the Try it console from within IntelliJ IDEA , use it to set parameters and send requests to the API.
JSON body completion in JavaScript
Ultimate
The IDE now provides completion for JSON object keys in JavaScript code, such as fetch()
code that uses calls or references to the Axios library. Spring MVC server endpoints are now supported, and more server frameworks will be added to the list in the future.
Support for JavaScript imports in the HTTP client
Ultimate
In IntelliJ IDEA 2023.2, common JavaScript code for HTTP client request handlers can now be shared through imported modules.
PDF and HTML previews of responses in HTTP clients
Ultimate
IntelliJ IDEA is now able to show previews of PDF and HTML files in HTTP client request results.
PreviousNext
Support for GraphQL and WebSocket in the HTTP client CLI
Ultimate
You can now use the HTTP client CLI in IntelliJ IDEA to interact with GraphQL APIs and establish WebSocket connections to services for testing or automation scripts.
Autocompletion of Spring Boot configuration keys in VM options
Ultimate
When setting up a new Spring Boot run configuration, the VM options field -D
provides autocompletion options for keys that appear after the flag.
Spring configuration beans no longer require annotation processors
Ultimate
We've simplified the user experience when using Spring's custom configuration beans in IntelliJ IDEA. The IDE now provides code completion and validation in properties and YAML configuration files without setting up a Spring Boot configuration annotation processor.
Support for Spring AOP in Kotlin
Ultimate
We've extended IntelliJ IDEA's support for using AspectJ in Spring applications. The IDE now provides analysis and completion for Kotlin code, which was previously available for Java code.
New checks for detecting mismatched value types in YAML files
Ultimate
In IntelliJ IDEA 2023.2, we introduced a new inspection aimed at eliminating the Norway Problem and preventing accidental misinterpretation of boolean values in YAML files. When a list consists mostly of strings but contains Boolean literals, IntelliJ IDEA will highlight this literal, indicate a potential inconsistency, and suggest adding quotes to it. If the list consists primarily of Boolean literals (eg true
, , false
, off
, or ), any literals that deviate from this pattern will be highlighted as possible errors, though no specific quick-fixes will be suggested in this case on
.yes
no
Support for editing AsyncAPI files
Ultimate
Using the AsyncAPI specification format in IntelliJ IDEA is now even easier. The IDE supports schema validation and provides code completion for references, the Endpoints view, and the Editor Preview pane.
Docker
Preview files inside Docker image layers
The contents of Docker image layers can now be easily accessed and previewed in the Services tool window. Select the image from the list, select Show layers , and click Analyze image for more information . This will open a list of files stored in the layer, and you can right click on the file and click Open File (or Download File for binary files) to easily open the selected file in the editor.
Set the Docker container to run as a Before Launch task of the run configuration
A Docker run configuration can now be specified as a Before Launch task to run before another configuration. The IDE will wait for the currently running container to recover before starting the next run configuration. To queue a Docker run configuration, first create the configuration, then add it to the relevant container via Modify options | Add before launch task | Run configuration.
Kubernetes
Support for multiple kubeconfig files in a single project
Ultimate
This newly introduced feature allows you to setup multiple kubeconfig files in a single project. This simplifies the experience of working with multiple clusters or using environments on different clusters within the same project. Go to File | Settings | Build, Execution, Deployment | Kubernetes (File | Settings | Build, Execution, Deployment | Kubernetes) to set up the file.
View deployment logs
Ultimate
You can now view the deployment logs in your Kubernetes cluster in the Services tool window. Right-click on the Deployment in the tree and select Follow Log or Download Log from the context menu .
web development
Improved error formatting for JavaScript and TypeScript
Ultimate
In IntelliJ IDEA 2023.2 we focus on how to improve the way type errors in JavaScript and TypeScript are represented. Now your errors and warnings are formatted in a more readable way, making problems in your code easier to spot. This applies to all TypeScript and some of the most common JavaScript errors, even localized ones.
CSS nesting support
Ultimate
IntelliJ IDEA 2023.2 now supports CSS nesting . We've implemented syntax support and a new check to warn when nested selectors start with an identifier or function symbol.
Vue language server support
Ultimate
Vue Language Server (VLS, aka Volar) support provides more accurate error detection and better type information in quick navigation and documentation popups. VLS will be used by default for TypeScript v5.0 and above, wrappers for TypeScript services will be used for earlier versions of TypeScript. Under Settings | Languages & Frameworks | TypeScript | Vue (Settings | Languages & Frameworks | TypeScript | Vue), you can set the Vue service to use VLS integration on all TypeScript versions.
New live templates for React hooks
Ultimate
We 've added a new set of live templates for React hooks under Settings | Editor | Live Templates | React hooks . To use a live template, first enter an abbreviation in the editor, then press Tab to expand it.
Code Quality Workflow
Bundled with the Qodana code quality platform
IntelliJ IDEA 2023.2 simplifies the configuration of static analysis tools by fully integrating JetBrains Qodana , our intelligent static analysis engine designed to fit into any CI/CD pipeline . This integration offers two important advantages. First, easy configuration lets you trigger analytics, view project-level issues, and set quality gates in your preferred CI/CD system with just a few clicks. Second, you can now view server-side analysis results directly without leaving the IDE. Learn more about Qodana and its latest release in this blog post .
database tools
Redis Cluster support
Ultimate
You can now connect to Redis Cluster and have the same feature set as standalone Redis. When connecting to a cluster, it must be entered before the desired URL jdbc:redis:cluster:
. To do this, you need to select the appropriate connection type. If SSH tunneling is required to connect to the cluster, the hosts and ports of all nodes in the cluster should be indicated in the URL.
New UI for schema migration dialog
Ultimate
In v2023.2, we reworked the schema migration feature. The main difference is that the same object is now on the same line in both parts of the dialog, making it clearer which objects will be added, removed or changed in the target schema.
Time zone settings for the data editor
Ultimate
The Data Editor and Viewer settings page has a new Time zone field to set datetime
the time zone for displayed values.
Support for external databases and data sharing in Redshift
Ultimate
Both shared databases and their contents are now introspected. The data sharing that creates these databases is also introspected.
build tool
Support for Maven 4.0.0-alpha
IntelliJ IDEA is now fully compatible with the latest version of Maven, Maven 4.0.0-alpha .
other
- In this release, we've introduced the LSP API for plugin developers who want to provide coding assistance using a specific LSP server within the IDE. If you've created your own programming language or framework, you can create LSP servers and plug-ins for support in the IDE. Note that this feature is only available in the paid version of the IDE. Learn more .
- We disassembled the Big Data Tools plugin, allowing its parts to be used independently. This gets IntelliJ IDEA six new plugins: Kafka , Spark , Flink , Remote File Systems , Big Data File Viewer , and Zeppelin . If you need all six plugins, you can still install the Big Data Tools plugin with one click.
- The Android plugin bundled with IntelliJ IDEA now provides all the features of Android Studio Giraffe Beta 2, including support for Android Gradle Plugin (AGP) 8.0.0. Note that this support does not include features that require a Firebase Account login.
- Starting in 2023.2, the default value for the maximum heap size (-Xmx) has changed to 2 GB.