IntelliJ IDEA 2023.1 includes a host of improvements for the new UI, which has been overhauled based on the valuable feedback we’ve received from users. We've also implemented performance enhancements resulting in faster Maven import and IDE features becoming available earlier when opening projects. The new version provides a streamlined commit process thanks to background commit checks. IntelliJ IDEA Ultimate now supports navigation for Spring Security matchers and request mappings. This release contains a range of other notable upgrades and refinements, described in detail below.
Visit this page to learn more about the new UI.
In response to the feedback we’ve received about the IDE’s new UI, we’ve implemented a number of updates addressing the most popular requests. We’ve introduced Compact Mode which provides a more consolidated look and feel of the IDE thanks to scaled-down spacings and elements. The new UI now offers an option to vertically split the tool window area and conveniently arrange the windows, just like in the old UI. The Run widget in the main window header has been redesigned so that its appearance is unobtrusive and easier on the eyes. Learn more about the new UI enhancements introduced in this release, and give it a try if you haven't already!
We’ve improved the IDE startup experience by performing the Scanning files to index process in smart mode. Doing so makes the IDE’s full functionality available much earlier in the startup process. When opening a project, IntelliJ IDEA 2023.1 uses existing caches from your previous session with the project and simultaneously looks for files to index. If no changes are found in the scan, the IDE will be ready, eliminating the delays that were previously caused by indexing on startup.
We’ve notably improved the IDE’s performance in importing Maven projects by optimizing dependency resolution as well as reworking the processes behind importing and configuring facets.
We’ve reworked the behavior of commit checks for Git and Mercurial to speed up the overall commit process. Checks are now performed in the background after you commit but before you push.
To simplify seeing applied security rules, IntelliJ IDEA Ultimate 2023.1 provides easy navigation to security matchers from Spring controllers. The navigation works both from security matchers to controllers and vice versa.
In v2023.1 it’s possible to zoom into and out of the IDE entirely, increasing or decreasing the size of all UI elements at once. From the main menu, select View | Appearance and adjust the IDE’s scaling. Additionally, you can assign custom shortcuts for calling these actions in Settings/Preferences | Keymap | Main Menu | View | Appearance.
In IntelliJ IDEA 2023.1, you can save and manage several tool window layouts and switch between them when needed. To save a new layout, arrange the tool windows as desired and go to Window | Layouts | Save Current Layout as New. If you further adjust the arrangement, you can either update the current setup using the Save Changes in Current Layout option or save these changes as a separate custom layout. To activate a saved layout, find it in the list in Window | Layouts, hover on its name, and then click Apply.
In IntelliJ IDEA 2023.1, we’ve introduced a new layout option that allows you to unify the width of the side tool windows or retain the ability to freely adjust their sizes as you customize your layout. The new Remember size for each tool window checkbox is available in Settings/Preferences | Appearance & Behavior | Tool Windows. Learn about how this setting works for the new and the old UI in this blog post.
For those who are new to IntelliJ IDEA and coding, we’ve introduced an option to open a new project containing sample code with onboarding tips. In the New Project wizard, check Generate code with onboarding tips to get a basic sandbox project with tips demonstrating some of the IDE’s essential features. By following this small guide, users can try out the Search Everywhere functionality, apply a quick-fix, and run and debug the code, making it easier to familiarize themselves with the IDE.
IntelliJ IDEA 2023.1 adds an option to predefine the behavior of Actions on Save for new projects. For this, go to File | New Projects Setup | Preferences For New Projects | Tools | Actions on Save and select which actions you want to be triggered when saving changes in your future projects.
To provide you with more relevant and accurate search results, we continue our efforts to integrate machine-learning ranking into the Search Everywhere (Double Shift) functionality. The sorting algorithm in the Classes tab is now also powered by machine learning by default, along with the results in the Actions and Files tabs.
In IntelliJ IDEA 2023.1, there’s a new notification that is triggered when Microsoft Defender with Real-Time Protection is running. Given that these antivirus checks can significantly decrease the IDE’s speed, IntelliJ IDEA suggests adding certain folders to Defender’s list of exclusions. The notification provides options to either reconfigure these settings automatically or first check Defender’s configuration instructions and do it manually.
In v2023.1, we’ve fine-tuned the user experience when pasting a line that was copied or cut without selection. There’s now a special setting that allows you to control the placement of the pasted content. In Settings/Preferences | Advanced Settings, find the Editor section and select the desired behavior for the Paste action from the drop-down list.
IntelliJ IDEA 2023.1 features a new Selection checkbox in Settings/Preferences | Editor | General | Appearance | Show Whitespaces that allows you to configure this setting so that the IDE shows whitespaces as small dots only when you select code.
With IntelliJ IDEA 2023.1, you can use regular expressions to create your own search and replace inspections. These inspections can be especially useful for highlighting style-based or formatting-based problems. Learn more in this blog post.
A new intention action allows you to correct the formatting of tables in Markdown files. You can access the quick-fix via the Context actions shortcut (Alt+Enter) or by clicking the yellow bulb icon and selecting Reformat table from the list that appears.
The Fill Paragraph editor action is now supported for Markdown files, allowing you to break long texts into several lines of even length. To do this, set the caret inside the paragraph you want to edit and call the action from the Edit menu, or search for the Fill Paragraph command using Find Action (Ctrl+Shift+A).
We’ve added a dedicated page for configuring and editing your Markdown preferences in Settings/Preferences | Editor | General | Smart Keys. This page should make managing your preferences easier, as it provides separate checkboxes for various editor features, replacing the single checkbox previously stored in Settings/Preferences | Languages & Frameworks.
We’ve updated the Typo inspection so that it no longer checks the spelling of hashes and special values and doesn’t report them as misspelled. This update covers the following values:
Md5
, Sha1
, and Sha256
hex values.
Sha384
and Sha512
base64-encoded integrity values with
the shaNNN-
prefix.
JWT
tokens.
To help keep your code clean and error-free, we’ve upgraded some existing Java inspections
and added new ones. The Malformed format string inspection now reports illegal time
conversions that don’t comply with common Java syntax. The Redundant String operation
inspection is now capable of detecting redundant StringBuilder.toString()
calls and providing a quick-fix to replace them with contentEquals()
so that
you don’t create an intermediate String
object. It also reports unnecessary
arguments in String
constructor calls and suggests a quick-fix that removes
them. Learn more about other code inspection improvements in IntelliJ IDEA 2023.1 in this
blog post.
Continuing to reduce the cognitive load for Java developers, IntelliJ IDEA 2023.1 supports the latest updates added in Java 20, including the changes to the language features Pattern Matching for switch and Record Patterns. For details, check out this blog post.
We’ve upgraded the Extract Method refactoring by introducing the option to apply it even when the selected code fragment features several variables that need to be returned. In these cases, the IDE first suggests wrapping these variables into a new record or bean class and then performing the method extraction.
We’ve integrated auto-completion functionality into the VM Options field of the
Run/Debug configuration popup. Now, when you start typing the name of a flag, the
IDE suggests a list of available command line options. This works for -XX:
and -X
options, as well as for some standard options that are not configured
by IntelliJ IDEA automatically, like -ea
, but not for -cp
or
–release
.
IntelliJ IDEA can now desugar braceless Scala code properly, and it handles refactorings where the “fewer braces” feature is used. It also supports braceless syntax in worksheets and correctly interprets indentation when you move extensions methods up and down in your code.
In Gradle, when you have an empty module and want to create the root directory for the source code, you can use the New Directory dialog, which contains some helpful suggestions. With v2023.1, this dialog is now available for sbt projects, as well. You can also specify the sbt launcher’s parameters in Settings/Preferences | Build, Execution, Deployment | Build Tools | sbt, and the Find Usages (Alt+F7) action now searches for symbols in sbt files.
The Unused declaration inspection has received a number of fixes and improvements. IntelliJ IDEA can now detect symbol usage in your project’s XML files. The inspection also distinguishes between references to terms and references to types, not tagging the one as in use if it is actually the other that is. The Can be private inspection was updated, as well. For example, you will no longer see highlighting for top-level definitions in worksheets and local classes. For recursive calls, you will now see a gutter icon to the left of the line with the call.
We’ve improved the performance of Scala 3 highlighting when many implicit parameters
are imported and are needed to parse the code, for example, when the Cats library is
being used. IntelliJ IDEA 2023.1 also features many syntax support improvements, such
as the proper automatic generation of overriding methods with using
clauses.
If you use compiler-based highlighting, until now all imports have been marked as used.
Scala 3.3, however, introduced a new compiler option,
-Wunused:imports
. The
IDE can now identify unused imports if your project uses this option. We’ve also fixed
the auto-import action for Enums
.
IntelliJ IDEA 2023.1 brings numerous fixes and improvements to the Scala 3 and Scala 2 decompilers. The output of decompiling Scala 2 and Scala 3 bytecode has been unified and is now easier to read.
We’ve updated the Flame Graph tab by introducing color-coded highlighting for calls. Methods belonging to the currently opened project are now highlighted in yellow. This way, you can easily distinguish the code that you can modify to resolve a given performance problem. We’ve also reworked the overall color scheme of the Flame Graph tab to make it more eye-friendly.
To make tracking changes to files more convenient, we’ve added color hints to the Structure tool window. The names of modified objects will now become blue, and the names of the newly added objects will appear in the tool window highlighted in green.
To simplify the process of reviewing code inside the IDE, we’ve reworked the Pull Request tool window. It now features a dedicated tab for each pull request you open. The tab instantly displays the list of changed files, but it now provides less information than before, allowing you to better focus on the current task. There is now also a dedicated button to easily execute the action that’s considered the most relevant given the pull request’s current state.
We’ve improved the usability of the Branches popup. For instance, navigating between branches is now easier, as they are grouped and stored in expandable lists.
IntelliJ IDEA 2023.1 provides auto-completion in the Create New Branch popup. Once you start typing a name for your new branch, the IDE will suggest relevant prefixes based on the names of existing local branches.
When configuring a new Gradle project, it is now possible to select the required wrapper version right in the New Project wizard. Expand the Advanced Settings section, uncheck Auto-select, and specify the preferred option. You can have the IDE remember your choice by enabling Use these settings for future projects below the Gradle version combobox.
When importing a project, IntelliJ IDEA 2023.1 can now detect the Gradle toolchain configuration and set up the matching Java SDK in the module’s settings.
In IntelliJ IDEA 2023.1, it is possible to create a shortcut to launch the Run with coverage action for the file you currently have open, even if the run configuration hasn’t been created yet. To assign such a shortcut, go to Settings/Preferences | Keymap, look for the Run with Coverage context configuration option and then add a new key combination for it.
In IntelliJ IDEA 2023.1, you can filter classes in the Coverage view to focus on recently updated classes and methods that require special attention when testing. By default, you’ll see a list of classes with uncommitted changes. The second filtering option allows you to hide classes that are fully covered.
IntelliJ IDEA Ultimate 2023.1 provides updated support for navigation to URL mappings and security roles for APIs introduced in Spring Security 6.
In the Spring run configuration, Gradle is now the default option for running and building projects. The IDE now uses the main setting to build and run the project using Gradle as defined in Settings/Preferences | Build, Execution, Deployment | Build Tools | Gradle.
With IntelliJ IDEA Ultimate 2023.1 you can change and share Spring and JPA settings via custom facets in File | Project Structure | Modules. For instance, to share a selected data source for JPA within your team, you can now create a JPA facet and commit its settings to the version control system by adding a module file with the *.iml extension.
IntelliJ IDEA Ultimate 2023.1 makes it possible to run MongoDB queries in the
Database console from Spring and Micronaut Data repositories. To do this,
use the new Run query in console intention action in the query string. The IDE
will generate the appropriate JavaScript calls, including additional request parameters
such as sort
.
IntelliJ IDEA Ultimate 2023.1 provides a wider array of inspections for reactive code.
For example, the IDE now reports usages of transformation operators with the
Mono<Void>
type described in the
Reactor 3 Reference Guide.
We’ve implemented a new dedicated plugin that integrates Apache Dubbo, providing the framework’s functionality as part of IntelliJ IDEA’s support for Spring. You can download this plugin from JetBrains Marketplace or install it right in the IDE via Settings/Preferences | Plugins.
If you define additional metadata for APIs using Swagger 2.X annotations in Spring controllers, IntelliJ IDEA Ultimate now includes these annotations when generating OpenAPI files from the URL inlay popup dialog or from the Endpoints tool window.
It is now possible to edit parts of bigger OpenAPI specifications in separate files while easily navigating between them. In addition, the IDE provides code completion and highlighting for these files in the same way it does for the main specification file.
With IntelliJ IDEA Ultimate 2023.1, it is possible to run GRPC requests from proto files
that contain imports from .jar archives. We’ve also improved code completion for request
bodies, like for the OneOf
and Map<K,V>
types. Furthermore,
we’ve added the HTTP Client tab for Protobuf endpoints in the Endpoints tool
window.
The IDE now provides all of the editing features necessary to work with application.yaml configuration files in Ktor, including code completion, highlighting, and validation.
The Dashboard tab of the Docker Compose node now pulls together logs from every Docker Compose container and displays them all in one place, updated in real time.
You can now easily connect to Azure Container Registry. Go to Settings/Preferences | Build, Execution, Deployment | Docker | Docker Registry and set it up by selecting the Docker V2 option in the Registry input field.
:z
mount option to bind volumes on SELinux
You now have the ability to add :z
configuration flags to Docker bind mounts,
allowing you to connect volumes to Docker containers on SELinux workstations. To enable
this functionality, go to Settings/Preferences | Advanced Settings | Docker.
IntelliJ IDEA 2023.1 informs you about the results of Docker health checks. You can now see health statuses of the running Docker containers next to their names in the Services tool window. Also, to make it easier to parse the statuses at a glance, containers that are starting and operating normally feature a small green dot on the icon, while the unhealthy containers are marked with red.
The Docker debug functionality has been deprecated. To debug your applications using Docker containers, please use Run targets instead.
To make creating new Kubernetes files easier, we’ve added a new action to the File | New menu. Once you select the New Kubernetes Resource option, you’ll see a popup that features a list of the most popular resource types, such as Pod, Deployment, ConfigMap, and others.
IntelliJ IDEA Ultimate 2023.1 introduces a new dialog for creating Kubernetes Secrets. To define a new Secret, you can input Key and Value data manually or specify a file whose content will be used.
When you use the View YAML action for resources from a cluster and make any changes in the opened file, IntelliJ IDEA Ultimate now highlights all of your edits with color-coded marks in the gutter. This way, you can be sure that the changes are made to the required parts of the resource before you apply them back to the cluster. Additionally, using the Compare with Cluster icon opens a full diff view that will fetch the resource’s current version from the cluster and compare it with the local version.
IntelliJ IDEA Ultimate 2023.1 refines the user experience for working with kubeconfig files. You can now easily access a kubeconfig file in the Services view and open it in the editor. If you change a kubeconfig file outside of the IDE, IntelliJ IDEA will detect this and automatically refresh the configuration in the Services tool window. Code highlighting and completion for kubeconfig files are also provided.
You can now assign shortcuts for most Kubernetes actions in the Services view, like Forward Ports, Delete Resource, and Describe Resource, among others. Follow this path to set your custom shortcuts: Settings/Preferences | Keymap | Plugins | Kubernetes.
Now, when guests connect to a session, their client looks more like a regular JetBrains IDE. They can see all of the items the host sees, including grayed-out ones that only the host can access. Guests can clearly see what is unavailable and ask hosts to implement those actions on their behalf.
Guests can now request additional permissions by simply clicking on a key icon next to an unavailable item. Now hosts don’t have to determine necessary access from the start and can easily approve extra permissions from any guest on the fly.
Recent projects are now stored on the host instead of the client. This gives you accurate, up-to-date information even if you connect from a different client. We’ve also added more useful options, such as selecting which version of the IDE to use on the host.
Long-awaited Astro support has landed in IntelliJ IDEA 2023.1! You can get it through our new Astro plugin, which can be installed from Settings/Preferences | Plugins. The plugin provides basic functionality including syntax highlighting, code completion with automatic imports, refactorings, navigation, correct formatting, and more.
We’ve added TypeScript support in Vue templates. It’s enabled when you set the
lang
attribute in a script
tag to ts
. Previously,
JavaScript was used regardless of the lang
attribute in the script
tag. IntelliJ IDEA will now provide support for inline casting, improved type narrowing,
and correct information about inferred types in quick documentation in templates of Vue
Single-File Components.
IntelliJ IDEA will now transform your single- or double-quoted strings into template
literals automatically whenever you type ${
. This works for raw strings
as well as for JSX properties.
In this release, we've added support for configuration options, such as custom class
name completion under the classAttributes
option, or experimental ones like
tailwindCSS.experimental.configFile
. You can set up these configuration
options under
Settings/Preferences | Languages & Frameworks | Style Sheets | Tailwind CSS.