CLion 2024.1 Help

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

  1. Go to Settings | Advanced Settings.

  2. Set the Use the ReSharper C++ language engine (CLion Nova) checkbox:

    Switch to CLion Nova
  3. 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:

    Type conversion hints settings in CLion Nova
  • 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

  • Remote work with a thin client (Gateway) (CPP-36010) and collaborative development via Code With Me (CPP-36095) are not yet available.

  • 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).

  • Call hierarchies (CPP -22675), as well as some less popular refactorings, such as Move (CPP-35867) and Inline Parameter (CPP -35868), are also missing.

Last modified: 29 March 2024