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, also known as CLion Classic. This version is focused on responsiveness, accuracy, and performance of the IDE.
You can switch to CLion Nova from
in the toolbar or from .Switch to CLion Nova from the toolbar
In the toolbar on the right, click the IDE and Project Settings button ().
Click Switch to Nova Engine:
Click Enable and Restart to restart the IDE.
Switch to CLion Nova from Advanced Settings
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, here are the settings for inline hints in CLion Nova:
And here are the settings for inline hints in CLion Classic:
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
Some refactorings, such as CPP-35867) and (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).