What Would Make CLion a Better C and C++ IDE? The CLion 2023.3 Roadmap
CLion 2023.2 has just been released with the following major enhancements:
- The Beta version of AI Assistant is now available as a plugin with limited access.
- Streamlined integration with PlatformIO, an open-source platform for embedded developers.
- Enhanced integration for vcpkg, one of the most widely adopted package managers in C++.
- Major debugger updates, including attach to remote and WSL processes and register value views.
Check out the key updates on our website and give the new version a try.
It’s now time to move forward and start preparing for the next major release. We’d like to share our plans, as well as the ideas and areas we’ll be working on over the next few months.
The following is a preliminary plan and not a promise or commitment. Tasks might be changed or rescheduled for various reasons. We can’t guarantee that all of the issues listed below will be addressed in CLion 2023.3.
There is ongoing work on the IntelliJ platform to polish the new UI and eliminate UI freezes. CLion will benefit from both of these improvements, even though the changes apply to all IntelliJ-based IDEs and are not CLion-specific. Regarding CLion-specific improvements, here is our roadmap for 2023.3 and beyond:
- 💪 Performance and quality
- 🚀 LLM-based improvements
- 🏘️ Project models: Meson and Bazel
- 🛠️ Inspect assembly without a debug session
- 🤖 Embedded development: DeviceTree support and PlatformIO enhancements
Performance and overall quality of the IDE
For over a year, we’ve been working on an internal project to phase out CLion’s "legacy" Java- and Kotlin-based C++ language engine. This C++ language engine coexists with our newer code engine, which is based on Clangd. Clangd has many advantages, but it isn’t very helpful when it comes to project-wide refactorings and other actions that affect the whole project. For this reason, we also have another engine in the pipeline! We’re working with a closed group of private previewers to validate our experiments in real-world projects. We hope to open this early preview to the general public in this cycle – just as soon as we ensure it meets expectations in terms of quality, performance, and UX. In the new and experimental solution, we’re focused on the responsiveness, accuracy, and performance of the IDE. Stay tuned!
While you wait, we recommend checking out our performance tuning tips for the vanilla CLion. Also, try an experimental Clangd-based indexer for Find Usages – it has been proven to help many of our users already.
Data flow analysis (DFA) tracks the flow of data in your code and detects potential issues based on that analysis. We’re currently working to make it more accurate and also incremental. This new approach will enable you to avoid analyzing the same function multiple times, noticeably overcoming time and memory consumption on larger projects. Initial performance measurements look optimistic, so we’re targeting the 2023.3 release for this change.
AI Assistant is a major new feature in the 2023.2 version of JetBrains IDEs, offering integration of large language models into the IDE development workflow. See what it brings to CLion for C and C++ developers.
AI-based functionality is available via a separate plugin with limited access and is currently still in the Beta stage. One of the primary reasons for a plugin approach was to enable us to release new AI-powered features outside of our regular IDE release cycle. That means you can expect more AI-powered functionality even before the arrival of the 2023.3 release via regular plugin updates within CLion 2023.2. If you are interested in the recent improvements, check out this blog post.
Project models: Meson and Bazel
According to the latest Developer Ecosystem survey, 57% of C++ developers used CMake in 2022. However, there are other project models and build systems that are also popular in the C++ ecosystem, including Meson and Bazel.
The request for Meson received a large number of votes and comments in our issue tracker. This year, we took a look at the Meson API for IDE developers and implemented some prototypes based on it. We aim to have the initial implementation ready in CLion 2023.3.
As for Bazel, we listened to feedback from our users who are migrating their projects to Bazel and using Google’s Bazel plugin for CLion. As a consequence, we’re now contributing several gradual quality improvements to the plugin. If you’re interested in using Bazel in CLion or your project plans to migrate to Bazel in coming months, let us know in the comments.
Another direction for improvement is to provide the ability to “just” open some folders with C/C++ sources and ensure CLion works reasonably well in such a setup. While a visible and clear path to a “proper” project model is suggested by the IDE, users should still be able to perform basic navigation and code editing tasks. This idea is highly experimental at present, and we can’t promise a public release in 2023.3.
Inspect assembly without a debug session
When debugging C or C++ code in CLion, you can explore the underlying assembly code. Now, we would like to allow users to inspect the assembly without a debug session. This is especially important for bare-metal embedded development, or for high-performance applications. The idea is similar to Compiler Explorer (Thanks, Matt!) and the Compiler Explorer plugin, however this capability will be integrated natively into developers’ workflows in CLion.
Embedded development: DeviceTree support and PlatformIO enhancements
The DeviceTree (.dts, .dtsi) format is used to describe hardware components. In CLion 2023.3, we plan to provide coding assistance support for it. This will include:
- Syntax highlighting
- Code formatting
- Code inspections
- Typing assist that inserts matching braces, quotation marks, and missing semicolons
We might also consider code navigation and code completion in DeviceTree files.
PlatformIO integration was overhauled in CLion 2023.2. We’ve started receiving feedback from our users and would like to address all major requests and important suggestions. Share them with us in the issue tracker or in the comments.
To wrap up
That’s everything for now! Are you excited about the upcoming CLion 2023.3? The free Early Access Program will start in approximately a month. If you find any issue with the current v2023.2, make sure to report it to us, as we’re still working on v2023.2 and plan to have several 2023.2.x bug-fix updates in the coming months.
Your CLion team
The Drive to Develop
Subscribe to Blog updates
CLion Nova – Final Update
CLion Nova is a free preview version of CLion equipped with the ReSharper C++/Rider C++ language engine. We started it as a stand-alone preview in November 2023, and since then we’ve received tons of positive and inspiring feedback. Based on that feedback, we’ve added a setting to the recent CLion C…
CLion 2024.1 EAP 4: Switch to CLion Nova in CLion Classic
The CLion 2024.1 EAP 4 build (241.13688.39) is out! It is available from our website, via the Toolbox App, or as a snap package if you’re using Ubuntu. With this build, we’re making CLion Nova available to all CLion Classic users. Switch to it from inside the IDE via the settings menu and try it …
CLion 2024.1 EAP 3: Assembly View Enhancements
Today, the CLion 2024.1 EAP 3 build (241.12662.59) is available from our website, via the Toolbox App, or as a snap package if you’re using Ubuntu. Here are the main improvements: Assembly view improvements: The Assembly view for ARM targets is now shown correctly (CPP-36901). Assembly vi…
CLion 2024.1 EAP 2: Improved Terminal and Other UX Enhancements
Some time ago, we shared our plans and directions. Just a couple of weeks ago, we kicked off our CLion 2024.1 EAP with CMake coding assistance, code analysis in device tree files, and forked processes debugging. Today, the CLion 2024.1 EAP 2 build (241.11761.23) is available from our website, via…