Live Webinar: CLion 101 and Beyond

Are you new to CLion or have you been wanting to try it out? Then this webinar is for you!

From a standing start, we’ll get you not just up and running with CLion, but get you super productive right away – and set you on the path to hyper-productivity!

blog_1600x800

Agenda

We’ll cover installation (briefly), finding your way around the UI, the fastest way to access any action in the application, and how to set things up the way you like them. We’ll then see how you can use CLion to full advantage as an ongoing assistant for your code, showing you where you might have gone wrong – and even how to fix it! We’ll also show how you can navigate huge and complex codebases like a pro, and even get CLion to write or refactor code for you.

Finally, we’ll look at how to run and debug code in different ways – even on remote machines.

Speaker

Our speaker is Phil Nash. Phil is the author of the C++ test framework, Catch2, and composable command line parser, Clara. As Developer Advocate at JetBrains he’s involved with CLion, AppCode and ReSharper C++. More generally he’s an advocate for good testing practices, TDD and using the type system and functional techniques to reduce complexity and increase correctness. He’s previously worked in Finance and Mobile as well as an independent consultant and coach specialising in TDD on iOS.

Join us on Tuesday, June 23, 5pm CEST | 3pm GMT | 8am PDT.

Register now!

Your CLion team
JetBrains
The Drive to Develop

Posted in Webinar | Tagged , | Leave a comment

Learn Productivity with CLion: Tips & Tricks Demo

In May 2019, the JetBrains team attended several events in Israel. We were inspired by the fantastic and welcoming C++ community in Tel Aviv, the old city of Jaffa, and Haifa. While the main goal of the trip was a brand-new conference – Core C++ (check out the trip report), we also had a great evening at the Haifa::C++ meetup and even ran our own event – JetBrains Night Tel Aviv 2019! We gave several talks there on C++ and .NET development in general and our tools in particular. In this blog post, we’d like to highlight one of those talks.

What does it mean to be productive when developing in C++? Can a tool help us become a language guru? Are there tricks my IDE can teach me to make C++ coding a bit easier? These were the questions I tried to answer in my talk – “Can You Make Me Productive with a C++ IDE?”. Today I want to share the recording of this presentation along with a few comments and timestamps that you can use to jump to the most interesting parts. You might even learn a trick or two from the talk!

There are dozens of great tools in our ecosystem, and each of them is honed to be really good at certain tasks. But gathering them all in one place and combining them inside one user environment can be tricky. This is the job for an IDE – an Integrated Development Environment, specifically designed to provide a universal cross-platform environment in which you can work with C++ in the most effective and efficient way possible. An IDE integrates tools and sources, from the project model and the debugger to version control systems, profilers, memory checkers, the built-in terminal, and more. It works both for local and remote setups, for WSL, or simply doing remote (or even on-chip) debugging.

With a powerful tool like that, you need to know how to use it. Let’s go over a few tips on how you can get the most out of CLion!

Note that the video was recorded in May 2019, so some things have already been improved since then, and the UI may have changed in several subsystems. Please refer to the CLion web documentation to learn the details.


Continue reading

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

What’s New in IntelliJ Rust

In this post, we’ll take a look at the updates that IntelliJ Rust has received over the 2020.1 release cycle.

But before we start, we have an exciting announcement that we would like to share. It is now possible to debug your Rust code in IDEs other than CLion! Here are a few more details:

  • It’s available in IntelliJ IDEA Ultimate, AppCode, and RubyMine starting with version 2020.1.
  • It works with LLDB on macOS and Linux.
  • It requires the nativeDebug plugin to work in IntelliJ IDEA Ultimate.
  • It requires you to download the debugger binaries, which are not bundled. The IDEs will prompt you to do this.

Now, let’s get back to the plugin updates:

Continue reading

Posted in Announcement | Tagged , | 2 Comments

Webinar Recording: CLion Ask Me Anything Session

On May 7, we ran an exciting CLion Ask Me Anything session. 2 hours, 9 speakers, 7 demos, and 140+ questions – this was really inspiring and motivating for the team and hopefully useful for all attendees. The most frequent comment afterwards from the team members was, “Let’s do this again!”. We’d also like to say huge thanks for all your compliments and good wishes in the questions pane!

The recording of the webinar is now available on the JetBrainsTV YouTube channel. And here are some useful timestamps so you can instantly jump to any section:

  • C++ language support

    • 02:29 – The evolution of the language engines in CLion.
    • 05:16 – Handling preprocessor code.
    • 09:00 – Plans for Qt support.
    • 15:30 – Code analysis tools in CLion, how to add support for more, and if/when CLion will support the C++ Code Guidelines rules.
    • 18:57 – What are the plans for C++20 support?
    • 19:55 – Does the CLion team participate in the C++ Committee Meetings and what are your goals there?
  • 22:04 – CLion performance tips
  • Project model support
    • 27:08 – Makefiles prototype demo.
    • 34:36 – Other project models (Meson, Bazel). What are the plans? How to workaround via the compilation database?
  • Debugger
    • 42:24 – Debugger Tips & Tricks demo.
    • 52:13 – How to limit the debugger to “just my code”?
    • 56:22 – CLion plans for CUDA debugger, reverse debugging, and cross-language debug.
  • Remote development with CLion
    • 01:02:01 – Remote development with CLion – short demo.
    • 01:10:48 – Setting a project inside Docker container for remote development.
    • 01:20:18 – What are the plans for more native Docker support? What are the plans for optimizing performance of the remote development features in CLion?
  • Embedded development with CLion
    • 01:23:45 – A short demo of working with the Arduino boards in CLion.
    • 01:34:55 – What about improvements to debugging experience for the embedded targets, for example viewing the peripherals?
  • 01:38:25 – Working with CTest in CLion
  • 01:46:21 – General questions and final links.


Continue reading

Posted in Webinar | Tagged , , , , , , , , , , , | 21 Comments

CLion 2019.3.6 Bug-fix Update

As you probably know, we released CLion 2020.1 this April and since then we’ve published our plans for CLion 2020.2. For those using the previous version, v2019.3, today we’d like to provide a helpful bug-fix.

CLion 2019.3.6 (build 193.7288.25) is now available for download 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:

  • C++ specific fixes:

    • A fix in Clangd which led to a crash on catch.hpp file (CPP-18783).
    • Concepts support, introduced in v2019.3, now also works with the Microsoft Visual C++ toolchain (CPP-19696).
  • From the IntelliJ Platform:
    • We’ve fixed the regression that prevented the IDE from starting if it was installed in a path with non-ASCII characters (IDEA-235754).
    • The IDE now shows the confirmation dialog when deleting a directory that is under SVN (IDEA-228828).
    • A bug is fixed with the licence server address cleared when it’s unreachable (IDEA-235344).
    • Other IntelliJ Platform fixes.
  • The issue with displaying the context menu or main menu popups in Full Screen mode under XFCE has been fixed (JBR-2143)
  • Plus a few other JetBrains Runtime fixes.

Your CLion team
JetBrains
The Drive to Develop

Posted in Announcement | Tagged , | Leave a comment

What’s Next: A Roadmap for CLion 2020.2

CLion 2020.1 has landed and has been followed up with its first bug-fix update, so it’s time to talk about our plans for the next release.

Special thanks

We have a good tradition to celebrate successful releases by giving our most sincere thanks to our Early Access Program users. Today we’d like to extend our special thanks to these fine folks who’ve been most active, along with a complimentary 1-year CLion subscription:

  • Mansur Mustaquim
  • Taw Moto
  • Pavel Samolisov
  • Tom Evers

We’ll email you in the next few days with a code for getting a new subscription or extending your current one. If you’d like to pass the code to a friend or colleague, that’s OK, too!

Roadmap: CLion 2020.2

Our main priorities for 2020 remain unchanged. Let’s see what particular enhancements we plan to implement during the next release cycle.

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.2.
  • Language support and Clangd

    • Improve the stability of the Clangd-based language engine, investigate and fix memory leaks, and improve memory consumptions in general.
    • Enable Clangd-based code completion before indexing is complete.
    • Use Clangd-based engine for CLion’s Simplify inspection.
    • Continue fixing particular freezes in various areas.
    • Work on reducing CPU usage on projects like Eigen and others.
  • Project models
    • Continue with the Makefiles prototype (we hope to open it for public testing during this release cycle).
    • Support new features from CMake 3.16 and 3.17.
    • Allow disabling CMake profiles (CPP-12870).
  • Embedded
  • Debugger
    • Further improvements to the LLDB-based debugger on Windows for the Microsoft Visual C++ toolchain.
    • Ability to debug as root (CPP-7224).
    • Ability to debug with a core file (CPP-7977).
  • Unit testing
    • Update Boost.Test & Catch2 integration to support the latest enhancements in these frameworks.
  • Continue with various fixes in other subsystems, including Remote, Formatter, Code Coverage, Profiling, and more.

That’s it! 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 , , | 35 Comments

CLion 2020.1.1 Bug-fix Update

Today we’re making available the first bug-fix for the recently released CLion 2020.1. CLion 2020.1.1 (build 201.7223.86) 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

Here are the main highlights:

  • Toolchains:

    • CLion 2020.1 introduced CUDA support. This update fixes the issue where CLion was not able to pick the non-default host compiler for CUDA.
      There are two different ways of specifying the host-compiler that NVCC should use during compilation.

      • For older CUDA projects using find_package(CUDA), the important CMake variables are CUDA_HOST_COMPILER and CUDA_NVCC_FLAGS.
      • For newer projects that specify CUDA explicitly as a language, CMake uses the variables CMAKE_CUDA_HOST_COMPILER and CMAKE_CUDA_FLAGS instead.

      For details check here.

    • The compiler is now detected correctly for Cygwin (CPP-19908).
    • CLion 2020.1.1 recognizes WSL Ubuntu20.04 distribution.
  • In Qt code: QStringLiteral and QByteArrayLiteral are now highlighted correctly (CPP-19916).
  • Clang tools:
    • A fix for a Clangd crash on C++20 code.
    • A fix for the Reformat Code action that caused an IDE freeze when ClangFormat was in use.
  • Code completion:
    • Completion was skipping parenthesis when Tab indentation was used (CPP-19902).
    • An issue with header name autocompletion has been fixed (CPP-19675).
    • A few issues with incorrect (CPP-10037) or redundant (CPP-19310) symbols completed were fixed.

The full release notes are available here. If you haven’t yet updated your CLion to 2020.1, now is a great time to do so!

DOWNLOAD CLION

Your CLion Team
JetBrains
The Drive to Develop

Posted in Announcement | Tagged , , | 9 Comments

CLion Turns 5!

How it all began

This story starts in AppCode. Back in 2011, Max Shafirov, the current JetBrains CEO, announced the first steps toward C++ support in AppCode, our IDE for iOS/macOS development:
AppCode Cpp support

The work started out simply, just dealing with macros when covering Objective-C++ code. But before long it turned into full-featured C++ support, including STL and libc++ understanding, correct parsing for the template specialization, and getting into C++11 and later standards specifics.

This was later followed by an April Fools’ Day announcement, which made us realize there was great demand for a C++ IDE. After that, we did some extensive research to better understand the market. (Luckily, nowadays we have our yearly The State of Developer Ecosystem research bringing significantly more data to us on a regular basis.)

A couple months after the first release of both CLion and ReSharper C++ in April 2015, we published the whole story in this longread in our company blog.

CLion 1.0 banner

This week, we turned 5! And we celebrated yesterday in the best way we could – with the 2020.1 release 😉 When we started CLion, it was a very ambitious idea, and it still is. But we are more confident than ever that we can accomplish the mission!

The team behind the product

Creating a truly helpful tool takes being an integral part of the community, feeling and sharing its needs, pains, and frustrations. We have C++ developers in the team with various backgrounds, as well as some who never did C++ professionally. But we are grateful to the C++ community that helps us fill the gaps. It’s impossible to name here each individual who supports us, as there are so incredibly many of you! But we do want to thank you all!

The CLion team now has 26 members! Including:
18 developers
3 QA engineers
2 support engineers
1 technical writer
1 developer advocate
And me, the product marketing manager.
CLion team

But there are also many other people in JetBrains who contribute to our success. And we are happy to be in such a great company!

Today and Tomorrow

The C++ language is a challenge for any IDE. Over the years, we’ve not only discovered many tricky cases, but we’ve also started talking with the community about the C++ tooling challenges, and hopefully this has helped the C++ Committee notice the issue. We are grateful to the people there who are open to the discussions! We also gladly provide free licenses to the C++ Committee so that we can learn their feedback. They are on the cutting edge of the language, and we are eager to know if we are aligned.

Speaking of free access programs, we see thousands of students using CLion daily to take their first steps in the amazing world of software development. And we are excited to find that CLion is used widely among ICPC teams (our statistics for this come from the 2019 ICPC World Finals, which happens on Linux and where only C++, Java, Kotlin and Python can be used).
ICPC tools

We work on Remote and Embedded development support, and we’ve detected an increase in customers from the automotive industry, especially those creating self-driving experiences. (Our customers and friends from BMW definitely made us smile with their autonomous driving commercial!)

We are certainly thankful to Google for their firm belief in us. With the very first release of CLion, its C++ support was adopted by Android Studio. Our collaboration with the Google team has been, and continues to be, very productive and beneficial to CLion.

We know we have busy and interesting times ahead of us, with lots of critical debts to be addressed, many important fixes to implement, and lots of extra value to add to the product. We also know that you might sometimes feel disappointed with things we’ve missed or haven’t managed to fit into the product. We’d like you to know that these things bother us as well! JetBrains is not about KPIs or management hierarchies. It’s about how we feel about our tools, how we as a team listen to the community needs, and how we cope with your requests. And we know we can do better in many respects. So we’ll try our best to work through critical areas and improve!

Birthday story

Finally, since it’s a birthday celebration, we have a present to share with all of you. A story! Phil Nash is happy to read a book for you. Find a comfortable seat and enjoy these first chapters of CLion’s life:

We always pass all the feedback from various channels to the team’s chat, be it good or bad. So if you want to say something to us, please do so in the comments. Thank you all and stay tuned! 😉

Your CLion team
JetBrains
The Drive to Develop

Posted in Announcement | Tagged , , | 24 Comments

CLion 2020.1: Dozens of Improvements Across the IDE, and Benefits for CUDA and Embedded Projects

Let’s start with a big wish for everyone to stay safe! While it’s obviously sometimes hard to focus on your work these days, as there are other important things happening, we’ve tried our best to keep doing what we are good at – creating great tools for developers to increase their productivity. So we are here to introduce a fresh CLion 2020.1 release!

CLion 2020.1 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.3 (2019.3.5).

DOWNLOAD CLION 2020.1

Here is a quick overview of the main highlights. If you are interested in the specific details, please read on:

Continue reading

Posted in Announcement | Tagged , , , , , , | 29 Comments

Live Webinar: CLion Ask Me Anything session

Do you have a question you’re dying to ask the CLion team? Are you curious about how to set up remote mode, trying to get started with Arduino, or wondering what breakpoint types are possible in CLion? Or maybe you are interested in our plans regarding Makefiles. Then the Ask Me Anything (AMA) session with the CLion team is just the event for you!

facebook_1200x628

Developers from the CLion team will join to cover the following areas of expertise:

  • C/C++ languages support, adoption of new C++ standards in CLion, Clangd-based language engine, code assistance.
  • Project models (CMake, compilation database, and future Makefile support).
  • Debugger integration.
  • The formatter (CLion’s formatter and ClangFormat integration).
  • Unit testing (covering Google Test, Boost.Test, and Catch).
  • Embedded development.
  • Remote development.

Join us on Thursday, May 7, 5pm CEST | 3pm GMT | 8am PDT.

Register now!

Your CLion team
JetBrains
The Drive to Develop

Posted in Webinar | Tagged , | 4 Comments