CLion Nova
CLion Nova is a preview of CLion, which uses the ReSharper C++ / Rider C++ language engine instead of the CLion legacy engine. This preview is focused on the responsiveness, accuracy, and performance of the IDE.
Install CLion Nova
Use the dedicated Toolbox App feed:
CLion Nova can be installed in parallel with other CLion (Classic) installations.
On the first launch, CLion Nova will migrate some of your per-project and per-application settings from CLion Classic.
Performance benefits
In terms of performance, the most notable benefits of CLion Nova are the following:
Faster highlighting speeds, especially in the case of incremental code updates.
A more responsive UI.
Faster Find Usages.
Significantly fewer freezes and hangs in refactorings.
Faster test indexing.
Key differences between CLion Nova and CLion Classic
CLion Nova still uses two C++ language engines: a clangd-based one and the one used by ReSharper C++ / Rider. However, unlike CLion Classic, CLion Nova doesn’t use clangd for core IDE features like code completion or highlighting.
Some of the ways the IDE reacts when you type are different.
Some UI elements and settings related to code insight features changed appearance and location. For example:
Some code-related settings have different default values in CLion Nova.
Switching between different language configurations (for example, between the Debug and Release profiles) might require more time for the code insight engine to catch up. There is also no option to switch resolve context per file.
ReSharper C++ is a Windows-only IDE, while Rider is cross-platform. Although the ReSharper C++ / Rider engine in CLion Nova has been tested on all platforms, inconsistencies with non-Windows systems are still possible. Please report such cases if you come across them.
New functions of CLion Nova
Most of the features of CLion Classic work exactly the same in CLion Nova, but there are also some new functions to CLion Nova that aren’t included in CLion Classic’s feature set:
New refactorings, such as Introduce field, Introduce namespace alias, Introduce using enumeration, and Convert to scoped enumeration.
New inspections, quick-fixes, and intentions like redundant qualifier, the replace
auto
with explicit type declaration, and sorting of#include
directives.New code hints like preprocessor directive hints and a Push-to-Hint mode.
Current limitations
Remote work with a thin client (Gateway) is not yet available.
Objective-C language, CUDA (RSCPP-613, CPP-26144), and some vendor-specific compiler extensions aren’t yet supported.
Some intentions and quick-fixes like Simplifiable statement are not supported currently (CPP-35879).
Some less popular refactorings like Move (CPP-35867) and Inline Parameter (CPP-35868) are also missing.