CLion starts 2016.2 Early Access Program

Anastasia Kazakova

Great news today as CLion starts an Early Access Program for version 2016.2! Many things are planned, and some are already in there. Download the build (162.232.8) and check them out right now!

This build addresses Complete Statement and CMake improvements, introduces Doxygen support, VCS changes and custom JDK on Windows. See more details below.

Complete Statement

Together with code completion and code generation, this feature helps you develop at the speed of thought. Invoked with Ctrl+Shift+Enter on Linux/Windows or ⇧⌘⏎ on OS X, it helps you complete many code constructs to syntactically correct ones. The simplest sample is a missing semicolon, but it’s actually much more!

With Complete Statement, CLion inserts parentheses, braces, semicolons, quotes, etc. for you where necessary, and then moves the caret in position where you can start typing the next statement automatically. Time savings are guaranteed.
complete_statement_class
Check out this blog post to learn more about it!

CMake changes

Starting from this build user symbols in CMake (like functions or macros) are available in code completion, as well as in the go to declaration/definition navigation actions. Quick definition pop-up is now also able to show definitions for user symbols. To invoke it, simply press Shift+Ctrl+I on Linux/Windows, or ⌘Y on OS X. The definition for the symbol at caret will be displayed:
cmake_quick_definition

Besides, Rename refactoring now works for user symbols in CMake as well:
cmake_rename

Doxygen support

Starting from this EAP build CLion makes it easier to keep your code properly documented with support for the widely-known documentation format, Doxygen. You can now view the documentation parsed from your Doxygen-styled comments in the Quick Documentation pop-up:
doc_doxygen_view
Besides, CLion will help you rename function parameters, by updating Doxygen comments automatically. It also provides code completion for a set of Doxygen commands and parameters names, and even code generation for the function documentation in Doxygen style. Read our blog post to learn more.

Swift plugin

Have you already tried Swift plugin in CLion? Since we’re seeing growing interest in the community, we continue putting our efforts into it. Thanks to our AppCode team, Swift 2.2 language support comes today to both AppCode 2016.1.3 EAP and CLion’s Swift plugin. You can check the details in the corresponding post in the AppCode blog or see the list of fixed child issues.

VCS improvements

To make navigation through the VCS log easier, we’ve added tooltips with target commit information for arrows:
tooltip

If you’ve created several new files and didn’t add them to the version control, the commit dialog will show these files so you won’t forget to add them:
unversioned_files

Several improvements were made for patches:

  • You can apply patch from the clipboard (the IDE will offer to apply the patch when it obtains focus). Alternatively, drag a file into the IDE.
  • If a file has been moved or renamed since a patch was created for it, the IDE will try to figure that out or let you manually choose the file to apply the patch to

Other improvements

In debugger tool window, the Watches and Variables modes are now merged so you don’t need to switch between them. If you still prefer the old style, a new button is available in the watches toolbar to switch between the modes (new mode is on by default):
debugger_console

Following our custom JRE on Linux and OS X, our Windows builds are using a customized build of JDK now, which mostly includes font-rendering and focus fixes. (Just in case, build with the Oracle JRE is still available for the download.)

IdeaVim upd.
In case you’d like to use IdeaVim plugin with CLion 2016.2 EAP build, please, note that IdeaVim 0.44 is not compatible with 2016.2 EAP – install IdeaVim EAP instead. The instruction on how to obtain it can be found here.

That’s it! Download the build, try it right now and let us know what you think. Full release notes are available by the link.

Your CLion Team

Comments below can no longer be edited.

58 Responses to CLion starts 2016.2 Early Access Program

  1. Olof says:

    May 18, 2016

    Oh no! It broke the IdeaVim plugin.

  2. Gauthier P. says:

    May 18, 2016

    Complete statement and CMake improvement are nice !

    Personally, what I’m looking for this build is bug correction (in particular for auto-includes in C, who sometimes are strange with “printf.h” included, cf CPP-6038, or zconf.h which is practically always included instead of unistd.h :/ ) and namespace better support in code generation (I saw that it’s WIP) more than new features.
    The situation is going better and better with each release, continue like that! 🙂

    • Anastasia Kazakova says:

      May 19, 2016

      Thanks for your support. We plan many bug fixes as well new features, so please stay tuned.

  3. Bob Morane says:

    May 19, 2016

    Doxygen support, finally! Amazing !

  4. Marcus says:

    May 19, 2016

    Was so excited to see that a fix for CPP-4813 was in this release. I was hoping that the endless stream of false positives at every smart pointer call site would go.

    Sadly, that error is now replaced by another false positive (( This time it’s a “Applying a -> operator to MyAutopointerType instead of a pointer” – what does this error mean? Is it possible to turn it off? (I never have much luck matching false errors in the code to the list in the inspections settings)

    Many thanks,
    Marcus.

    • Anastasia Kazakova says:

      May 19, 2016

      If I’m not mistaken it should be Type checks | Incompatible pointers. However, could you please submit a code sample to us, if not yet? We’d better fix this one as well.

      • Marcus says:

        May 19, 2016

        Thanks Anastasia, when I get some time I’ll try to isolate this and file some bug reports (there are a couple of other new parser problems in here too around varargs function selection)

  5. Matej K. says:

    May 19, 2016

    I tried CLion, really liked it (apart from some text navigation issues on OS X, like alt+up/down not working as expected), but missing MSVC support is a dealbreaker. Clion has the potential to be truly the best cross platform IDE but that will not happen until you support microsoft toolchain.

    • Anastasia Kazakova says:

      May 19, 2016

      Since we have ReSharper C++ (that is an extension for VS) MSVC is not our top-priority task, however it is in the longer list – https://youtrack.jetbrains.com/issue/CPP-819.

      • Matej K. says:

        May 19, 2016

        When looking for cross platform IDE the presence of another IDE plugin does not help in any way, so I don’t really understand this argument.

        I hope you’ll reconsider this.

        • Anastasia Kazakova says:

          May 20, 2016

          CLion main focus is clang and GCC for now. Also Intel compiler is possible. MSVC is also used in cross-platform cases of course, but not that often we believe (at least as we saw from our research). Also there are some technical difficulties with MSVC especially, that will require additional work. So it’s postponed because the lack of the resources for now.

          • Matej Knopp says:

            May 21, 2016

            Doesn’t Intel compiler on Windows use same interface as MSVC? What would make it easier to support?

            I’m not sure where you did your research, but personally I don’t think I’ve ever seen a company using mingw on windows for anything serious (apart from maybe building some libraries that can not be built with MSVC)

            • Anastasia Kazakova says:

              May 21, 2016

              Unfortunately, Intel and MSVC differs greatly in the part about getting compiler predefined macros. Intel has the same interface (command support) like GCC or Clang, while MSVC doesn’t support this at all. That’s why it’s not that easy.

              Were these companies doing cross-platform development or were these Windows-only projects based on the Windows environment?

        • exim says:

          May 22, 2016

          They (jetbrains) are in partnership with Microsoft, that’s why they won’t release a direct competitor to Visual C++ IDE.

          • Anastasia Kazakova says:

            May 22, 2016

            Hm, that’s an interesting suggestion, but why do we then do Rider for example?

          • Roman says:

            May 27, 2016

            @Anastasia Kazakova

            This is pretty obvious: .Net is “burning platform”(c) so Microsoft would be happy if someone will build tools to popularize it.

            This is not the case with MSVC, that is the most popular C++ IDE and toolchain for Windows.
            That is why we will not get C++ support in Rider, isn’t it?

            • Anastasia Kazakova says:

              May 27, 2016

              We do consider adding MSVC compiler support, still it requires an additional resources from the team, since it’s not that obvious right now how to support it in the current architecture. And because we have ReSharper C++, that’s not one top-priority task for now. So the reasons for not having it for now are fully internal.

  6. RS232 says:

    May 19, 2016

    My company is waiting for remote debugging before switching to CLION, it’s an awesome IDE.

    Is there any release plan for remote debugging with GDB / gdbserver ?

    Great work.

    • Anastasia Kazakova says:

      May 19, 2016

      We plan to implement attach to remote process in 2016.2, however can’t promise you this for sure, since it’s only the preliminary plan.

  7. Ryan Steele says:

    May 19, 2016

    IdeaVim! Oh no! 🙁

    Tried building and running snapshot version of plugin, still failed.

    • Anastasia Kazakova says:

      May 19, 2016

      Thanks for the info. We are on it currently.

    • Anastasia Kazakova says:

      May 19, 2016

      Could you please file a bug here: https://youtrack.jetbrains.com/issues/VIM with the description of a problem. We can’t reproduce it unfortunately.

    • Anastasia Kazakova says:

      May 19, 2016

      Are you using IdeaVim EAP build? ee the instructions on how to install a EAP build in the Get an Early Access section https://github.com/JetBrains/ideavim#get-an-early-access

      • Ryan Steele says:

        May 23, 2016

        A.K.,

        Using EAP for plugin and problem still persists.

  8. Maxim Tikhonov says:

    May 20, 2016

    Are you planing to fix CPP-5205 in 2016.2 by a chance?

    • Anastasia Kazakova says:

      May 20, 2016

      We are considering this and currently investigating how to implement it. However, can’t say for sure, since it may affect the performance greatly. So we are looking for the optimal solution.

      • Maxim Tikhonov says:

        May 24, 2016

        Great, at least you are looking at it 🙂

        It is really a show stopper with some libraries, such as juce.

        • Anastasia Kazakova says:

          May 24, 2016

          Yes, we know it’s the main source of the problems for JUCE and Clang as well. We are on it. But without any estimation for now.

  9. huang says:

    May 27, 2016

    Wondering when will CPP-5201 being fixed.

    • Anastasia Kazakova says:

      May 27, 2016

      Thanks for reminding us! We’ll check if it’s still actual or fixed already. Follow the issue to get the updates.

      • huang says:

        May 27, 2016

        This issue has prevented me from using newer version of CLion for about half year. I’m still using CLion 1.1, which don’t affected by this.

        • Anastasia Kazakova says:

          May 27, 2016

          Since there were many changes in performance during that period I’ll recommend you to try the latest EAP. You can install it along with the stable 1.1 version.

          • huang says:

            May 27, 2016

            I’ve try the EAP, it still forzes. I think may be the highlighting is too slow?

            • Anastasia Kazakova says:

              May 27, 2016

              We’ll check what’s going on there. Thanks.

  10. Roman says:

    May 28, 2016

    Is it possible to disable inspection for https://youtrack.jetbrains.com/issue/CPP-6165? I use this function call a lot, and it distracts to see that much red in ide.

    • Anastasia Kazakova says:

      May 30, 2016

      I’m afraid it’s not possible to turn off. However, we’ll take a look at the issue. Thanks for pinging.

  11. Michiel Fortuin says:

    June 3, 2016

    Is there a way to navigate through smart pointers in debug mode? (std::shared_ptr and std::unique_ptr)
    Currently i’m on full debug mode and I can’t what the smart pointer is pointing at.

    • Anastasia Kazakova says:

      June 3, 2016

      Could you please share an example (screenshot)? With some description what do you expect. For me CLion shows the memory that is there pointed by the shared_ptr for example.

      • Michiel Fortuin says:

        June 3, 2016

        Normal pointers to an object have a tree like structure with all it’s members and it’s values. When a smart pointer points to a object, it’s not possible to open that tree with al it’s members.
        See screenshot(http://s33.postimg.org/fejsj98nz/Capture26.png) with the following code:
        std::unique_ptr<System1D> s = std::unique_ptr<System1D>(new System1D()) ;
        System1D* s2 = s.get();

        • Anastasia Kazakova says:

          June 3, 2016

          That’s interesting. Where is the breakpoint in that case? Which debugger is it – LLDB or GDB? And is it the same for any type instead of System1D?
          It looks different for me here with some other type used.

          • Michiel Fortuin says:

            June 3, 2016

            I use the GDB that is bundled with clion.
            I haven’t seen it any different since I use Clion, since version 1.1 I think. also with other types.

            • Anastasia Kazakova says:

              June 3, 2016

              Could you please share the full sample project with breakpoint set? Maybe I’m just checking some different situation. Not sure, why it looks different.
              Which OS version and CLion build are you on?

          • Michiel Fortuin says:

            June 10, 2016

            I made a simple project that has the same problem
            You can download it here: https://www.dropbox.com/s/7u6ig02oghs4vdd/test.zip?dl=0

            I have also tested it on a ubuntu machine, that had exactly the same problem

          • Michiel Fortuin says:

            June 10, 2016

            Here is my environment:
            CLion: 2016.1.2
            MinGW: 3.21
            Cmake: 3.5.1 (the bundled version with clion)
            GDB: 7.8 (the bundled version with clion)
            GCC: 4.9.3

          • Michiel Fortuin says:

            June 10, 2016

            I did also try it with the GDB that is in my MingW.
            There it did work correctly, CLion saw the shared_ptr as a structure with for example the _M_ptr that directly pointed to my object.
            Only this is an unsupported GDB by CLion, version 7.6.1.
            I have also compiled GDB 7.8.2, wich is supported by CLion. I have also tried this version, and it also works. So for me it is fixed, but still something strange is happening with the bundled GDB.

          • Michiel Fortuin says:

            June 10, 2016

            Hey,

            i have tried it in CLion 2016.2 EAP (build 162.844.13).
            It has the same problem. The watch window doesn’t show anything behind a smart pointer.
            If I use my own compiled GDB, then the problem is fixed, as is in the previous version.

          • Hugo Almosnino says:

            October 21, 2016

            I don’t know if it is worth posting this here, but I have the exact same issue. I am using CLion2016.2 release and tried CLion2016.3 EAP without success. However, compiling the latest gdb fixes the problem for me.

            I am using Xubuntu (Ubuntu) 16.04.1 with clang 3.8. On mac os X, everything seems to work fine.

  12. Vincent says:

    July 13, 2016

    Hi,
    I’ve been trying CLion for few weeks now and it looks very promising! I do have one major problem with it though. I am working on a large project which contains many MANY occurrences of the single quote digit separator introduced in c++14 and (AFAIK) supported by all major compilers, but not CLion’s parser which triggers errors like “missing )”, “missing ;” or even “can’t resolve …” on following lines. This could be a real deal breaker as my code is large and full of them, and so far this is enough for me not to switch to CLion at the end of the trial period… Is there any plan to support this in a near future?
    Thanks a lot!

    • Anastasia Kazakova says:

      July 13, 2016

      Thanks for the feedback. Indeed this is not supported yet – https://youtrack.jetbrains.com/issue/CPP-2394. Feel free to upvote and share your comments in the ticket. We’ll consider this in the upcoming plans.

Subscribe

Subscribe for updates