CLion 2019.3.3 Bug-fix Update

A new bug-fix update, CLion 2019.3.3, is now available for download! You can get build 193.6015.37 from our website, via the Toolbox App, or as a snap package (for Ubuntu). A patch update will be available shortly.


Here are the main highlights of the update:

  • Refactorings
    • Fix for the incorrect macro inlining (CPP-18442).
    • A regression in Extract Method has been fixed (CPP-18640).
  • Toolchains
    • Support for the /std:c++latest flag when using Microsoft Visual C++ Toolchain (CPP-16330).
    • The $PROJECT_NAME$ macro is now available (and refers to the CLion’s project name) in path-strings in configuration files for the project. This allows, among other things, the specification of a default CMake build directory outside of the project root (CPP-18172):
  • Editor
    • Raw strings are now recognized as literals in macro calls, thus eliminating false positives in the analysis.
    • Incorrect designated initializer highlighting has been fixed (CPP-18486).
  • Because of the exception failing, the Kotlin/Native plugin was blocking unit tests in CLion from running (CPP-18169). This issue has been resolved and the tests now run as expected.

We’ve also made various small improvements to name hints, concepts and Clangd-based code completion.

The full release notes are available here. If you are interested in learning about what’s coming to CLion in 2020, check out our roadmap. The CLion 2020.1 EAP will start soon – stay tuned!


Your CLion team
The Drive to Develop

Posted in Announcement | Tagged , , | Leave a comment

Using Docker with CLion

One of the common questions we get is why there is no Docker integration in CLion? In fact CLion works very nicely with Docker! There might not (yet) be a specific, “use Docker”, button – but setting it up yourself is actually quite easy and straightforward – even if you’re a Docker newbie!

Read on if you prefer written instructions, or watch this video with the same content:

  1. Why use Docker?
  2. Getting Docker
  3. Creating a Docker container for use with CLion.
  4. Using the Remote Development workflow with Docker
  5. Changing the Docker environment
  6. Good luck getting Dockerized!

Continue reading

Posted in Tips'n'Tricks | Tagged , , | 13 Comments

CLion 2019.3.2 Bug-fix Update

A new bug-fix update for the recently released CLion 2019.3 is now available for download! You can get CLion 2019.3.2 (build 193.5662.56) from our website, via the Toolbox App, or as a snap package (for Ubuntu). A patch update will be available shortly.


In this update, Clangd-based code highlighting was improved:

  • override and final keywords are now correctly highlighted:
  • In C11 code, when integers have suffixes with mixed lower/upper cases, the highlighting no longer fails:
  • std namespace usages from concepts library are now highlighted correctly.

Clangd-based code completion also got a few enhancements:

  • When completing a function with the default arguments, the cursor is placed inside the parentheses, not behind the closing parenthesis.
  • When generating function implementations via code completion, CLion now generates correct code in the proper context (CPP-18384).

Code coverage, which we introduced in v2019.3, has been updated to prevent situations when it runs out of memory on large test suites.

Thank you for your feedback on CLion’s WSL/WSL2 support! Taking it into account, we have made some updates to give you these improvements:

  • Indexing performance is improved thanks to more accurate work with the WSL file system.
  • An issue with detecting an openSUSE-Leap-15-1 distribution is fixed.

The following issues are also fixed:

  • Commands are now formatted correctly in GDB when using Arabic, Hebrew, or Hindi locales making the debugger work correctly.
  • External Tools for Custom Build Targets are now stored in project configs instead of system configs (where they cannot be shared in a VCS).

The full release notes are available here. If you are interested to know what’s coming to CLion in 2020, check out our roadmap.


Your CLion Team
The Drive to Develop

Posted in Announcement | Tagged , , , , | 2 Comments

Our Plan for Next Year and the 2020.1 Roadmap

This year’s third big update – CLion 2019.3 – has landed, along with its first bug-fix update, 2019.3.1. If you haven’t yet updated your CLion, now is a great time to do so.

Before moving forward on to 2020, we’d like to give our most sincere thanks to our Early Access Program users! Without you we wouldn’t be able to catch so many annoying issues affecting the wide variety of C++ environments, and make CLion as good as it can be!

Special thanks

We’d like to present our most active EAP evaluators with a full 1-year subscription to CLion, which they can use to buy a new subscription or extend a current one. Feel free to pass the code to a friend or colleague! So our special thanks go to:

  • Roman Popov
  • Maxim Yanchenko
  • Miha Rozina
  • Roland Illig

You will receive a personal email with details on how to claim your license. (If for some reason you do not get an email from us within a week, ping us here in the comments!)

Roadmap: CLion in 2020

Let’s first look at the main priorities we have for 2020. Actually, they haven’t changed much since 2019. We are still focusing on:

  1. Performance and responsiveness: continue eliminating UI freezes and working on large architectural changes to make global improvements to CLion’s performance.
  2. Clangd: make the engine more stable and eliminate crashes, move as many IDE functions as possible to Clangd, and add new language features on top of the Clangd-based language engine.
  3. Project model: work on native support for Makefiles, consider other build systems such as Bazel, and work towards a project model API in CLion.
  4. Embedded: double the efforts we put into the embedded development support and work on more essential features in this area.

Taking on 2020.1

Here are the main tasks we’ve set for the next release, CLion 2020.1, which should be out around late March.

Please note: The following is only a preliminary plan. We cannot guarantee that all of the features listed below will be included in CLion 2020.1.
  • Clangd-based engine:

    • Improve engine stability, eliminate crashes, investigate memory usage.
    • Fix Clangd code completion issues.
    • Automatically use the .clang-tidy config file in the project directory, if any.
    • Move Data Flow Analysis to Clangd to improve the performance.
  • C++ support:
    • Initial CUDA support.
    • Enhance typing in the multiline macros, and add other performance and responsiveness improvements.
    • Introduce default values for Change Signature refactoring.
  • Project Models:
    • Native Makefiles support.
    • Polish the CMake File API integration (including recompiling a single file).
  • Debugger:
  • Embedded development:
    • IAR and armcc toolchain support (CPP-14192).
  • Various fixes and enhancements:
    • Fix bugs and freezes related to remote toolchains.
    • Automatically add required compilation flags for sanitizers/coverage.

This is what’s going to keep us busy. If you have any new feature requests, please send them to our tracker. We’re listening!

Your CLion Team

The Drive to Develop

Posted in Announcement | Tagged , , | 47 Comments

CLion 2019.3.1 Critical Bug-fix Update

Last week we released CLion 2019.3. Unfortunately, it was affected by several unpleasant issues. We’ve investigated all the reports from our users and promptly addressed the discovered problems.

CLion 2019.3.1 (build 193.5233.144) is now available for download from our website, via the Toolbox App, or via snap (for Ubuntu). A patch update will be available shortly.


This update contains the following fixes:

  • Language engine:
    • A problem with randomly occurring red code and an incorrect suggestion to import user classes from the std namespace turned out to be an issue with the missing include file (CPP-18270 and the related CPP-18246, CPP-18247CPP-18280).
    • Completion of standard library symbols in the global namespace is now working correctly in Clangd (CPP-18249).
    • Various fixes preventing the Clangd-based engine from crashing were introduced.
  • Remote development:
    • A mechanism of synchronizing headers in background was recently enabled by default, and it turned out to cause massive delays on loading CMake projects in many cases (e.g. CPP-18277). We’ve reverted it for now until we can come up with a better solution.

Our team appreciates all the valuable feedback the community provided after the release and sincerely apologizes for any inconvenience caused.

Your CLion Team
The Drive to Develop

Posted in Announcement | Tagged , , | 25 Comments

Recent Updates in IntelliJ Rust

While CLion and all our other JetBrains IDEs were making the transition from version 2019.2 to version 2019.3, the IntelliJ Rust team has been busy making important updates to the plugin. In this post, we would like to give a summary of all the features that have been added over the last few months.

Continue reading

Posted in Announcement | Tagged , , | 6 Comments

CLion 2019.3: A Quality-Targeted Release Focused on Performance and Some Long-Awaited Enhancements

Exciting news! CLion 2019.3, the last major update this year, has just been released!

Improving the IDE performance and fixing major bugs are always a top priority for our team. In this update we have been focusing especially on improving the performance in specific areas, eliminating UI freezes (not all, but many of them have been melted away!), and enhancing the editor and the integrations for our users!

CLion 2019.3 release

To update to this version you can use the Toolbox App, snap package (on Ubuntu), our website, or the patch-update from the latest build of 2019.2.


If you are just looking for a quick overview of the main highlights, take a look at the list below. If you are interested in the specific details, please read on:

You can also get a good overview of this release by checking out this short What’s New video by Phil Nash:

Continue reading

Posted in Announcement | Tagged , , , , , , , , , , | 74 Comments

CLion 2019.3 Release Candidate is out!


Please welcome the Release Candidate for the upcoming CLion 2019.3!

To install CLion 2019.3 RC (build 193.5233.56), download it from the website, update from our Toolbox App, or use a snap package (for Ubuntu). Please note that to use CLion 2019.3 RC, you need to either have an active subscription or start a 30-day evaluation period. No patches are provided for this release candidate, but you can expect a patch from the latest 2019.2.5 update to the 2019.3 release version.


Here are the main bug-fixes and improvements:

  • C++20’s Concepts completion fixes:
    • Include expressions from required function calls into completion list (CPP-17939).
    • Missing completion for member called as a template function’s argument (CPP-17975).
    • Missing completion for member called inside of static_cast<>() (CPP-17976).
    • Missing completion for a nested type used inside of std::is_copy_constructible (CPP-17978).
  • Fixed regressions with Extract parameter (CPP-17970) and Extract Function (CPP-17563).
  • Fixed incorrect highlighting of the alias template with Clangd (CPP-15412).

The full release notes are available here. The list of fixes in the JetBrains Runtime can be found here.

Your CLion Team
The Drive to Develop

Posted in Announcement | Tagged , , | 10 Comments

CLion 2019.3 Hits Beta

CLion 2019.3 goes Beta! To install CLion 2019.3 Beta (build 193.5233.10), download it from the website, update from our Toolbox App, get it through a snap package (if you are using Ubuntu), or use a patch update.


The main highlights for this build are:

  • Completion insert handlers were implemented in Clangd-based language engine, which allows functions/methods to be completed with (), namespaces – with ::, and type aliases – with a space at the end, if they have a built-in underlying type:

Insert handlers

  • Remote mode:

    • Full Remote Mode in CLion requires rsync (for macOS/Linux clients) or tar (for Windows clients) installed on a remote machine. CLion now verifies the tool is installed and provides a warning on the corresponding remote toolchain settings page, which clearly states that “rsync/tar is not installed or not available in PATH on remote host”.
    • You can now set a custom GDB debugger in the Remote or WSL toolchain (CPP-17552).
    • Resync with Remote Hosts is now enabled on project reload by default. This allows CLion to synchronize the header search paths from the remote machine to the local host (to resolve the code correctly in CLion) on every project reload. This operation might be time-consuming, but as it runs in the background, it shouldn’t affect CLion’s performance. If you are still experiencing any performance issues, try disabling the clion.remote.resync.system.cache registry option (Help -> Find Action, type Registry).
  • CMake File API, which makes it possible to use various CMake generators like Ninja in CLion, is now supported not only for v3.15, but for any CMake version higher than 3.15.
  • Code coverage now works with a Ninja generator (CPP-17864).
  • This build also brings several fixes to code completion and a fix for the lengthy UI freeze (CPP-17961).

The full release notes are available here.

Your CLion Team,
The Drive to Develop

Posted in Announcement, Early Access Preview | Tagged , , , , , | 33 Comments

Support for C++20’s Concepts in CLion

Concepts are one of the biggest features coming in C++20, and knowing that, we’ve been thinking about supporting Concepts in CLion for quite a while. Enter Saar Raz with his C++20’s Concepts implementation in Clang! Long story short, we have been collaborating with Saar to merge his branch into our custom Clangd-based language engine in CLion, and started implementing some nice IDE features on top. Sounds ambitious enough, but we have thoroughly enjoyed the experience so far! A very early result of this collaboration was used by Saar in his CppCon 2019 talk on Concepts:

We do recommend watching this talk in full to learn how Concepts can be useful, and whether you should care about them even if you’re not using metaprogramming in your daily work.

Now, we are ready to present the C++20’s Concepts support in CLion, available to all the 2019.3 Early Access Program users! Just grab a build and give it a try.


Continue reading

Posted in Tips'n'Tricks | Tagged , , | 7 Comments