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

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.

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

This entry was posted in Announcement and tagged , , . Bookmark the permalink.

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

  1. Firat says:

    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!

  2. Wu says:

    yes, Qt please

  3. Piyali says:

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

  4. Vladislav says:

    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:

      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:

        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:

          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:

    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:

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

      • Eduard says:

        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:

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

          • Eduard says:

            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:

            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:

    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:

      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:

        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:

          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. Pingback: Highload++ и Go — Episode 0066 « DevZen Podcast

  8. Ivan says:

    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:

      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.

  9. Erik says:

    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.

  10. Roman says:

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

  11. Martin says:

    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

Leave a Reply

Your email address will not be published. Required fields are marked *