What's New in CLion

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

What's New in CLion 2023.2

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.

Key updates

AI Assistant

AI Assistant Limited access

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.

Learn more

Debugger update

Debugger update

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.

Learn more

PlatformIO integration

PlatformIO integration

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.

Learn more

vcpkg integration

vcpkg integration

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.

Learn more

AI Assistant
Limited access

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.

Chat with AI Assistant

Chat with AI Assistant

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.

AI Actions... menu

AI Actions... menu

Select a specific code fragment in the editor and invoke an action from the AI Actions... context menu.

AI Assistant can help you:

  • Find potential issues in a selected code fragment.
  • Suggest how to better refactor that fragment.
  • Explain the selected code.
  • Start a new AI chat about the selected code.
Commit message generation

Commit message generation

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.

Explain CMake errors

Explain CMake errors

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.

Debugger

Attach to Process dialog

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:

  • Attach to local, remote, and WSL processes.
  • Select any debugger configured in the toolchains.
  • Attach to processes launched remotely with administrative privileges.
Registers in debug

Registers in debug

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.

ARM assembly

ARM assembly

CLion now supports ARM assembly languages, which means you’ll see code highlighting for ARM assemblers in the disassembly view.

Assembly registers in debug

Assembly registers in debug

When debugging disassembly code, CLion now shows register values inlined right in the disassembly view.

Other debugger improvements:

  • CLion bundles LLDB v16 and GDB v13.1.
  • Memory View now supports on-the-fly memory editing and displays the value right after editing.
  • To improve debugging of external libraries for remote toolchains, CLion now correctly handles breakpoints set in them and downloads missing source files on demand.

Embedded development

Native integration with PlatformIO

Native integration with PlatformIO

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.

PlatformIO actions and tool window

PlatformIO actions and tool window

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.

vcpkg

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.

Manifest mode

Manifest mode

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.

Console tab

Console tab

To make vcpkg’s Classic mode more convenient, we added a Console tab to the vcpkg tool window to show all commands and output.

CMake

Creating CMake targets when adding new files to a project

Creating CMake targets when adding new files to a project

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.

CMake 3.25 and 3.26 support

CMake 3.25 and 3.26 support

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.

CMake Parameter Info

CMake Parameter Info

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.

Docker in WSL

Docker in WSL

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 in the output console

Docker in WSL

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.

User experience

Light theme with light header

Light theme with light header

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.

Pinned run configurations

Pinned run configurations

To make managing multiple run configurations easier, we’ve implemented the option to pin preferred configurations in the Run widget.

Updated window controls on macOS

Updated window controls on macOS

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.

Removed title bar on Linux

Removed title bar on Linux

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.

Colored project headers

Colored project headers

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.

Main toolbar customization

Main toolbar customization

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.

Text search in Search Everywhere

Search Everywhere is primarily used for searching through files, classes, methods, actions, and settings. With this update, it now includes text search capabilities similar to Find in Files.

Other enhancements

  • CLion and other IntelliJ-based IDEs have introduced initial integration with GitLab in v2023.2, allowing you to work with the Merge Request functionality right from the IDE and streamline your development workflow.
  • On Windows, CLion now defaults to amd64 Visual Studio toolchain architecture on non-ARM machines instead of x86.

What's New in CLion 2023.1

CLion 2023.1 brings a solution for package management, gets your debugging experience to a new level, helps with QML coding, and includes a host of improvements for the new UI, which has been overhauled based on the valuable feedback we’ve received from our users.

Key updates

Debugger update

CLion debugger integration got a major update bringing you powerful debugging abilities that include:

  • The ability to explore the underlying assembly code even when the source code is available (aka disassemble on demand).
  • A reworked Attach to Process... dialog to make finding processes and attaching to them even easier and faster.
  • Actions to suspend or resume individual threads, to help debug multithreaded applications.

Learn more

Integration with vcpkg

vcpkg is a package manager that’s growing in popularity among C++ developers. CLion now integrates with it, assisting with installing and updating vcpkg and its packages and browsing installed and available packages in the dedicated tool window.

CLion helps with the missing dependencies by suggesting quick-fixes when you:

  • add #include for the header file from a package that is not yet installed.
  • use a package in a CMake script that is not yet installed.

Learn more

Clangd-based indexer
Experimental

To speed up the Find Usages action and make it produce more accurate results in C++ code, a brand-new Clangd indexer was introduced in CLion. Enable it in Settings/Preferences | Advanced Settings | Clangd | Use Clangd-based indexer.

Note that the indexer is still in its early stage of development and is considered experimental. Check out the online help for the list of known issues and limitations.

New UI
Beta

The new UI has less visual clutter and shows the starting points for powerful features more concisely. In v2023.1, we’ve fine-tuned the user experience of the new UI by redesigning the Run widget, adding an option to show hidden tabs and an option to split tool windows vertically, bringing a new Compact Mode for smaller screens, and other changes.

Learn more

Debugger enhancements

Disassemble on demand

Disassemble on demand

CLion debugger allows you to step into and debug the disassembled code in a dedicated view. Now even when the source code is available.

In the context menu in the frames view, there is now a new action that opens a regular disassembly view for the selected frame. The view opens side-by-side with the source code and highlights the execution line in both.

Read about known issues and limitations.

Attaching to processes in debug

CLion provides a way to attach the debugger to local processes started outside the IDE. The updated Attach to Process... action’s dialog now makes finding processes and attaching to them even easier and faster.

Display all available processes as a list or a tree in a new table view, check out the name of the user who launched the process, the debuggers available for this process, and the command used to launch the process, and select a debugger for toolchains that support multiple debuggers. Find out more.

Suspend or resume individual threads

Suspend or resume individual threads

When debugging a multithreaded application, step through the selected thread with all other threads suspended. To achieve that, use the Freeze/Unfreeze actions in the context menu in the thread view of the debugger or in the Run | Debugging Actions menu.

  • All 4 actions are available with LLDB.
  • For GDB, only Freeze Other Threads and Unfreeze All Threads work. These actions also are not supported on Windows for GDB.

Memory View

Memory View provided by CLion got a massive update, with many issues fixed and the overall user experience enhanced.

Highlighting the changes in Memory View

Highlighting the changes

CLion now highlights all changed bytes in the memory view during debugging. Also, when scrolling through the memory view, CLion now automatically loads the data.

Memory View settings

Configurable view

The number of columns in the Memory View (i.e., the number of bytes per line) is configurable now. Click on the settings icon in the view to change it.

C++ language support

Adding a new C++20 module

Adding a new C++20 module

CLion 2023.1 adds an action to help you create a new C++ Module Interface Unit in your project.

In the dialog that opens, enter the module name and type (extension), and specify whether you want CLion to add the newly created module to the existing CMake target. CLion will create a new module file using the file template from Settings/Preferences | Editor | File and Code Templates.

More flexible refactorings

More flexible refactorings

The Change Signature and Extract Function refactorings now support making a function const, constexpr, or noexcept.

The Extract Constant refactoring now suggests declaring a new constant with the constexpr and auto specifiers.

Easier Clang-Tidy configuration

Easier Clang-Tidy configuration

CLion 2023.1 comes with an updated Clang-Tidy checks options dialog:

  • All options are now displayed with predefined default values.
  • If you change an option, it is highlighted in blue and moved to the top of the table.
  • Speed search is available: Simply put the table in focus and start typing the name of the check you’re looking for.

Support for QML

QML syntax support

If you are using Qt Modeling Language (QML) in your code, you will now benefit from the QML syntax support in CLion. This includes:

  • A better editing experience with code highlighting and code completion.
  • Instant search for usages.
  • Structure View for easier navigation in QML files.
  • The Quick Documentation popup for information about the symbols under the caret.

Learn more

QML formatter and other settings

QML formatter and other settings

QML syntax support in CLion works for both Qt5 and Qt6. CLion uses qmlformat to format QML code by default.

Qt and QML paths, qmlformat as a formatting tool, and QML language server can be configured in Settings/Preferences | Languages & Frameworks | QML.

Filtering abilities in Profiling and Coverage

Filtering Call Tree results in the profiler

Filtering Call Tree results in the profiler

The Call Tree tab in the profiling results now allows you to collapse any frames you’re not interested in. For example, you can hide library classes or classes from specific frameworks to help yourself focus on the application code.

Learn more

Filtering code coverage results

Filtering code coverage results

You can now filter files in the Coverage view to focus on recently updated files when testing. By default, you’ll see a list of files with uncommitted changes.

Terminal in the output console

Terminal in the output console

CLion now emulates the terminal in the output console. This behavior is enabled by default in Settings/Preferences | Advanced Settings | Run/Debug | Emulate terminal in the output console and helps you work with text-based user interfaces (TUI), for example, curses/ncurses applications.

Learn more.

CMake enhancements

CLion 2023.1 supports CMake presets up to version 5 and bundles CMake v3.25.

CMake color settings

CMake color settings

New color settings have been added for CMake – one for scripts’ keywords and one for CMake arguments’ keywords.

CMake changes notification

CMake changes notification

The CMake reload notification is now floating. It takes less editor space while still being noticeable.

New UI
Beta

Visit this page to learn more about the new UI.

Compact mode

Compact mode

To improve the user experience with CLion’s new UI on smaller screens, we’ve introduced Compact Mode, which provides a more consolidated look and feel of the IDE thanks to scaled-down spacings and elements.

Distraction Free mode

Hidden toolbar in Zen and Distraction Free modes

We’ve refined the IDE’s look and feel when the new UI is enabled. The top toolbar is no longer visible in Zen and Distraction Free modes.

New Dark theme

New Dark theme

CLion 2023.1 features a new Dark theme activated by default when the user enables the new UI.

Run widget

Run widget

The Run widget in the main window header has been redesigned so that its appearance is unobtrusive and easier on the eyes.

Show hidden tabs in the new UI

Show hidden tabs in the new UI

Users of the new UI can now see the full list of open editor tabs. It’s accessible via the Show Hidden Tabs selector located at the right-end of the tabs row.

Split toolwindows

Splitting tool windows

The new UI now offers an option to vertically split the tool window area and conveniently arrange these windows, just like in the old UI.

User Experience

IDE Zoom

Full IDE zoom

You can now zoom into and out of CLion entirely, increasing or decreasing the size of all UI elements simultaneously. Select View | Appearance and adjust the IDE’s scaling. You can also assign custom shortcuts for calling these actions in Settings/Preferences | Keymap | Main Menu | View | Appearance.

Multiple tool window layouts

Multiple tool window layouts

With CLion 2023.1, you can save and manage several tool window layouts and switch between them when needed. With the new Window | Layouts menu, you can save the current layout as a new one, update the already saved layout, or activate a previously saved layout.

Remember size for tool windows

A new layout option allows you to unify the width of the side tool windows or retain the ability to freely adjust their sizes as you customize your layout. The new Remember size for each tool window checkbox is available in Settings/Preferences | Appearance | Appearance & Behavior | Tool Windows.

Learn more.

Actions on save

You can now predefine the behavior of Actions on Save for new projects. For this, go to File | New Projects Setup | Preferences For New Projects | Tools | Actions on Save and select which actions you want to be triggered when saving changes in your future projects.

Editor

Location of pasted content

Location of pasted content

Where would you like to paste a line that was copied or cut without selection? In CLion, there is now a special setting that allows you to control the placement of the pasted content. In Settings/Preferences | Advanced Settings, find the Editor section and select the desired behavior for the Paste action from the drop-down list.

Showing whitespaces

Showing whitespaces

CLion 2023.1 features a new Selection checkbox in Settings/Preferences | Editor | General | Appearance | Show Whitespaces that allows you to configure this setting so that the IDE shows whitespaces as small dots only when you select code.

VCS

VCS status in Structure View

VCS status in Structure View

To make tracking changes to files more convenient, we’ve added color hints to the Structure tool window.

The names of modified objects will now become blue, and the names of the newly added objects will appear in the tool window highlighted in green.

Enhancements for branches

Enhancements for branches

CLion 2023.1 provides auto-completion in the Create New Branch popup. Once you start typing a name for your new branch, the IDE will suggest relevant prefixes based on the names of existing local branches.

In the Branches popup, branches are now grouped and stored in expandable lists for easier navigation.

Improved code review workflow for GitHub

Improved code review workflow for GitHub

We’ve fine-tuned the process of reviewing code inside the IDE by reworking the Pull Request tool window. It now features a dedicated tab for each pull request you open. The tab instantly displays the list of changed files but now provides less information than before, allowing you to better focus on the current task. There is also a dedicated button to easily execute the action that’s considered the most important given the pull request’s current state.

Markdown

Markdown table reformat

Reformat table

A new intention action allows you to correct the formatting of tables in Markdown files. You can access the quick-fix via the Context actions shortcut (Alt+Enter) or by pressing the yellow bulb icon and selecting Reformat table from the list that appears.

Markdown fill paragraph

Fill Paragraph

The Fill Paragraph editor action is now supported for Markdown files, allowing you to break long texts into several lines of even length. To do this, set the caret inside the paragraph you want to edit and call the action from the Edit menu or search for the Fill Paragraph command using Find Action.

Rust plugin update

Rust plugin update

As a part of continuous improving macro support, the IntelliJ Rust plugin shows inlay type hints in function-like and attribute macro calls now. Besides inlay hints, the plugin started highlighting errors inside attribute macro calls.

The new version of the plugin provides a way to exclude some specific items from auto-import. The most annoying cases, like methods from Borrow and BorrowMut traits from stdlib, are already excluded by this mechanism by default.

Starting from this release, the plugin shows content behind any struct reference and pointer during debugging, as well as the content of raw slice pointers.