What's New in CLion 2023.3

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.

Key updates

AI Assistant is out of preview

AI Assistant is out of preview General Availability

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.

CLion Nova

CLion Nova Preview

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:

  • Faster highlighting speeds
  • A more responsive UI
  • Significantly fewer freezes and hangs in refactorings
  • Faster Find Usages
  • Faster test indexing

Learn more and use it for free while in preview

More C and C++ project models

More C and C++ project models

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

Striving for better C++ code

Striving for better C++ code

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

Deep dive into your code

Deep dive into your code

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

Embedded development

Embedded development

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

Project Models

Bazel for CLion plugin

Important quality improvements are implemented in Google’s Bazel plugin for CLion:

  • CLion now takes the strip_include_prefix argument into account and thus uses the correct paths when looking for included headers.
  • The code insight now works correctly for the symlinked header under Bazel’s virtual includes.
  • Projects added in WORKSPACE.bazel using local_repository, or new_local_repository are now synchronized and indexed correctly in CLion.

Meson support

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:

  • Code highlighting
  • The Structure view shows executables and libraries if executable(...) and library(...) commands are present in the file.

Learn how to work with Meson projects in CLion

CMake enhancements

The CMake preset conditions equals and notEquals are now supported, meaning CLion no longer shows presets that don't match these conditions.

Assembly view

Assembly view for files

Assembly view for files

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.

Learn more

Intel syntax

Intel syntax

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.

Learn more

Debugger

Run to cursor

Run to cursor

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.

Embedded development

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.

Reading the device tree files

To help you read through the existing device tree files, CLion provides:

  • Syntax highlighting in the device tree files.
  • Code formatting in the device tree files.
  • Code documentation when hovering over device tree elements.
  • Structure view and code navigation through the device tree files.

Writing device tree files

To write device tree files more effectively, CLion supports:

  • Code completion for standard nodes, /<commands>/, and labels.
  • Validation for labels and node names as you type.
  • Validation for the order of the elements in the tree if it’s defined.
  • Array size checks defined by the /bits/ option.

Static analysis

Function summaries

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.

Field analysis

Field 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.

Memory leak analysis

Memory leak analysis

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.

QML

QML

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.

File templates

File templates

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.

IDE feature trainer

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.

Onboard easily

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.

Dive into the core IDE features

When you are done with the basics, you can move forward to the Code Editing, Refactorings, Code Completion, and Git sections. You can go through lessons from the list in any order, so just focus on the topics most interesting to you.

User experience

Hiding the main toolbar

Hiding the main toolbar

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.

Color-coding for file tabs

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.

Speed search available via shortcut

Speed search available via shortcut

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.

Default tool window layout

Default tool window layout

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.

Other enhancements

Tests scope

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.

Improved support for Dev Containers

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.

All-in-one diff viewer

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.

Support for GitLab snippets

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.