CLion 2025.2 introduces new enhancements to the CLion Nova language engine, including the reworked formatter. It also offers new features for embedded developers, such as live watches for monitoring global variables in real time without stopping the program. We’ve also updated the project status widget and expanded the functionality of the GoogleTest integration.
We’ve significantly reworked the C and C++ code formatter’s functionality, the corresponding status bar widget, and the widget and settings UI. The main result of this improvement is that the relationship between the editor’s indent size, the status bar widget’s information, and the formatter settings is now consistent and clear. You can also configure alternative formatter options, such as ClangFormat, Indents Detection, or EditorConfig, directly from the widget, without having to do so via the settings.
We’ve improved the performance and responsiveness of CLion Nova when working remotely.
The typing assistant now runs on the thin client instead of the server. This means that,
in certain situations, you won’t have to wait for the backend’s response, and that your
internet connection no longer affects the IDE’s responsiveness. Features like
auto-inserting the paired <>, [], or () brackets
or smart indentation when the backspace key is pressed are now as fast as when working
locally.
Note that some typing assistance features have not yet been moved to the thin client, but we’re working on this.
The live watches feature allows you to monitor global variables in real time without stopping the program’s execution. This is especially useful for developers of embedded systems who work with time-critical protocols, such as Bluetooth or Zigbee, or with physical processes that require uninterrupted operation, like electric motor control or real-time sensor sampling.
This feature is enabled by default. To use it, ensure that the Debug Servers option is enabled in Settings | Advanced Settings | Debugger. Note that live watches currently only work with the SEGGER J-Link and ST-LINK debug servers, or the generic server when it is connected to SEGGER J-Link or ST-LINK debug probes. You can learn more about the other limitations in the documentation.
In addition to the generic, SEGGER J-Link, and STM32 debug servers, you can now use one specifically designed for ESP-IDF projects. It contains only the most basic and essential settings, and everything else is preconfigured to simplify the configuration process.
Go to Settings | Build, Execution, Deployment | Debugger | Debug Servers, click +, and select the ESP-IDF template. There, you can configure the parameters of your debug server, device, and debugger. If you need more detailed configuration options, you can convert your ESP-IDF debug server into a generic one.
Previously, CLion Nova would sometimes overlook possible compilation errors when analyzing your source code and not show the corresponding warnings in the editor. As a result, these errors appeared only in the terminal after the build was complete. Now, CLion Nova catches all the errors before you click Build, Run, or Debug.
We’ve extended the capabilities of our GoogleTest integration in CLion Nova, so that now
CLion Nova’s GoogleTest features match those of CLion Classic. One of the essential
features is the support for the TEST_P macro. It’s useful for parameterized
tests where
you need to run the same test logic with different input values. Now, you can run a
parameterized test by clicking the green Run button in the gutter next to a
TEST_P
function.
We’ve improved the functionality and UI of the project status widget by making its warnings more prominent and more interactive. For example, if your file doesn’t belong to a project, you can fix this by clicking the corresponding link. You will then be able to:
c_cpp_properties.json fileIf the warning is irrelevant to your current task, you can now simply close the banner – an option that wasn’t previously available. An example of the latter case would be if you needed to open an out-of-project file to analyze code.
While debugging, you can now suppress low-level exceptions triggered by __debugbreak()
or inline assembly with int3. This is especially useful when debugging
complex game projects because it allows you to skip the game engine’s low-level
assertions that trigger manual breakpoints. This feature gives you more control over
low-level exceptions and signals. You can choose when you want the debugger to stop and
when it should continue debugging.
CLion and Rider share this functionality, and you can check out this blog post from the Rider team to learn more about how the feature works and how to configure it.
To learn more about other updates in the 2025.2 release, read our blog post.