CLion 2019.3.4 Bug-fix Update

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

DOWNLOAD CLION

Here are the main highlights of the update:

  • CMake CUDA targets are now launched from CLion using the correct binary (CPP-10292). If you are interested in more sophisticated CUDA support, please check out the 2020.1 EAP build.
  • Google Test support:
    • False errors on Google Test v1.8.1 have been fixed (an error message was produced for INSTANTIATE_TEST_SUITE_P, see CPP-16301).
    • False positive inspection warnings for new MOCK_METHOD macro from Google Test v1.10.0 (CPP-18182).
  • Formatter improvements:
    • Reformat Code no longer breaks indentation in an enum when using a comment line (CPP-1836).
  • Several Clangd crashes were addressed.

The full release notes are available here.

The CLion 2020.1 EAP is now up and running. The first builds bring CUDA enhancements, Clang-cl support, the ability to debug customer targets, Data Flow Analysis rewritten on Clang, and much more. For more details please see this page.

Your CLion team
JetBrains
The Drive to Develop

Posted in Announcement | Tagged , , , | 4 Comments

CLion 2020.1 EAP: CUDA Support & Clang on Windows

CLion started the 2020.1 EAP program last week with many improvements to Clang-based tooling, the debugger, and the overall editor. This week a new build is available, bringing more sophisticated CUDA support!

You can download the build (201.4865.10) from our website, via the Toolbox App, or as a snap package (for Ubuntu) and install it side by side with the stable release build.

DOWNLOAD CLION 2020.1 EAP

Continue reading

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

CLion starts 2020.1 Early Access Program: improvements to Clang-based tools and debugger, new font and editor theme, and more

Hi,

We’ve got a lot planned for 2020 and 2020.1 and now it’s time to start our regular Early Access Program!

EAP builds are free and give you a preview of the upcoming changes and enhancements. They might not be stable and might contain functionality that doesn’t make it to the final release. And if you decide to try these builds, please, inform us of any issues you run into or any inconveniences you experience as early as possible, so we have time to investigate and can try to address them before the release.

CLion EAP launched

You can download the first EAP build (201.4515.29) from our site, via the Toolbox App, or as a snap package (for Ubuntu) and install it side by side with the stable release build.

DOWNLOAD CLION 2020.1 EAP

Continue reading

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

Using nRF52 with CLion

Are you interested in embedded development? In this guest blog post Nick Brook, founder at NRB Tech, shows how to use CLion for nRF52.

Nick Brook
IoT consultant and founder at NRB Tech.

Nick founded NRB Tech in 2018 to build useful and sustainable IoT products through a combination of in-depth hardware, software and user experience expertise.

Nordic’s nRF52 series of Bluetooth Low Energy System-on-Chips (SoCs) are versatile and widely used in IoT products, supporting many different applications. Nordic provides a very complete SDK which contains many example applications and good documentation, making it easy to get started and build IoT devices. Some of the example projects available in the SDK include:

  • Beacons
  • Blood pressure monitoring
  • Cycling speed and cadence
  • Glucose monitoring
  • Heart rate
  • HID Keyboard + Mouse
  • Running speed and cadence
  • Many other technical example projects

These provide great starting points to develop a Bluetooth Low Energy device of your own.

At NRB Tech we use the Nordic nRF52 series SoCs to build products such as AirTurn’s range of foot pedals, which act as a keyboard, mouse, MIDI device, or use a proprietary protocol.
Nordic board
Bluetooth products are often a combination of a low power device and an App. It’s useful to be able to share code across those platforms, so that you can write and test the code just once for both the firmware and the App.

CLion is a great IDE for C and embedded development, and CMake provides many advantages such as the ability to create libraries that can be shared across platforms and to integrate those libraries into an application easily. However, the nRF52 SDK does not support development with CMake/CLion out of the box, but the Nordic nRF5 Mesh SDK does use CMake – although it does not support external projects.

So we built nRF5-cmake-scripts, which uses the mesh SDK scripts and provides CMake functions to add your own targets. It also makes adding the DFU bootloader very simple and provides many macros for adding the nRF5 SDK libraries to your project as you need them. Let’s set up an example project, using CLion as our IDE.
Full setup

  1. Setting up.
  2. Creating a nRF52 project.
  3. Debugging in CLion.

Continue reading

Posted in Tips'n'Tricks | Tagged , , | Leave a comment

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.

DOWNLOAD CLION

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):
      default_dir
  • 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!

DOWNLOAD CLION

Your CLion team
JetBrains
The Drive to Develop

Posted in Announcement | Tagged , , | 10 Comments

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 , , | 19 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.

DOWNLOAD CLION

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

  • override and final keywords are now correctly highlighted:
    final_highlight
  • In C11 code, when integers have suffixes with mixed lower/upper cases, the highlighting no longer fails:
    mixed_suffix
  • 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.

DOWNLOAD CLION

Your CLion Team
JetBrains
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

JetBrains
The Drive to Develop

Posted in Announcement | Tagged , , | 52 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.

DOWNLOAD CLION

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
JetBrains
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