CLion Nova
CLion Nova is an improved version of CLion, which uses the ReSharper C++ / Rider C++ language engine instead of the CLion legacy engine. This version is focused on responsiveness, accuracy, and performance of the IDE.
Switch to CLion Nova
Go to
.Set the Use the ReSharper C++ language engine (CLion Nova) checkbox:
Click Apply to save the settings and restart the IDE.
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.
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.
New live templates and code style settings for C++.
Current limitations
Call hierarchies (CPP -22675), as well as some less popular refactorings, such as Move (CPP-35867) and Inline Parameter (CPP -35868), are missing.
Objective-C++ is not supported (CPP-37281).
Some intentions and quick-fixes like Simplifiable statement are not supported currently (CPP-35879).