CLion 2023.1 Is Out! With Vcpkg, Disassemble on Demand, and Updates to New UI
CLion 2023.1 takes your C++ toolset to the next level! The new version brings a solution for package management, empowers your debugging experience, helps with QML coding, and includes a host of improvements for the new UI.
CLion 2023.1 is available in the Toolbox App, as a snap package (on Ubuntu), from our website, or via a patch update from version 2022.3.
Read on for details about the key improvements in this version:
- Debugger update: disassemble on demand, improved Attach to Process… dialog, actions to help debug multithreaded applications, updated memory view.
- Support for Qt Modeling Language (QML).
- Integration with vcpkg.
- Terminal emulation in the output console.
- Better C++ support.
- Improvements to CMake integration.
- Enhanced user experience and new UI.
- VCS updates.
- Other changes.
Debugger update
The new release makes your debugging powers even stronger! The CLion debugger allows you to step into and debug the disassembled code in a dedicated view, 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:
Once the disassembly view has been opened, it stays synchronized with the current frame selected in the frames view, and switching frames scrolls to the execution point in both the editor and the disassembly view.
A few important issues to mention:
- Instruction-level stepping is not yet implemented for LLDB on Windows.
- CLion does not yet mirror breakpoints between the source file and the disassembly view.
- We want to improve the discoverability of the disassemble action.
Check out our webhelp for more information.
CLion 2023.1 provides a better way to attach the debugger to local processes started outside the IDE. In v2023.1, we’ve completely reworked the Attach to Process… dialog to make finding processes and attaching to them even easier and faster – the dialog features a new table view used to search for processes. The view now shows the name of the user who launched the process, the debuggers available for this process, and the command used to launch the process. This functionality works for local and WSL processes.
If you’re developing a multithreaded application, there is the possibility that during the debug you would like to step through the selected thread with all other threads suspended. You can now do that in CLion! The new Freeze/Unfreeze actions are available in the context menu in the thread view of the debugger or in the Run | Debugging Actions menu:
Memory View provided by CLion got a massive update, with many issues fixed and the overall user experience enhanced. CLion now highlights all changed bytes during debugging, and, when scrolling through the memory view, the IDE now automatically loads the data. Finally, the number of columns in the Memory View (i.e., the number of bytes per line) is configurable now:
Support for QML
For some time already, CLion has given special treatment to for Qt projects, including templates for Qt UI classes and Qt-specific code insight. Now, as a further enhancement, there is also QML syntax support. 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.
Read our webhelp for more information.
Integration with vcpkg
Managing dependencies and using external libraries in the code bases can be painful. CLion now helps by integrating with vcpkg, a package manager growing in popularity among C++ developers. The IDE assists with installing and updating vcpkg and its packages and browsing installed and available packages in the dedicated View | Tool Windows | Vcpkg tool window.
CLion will ask you to specify the name and URL of your vcpkg repository and the installation directory (or rely on the default value suggested). When provided, the repository will be cloned. To make it work with your CMake project, vcpkg provides a CMake toolchain file, which CLion will link to the CMake profiles you selected in the dialog when adding a package manager.
After running a few UX sessions with the early previewers, we built a roadmap to enhance the vcpkg integration even more in the upcoming CLion versions. You can learn about the current implementation and abilities in our webhelp.
Terminal emulation
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.
Better C++ support
If you already utilize C++20 modules in your codebase or are considering adding them to your current project, CLion 2023.1 helps you create a new C++ Module Interface Unit:
CLion creates a new module file using the file template from Settings/Preferences | Editor | File and Code Templates.
To help you adopt more modern C++ in your codebase, 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.
The Clang-Tidy checks options dialog was updated in this release. You can now see all predefined values for all the options, and updated values are highlighted in blue and moved to the top of the table. To search easily throughout the table, use the speed search – put the table in focus and start typing the name of the check you’re looking for.
To speed up the Find Usages action and make it produce more accurate results in C++ code, a brand-new experimental Clangd indexer was introduced in CLion. You can enable it in Settings/Preferences | Advanced Settings | Clangd | Use Clangd-based indexer. When enabled, CLion enables looking for constructors which can be used for implicit conversion and for implicit conversion operators. Indexing takes some time, but when ready, searches are instant, no matter how many usages of a symbol there are in the project. The experimental engine only works for Find Usages now and is not applied to any other actions.
Improvements to CMake integration
CMake is the most used project model among C and C++ developers. That’s why the CLion team contributes to its integration with every release. In 2023.1, the following improvements were added:
- CLion v2023.1 bundles CMake v3.25.
- CLion now supports CMake presets up to version 5. This covers, among other changes, presets with the
include
statement. - New color settings have been added for CMake – one for scripts’ keywords and one for CMake arguments’ keywords.
- The CMake reload notification is now floating. It takes less editor space while still being noticeable.
Enhanced user experience and new UI
CLion and other IntelliJ-based IDEs by JetBrains have received a new UI as of v2022.3. You can switch to it in Settings/Preferences | Appearance & Behavior | New UI. In v2023.1, it’s still in the Beta stage, as we’re continuing to improve and polish it. Find the following changes in this release:
- 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.
- Similarly, to improve the look and feel in specific cases, the top toolbar is no longer visible in Zen and Distraction Free modes.
- CLion 2023.1 features a new Dark theme activated by default when the user enables the new UI.
- The Run widget was redesigned based on the feedback we received from our users:
- 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 right at the end of the tabs row.
- The new UI now offers an option to vertically split the tool window area and conveniently arrange these windows:
It’s also worth mentioning a few new options that improve user experience. The full IDE zoom lets you increase or decrease the size of all UI elements simultaneously.
And with the new Window | Layouts menu, you can save the current tool window layout as a new one, update the already saved layout, or activate a previously saved layout.
VCS updates
In version control systems integration, we reworked the Pull Request tool window, added color hints to the Structure tool window to reflect the changes to files, provided auto-completion in the Create New Branch popup, and a grouping in the Branches popup.
Other changes
- The Call Tree tab in the profiling results now allows you to collapse any frames you’re not interested in.
- You can now filter files in the Coverage view to focus on recently updated files when testing.
- A new Reformat table intention has been added to correct the formatting of tables in Markdown files.
- Multiple enhancements are added to the IntelliJ Rust plugin, including inlay type hints in function-like and attribute macro calls, highlighting errors inside attribute macro calls, a way to exclude some specific items from auto-import, and more.
That’s all for now! We encourage you to give CLion 2023.1 a try. If you have an active subscription, you can update today. Otherwise, feel free to start your free 30-day trial to check out all of the new features and improvements!
Your CLion team
JetBrains
The Drive to Develop