CLion is a cross-platform IDE designed for C and C++ development. CLion 2019.3 adds up to speed based on Clangd provider code completion, eliminates various UI freezes, and introduces many other performance improvements. It enhances integration with CMake, adds Ninja generator support, and provides code coverage and WSL2 support. Debugger support has improved significantly in many ways. Finally, support for C ++ 20 Concepts includes refactoring, navigation, and code completion.

Better IDE performance

This version of CLion is quality-oriented and has made many performance improvements along the way. Key enhancements affect code completion, rename refactoring, optimization of the “build/update symbol” step, and elimination of UI freezes.

Clangd-based code completion

Clangd has now been added to the list of code completion providers in CLion, which helps speed up the time it takes for the first results to show up significantly in many projects.

Renaming refactoring is faster

The renaming refactoring feature in CLion is powerful because it allows you to rename not only code usage but also usage in string literals and comments. If you still just want to rename code usage, it’s faster now because it can require you to make that decision before the actual search. (want to use this feature, please close the Settings | editor routine | | | reconstruction to enable on-site model.)

Ninja and other generators in CMake

Support for the new CMake File API enables CLion 2019.3 to enable various CMake generators (CMake 3.15 or later is required). Previously only makefiles were supported, now users can choose from Ninja, Xcode, Visual Studio, etc.

This works on all platforms, in remote mode and with WSL.

The default CMake

To simplify the configuration process for new CLion projects, you can now configure one or more default CMake profiles that will be used for all new projects. Using the file | set | other new project Settings…

Other CMake support improvements include:

  • Now you can reload the CMake valid configuration even if something else fails.
  • CMake 3.15 comes bundled with CLion 2019.3.
  • If your compiler does not support the -fpCH-preprocess flag, your project will still load successfully into CLion 2019.3.

The debugger

Remote GDB server

If you want to debug an executable on a remote computer from CLion running locally, you can now use the “Remote GDB Server” configuration. CLion will upload the executable and start the program under GDBServer, so there is no need to do this manually.

LLDB 9 and better fancy printer

In CLion 2019.3, the bundled LLDB on macOS and Linux has been updated to V9.0. In addition to this, there was a major clean up of the bundled LLDB beautiful printer, addressing a number of related issues.

Read.gdbinit /.lldbinit from the project root directory

If you want to customize the GDB/LLDB debugger behavior for a specific project, you can now do it in CLion because it supports reading Settings files from the project root.

Note that to enable this behavior, it must be explicitly allowed in the main file.

C plus 20

One of the biggest features in C ++ 20 is definitely the concept. Working with Clang’s Concepts supporting authors, we brought Concepts to CLion 2019.3. This support covers not only code parsing and highlighting (which is done by the Clangd-based language engine), but also:

  • Check for unused concepts.
  • Code complete, including by STD :: is_base_of
  • Rename refactoring.
  • Go to the definition and look for usage.

The code analysis

The virtual function called from the constructor/destructor

To prevent virtual functions from accessing resources that have not been initialized or destroyed, CLion performs a new check to detect virtual functions called from constructors or destructors.

Spell checker

Spell checkers are useful for keeping code accurate and readable. CLion has been using it for C/C ++ code for a long time. In V2019.3, we have enabled it in CMake and Doxygen annotations.

Code coverage

If you’ve ever asked “Was this statement executed during the configuration run? This question means that you are looking for statements that measure the scope of your code. CLion 2019.3 benefits from integration with llVM-COV/GCOV tools.

You can use it for unit test runs or general configuration runs. The results can be found in the Coverage tool window or through the color indication in the left binder line of the editor.

Edit goes to the title/source action

Added new action to switch between header/source files. For many C/C ++ cases, it is more accurate and faster than switching to the relevant symbol.

If multiple navigation options are identified within 500 milliseconds, CLion will display an interactive pop-up window with new items added and you can choose where to navigate to.

There is also a built-in mechanism to remap the “Go to related symbol” shortcut to this new operation if needed.

Microsoft format and naming rules

In CLion, you can configure a set of formatting options and naming convention rules. Alternatively, you can inherit these Settings from a predefined style. In CLion 2019.3, we added Microsoft’s predefined formats and naming styles to the list.

WSL2

The Windows subsystem for Linux provides a convenient way to develop on the Windows for Linux target platform. CLion supports the WSL environment natively and now supports the WSL version

This 2. The configuration process in CLion is exactly the same for WSL V1 and WSL V2!

Rust plugin update

One of the biggest updates to IntelliJ Rust is the initial support for CFG properties. Blocks that are conditionally disabled are now grayed out and excluded from parsing and code analysis. The CFG options supported are Unix, Windows and target_OS.

The widely used quick fix (automatic import for unparsed symbols) now runs automatically when you invoke the implementation member, specify the type explicitly, add the remaining pattern, and other code generation operations.

Other changes include code coverage for Rust code, which has become part of some versions of the plug-in, convenient interactive inlay for type hints, and include support.

Other changes

1, the VCS support: redo the “clone” dialog (” VCS | get “from version control). You can now log in from the dialog box, or if you are already logged in, the IDE will immediately preview a list of all the repositories grouped by account or organization.

2. Some user interface updates:

  • Added to the scroll bar is more visible new option – “Settings” | “Settings”. Appearance and behavior | | compared to use the scroll bar.
  • Many UI issues have been addressed in the updated JetBrains runtime.