CLion 2016.2 roadmap

Posted on by Anastasia Kazakova

Hi everyone,

A week passed since we released CLion 2016.1 with so many great features and useful bugfixes. Thanks for your warm reception of this update and your great feedback!

Special thanks

Before we move forward, we’d like to thank all of you who evaluated CLion during the Early Access Program, provided feedback and suggestions, and submitted issues to our tracker. Your input was invaluable in making this release stable and feature-rich. Contribution of several evaluators deserves a special gift. We’re giving each of the following people a free 1-year subscription (to extend your current subscription or get a new one):

  • Roman Popov (YouTrack handle: ripopov)
  • Christian Hujer (YouTrack handle: cherriedquat)
  • Dave Yost (YouTrack handle: daveyost)
  • Jan Ekholm (YouTrack handle: chakie)
  • 蓝星灿 (YouTrack handle: lanxingcan)

A personal message will be sent to each of you guys with details on how to obtain your license. (And just in case you do not get any email from us within a week, ping us here in the comments.)

New Roadmap

We spent some time analyzing the current state of the product, the issues in our tracker, and your feedback and suggestions for the new release. This helped us formulate the following plan:

Please note it’s a preliminary plan, so we can’t guarantee that all of the features listed below will be included into CLion 2016.2.
  • Debugger
    • Issues with GDB (timeouts, performance, other issues)
    • Remote debug
  • Project model (CMake)
    • Ability to watch command output during CMake execution
    • Ability to specify the build/generation output directory
    • Support for add_custom_target command
  • Performance
    • C++ code insight performance improvements
    • Formatter performance improvements
  • Doxygen
    We’ll see what we are able to finish before 2016.2 release, while in general we plan to support:

    • Doxygen comments highlighting
    • Integration with quick documentation pop-up (documentation preview)
    • Auto-completion for tags and names
    • Navigation to code symbols
    • Rename refactoring

    Other refactorings like Change Signature with Doxygen comments update, code generation and inspections may also be implemented.

This plan also includes various bug fixes and improvements (especially for C++ language support and refactorings in C++ code), as well as some additional features, that may enter later.

You are probably wondering about project models and Makefiles. The short answer is – no, these will not make it into CLion 2016.2. We still haven’t finished critical work around CMake support, and we are still investigating various options to provide support for other build systems/project models, or even allow opening sources without any build system set inside CLion.

Stay tuned and don’t to miss the EAP launch!

Give CLion a try for free during the 30-day evaluation!

Your CLion Team
JetBrains
The Drive to Develop

Comments below can no longer be edited.

39 Responses to CLion 2016.2 roadmap

  1. Barry Staes says:

    March 24, 2016

    Nice to see it evolving. No Arduino love in the roadmap..?

    • Anastasia Kazakova says:

      March 24, 2016

      Nothing special. However you can find some useful CLion plugins and workarounds via PlatformIO in comments: https://youtrack.jetbrains.com/issue/CPP-364

    • David Zemon says:

      March 24, 2016

      Arduino support is going to rely on external project model other than CMake (unless you use https://github.com/queezythegreat/arduino-cmake). So first you’ll have to wait for a project model other than CMake, the you’ll have to wait for Arduino support on top of that.

      In short… don’t hold your breath. I think it’s going to be quite a while before CLion provides any sort of explicit Arduino support.

  2. Diego says:

    March 24, 2016

    Cool. Waiting for the QT (qmake) projects support.

  3. Roman says:

    March 24, 2016

    Can I give my free subscription code to someone else?

    • Anastasia Kazakova says:

      March 24, 2016

      Yes, you can either use it yourself for prolonging existing subscription or getting a new one (if you don’t have any) or share the code with a friend/colleague.

  4. Roman says:

    March 24, 2016

    Looks like 2016.2 roadmap is more about making existing users happy , rather then attracting new ones (with additional platforms and build-systems support)

    • Dev says:

      March 24, 2016

      A good thing!

    • Anton says:

      March 29, 2016

      I’m happy that they announced many performance improvements, especially with the debugger. New features could be impressive, but the IDE, at least, must have polished the general ones: code editing and debugging.

  5. Olof says:

    March 25, 2016

    Under cmake support I see that you are saying that you’ll add add_custom_target.

    Listing it here it seems as if there should be a larger implication that I as a cmake n00b probably is missing.

    Is it some sort of flexible external action launcher? If so, what are some things you think can be done? If not, what is it?

    • Roman says:

      March 25, 2016

      Idea is the same as with Makefile targets. If you know Makefiles, you should understand targets, outputs, dependencies ect.

      I use add_custom_command and add_custom_target to:
      1) Run C/C++ code generators before C/C++ build. Common case is flex/bison and other parser generators.
      2) Supporting builds for new languages (other then C/C++) .

      • Anastasia Kazakova says:

        March 25, 2016

        Thanks Roman for the answer. Indeed these are nice use cases for add_custom_target.
        In general it can be used to call any command. So there are plenty of use cases.

        I’d like to add also that add_custom_target is currently widely used for various projects like PlatformIO and others. In case of PlatformIO for example it works the following way: PlatformIO doesn’t use CMake, make or other built-in tools from IDE/host OS. It has own cross platform build system, own pre-built tool chains for specific development platform for cross compiling. When user presses “RUN”, then CMake just calls “platformio run”, which is equal for “Make” to “make build”. So from one side it works with all the specific provided by PlatformIO, from the other – there is a correct CMake project.

        add_custom_target is also used in the projects like https://github.com/MITK/MITK and many others.

        The main problem is that currently the source files specified inside the custom target are not handled correctly as project files in CLion.

    • Marcus says:

      April 1, 2016

      If you use add_custom_target to generate files in CLion today then you need to give it some “Reload CMake Project” love after the first build of the day (or any build that radically changes the auto-generated files) otherwise the parsing is all messed up.

      Also, any files auto-generated in this way (that exist off the CMAKE_CURRENT_BINARY_DIR directory) show up in the project tree off the root node which is a little odd (especially when you have hundreds of them like me)

      I’m assuming that 2016.2 will clean this lot up a little.

  6. Sebastian says:

    March 25, 2016

    I didn’t read anything regarding Preprocessor support, are you planning to finally support the ## operator in CLion?

    • Anastasia Kazakova says:

      March 25, 2016

      Such things are mostly included in the section for C++ language support bug fixes. Do you mean this https://youtrack.jetbrains.com/issue/CPP-2268? We’ll consider it in our queue. Upvote to increase the priority.

      • Sebastian says:

        March 30, 2016

        Thats exactly what I meant. Not having this implemented causes CLion to flag methods as unused because their usage is hidden by the ## operator and its also not possible to navigate to the method declaration or to find the definition through the “Find Usages” action. Also this is required for Google Test support: https://youtrack.jetbrains.com/issue/CPP-4777

        It would be great if you could achieve full preprocessor support in one of the next releases.

        • Anastasia Kazakova says:

          March 30, 2016

          Thanks. We’ll try to fit these problems into the queue. Don’t forget to upvote the tickets to increase their priority.

  7. John says:

    March 27, 2016

    I am super excited for 2016.2 now, for me you guys are hitting the killer features your customers have asked for (remote debug/add_custom_target and Doxygen). Thank you for taking your issue tracker votes seriously (it’s one of the things about how Jetbrains works that I think sets it apart from other companies in this space).

    Will be one of the first to try out a 2016.2 EAP.

    • Anastasia Kazakova says:

      March 28, 2016

      Thank you very much. Stay tuned!

  8. Vladeta Ljubisavljevic says:

    March 31, 2016

    This will make one existing user happy 🙂

  9. Nick says:

    April 4, 2016

    Please also start exploring the Linux on Windows capabilities that were anounced in MS build 2016. The option of using the native gcc compiler (instead of mingw), and creating/debugging ELF executables on windows would be amazing.

    • Anastasia Kazakova says:

      April 4, 2016

      Sure thing, we are excited by the announcement and will see what we can do.

  10. RiaD says:

    April 4, 2016

    Hi,

    Just wondering, are issues like CPP-4545, CPP-2394, CPP-1727 (the last one was created probably during private beta) are planned as “various bug fixed” or one shouldn’t expect them to be fixed in the next version?

    • Anastasia Kazakova says:

      April 4, 2016

      C++14 is unlikely coming to 2016.2, and also some concerns about user-defined literals. We still have some bugs to fix that are more important than adding some new staff. However, we’ll take a look at this if have some free resources. Thanks for reminding!

      • RiaD says:

        April 6, 2016

        Thanks for your answer

        Well, problem with this “new staff” is that it often bugs not only the places where these features are used, but up to all other code
        (When one error causes more and more errors)
        like literal is not supported -> type of variable detected wrong -> method calls are marked inaccessible.
        literal used 2 times in the statement -> most of the code is marked as unreachable
        As for me, basic editor features (like correct code highlighting) is the most important thing in any IDE

        Hope you’ll have some free resources then.

        • Anastasia Kazakova says:

          April 6, 2016

          Thanks. You are right and we completely understand that. From the other side we have to have some priorities because of the lack of the resources. So these are in our plans but not in the first row.

  11. Olof says:

    April 7, 2016

    Is the remote debugging the start of a plan to work towards supporting the remote toolchain? Or do you all think of it as a standalone feature?

    CPP-744 I think it is.

    • Anastasia Kazakova says:

      April 7, 2016

      We’ll start with the attach to remote process. And then think about remote toolchain. Can’t estimate now how much will make its way to 2016.2. Most likely the first part for now. But we’ll see

  12. xing says:

    April 13, 2016

    Glad to here that.
    Current version is still bunch of bugs, especially when it comes to macros.

    • Anastasia Kazakova says:

      April 13, 2016

      Could you please specify which exactly problems do you mean? Are they submitted to our issue tracker?

  13. Pier says:

    May 12, 2016

    Hi,

    When is 2016.2 scheduled to be released? Just wondering because I just purchased the license for a year 🙂

    • Anastasia Kazakova says:

      May 12, 2016

      It’s planned for this summer, Jul-Aug approximately.

  14. Marek Lukáš says:

    June 16, 2016

    I’m still waiting for a proper C project support. Even though CLion is called C/C++ IDE, it’s rather difficult to start a new a C project.

  15. Liam Coughlin says:

    July 4, 2016

    C++ does not exist in my universe … any love for us place c developers ( maybe better c11 support, atomic.h for example…)

  16. Joel May says:

    August 29, 2016

    Webassembly! Webassembly! Write code, compile, debug, navigate. Visual Studio is default IDE for C++ on Windows, Xcode is default on Mac. CLion could be default Webassembly IDE.
    I tried setting up CMake in CLion for webassmbly myself, but I was going down the infinite rabbit hole and gave up. While waiting for webassembly to become fully available, you could also support emscripten.

    • Vincent D says:

      July 25, 2017

      Make a ticket in youtrack.
      I’ll upvote !

Subscribe

Subscribe for updates