CLion 2023.1 EAP2: QML Syntax Support, Better Debug for Multithreaded Apps
CLion 2023.1 Early Access Program has recently started and features vcpkg integration, an updated Attach to Process dialog, a new action for adding C++20 modules, and many other enhancements.
Today, we’re excited to share that a new CLion 2023.1 EAP build is available.
Build 231.5920.6 is available from our website, via the Toolbox App, or as a snap package (if you are using Ubuntu). Update via patch if you are using the previous EAP build.
Support for QML syntax
For some time already, CLion has employed special treatment for Qt projects, including templates for Qt UI classes and Qt-specific code insight. We have now also added QML syntax support to enhance this even more.
CLion now provides highlighting and code completion for QML types or properties in .qml
files. Let’s use this GitHub project as an example:
You can find usages of the QML symbols in CLion. The usages and other pieces of information are also available as code vision hints directly in the editor:
Additionally, you can use the Structure View for easier navigation and check the Quick Documentation popup to get information about the symbols in the QML code:
In Settings/Preferences | Languages & Frameworks | QML, you can enable the QML language servers:
Then, if you have qmlls
components installed, you get the following extras for the QML files included in your project:
- Various QML-specific code inspections.
- Language-server-based code completion for QML symbols, instead of those provided by CLion itself, can now be enabled.
QML syntax support in CLion works for both Qt5 and Qt6. In some cases, you will need to set a custom QML path in Settings/Preferences | Languages & Frameworks | QML – for example, when installing Qt via the package manager on Linux.
As this is a work in progress, there are still a few known issues we plan to address. These include:
- Correctly resolving the standard function and method in QML (CPP-31883). Many of them are now highlighted as Unresolved in CLion.
- Finalizing the ongoing work on qmlformat to format QML code (CPP-31539).
- Improving the Structure View for QML files (CPP-31886).
- Adding QML’s own color scheme and code style settings (CPP-30547).
Suspend or resume individual threads while debugging
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!
There are 4 new actions available in the context menu in the thread view of the debugger or via the Run | Debugging Actions menu:
- Freeze <thread name> and Unfreeze <thread name> – freezes and unfreezes the currently selected thread.
- Freeze Other Threads – freezes all other threads except the currently selected one and unfreezes the currently selected thread if it was frozen before.
- Unfreeze All Threads – resumes execution in all threads.
All 4 actions are available with LLDB. For GDB however, only Freeze Other Threads and Unfreeze All Threads are working. Furthermore, for GDB, these actions are not supported on Windows and are therefore hidden.
CMake color settings
New color settings have been added for CMake – one for scripts’ keywords and one for CMake arguments’ keywords:
Other enhancements
There are many other fixes and improvements in this build, including:
- To speed up a build on a multicore machine via CMake, CLion now passes
-j max(cpucount * 0.8, cpucount - 2)
to the build command (CPP-31838). This works for some CMake generators like Ninja, but not for Visual Studio. - We finally took all native tools that are built into CLion and built them for Linux ARM64 (CPP-31030). This means CLion 2023.1 EAP is now available for that platform.
- UX enhancements encompassing the entire IntelliJ Platform (read the details).
- Various improvements to Markdown support (read the details).
- Improved integration with VCS (read the details).
The full release notes are available here.
Download the latest EAP build to try out the new features and enhancements, and please share your feedback with us. EAP builds are free to use!
Your CLion team
JetBrains
The Drive to Develop