CLion 2024.3 marks another significant milestone for CLion Nova. This considerably improved version of our new language engine comes packed with some of your most requested features and is now ready for most use cases. The release also includes new features for embedded development, such as debug servers and support for native Zephyr West debugging. An OpenCV image viewer and the ability to attach the debugger to an unstarted process round out CLion 2024.3.
Our new, faster language engine, CLion Nova, is now the default for new users. In this release, we’ve implemented some of your most requested features and fixed a number of major bugs. Eventually, we plan to make CLion Nova the default engine for all users, both existing and new. But first, we’d like to ask you if you have any concerns about this.
Many improvements in CLion Nova have helped reduce the engine’s memory usage, which is especially noticeable in large projects like Chromium. The IDE is now more responsive and faster to start up.
When you’re debugging code that contains a two-dimensional OpenCV array, the debugger now allows you to view it as an image in a separate dialog and use various editing options. This new feature makes developing computer vision and machine learning applications easier and more convenient.
We’ve added a new Debug Servers configuration option to make it easier to configure debugging for embedded and remote development. With a debug server, you can choose which debug probe you want to run or debug your build target on. Previously, you had to set up a separate run/debug configuration for each debug probe and build target combination.
In this release, our new language engine, CLion Nova, has received a whole host of essential features, such as various language-specific and UI updates. We’ve also fixed some major bugs, including those related to the memory footprint. To make the transition from CLion Classic easier, users are no longer required to go all the way to Advanced Settings to switch to the new engine – we’ve now also included toggles on the Welcome screen and in the Configuration menu.
Now, CLion Nova’s superiority over CLion Classic in terms of performance is even more obvious. For this reason, we believe that CLion Nova is ready to be the default engine not only for new users, but for everyone.
However, we understand that not all existing users are ready to make the switch, and we’d like to know why. With this in mind, we’d appreciate it if you could tell us why you prefer CLion Classic over CLion Nova.
You can share your feedback by selecting Help | Submit Feedback... from the main IDE menu. We’ll review it carefully and endeavor to fix any critical issues that might be holding you back from embracing CLion Nova.
We’ve made many improvements to CLion Nova in an effort to reduce its memory footprint. This is especially noticeable in large projects. Comparing the memory usage of a Chromium project in CLion Nova 2024.2 against the same project in 2024.3, in the new version, the IDE frontend uses 51% less memory, while the IDE backend uses 15% less.
For our users, this means:
The function call hierarchy shows caller and callee hierarchies and helps you better understand how your functions interact.
To view the call hierarchy, select a function in the editor, and then choose Navigate | Call Hierarchy from the main menu or use the shortcut ⌃⌥H (macOS) or Ctrl+Alt+H (Windows/Linux).
You can now select a predefined code style like LLVM, Google, Qt, or GNU via Settings | Editor | Code Style | C/C++ | Set from....
We’ve added an icon for recursive calls to the gutter. This makes it easier to see where you are using recursive functions in your code and to avoid potentially harmful situations like stack overflows. The icon is also displayed in the call hierarchy.
The Quick Definition popup shows you where and how class, function, method, and other project symbols are defined. To invoke it, place the caret at a symbol in the editor and press ⌥Space (macOS) or Ctrl+Shift+| (Windows/Linux). You can also access it from the main menu via View | Quick Definition.
We’ve added a new Debug Servers configuration option to streamline the process of configuring debugging for embedded and remote development. It’s a separate section in Settings | Debugger where you can set up a debug server based on gdbserver.
First, you need to enable Debug Servers under Settings | Advanced Settings | Debugger. Then, you can open the Debug Servers dialog in Settings | Debugger or invoke Edit Debug Servers from the main toolbar switcher.
Please note that this is an experimental feature, which doesn’t work with PlatformIO yet. However, there is a workaround. We encourage you to try it and share your feedback with us. We would also be happy to arrange a quick call to learn more about your specific use cases and challenges.
In this release, we’ve extended support for Zephyr West by adding the ability to natively debug West projects. This makes it easy to configure and run debugging sessions in the IDE.
When you import your Zephyr West project, a West run/debug configuration is automatically created in the Run/Debug Configurations switcher. You can also create a new run/debug configuration via Run | Edit Configurations... in the main menu.
When debugging board peripherals like GPIO pins or timers, you can now immediately see the effects of your changes by editing peripheral registers in the Peripherals pane of the Debug tool window.
MISRA C++:2023 is the latest edition of MISRA C++, which provides guidelines for using C++17 in safety-critical systems. CLion’s static analysis toolset now includes a significant number of MISRA C++: 2023 checks.
If you’re debugging a computer vision or ML application that uses OpenCV, you can now view a two-dimensional OpenCV array as an image. The debugger displays such images in a separate dialog and offers various editing options and features like updating the image on stepping.
In the debugger’s Threads & Variables dialog, click View as image.
When debugging strings that store newline characters or JSON, XML, and HTML data, you can view them formatted according to their code style directly in the debugger. Press View next to a variable, and you'll be able to see the structured or raw data in a separate window.
You can now attach the debugger to unstarted local processes. These will then automatically trigger debugging when they are started. This feature is helpful when, for example, one part of your project is written in C++ and runs in CLion, while another is written in another language and runs in an external environment.
To configure it, select Run | Attach to an Unstarted Process... from the main menu.
We’ve updated the following bundled debuggers:
The updated JetBrains AI Assistant plugin, equipped with our internally trained large language model for C++, has made CLion’s cloud code completion faster and smarter. It now offers a broader range of usage scenarios, with enhanced suffix matching ensuring that the predicted code fragment correctly completes the existing code.
One of the most prominent improvements is multiline code completion, which has been updated with syntax highlighting and incremental acceptance of code suggestions.
Multiline code completion works in conjunction with standard code completion and Full Line Code Completion (the latter uses the local LLM and doesn’t require sending data to the cloud). This allows you to review and accept suggestions gradually. You can also accept suggestions word by word using the shortcut ⌥→ for macOS and Ctrl+→ for Windows.
If you’re just starting with CLion, you’ll notice the improved onboarding tips. They show you how to use some of the IDE’s key features and give you a clearer picture of its capabilities right from the start. This reduces the time it takes to become a proficient user of CLion.
We’ve made project status notifications less distracting by moving them from the top of the editor to a new widget in the status bar. Now, if you create a new .cpp file in your project, for example, the icon will appear. The notification that your file doesn’t belong to any project won’t appear until you hover over the icon. When you click on the icon, the widget will offer to add the file to the CMake project. If you don’t need it, you can close the popup, leaving only the icon in the status bar.
A more compact design has been implemented in the new terminal’s interface, reducing padding to maximize screen space. This also improves visibility when working with commands without compromising readability.
By default, CLion now highlights all instances of the text you’ve selected in any file, not just .c and .cpp. This makes it easier to keep track of where your selected text appears in the file. If you prefer the previous behavior, you can disable this feature via Settings | Editor | General | Appearance.
The CMake bundle has been updated to 3.30.5.