IntelliJ IDEA 2023.2 introduces AI Assistant to enhance your development with a set of AI-powered features. The upgraded IntelliJ Profiler now provides in-editor hints, making the profiling process more intuitive and informative. This release also includes GitLab integration, which helps streamline your development workflow, and comes with many other notable updates and refinements described below.
With this release, we introduce a major addition to IntelliJ IDEA – AI Assistant. With the current starting set of AI-powered features, AI Assistant offers integrated AI chat and can do things like automatically write documentation comments for you, suggest names, generate commit messages, and more.
AI Assistant is powered by the JetBrains AI service, which can connect you to OpenAI for now and will include other language model providers in the future. To access the assistant’s AI features, you’ll need to install the AI Assistant plugin and log in to the JetBrains AI service using your JetBrains Account. The availability of the JetBrains AI service may vary initially. For more information on AI Assistant and instructions on how to access it, refer to this blog post.
In IntelliJ IDEA 2023.2, we've enhanced the IntelliJ Profiler to provide more valuable and easy-to-interpret insights into your application’s performance. The new in-editor hints offer a quick way to analyze code performance line by line, helping you identify and resolve issues faster. Color-coded annotations in the editor’s gutter highlight critical methods allowing you to focus right on the performance bottlenecks. This means you no longer have to perform a thorough, time-consuming analysis with the Flame Graph and Call Tree views. Learn more in this blog post.
IntelliJ IDEA 2023.2 introduces integration with GitLab to streamline your development workflow. You can now work with the Merge Request functionality right from the IDE: review the list of requests, check the changes, leave comments, and navigate to relevant views. Learn more.
Search Everywhere (Double Shift) is primarily used for searching through files, classes, methods, actions, and settings. With this update, it now includes text search capabilities similar to Find in Files. Now, text search results are displayed when there are few or no other search results available for a given query. The feature is enabled by default and can be managed in Settings/Preferences | Advanced Settings | Search Everywhere.
IntelliJ IDEA 2023.2 introduces colored headers to simplify navigation between multiple open projects. You can now assign a unique color and icon to each of your projects, making them easier to distinguish in your workspace. Headers now come with predefined colors by default, but you can customize them. To set a new color for your project, first right-click on a header to access the context menu. Then select the Change Project Color option and choose your desired color from the suggested list or by browsing the color palette. If you’d like to disable this feature, simply deselect the Show Project Gradient option in the context menu.
We’ve refined the behavior of the hamburger menu that is located in the main toolbar in the new UI on Windows and Linux. Once you click on the menu icon, the elements now appear horizontally over the toolbar. Also, there’s now an option to turn this menu into a separate toolbar, accessible via View | Appearance | Main menu as a Separate Toolbar.
IntelliJ IDEA 2023.2 brings the long-awaited ability to arrange your files in the Project view based on their modification times. This new functionality automatically reorders the files whenever the changes in your project are saved. To enable this feature, open the kebab menu (three vertical dots) in the Project view and then select Tree Appearance | Sort by Modification Time.
For v2023.2, we’ve refined the user experience with the Light theme by introducing the Light with Light Header alternative, which features matching light colors for window headers, tooltips, and notification balloons.
If you use full screen mode in the new UI on macOS, the window controls are now displayed right in the main toolbar, not in the floating bar as before.
For the convenience of Linux users, the native header of the operating system has been removed in the new UI, resulting in a cleaner interface. By default, you will now see the IDE’s custom header, which offers a range of customization options to tailor your workspace. If you want to revert the header to its previous appearance, uncheck the Merge main menu with window title option in Settings | Appearance & Behavior | Appearance | UI Options.
In Settings / Preferences | Editor | Inspections, code samples now include syntax highlighting, which makes it easier to understand what triggers an inspection and decide whether you want it to be active or inactive.
In the Project view, there’s a new Open Directories with Single Click option that makes expanding and collapsing the project folders quicker and more responsive. The option is available from the drop-down menu once you click on the kebab (three vertical dots) menu.
We’ve expanded the customization options for the new UI’s main toolbar. You can now use a dropdown menu to quickly choose actions that you want to add to the toolbar. To do so, right-click on any widget, select Add to Main Toolbar, and explore the available options.
To make it easier to configure the IDE for your specific projects and extend its functionality with plugins, we have updated the UI for the Settings/Preferences | Plugins section. It now includes a set of suggested plugins that is determined automatically based on your project specifics and appears at the top of the list.
We’ve reworked the UI for the running and debugging actions in the Services tool window to make the look and feel of the toolbar consistent with that of the main Run/Debug widget.
To make managing multiple run configurations easier, we’ve implemented the option to pin preferred configurations in the Run widget. To add a run configuration to the Pinned section, open the kebab menu (three vertical dots) next to its name and select Pin. If you have multiple pinned configurations, you can easily rearrange them by dragging and dropping within the list.
We have improved and expanded Java inspections to help you maintain high-quality
code and detect potential issues more effectively. The new
Incorrect ‘MessageFormat’ pattern inspection will warn you when pattern
references do not match the arguments, and it will also detect incorrect usages of
quotes and braces in MessageFormat
patterns. Also, the IDE now reports
calls with explicit ChronoField
or ChronoUnit
arguments and
suggests replacing them with calls of more specific methods, thus simplifying the code.
Learn more about the new inspections and other code analysis improvements in IntelliJ
IDEA 2023.2 in this
blog post.
Now, once you place the caret on a format specifier, the IDE will highlight the corresponding argument and other specifiers that point to it. Also, you can now use Go To Declaration (Ctrl+B) to jump to the associated code location for a specific format string placeholder.
@snippet
tag in Javadoc comments
IntelliJ IDEA now features improved @snippet
tag functionality in
Javadoc comments. It allows Markup comments within the @snippet
tag and
renders them properly in the documentation. Code regions are now supported, meaning
you can specify a portion of code that you want to refer to in a Javadoc comment. In
addition, the IDE now supports the inclusion of external snippets within the
@snippet
tag, allowing you to reference code snippets stored in separate
files or sources and include them in Javadoc documentation.
We’ve added new ways to apply certain refactorings to several members at once. You can now invoke Extract Delegate, Extract Interface, Extract Superclass, Pull Members Up, and Push Members Down on multiple members simultaneously by selecting them right in the Project or Structure tool window. In addition, IntelliJ IDEA now supports multi-caret selection for an extended range of refactorings, including Encapsulate Fields, Move Static Members, Extract Delegate, Extract Interface, and Extract Superclass. To utilize this feature, place a caret in each member you want to apply the refactoring to, and the IDE will automatically preselect and check these members in the refactoring dialog.
To facilitate stack trace analysis and make resolving bugs quicker, IntelliJ IDEA can now accurately guess the location of a method in the report even when line numbers are not available or have diverged.
IntelliJ IDEA can now better analyze concatenations and interpolations of SQL in Java and Kotlin, detecting potentially unsafe queries and thereby protecting the code from possible SQL injection vulnerabilities.
IntelliJ IDEA 2023.2 brings enhanced Scala 3 support, with a focus on providing a
streamlined development experience. Notable improvements include fixes for Scala 3
enum highlighting, navigation to enum definitions, and the correct resolution of
enum cases in various contexts. The TASTy decompiler has been significantly enhanced,
ensuring accurate decompilation of popular Scala libraries, such as Akka, Cats, Play,
ZIO, and others. Additionally, the integration of
scala-expression-compiler
into the debugger provides a better debugging
experience for Scala developers. Other improvements include enhanced completion hints
for Scala 3’s Universal Apply Methods, in-editor support for IArray, and improved
support for the “fewer braces” syntax.
This release comes with many improvements to IntelliJ IDEA’s sbt support. Environment variables set for sbt are persisted and handled correctly after the project is reopened. The settings page File | Settings | Build, Execution, Deployment | Build Tools | sbt was redesigned for easier use, and a new Environment variables field was added so that you can now pass custom environment variables to the sbt-shell process.
In this release, ScalaDoc’s Quick Documentation aligns more closely with Javadoc's. Annotations, keywords, and literals in displayed declarations are now highlighted based on the selected theme. The list of extended traits and classes is split into multiple lines if it exceeds the available space. Additionally, Scala 3 keywords are now supported in the documentation.
The new release comes with many fixes to invalid type inference in some complex or simply rare cases, such as when types have complicated bounds, when a sealed trait hierarchy might be unclear, or in complex pattern matching.
In light of Zinc’s recent performance improvements, we’ve made it the default
incremental compiler in v2023.2. This ensures comprehensive support for incremental
compilation of new Scala 3 features, including inline
methods.
Sub-folders of the target folder are no longer included automatically as sources
unless they are marked as managed. This speeds up searching in projects that
generate source code. Also, the IDE now provides better support for
sbt-projectmatrix
.
In IntelliJ IDEA 2023.2 you can conveniently access the IntelliJ Profiler’s functionality right from the Run tool window. The new buttons allow you to invoke the Attach IntelliJ Profiler and Capture Memory Snapshot actions in a click, without having to open the Profiler tool window or start the application from scratch.
We’ve enhanced the profiling experience in IntelliJ IDEA 2023.2 by making wall-clock profiling mode the default option. This profiling method considers the total time spent in a method, including waiting time. With milliseconds as the measurement unit, it takes center stage as the more powerful and intuitive option.
Mono
and Flux
values evaluation
When debugging your reactive application, you can now easily evaluate values of watches
and local variables for Mono
and Flux
types. The IDE now
detects them during debugging sessions and provides a corresponding get
or collectList
link in the Variables view, which you can click
to instantly compute reactive stream items. By default, the debugger fetches the first
100 items of Flux
. You can configure this number in
File | Settings | Languages & Frameworks | Reactive Streams.
We have expanded the capabilities of the auto-testing functionality, making it fully compatible with the Maven, Gradle, and JPS build systems. We’ve also made it easier to activate continuous testing mode. To enable it, use the new Rerun Automatically button located in the Run/Debug tool window. Whenever your changes are saved, the tests will run automatically, providing immediate feedback on your code updates.
IntelliJ IDEA now offers improved support for setting breakpoints directly at the return statement, similar to how it was already being done with lambda expressions. This improvement offers developers improved debugging precision and deeper code analysis, providing valuable insights into code behavior and return values. To set an inline breakpoint, simply right-click on the gutter next to the statement and select the return option.
IntelliJ IDEA 2023.2 introduces a highly anticipated feature to selectively commit specific parts of code chunks. To perform a partial commit, select the lines within a chunk and call Include these lines into commit from the context menu. The chunk will be divided into individual lines, with the selected ones highlighted. You can add or exclude lines from the selection using checkboxes or the context menu.
IntelliJ IDEA 2023.2 features a new command line tool for quickly building and uploading shared indexes. It is designed to streamline teamwork and eliminate time wasted on locally indexing large projects. The new tool simplifies the process of generating shared indexes for your team, requiring just a few clicks instead of multiple scripts and services. Learn more.
As of IntelliJ IDEA 2023.2, you can run and debug applications deployed to Tomcat
on the Windows Subsystem for Linux (WSL). To work with Tomcat-based applications
on WSL, you’ll need to have the JAVA_HOME
environment variable declared
in either the /etc/environment
or the ~/.bashrc
file.
You can now send gRPC requests over Transport Layer Security (TLS) in the HTTP Client.
TLS provides encryption and authentication, ensuring the confidentiality and integrity of your data transmission. Both https://
and grpcs://
schemas are supported in the request syntax.
The IDE now provides a better user experience when setting up Swagger Codegen configurations. We’ve reworked the Edit Swagger Codegen Configuration dialog to make it easier for you to tailor run configurations to your requirements. Additionally, you can now access Swagger Codegen run configurations right from the gutter without having to specify any additional settings.
The HTTP Client is now capable of understanding Swagger and OpenAPI specifications and providing corresponding code completion options for JSON request bodies.
IntelliJ IDEA now supports Redoc UI previews for OpenAPI and Swagger specification files, including YAML and JSON files, allowing you to switch between the Redoc and Swagger UIs within the IDE. With the Redocly integration, you can access the Try it console from within IntelliJ IDEA and use it to set parameters and send requests to your API.
The IDE now provides completion for JSON object keys in JavaScript code, such as in
code that uses fetch()
calls or references the Axios library. Spring
MVC server endpoints are currently supported, with more server frameworks coming in
the future.
With IntelliJ IDEA 2023.2, it is now possible to share common JavaScript code for HTTP Client request handlers via imported modules.
IntelliJ IDEA is now able to display previews of PDF and HTML files right in the request results in the HTTP Client.
You can now use the HTTP Client CLI in IntelliJ IDEA to interact with GraphQL APIs and establish WebSocket connections with services, for example for tests or automation scripts.
While setting up a new Spring Boot run configuration, the VM options field
provides auto-completion options for keys appearing after the -D
flag.
We have streamlined the user experience when working with custom configuration beans in Spring within IntelliJ IDEA. The IDE now provides code completion and validation in properties and YAML configuration files, without you needing to set up the Spring Boot Configuration Annotation Processor.
We’ve extended IntelliJ IDEA’s support for utilizing AspectJ in Spring applications. The IDE now provides analysis and completion for Kotlin code, just as it already did for Java code.
In IntelliJ IDEA 2023.2, we’ve introduced a new inspection to eliminate the so-called
“Norway problem”
and prevent the unintended misinterpretation of Boolean values in YAML files. When a
list primarily consists of strings but contains a Boolean-like literal, IntelliJ IDEA
will highlight this literal, indicating a potential inconsistency, and suggest adding
quotes to it. If the list is mostly composed of Boolean-like literals (such as
true
, false
, off
, on
,
yes
, or no
), any literal that deviates from this pattern
is highlighted as a possible error, although no specific quick-fixes are suggested
in this scenario.
Working with the AsyncAPI specification format in IntelliJ IDEA is now much easier. The IDE supports schema validation functionality and provides code completion for references, the Endpoints view, and the Editor Preview pane.
It is now easy to access and preview the contents of a Docker image layer in the Services tool window. Select the image from the list, select Show layers, and click Analyze image for more information. This opens a list of the files stored in the layer, from which you can easily open the selected file in the editor by right-clicking on the file and clicking Open File (or Download File for binaries).
It is now possible to set a Docker run configuration to run before another configuration by designating it as a Before Launch task. The IDE will wait for the container that is currently running to become healthy, and then it will launch the next run configuration. To put a Docker run configuration in a queue, first create it and then add it to the relevant container via Modify options | Add before launch task | Run configuration.
We have introduced a new feature that allows you to set up multiple kubeconfig files within a single project. This simplifies the experience of handling multiple clusters or working with environments on different clusters in the same project. To set the files up, go to File | Settings | Build, Execution, Deployment | Kubernetes.
You can now view logs for deployments in Kubernetes clusters in the Services tool window. Right-click on Deployment in the tree and then select Follow Log or Download Log from the context menu.
In IntelliJ IDEA 2023.2, we’ve been working on improving how we present type errors in JavaScript and TypeScript. Your errors and warnings will now be formatted in a more readable way, making it easier to spot problems in your code. This works for all TypeScript errors, some of the most common JavaScript errors, and even localized errors.
IntelliJ IDEA 2023.2 supports CSS nesting. We’ve implemented syntax support and an inspection that alerts you if the nested selector starts with an identifier or functional notation.
Support for Vue Language Server (VLS), a.k.a. Volar, provides more accurate error detection and better type information in the quick navigation and documentation popups. By default, VLS will be used for TypeScript v5.0 and higher, and the wrapper over the TypeScript service will be used for earlier TypeScript versions. You can set the Vue service to use VLS integration on all TypeScript versions under Settings | Languages & Frameworks | TypeScript | Vue.
We’ve added a new set of live templates for React hooks, available under Settings | Editor | Live Templates | React hooks. To use a live template, type its abbreviation in the editor and press Tab to expand it.
IntelliJ IDEA 2023.2 simplifies configuring static analysis tools by fully integrating JetBrains Qodana – our smart static analysis engine designed to fit any CI/CD pipeline. This integration brings you two important benefits. First, easy configuration allows you to trigger analysis with a few clicks, view project-wide problems, and set up quality gates in your preferred CI/CD system. Second, you can now see the server-side analysis results without leaving your IDE, right out of the box. Learn more about Qodana and its latest release in this blog post.
You can now connect to Redis Cluster and have the same feature set as with standalone
Redis. When connecting to a cluster, jdbc:redis:cluster:
must be entered
before the desired URL. Choose the appropriate connection type to achieve this. If
SSH tunneling is required for the connection to the cluster, then the hosts and ports
for all nodes in the cluster should be indicated in the URL.
For v2023.2, we’ve reworked the schema migration functionality. The main difference is that the same object is now placed on the same line in both parts of the dialog, making it easier to understand which objects are going to be added, removed, or changed in the target schema.
The Data Editor and Viewer settings page has a new Time zone field for
setting the time zone in which the datetime
value should be displayed.
Shared databases and their contents are now introspected. The datashares that these databases are created on are also introspected.
IntelliJ IDEA is now fully compatible with Maven 4.0.0-alpha, the latest version of Maven.