What's New in CLion 2024.1

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.

Key updates

CMake update

CMake update

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.

Learn more

Debugging enhancements

Debugging enhancements

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.

Learn more

Meson support

Meson support

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.

Learn more

Improvements for VCS

Improvements for VCS

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.

Learn more

CMake

Live templates

Live templates

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.

Target name completion

Target name completion

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.

Navigation to target definitions

Navigation to target definitions

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.

Find Usages for targets

Find Usages for targets

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.

Minimum required version

Minimum required version

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.

CMake preset loading

CMake preset loading

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.

Meson

Meson tool window

Meson tool window

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.

New Meson projects

New Meson projects

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.

Meson settings

Meson settings

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.

Debugger

Debugging forked processes

Debugging forked processes

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.

Other debugger improvements

  • CLion now bundles GDB 14.1. The presentation of the standard types that were initially broken with this version in CLion has now been fixed.
  • If you experience performance issues with GDB, try out a new setting. This works on Linux machines for executables launched from the IDE. When it is enabled, CLion prepares indexes for GDB before the debug session starts.

Device tree

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.

Property type checks

Property type checks

To validate node properties with binding, there are new checks for invalid property types and required or undeclared properties.

Duplicate elements

Duplicate elements

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.

Enum value checks

Enum value checks

When an enumeration type is used, CLion validates the values for such properties and reports the unpermitted values.

Code completion

Code completion

To help you write device tree files, we’ve added code completion for the root node.

New terminal Beta

New terminal

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.

  • Each command is now placed in the terminal as a distinct block. They are separated visually so that you can easily detect the start and end of each one. Easily navigate between blocks using the arrow keys or switch the focus between the prompt and output with the Ctrl+↑ and Ctrl+↓ keyboard shortcuts.
  • Code completion with documentation for commands, paths, arguments, options, and more will help you launch your required tasks more quickly.
  • The command history is also available in the new Terminal tool window.
  • The color scheme used in the Terminal tool window was updated to increase readability.

It supports only Bash, Zsh, and PowerShell, with other shells in development. Read on for more details.

Version Control

This release brings updates to VCS support in CLion, including:

  • In-editor code reviews for GitLab and GitHub repos.
  • CI status checks in the Git tool window.
  • Prevention of large file commits to repositories.
  • New Stash tab in the Commit tool window.
  • Option to exclude folders and files from comparisons.
  • And more!

Learn about all the changes here.

IDE UI update

Sticky lines while scrolling

Sticky lines while scrolling

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.

Scale down the entire IDE

Scale down the entire IDE

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.

Other enhancements

  • The input stream redirection option, which was present only for the CMake Application run configuration, is now also available in C/C++ File run configurations.
  • The Assembly view was updated to improve presentation and UX:
    • The Assembly view for ARM targets is now shown correctly.
    • Assembly view settings are now applied immediately, with no need to manually click the Refresh button.
    • When you edit a file for which the Assembly view is opened, a hint is now shown to the user suggesting they refresh the preview.