JetBrains Introduces CLion Nova, a New C/C++ IDE Development Tool with a Free Preview Version

Thanks to Gamingdeputy netizens Mallee,Lumia Lead delivery!

Gamingdeputy reported on November 13 that JetBrains launched a new C language and C++ development IDE—— CLion Novadeveloped using the ReSharper C++/Rider C++ language engine instead of the original CLion “legacy” engine.

CLion Nova preview now available viaGet the official Toolbox app. Sometime in 2024, based on feedback collected, CLion Nova will be merged into CLion.Until then, the preview version will be free to useand can be installed in parallel with the original CLion. Gamingdeputy friends can download and experience it.

Advertisement

According to reports, JetBrains’ first C++ engine is designed for AppCode (an IDE for iOS and macOS developers). It is part of the IntelliJ platform and was originally written in Java and later also in Kotlin. The engine’s approach and architecture serve well with many languages ​​in IntelliJ-based IDEs; however, this design proved not to be the best fit for the C++ language.

In order to adapt to the development of C++ faster and separate the engine and IDE processes,Later, a clangd-based engine was added to CLion. Built on a custom branch of clangd, the engine detects any warnings and errors, displays them in the editor and suggests quick fixes, as well as performs highlighting, completion and certain navigation actions. It is also used for data flow analysis and MISRA inspection, etc. Meanwhile, CLion’s “legacy” engine takes care of other code inspection functions.

clangd has a lot of advantages, but when it comes to project-wide refactoring and manipulation, it’s not very helpful.Another alternative developed by JetBrains for C++ is ReSharper C++ and the language engine used in Rider (for C++ game development). There is also a communication protocol that enables IntelliJ-based IDEs such as Rider to communicate with a separate backend process that acts as a language engine. Officials have now adapted this protocol and original engine to CLion.

Advertisement

In this new experimental solution, the official focus is on the responsiveness, accuracy and performance of the IDE, with two main goals:

  • Addresses long-standing performance and quality issues in CLion caused by using an “older” engine.

  • Unify the user experience across all C++ tools (i.e. CLion, Rider and ReSharper C++).

Therefore, the official named the new experimental preview version CLion Nova, and the current version of CLion is CLion Classic.In the future, the official plan is to merge CLion Nova into CLion Classic, and no new products are expected to be launched..

CLion Nova still uses two C++ language engines: one is based on clangd, and the other is the engine used by ReSharper C++/Rider.

Most features of CLion Classic are expected to work exactly the same in CLion Nova. The most obvious advantages of CLion Nova in terms of performance are:

  • Faster highlighting, especially with incremental code updates

  • More responsive user interface

  • Find usage faster

  • Significant reduction in freezes and hangs in refactoring

  • Faster test indexing

This unification also brings some new features to CLion Nova that are not included in the CLion Classic feature set:

  • New refactorings such as the introduction of fields, the introduction of namespace aliases, the introduction of using enums, and the conversion to scoped enums.

  • New checks, quick fixes, and intents such as redundant qualifiers, replacement of auto with explicit type declarations, and ordering of #include directives.

  • New code hints, such as preprocessing directive hints and Push-to-Hint mode.

Unlike CLion Classic, CLion Nova does not use clangd for core IDE functionality such as code completion or highlighting. However, JetBrains’ clangd fork still runs with the new engine to perform various tasks (ClangFormat, Clang-Tidy, MISRA checks, data flow analysis, etc.).

When CLion Classic users start using CLion Nova, there will be some new experience changes:

  • Some of the ways the IDE reacts when the user enters input are different.

  • Some UI elements and settings related to the code inspection feature may appear to be in unfamiliar locations.

  • Some code-related settings may have different default values ​​in CLion Nova. When first launched, CLion Nova will migrate some, but not all, per-project and per-application settings from CLion Classic.

  • Switching between different language configurations (i.e. debug/release) may require more time for the code inspection engine to catch up. There is also no option to switch the parsing context per file.

  • ReSharper C++ is only available for Windows, while Rider is cross-platform. Nonetheless, the ReSharper C++/Rider engine may not support non-Windows environments as seamlessly as Windows environments.

Advertisement