CLion 2024.1 levels up the CMake editing experience, unlocks multi-process debugging capabilities, assists with more accurate hardware descriptions in device tree files, and brings significantly improved integration with version control systems.
Do you find editing CMake scripts challenging? With CLion 2024.1, you get enhanced writing assistance for CMake targets for even easier script editing. Now, CLion suggests live templates to create new targets, as well as code completion, navigation, and Find Usages for target names.
We’re constantly improving CLion’s integration with debugger backends. With this latest release, it’s possible to debug multiprocess targets in CLion. GDB users will now benefit from bundled support for the latest GDB 14.1 version. A new option was also added to boost GDB indexing, thus boosting debugging performance.
We continue to improve CLion’s Meson support. This 2024.1 version comes with a Meson tool window with many useful commands, custom settings for Meson, and the option to create new Meson projects from the New Project wizard in CLion.
VCS support in CLion and other JetBrains IDEs has been updated significantly with our enhanced diff viewer, improved branch search functionality, a streamlined code review workflow, and many other useful improvements throughout the whole subsystem.
Do you need a new CMake target? New live templates have been added that automatically
create add_executable
(type exe
) and add_library
(type lib
) CMake commands for you.
CLion now completes target names in CMake commands. This makes it easier for you to link files to the targets and perform other target-related operations.
Looking for a place where a certain target is defined? Now, CLion lets you navigate
to the corresponding add_library
or add_executable
commands
from the target usage in just one click.
Rely on Find Usages (Alt+F7) to list all usages of the target in your project. The items in the tool window will be sorted into usages and target definitions.
When CMake fails to load because you don’t have the minimum required version of
CMake enabled, CLion suggests a fix in the CMake tool window. Click
Fix...
and CLion will update the cmake_minimum_required
command for you.
You can now configure which CMake preset types to import into CLion. For example, you can choose Configure option from the import list. To do so, use Settings/Preferences | Advanced Settings | CMake | Automatically import CMake Presets.
Finally, CLion 2024.1 bundles CMake v3.28.
Since v2023.3, CLion has included support for the
Meson
project model. It now comes with a Meson tool window
(View | Tool Windows | Meson). There, you can find the list of build targets and
useful commands like clean
, install
, test
, and more.
Starting a new Meson project? The New Project wizard in CLion now comes with an option to help streamline the process. File templates for this new Meson project can be configured in Settings/Preferences | Editor | File and Code Templates | Meson Project.
If you need to specify the custom path to the Meson executable, you can now do so in CLion’s Meson settings. You can also use the Setup options field to provide any additional Meson commands.
In CLion, it’s now possible to debug multiprocess targets. Our latest release lets you update the follow and detach policies from the context menu. This works on Linux (with LLDB and GDB) and for remote toolchains (WSL, remote, and Docker).
Learn more about these settings in our documentation.
If you develop for hardware and write device tree files, you can benefit from the device tree file coding assistance in CLion that was added in v2023.3. In this new version, we improved the code analysis in device tree files and synchronized CMake with the Zephyr settings by default.
To validate node properties with binding, there are new checks for invalid property types and required or undeclared properties.
A Duplicate element inspection detects duplicate elements inside the device tree nodes. This could either be two or more properties with the same name or two or more nodes.
When an enumeration type is used, CLion validates the values for such properties and reports the unpermitted values.
To help you write device tree files, we’ve added code completion for the root node.
The new terminal (Beta) is now available in JetBrains IDEs v2024.1. You can switch between the old and new terminal in Settings/Preferences | Tools | Terminal | Enable New Terminal.
We expanded the feature set, improved the visual appearance, and aligned it with the IDE’s refreshed look and feel.
It supports only Bash, Zsh, and PowerShell, with other shells in development. Read on for more details.
This release brings updates to VCS support in CLion, including:
Learn about all the changes here.
Navigating through new codebases and large files can be tricky. To help you with that, the editor now has sticky lines while scrolling. This feature keeps key structural elements, like the beginnings of classes or functions, pinned to the top of the editor as you scroll. This way, scopes are always in view, and you can promptly navigate through the code by clicking on one such line.
Previously, CLion introduced the ability to zoom in and out of the entire IDE, adjusting the size of all UI elements simultaneously. However, the initial scaling range was limited to between 100% and 200%. Now we have incorporated a new option allowing users to scale down the IDE to 90%, 80%, or 70%, offering an extended range of customization options.
CLion 2023.3 features JetBrains AI Assistant, which has now moved beyond the technical preview stage, bringing more context- and project-aware actions to benefit your everyday C++ development workflows. The new release also expands project models support, brings tools for more in-depth code analysis and underlying assembly viewing, and empowers embedded developers with support for device tree files.
JetBrains’ AI Assistant is now generally available with a number of new and improved features to increase your productivity in JetBrains IDEs.
In CLion 2023.3, AI Assistant generates documentation more accurately and can explain runtime errors to you. The latest update also includes a context-aware AI chat and project-aware AI actions that use extended context to provide more comprehensive results.
Use AI Assistant in CLion as an add-on with a JetBrains AI subscription.
In a bid to address long-standing performance and quality issues and unify the user experience across all our C++ tools, we’re launching CLion Nova. It’s a free preview version of CLion with the C++ language engine from ReSharper C++ and JetBrains Rider. It guarantees:
A range of project models are used for C and C++ projects. CLion works out of the box with CMake, compilation databases, Makefiles, and Autotools projects. V2023.3 now brings long-awaited support for Meson and addresses many issues in the Bazel for CLion plugin.
Learn more about the changes
CLion comes with a built-in data flow analyzer, which runs constantly when you are writing your code and helps improve your code’s quality. In v2023.3, we’ve improved the accuracy and performance of the overall analysis and added a memory leak analysis.
Learn more about the new analysis
CLion does its best to help you understand what the code is actually doing and search for bugs in the code base. A new Run to Cursor inlay option speeds up navigation through the code in the debugger, while the Assembly view for files is useful when you’re trying to find a bug or optimize your code’s runtime performance.
Learn more about the new abilities
A device tree is a hierarchical data structure primarily used to describe hardware. It’s widely used in Zephyr and provides the initial configuration for hardware. It’s now much easier to read, navigate, and maintain such files with CLion. Files with .dts and .dtsi extensions are treated by the IDE as device tree files, and so coding assistance options are now available in the device tree.
Learn more about the DTS support
Important quality improvements are implemented in Google’s Bazel plugin for CLion:
strip_include_prefix
argument into account and
thus uses the correct paths when looking for included headers.
local_repository
, or
new_local_repository
are now synchronized and indexed correctly in CLion.
Meson support comes to CLion! You can open a Meson project in CLion and build, run, and debug it. It works on all platforms and for all local and remote toolchains, including WSL and Docker.
To help you edit the meson.build file, CLion provides you with:
executable(...)
and library(...)
commands are present
in the file.
The CMake preset conditions equals
and notEquals
are now
supported, meaning CLion no longer shows presets that don't match these conditions.
With CLion 2023.3, you don’t need a debugging session to explore the underlying assembly code! The new Show Assembly action uses the compiler settings from the currently selected resolve configuration, compiles the code of the currently viewed C/C++ file to assembly, and opens an editor with a preview showing which source code produces which assembly.
All Assembly views in CLion (with and without the debugging sessions) were enhanced with the ability to switch to x86 assembly (Intel) syntax. To do so, go to Options in the Assembly view window and refresh the view to apply the changes.
CLion 2023.3 introduces a new Run to Cursor inlay option in the new UI that offers a quick way to navigate to a specific line of code while debugging. Once your program is suspended, you can hover over the line of code up to which you would like to execute the program and then click on the Run to Cursor popup to execute your code until it reaches the line where you clicked on the popup.
To help you fine-tune the hardware, CLion supports device tree files. Files with .dts and .dtsi extensions are treated by the IDE as device tree files, and so coding assistance options for these are provided in the device tree. Check the online documentation for details.
To help you read through the existing device tree files, CLion provides:
To write device tree files more effectively, CLion supports:
/<commands>/
, and labels./bits/
option.A new “function summaries” approach in CLion 2023.3 allowed us to distinguish different function contexts for arbitrary nested call chains, resulting in more accurate data flow analysis.
Existing inspections in DFA now also consider fields, and there is a new inspection that warns you if not all of the fields were initialized.
A new memory leak analysis is implemented. So you can now easily catch cases where memory is allocated but not released before it stops being accessible.
CLion detects QML types in a project in order to parse them and provide coding assistance based on them. But library QML types or types from users’ plugins are often located in other places. To solve this issue, we’ve introduced the new Extra QML imports setting in Settings/Preferences | Languages & Frameworks | QML, which allows the IDE to search for QML imports in specified locations and parse types from user code.
When you create a new project via the New Project wizard in CLion, a main.cpp or main.c file is generated for you automatically. In some cases however, you might want to rely on a custom template for these files. Now in the CLion 2023.3, you can edit such templates in Settings/Preferences | Editor | File and Code Templates | Other.
The IDE Features Trainer is a set of interactive tutorials covering the essential IDE functionality. Start it from the Welcome screen or from Help | Learn IDE Features. Learn more in our online documentation.
Training starts with the onboarding tour, which helps you get acquainted with CLion and the main user activities: navigating through the views and panels, opening files in the editor, launching your program, autocompleting symbols, applying quick-fixes, and searching for symbols.
If you prefer a more compact IDE view, there’s a new option to hide the main toolbar in the default viewing mode. Go to View | Appearance and uncheck the Toolbar option to hide it.
To enhance your navigation experience when working with a variety of file types in the editor at the same time, we’ve introduced default color-coded highlighting for editor tabs, mirroring their appearance in the Project tool window.
The Speed search functionality, allowing you to quickly navigate within tool windows and dialogs, is now available via a shortcut. When a tree or list is in focus, you can easily invoke the search from the tool window’s Options menu, by pressing Ctrl+F, or simply by starting to type your query.
If you want to quickly revert CLion’s custom tool window layout to the default one, you can now use Window | Layouts | Default to revert your workspace’s appearance to its default state.
To save time during the test indexing phase, you can manually instruct CLion to look for tests in specific directories. To do this, create a Tests scope, and only the files that are filtered by this scope will be indexed during test indexation.
You can use the Tests scope to filter the Project view and quickly access the test files in your project. Learn more.
In CLion 2023.3, we've significantly extended the support for Dev Containers. You can now easily add extra development tools, runtimes, and libraries using Dev Container Features, simplifying the setup of essential components. We’ve also implemented automatic port forwarding, meaning that any ports the application starts listening to in a Dev Container are seamlessly forwarded. Learn more details here.
CLion 2023.3 introduces a revamped way to review changes. Now, instead of going through each file one by one, you can see all of the modified files from a changeset in a single scrollable frame. This new diff viewer is compatible with GitLab, GitHub, and JetBrains Space reviews.
Expanding the GitLab integration introduced with the CLion 2023.2 release, we’ve added support for GitLab snippets. You can now create public or private snippets directly within the IDE.
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.
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.
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.
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.
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.
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.
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.
Select a specific code fragment in the editor and invoke an action from the AI Actions... context menu.
AI Assistant can help you:
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.
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.
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:
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.
CLion now supports ARM assembly languages, which means you’ll see code highlighting for ARM assemblers in the disassembly view.
When debugging disassembly code, CLion now shows register values inlined right in the disassembly view.
Other debugger improvements:
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.
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
.
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.
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.
To make vcpkg’s Classic mode more convenient, we added a Console tab to the vcpkg tool window to show all commands and output.
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.
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.
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.
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 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.
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.
To make managing multiple run configurations easier, we’ve implemented the option to pin preferred configurations in the Run widget.
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.
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.
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.
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.