CLion 1.2: Be more powerful with Google Test support, CMake coding assistance and more

Anastasia Kazakova

Only a couple of short months have passed since the release CLion 1.1, and we already have CLion 1.2 available for you to download and try right now!

CLion12_splash And if you have a CLion license, you can get this version absolutely free.

This release covers various essentials of the software development process: unit testing, writing CMake files, working with version control, general IDE look & feel and beyond. Read on for more details.

Google Test support

The latest update brings long-awaited support for Google Test. CLion is only taking its first steps in supporting various unit testing frameworks and approaches. If you have any in mind that you’d like supported, please add (or upvote) them in our tracker.

Google Test support in v1.2 includes configuration settings, a test runner with plenty of options, and code generation in unit tests. We recently published a detailed blog post about all these features, so here we’ll only highlight the most notable ones:

  • Google Test is available on all three platforms: simply configure it in your project and start using it. A useful FAQ from the authors is located in this wiki.
  • Run any test, fixture or whole file by pressing Ctrl+Shift+F10 on Windows/Linux or Ctrl+Shift+R on OS X.
  • Test session results are shown in a special built-in test runner. It supports rerunning a single test/all failed tests and provides you with a history of test runs. Test results can be sorted by duration, and you can look into the output stream and error message details:
    test_runner
  • Meanwhile, code generation makes it easier to write tests by generating test, test fixture or SetUp/TearDown Methods:
    gt_gen

CMake coding assistance

CLion 1.2 can help you write CMake files quicker, re-using some earlier created templates. Use predefined live templates or create your own:
cmake_live_templates
Benefit also from variable completion and new code style settings for forcing upper/lower case for CMake commands.

C++ language support

We continue making our C++ parser more accurate:

  • The type of variables declared as auto is inferred correctly
  • __LINE__ macro is supported
  • The volatile keyword is handled correctly, and more.

CLion also now supports the following features for template parameters:

  • Find Usages
  • Rename
  • Quick Fix to remove unused template parameter:
    remove_template_param

Check the full list in our tracker.

Debugger

Our main work on the debugger concentrated on boosting its performance. We’ve added lazy creation of GDB variables and a couple of other fixes.

In addition, references and arrays of wide/unicode characters are now correctly displayed in the debugger. (However, some problems still exist.)

VCS

The list of supported Version Control Systems includes Git, GitHub, Subversion, CVS, Mercurial, TFS, and Perforce. This release brings both common changes and per-system improvements in this area.

Talking about common changes, there is now a possibility to edit code right in the commit dialog (in case you’ve noticed some small issue and don’t want to go back to the editor).

As for per-systems improvements:

  • New Shelve in Perforce action in UI.
  • Features for working with patches when using Mercurial Queues.
  • Git branches operation are available in the context menu in the VCS Log Viewer.

General IDE improvements

This release also includes a lot of general IDE features, like:

  • Adjust code style quick-fix for changing code style settings for C, C++, CMake, JavaScript, XML and other languages, but only those that are applicable to the selected piece of code.
  • Preview tab in Find in Path showing the first 100 results in real time.
  • Support for regular expressions in Find and Replace.
  • Updated default look & feel scheme on OS X, and better HiDPI support on Windows and Linux.
  • JDK switcher on OS X to select between a custom JDK bundled with CLion and any other JDK found in your system:
    switch_jdk

For a more detailed overview, please visit the What’s new in CLion 1.2 page on our website, view our demo below and download CLion for your operating system.

https://www.youtube.com/watch?v=0Ln8XZ-GREk

By the way, this CLion release is aligned with updates for our other desktop products that comprise JetBrains Toolbox. Note that the new JetBrains licensing model is already effective starting November 2, 2015. Check out the current CLion pricing and plans on our site.

Develop with pleasure!
The CLion Team

Comments below can no longer be edited.

39 Responses to CLion 1.2: Be more powerful with Google Test support, CMake coding assistance and more

  1. Firat says:

    November 3, 2015

    well… I have to say it. Please support Qt & make for next release and then my life will change with using all of these features!

    • Anastasia Kazakova says:

      November 3, 2015

      We’ll consider it, thanks for your comment.

  2. Wu says:

    November 3, 2015

    yes, Qt please

  3. Piyali says:

    November 3, 2015

    Please add support for Makefile or at least provide a tool/plugin to help convert Makefile to CMakelists.txt

  4. Vladislav says:

    November 5, 2015

    Strange release policy. How could you push major release when you have critical bugs (complete application freeze) not fixed? What’s the point on using the tool when it just fails on basic task such as code editing?

    • Anastasia Kazakova says:

      November 5, 2015

      We are sorry you are experiencing such problems. However, it’s not a usual problem as we see from our users feedback. Still for sure we need to fix it. Is it in tracker? Could you please point to the exact issue?

      • Vladislav says:

        November 5, 2015

        Of course, here it is: https://youtrack.jetbrains.com/issue/CPP-4644

        Sorry for being pessimistic, but for the code I’m working on, this issue happens pretty often. So from my perspective and my use cases, the IDE was “broken” in 1.1 and after 1.2 it’s the same picture.

        • Anastasia Kazakova says:

          November 5, 2015

          Ok, I see. Actually there is some fix ready and currently in testing. So big chances for this to come soon. Follow the updates in the ticket. It will be marked with the #fixed version. Sorry for the inconvenience.

  5. sanchay says:

    November 6, 2015

    I was trying out clion 1.1 and just upgraded to 1.2. Now clion is marking many more false positive compile errors as compared to before. Also it seems to consume more cpu while compiling / loading symbols.

    • Anastasia Kazakova says:

      November 6, 2015

      That’s not expected. So probably you can share some samples/prj to our clion-suport at jetbrains.com?

      • Eduard says:

        November 7, 2015

        I can confirm it, indexer/formatter of 1.2 show strange behavior. On some files, it seems to forget all C++11 keywords (like override). Setting CXX_STANDARD or CMAKE_CXX_STANDARD does not help at all. In other projects, it reports impossible conversion of certain argument or return types. But the conversion is fine, all error messages are BS. In some files, the auto-indenting stops working, also for no apparent reason, i.e. no error message explaining this breakage.

        Here is an open source project of mine where it could be reproduced:
        https://alioth.debian.org/anonscm/git/apt-cacher-ng/apt-cacher-ng.git/
        Branch: upstream/sid
        Context to set: acngstuff
        File to “enjoy” line indenting and type conversion problems: source/acfg.cc

        • Anastasia Kazakova says:

          November 8, 2015

          Thanks, we’ll check.
          Which OS exactly are you opening this in CLion?

          • Eduard says:

            November 13, 2015

            I was using a Debian Unstable environment, amd64, gcc-5, and other packages were in the state of about one month ago. And:
            java version “1.7.0_85”
            OpenJDK Runtime Environment (IcedTea 2.6.1) (7u85-2.6.1-3)
            OpenJDK 64-Bit Server VM (build 24.85-b03, mixed mode)

            • Anastasia Kazakova says:

              November 13, 2015

              Thanks. I’ve put all the information to the tracker: https://youtrack.jetbrains.com/issue/CPP-5075, since it needs some deeper investigation and beforehand we need to recheck it on a similar configuration. Follow the ticket to get the updates.

  6. Bala says:

    November 6, 2015

    Can you please address C++ parsing performance issue? Even with 1.2, it is so slow(on a quad core Mac). Granted our project is decently big, but it takes minutes (multiple minutes) to fully scan one c++ file(with CPU loaded to 400-500%).

    It also takes 5-6 seconds (some times more) to have variable popup dialog once I start typing also :(. This makes it very hard to use IDE even for simple operations. I did send profiler outputs to Jetbrains support, but no response so far :(.

    • Anastasia Kazakova says:

      November 8, 2015

      First of all, try to increase the xmx: https://intellij-support.jetbrains.com/hc/en-us/articles/206827537-Configuring-JVM-options-and-platform-properties.

      Second, could you please share, where did you send the profiler outputs? Haven’t you got any replies? Could you send once more and share which address are you using (maybe some spam filters were filtering it incorrectly)?

      By the way, are you trying the popup dialog after all the background processes are over? Or during this time?

      • Bala says:

        November 16, 2015

        It is not a memory issue. I’ve given enough memory already. I’ll send the profiler output again.

        Reg. the popup dialog, even if I wait for all background process to complete, once I type some things, it starts the background scanning again.

        • Anastasia Kazakova says:

          November 16, 2015

          Yes, please send us some CPU snapshot and maybe some prj to reproduce or some video to show the issue with restarting background task? Also logs will be useful (Help | Show log)

  7. Highload++ и Go — Episode 0066 « DevZen Podcast says:

    November 7, 2015

    […] CLion 1.2: Be more powerful with Google Test support, CMake coding assistance and more | JetBrains C… […]

  8. Ivan says:

    November 9, 2015

    Is there any interest in having more integration with Ninja instead of Make as far as the generated files go (not the code-model)?

    I also get stuck “Building Symbols” for minutes at a time with my quad-core cpu fully utilized with an Xmx of 4G. Memory doesn’t seem to be a problem even though the project is quite big.

    Would it be possible to lazily evaluate symbols for each file so that the IDE remains responsive? I understand it would be ideal to be able to build the Symbols once and use them from then on but I often have to make changes to CMake files that cause a reload.

    • Anastasia Kazakova says:

      November 9, 2015

      First about Ninja – we have a corresponding ticket, however no plans for Ninja in the upcoming versions. Check our roadmap post.

      If you have a heavy usage of C++11, templates or macroses in your code, this could take time. How big and complicated is the code base? And what exactly time does it take?

      We need prj symbols for IDE to work correctly. However, if its CMake changes that cause the inconvenience, feel free to switch off the automatic CMake reload (in Build, Execution, Deployment | CMake settings) and call it manually. However, keep in mind, that CLion uses CMake information for correctly parsing your code, so don’t forget to reload the CMake after all the proper changes are there.

      • Ivan says:

        November 10, 2015

        Thanks for the swift response. Heavy use of templates is probably the cause. Here is an open-source code base where you can reproduce the problem : https://bitbucket.org/gtborg/gtsam.git

        • Anastasia Kazakova says:

          November 10, 2015

          Thanks for the link. It took about 10 minutes on my 4-core 2 GHz Intel Core i7, and a peak was about 1600M of xmx used. I should say it’s more or less ok, taking into consideration the complexity of the code. Still some problems (including performance and red code) may be caused by the Eigen library usage. There are a set of issues related to this in our tracker: https://youtrack.jetbrains.com/issue/CPP-877.

  9. Erik says:

    November 10, 2015

    I’m now unable to load my project, clion is getting stuck at ‘Updating Indices Scanning project directories…’ Going back to clion-1.1.1.

    • Anastasia Kazakova says:

      November 10, 2015

      Could you please check if the IDE memory is enough? Switch the indicator in Appearance & Behavior | Appearance and have a look. If not, try to increase the memory, following this instruction: https://intellij-support.jetbrains.com/hc/en-us/articles/206827537-Configuring-JVM-options-and-platform-properties

      • Erik says:

        November 10, 2015

        There is plenty of free memory available, about 200M of 2000M in use. Very low cpu usage btw – looks like clion is idle and the background task isn’t running at all.

        • Anastasia Kazakova says:

          November 10, 2015

          If you can get a CPU snapshot + thread dumps as described here: https://confluence.jetbrains.com/display/CLION/Known+issues, we could have a look at what’s going on for you there.

          • Erik says:

            November 19, 2015

            Updated to 1.2.1 and the problem is gone.

            • Anastasia Kazakova says:

              November 19, 2015

              Ok, glad to hear

  10. Roman says:

    November 17, 2015

    Do you plan to add official support for CMake and Google Test in TeamCity?

  11. Martin says:

    December 2, 2015

    At our company we bought a clion license a little over a month ago and i used it with clion 1.1.

    As the development computer has just been reinstalled i used the opportunity to install clion 1.2.1 instead of 1.1 as the license includes the upgrades for 1 year.

    The problem is that clion complains that the license key is in legacy format. The proposed conversion doesn’t work as the development network is not connected to the internet. I then installed clion 1.2.1 on another computer on the corporate network so convert the license, that didn’t work (Server connection timeout). This could be due to the strict firewalling rules on the corporate network that don’t allow much traffic beside http and https.

    Is there another way to convert my license or do i have to reinstall a clion 1.1 ? Or do i need to install a 1.2.1 version on a computer at home to convert the license ? What is the best way to convert the license in this case ?

    Thanks and best regards,

    Martin

    • Anastasia Kazakova says:

      December 2, 2015

      Convert the key on any machine that allows proper access using the link: https://www.jetbrains.com/shop/eform/keys-exchange (So no need to install CLion on a machine to convert the license.)
      Then just bring the new key to the machine with CLion and enter it.

      • Martin says:

        December 3, 2015

        Thanks, with your url it worked perfectely !

        Time to test clion 1.2.

        Hope in a next release OpenCL syntax highlightning and autoindentation will work as well 😉

        Best regards,

        /Martin

Subscribe

Subscribe for updates