What's New in CLion 2023.2

CLion 2023.2 reimagines PlatformIO integration, improves support for vcpkg, includes the AI Assistant feature, weaving it naturally into some of the core IDE user workflows, and improves the experience of low-level, remote, and embedded debugging.

Key updates

AI Assistant

AI Assistant Limited access

CLion 2023.2 includes the AI Assistant feature, weaving it naturally into some of the core IDE user workflows. In C and C++, it explains the selected code, suggests how to better refactor that code fragment, or finds potential problems with it. It also generates commit messages and explains CMake errors.

Learn more

Debugger update

Debugger update

Low-level debugging is easier with CLion 2023.2, which brings the ability to inspect the registers of the current frame. You can also see register values inlined right in the disassembly view. A major update to the Attach to Process dialog enables attaching to remote and WSL processes.

Learn more

PlatformIO integration

PlatformIO integration

PlatformIO is an open-source platform that helps embedded developers with their projects. CLion 2023.2 integrates natively with the platform. The IDE works directly with the platformio.ini file, tracking changes in it and updating the project information accordingly.

Learn more

vcpkg integration

vcpkg integration

vcpkg is one of the most widely adopted package managers in C++. When working with vcpkg, there are two approaches – Classic mode and Manifest mode. CLion 2023.2 supports both. You can clearly distinguish them in the CLion UI and switch easily to the Manifest mode using a dedicated button.

Learn more

AI Assistant
Limited access

The new 2023.2 versions of IntelliJ-based IDEs and .NET tools include a major new feature: AI Assistant. It’s still in the early stages of development, but you can already try our approach of weaving AI assistance into the core IDE user workflows and integrating deep AI features with code understanding. Learn more in our webhelp.

AI Assistant is not currently bundled with stable releases of JetBrains IDEs and can be installed as a separate plugin. For the time being, there is a waiting list for access to the AI Assistant feature.

Chat with AI Assistant

Chat with AI Assistant

AI Assistant prefers programming topics and benefits from project-specific context. Iterate in the new dedicated tool window, and when you’re happy with the result, use Insert Snippet at Caret to put the AI-generated code in the editor – or just copy it over manually.

AI Actions... menu

AI Actions... menu

Select a specific code fragment in the editor and invoke an action from the AI Actions... context menu.

AI Assistant can help you:

  • Find potential issues in a selected code fragment.
  • Suggest how to better refactor that fragment.
  • Explain the selected code.
  • Start a new AI chat about the selected code.
Commit message generation

Commit message generation

Let AI Assistant help you describe the changes you made. Clicking the Generate Commit Message with AI Assistant button in the commit message dialog will send the diffs of your changes to the LLM, and it will generate a commit message describing your changes.

Explain CMake errors

Explain CMake errors

When CMake execution fails on your project, click Explain with AI in the CMake tool window to get a better understanding of what’s gone wrong and how to fix it.

Debugger

Attach to Process dialog

The Attach to Process dialog allows users to debug processes launched outside of CLion – locally or remotely – but also benefit from the IDE’s debugger integration.

From v2023.2 you can:

  • Attach to local, remote, and WSL processes.
  • Select any debugger configured in the toolchains.
  • Attach to processes launched remotely with administrative privileges.
Registers in debug

Registers in debug

Low-level debugging is easier when you have the ability to inspect the registers of the current frame. CLion now shows register values in the Variables tab of the debugger tool window.

ARM assembly

ARM assembly

CLion now supports ARM assembly languages, which means you’ll see code highlighting for ARM assemblers in the disassembly view.

Assembly registers in debug

Assembly registers in debug

When debugging disassembly code, CLion now shows register values inlined right in the disassembly view.

Other debugger improvements:

  • CLion bundles LLDB v16 and GDB v13.1.
  • Memory View now supports on-the-fly memory editing and displays the value right after editing.
  • To improve debugging of external libraries for remote toolchains, CLion now correctly handles breakpoints set in them and downloads missing source files on demand.

Embedded development

Native integration with PlatformIO

Native integration with PlatformIO

PlatformIO is an open-source platform that helps embedded developers with their projects. In CLion 2023.2, the intermediate CMake level was removed from the integration with PlatformIO. The IDE now works directly with the platformio.ini file, tracking changes in it and updating the project information accordingly.

Learn how to install the PlatformIO plugin and create a new project or open an existing one with it in our webhelp.

PlatformIO actions and tool window

PlatformIO actions and tool window

Some pio commands can now be invoked directly from the IDE (Tools | PlatformIO) – no need to switch to the terminal. This includes project reloading, running static code analysis on the project, invoking the device monitor, and more.

The PlatformIO tool window gives quick access to the most used commands and project actions.

Other improvements:

To make sure CLion can debug with the Segger J-Link GDB Server correctly, it now handles the SIGTRAP signal in addition to the usual SIGINT and SIGSTOP.

vcpkg

To help you manage project dependencies and external libraries, CLion integrates with vcpkg, a package manager for C/C++. In v2023.2, the integration got a major update, extending the number of scenarios supported.

Manifest mode

Manifest mode

When working with vcpkg, there are two approaches – Classic mode and Manifest mode. You can now clearly distinguish them in the CLion UI and switch easily to the Manifest mode using a dedicated button.

Console tab

Console tab

To make vcpkg’s Classic mode more convenient, we added a Console tab to the vcpkg tool window to show all commands and output.

CMake

Creating CMake targets when adding new files to a project

Creating CMake targets when adding new files to a project

CLion 2023.2 improves the new C/C++ file creation dialog in cases when there is no CMake target to add the new file to. The new Add new target... action creates a new target and adds it to the selected CMakeLists.txt file. After adding a target, you can then add new files to it.

CMake 3.25 and 3.26 support

CMake 3.25 and 3.26 support

CLion 2023.2 adds highlighting and completion for new parameters from CMake 3.25 and for the new block command used to execute a group of commands in a requested scope. In CLion, the new command is now highlighted, formatted, folded, and documented correctly.

CLion 2023.2 comes with CMake 3.26 bundled.

CMake Parameter Info

CMake Parameter Info

The Parameter Info popup shows signature variants as you type and is now available for CMake commands. It helps you figure out which parameter to enter next, especially with commands that have multiple variants.

Docker in WSL

Docker in WSL

If your project contains a Docker file with a Linux-based environment and you want to develop your application in it from a Windows machine, you can set this up in CLion using WSL and Docker.

Terminal in the output console

Docker in WSL

Terminal emulation in the output console is now enabled or disabled separately for each configuration. It’s disabled by default, and the setting that controls it has been moved from Advanced Settings to the Run Configuration section.

On Windows, it now works for MSVC LLDB-based debugging with both regular and administrative privileges.

User experience

Light theme with light header

Light theme with light header

For v2023.2, we’ve refined the user experience with the Light theme by introducing the alternate Light with Light Header option, featuring matching light colors for window headers, tooltips, and notification balloons.

Pinned run configurations

Pinned run configurations

To make managing multiple run configurations easier, we’ve implemented the option to pin preferred configurations in the Run widget.

Updated window controls on macOS

Updated window controls on macOS

When working on macOS in full screen mode using the new UI, the window controls are now displayed right in the main toolbar – not in the floating bar as before.

Removed title bar on Linux

Removed title bar on Linux

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 custom IDE header, which offers a range of customization options to tailor your workspace.

Colored project headers

Colored project headers

CLion introduces colored headers to simplify navigation between several open projects. You can now assign a unique color and icon to each of your projects, making it easier to distinguish between them in your workspace.

Main toolbar customization

Main toolbar customization

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.

Text search in Search Everywhere

Search Everywhere 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.

Other enhancements

  • CLion and other IntelliJ-based IDEs have introduced initial integration with GitLab in v2023.2, allowing you to work with the Merge Request functionality right from the IDE and streamline your development workflow.
  • On Windows, CLion now defaults to amd64 Visual Studio toolchain architecture on non-ARM machines instead of x86.