CLion 2019.3

Released: Nov 28, 2019

Updates in 2019.3

Funktionen

  • Better IDE Performance - This release of CLion is quality-targeted with lots of performance improvements made throughout. The key enhancements affect code completion, the Rename refactoring, optimizations for the Building/Updating symbols step, and the elimination of UI freezes. Learn more.
  • Clangd-based code completion - Clangd has been added to the list of code completion providers in CLion, which helps speed up the time for the first results to appear on many projects significantly.
  • Quicker Rename refactoring - The Rename refactoring in CLion is really powerful as it can rename not only code usages but also usages in string literals and comments. If you still want to rename only code usages, it’s now much faster as it can ask you to make this decision before the actual search.
  • Ninja and other generators in CMake - Support for the new CMake File API lets CLion 2019.3 enables various CMake generators (requires CMake 3.15 or higher). Previously, only Makefiles were supported, now users can select Ninja, Xcode, Visual Studio, etc. This works for all platforms, in remote mode, and with WSL.
  • CMake defaults - To simplify the configuration process for your new CLion projects, you can now configure one or more default CMake Profiles, which will be used for all your new projects. Other CMake support improvements include:
    • It’s now possible to reload CMake valid configurations even if some others are failing.
    • CMake 3.15 is bundled in CLion 2019.3.
    • If your compiler doesn’t support the -fpch-preprocess flag, your project will still be successfully loaded in CLion 2019.3. Check out the details in this blog post.
  • Remote GDB Server - If you want to debug an executable on a remote machine from a locally running CLion, you can now use the Remote GDB Server configuration. CLion will upload the executable and launch your program under gdbserver, so there’s no need to do it manually anymore.
  • LLDB 9 and better pretty printers - In CLion 2019.3, the bundled LLDB on macOS and Linux was updated to v9.0. Besides this, a major clean-up was performed in the bundled LLDB pretty printers, fixing a whole set of related issues. See how libc++ and libstdcxx are now handled on macOS and Linux.
  • Read .gdbinit/.lldbinit from the project root - If you want to customize the GDB/LLDB debugger behavior on a particular project, you can now do so in CLion, as it supports reading the settings file from the project root directory. Note that to enable this behavior, you have to explicitly allow it in your home file. See how to do this for LLDB and GDB.
  • C++20’s Concepts - One of the biggest features coming in C++20 is Concepts. By collaborating with the author of Concepts support in Clang, this release b Concepts to CLion 2019.3. The support covers not only code parsing and highlighting (which is done by the Clangd-based language engine), but also comes with:
    • The Unused Concept inspection.
    • Code completion including completion for types constrained by std::is_base_of<MyBase, T> and std::is_same<Other, T>.
    • The Rename refactoring.
    • Go to Definition and Find Usages.
  • Virtual functions called from constructors / destructors - To prevent situations where virtual functions access resources that are not yet initialized or have already been destroyed, CLion gets a new inspection which detects virtual functions called from constructors or destructors.
  • Spell Checker - The Spell Checker is useful for keeping the code accurate and readable. CLion has had it for C/C++ code for a long time. In v2019.3 enables it in CMake and Doxygen comments.
  • Code Coverage - If you’ve ever asked the question, “Was this statement executed during the configuration run?”, that means you are looking for statements coverage measuring for your code. CLion 2019.3 has it thanks to the integration with llvm-cov/gcov tools. You can get it for unit tests run or a regular configuration run. The results are available in the Coverage tool window or via a color indication in the editor’s left gutter.
  • Go to Header/Source action - A new action to switch between header/source files was added. It’s more accurate and quicker for many C/C++ cases than Go to Related Symbol. If multiple options to navigate to are identified within 500 ms, CLion shows an interactive popup where new items are added and you can select where you want to navigate to. There is also a built-in mechanism to remap the shortcut from Go to Related Symbol to this new action, should you want to.
  • Microsoft formatting and naming rules - In CLion, you can configure a set of formatting options and naming convention rules. Or, alternatively, you can inherit these settings from one of the predefined styles. CLion 2019.3 adds Microsoft’s predefined formatting and naming style to the list.
  • WSL2 - Windows Subsystem for Linux provides a convenient way to develop on Windows for Linux target platform. CLion natively supports the WSL environment and now comes with support for WSL version 2. The configuration process in CLion is completely the same for WSL v1 and WSL v2.
  • Rust plugin update - One of the biggest updates for IntelliJ Rust is the initial support of cfg attributes. Now, the conditionally disabled blocks are grayed-out and excluded from resolve and code analysis. Among the supported cfg options are unix, windows, and target_os. The widely used quick-fix, Auto-import for unresolved symbols, now works automatically when you call Implement members, Specify type explicitly, Add remaining patterns, and other code generation actions. Other changes include Code Coverage for your Rust code, which has been a part of the plugin for a few releases already, handy interactive inlays for type hints, and include! macro support.
  • VCS support: the Clone dialog (VCS | Get from Version control) was reworked. Now you can log in from the dialog, or if you’re already logged in, the IDE will instantly preview the lists of all repositories grouped by accounts or organizations.
  • A new option to make the scrollbars more visible was added.