CLion starts 2016.2 Early Access Program

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

This entry was posted in Early Access Preview and tagged , , , , . Bookmark the permalink.

58 Responses to CLion starts 2016.2 Early Access Program

  1. Olof says:

    Oh no! It broke the IdeaVim plugin.

  2. Gauthier P. says:

    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:

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

  3. Bob Morane says:

    Doxygen support, finally! Amazing !

  4. Marcus says:

    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:

      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:

        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:

    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:

      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:

        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:

          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:

            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:

            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:

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

          • Anastasia Kazakova says:

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

          • Roman says:

            @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:

            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:

    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:

      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:

    IdeaVim! Oh no! :(

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

  8. Maxim Tikhonov says:

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

    • Anastasia Kazakova says:

      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:

        Great, at least you are looking at it :)

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

        • Anastasia Kazakova says:

          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:

    Wondering when will CPP-5201 being fixed.

    • Anastasia Kazakova says:

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

      • huang says:

        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:

          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.

  10. Roman says:

    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:

      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:

    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:

      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:

        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:

          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:

            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:

            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:

            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:

            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:

            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.

          • Anastasia Kazakova says:

            We’ve recently updated the bundled GDB and introduced many fixes in the driver: https://blog.jetbrains.com/clion/2016/06/clion-2016-2-eap-debugger/ Could you please check it’s working for you in that build?

          • Michiel Fortuin says:

            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:

            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.

          • Anastasia Kazakova says:

            Could you please collect logs when it doesn’t work in 2016.3 EAP using this instruction: https://intellij-support.jetbrains.com/hc/en-us/articles/206560589-Debugger-doesn-t-stop-on-a-breakpoint-Debugger-shows-Command-timed-out-What-to-do-. This would really help to isolate the problem.

  12. Vincent says:

    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!

Leave a Reply

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