CLion 2017.1 roadmap

Hi everyone,

Just recently we’ve released CLion 2016.3. It brings dozens of C and C++ language improvements (including user-defined literals (C++11) and digit separator (C++14) support, as well as C11 keywords completion), remote debug on Windows platform, CMake changes, semantic highlighting and much more.

Special thanks

Now we’d like first to thank our evaluators! Your help in making this release stable and feature-rich is greatly appreciated. And as usual, we’d like to reward several contributors whose input was most valuable during this release cycle:

  • Alexey Klimkin (YouTrack handle: klimkin)
  • Robert Hölzl (YouTrack handle: mrh1997)
  • Roger Dubbs (YouTrack handle: rogerdubbs)
  • Anon Anonchik (YouTrack handle: aanonchik)

You’ll get a free 1-year subscription for CLion (to extend your current subscription or get a new one). 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.)

Further plans: 2017.1 and not only

The new release is not the end of the road, but just another step. It’s time to move forward.

Note: The following is a preliminary plan; we cannot guarantee that all of the features listed below will be included in CLion 2017.1.

Analyzing the feedback we’ve got on CLion 2016.3, we think we need to first concentrate on CMake workflow updates. The following changes are planned and might be (if possible) back-ported to 2016.3.x updates:

  • Exclude CMake generation directory from version control and find usages (CPP-4300).
  • Add ability to change CMake defaults (CPP-1887). The most popular case here is to have a default generation directory configured for all user projects.
  • Bring back the ability to add additional CMake configurations (CPP-3159). Right now it’s only possible to switch them in Settings | Build, Execution, Deployment | CMake. However, we consider making a UI to add any number of configurations to a project. In addition, a switcher to exclude the configuration from indexing could probably be useful for configurations that are not used for code editing.

The new year should bring even more exciting changes to CLion, including but not limited to:

  • Language support:
    • More C++14 coming to CLion. You can check what’s left on this new webhelp page.
    • Initial support of C++17. As the new standard is coming, we will already accommodate some of its features in CLion 2017.1: nested namespaces (CPP-3623) and initializers in if and switch statements (CPP-8234) will likely be among the first.
  • Indexing and resolve:
    • GCC 6 support that requires proper handling of #include_next in CLion (CPP-3821).
    • Support for precompile headers and -include (CPP-53).
  • Code analysis:
    The plan here is to add more of the so-called modernize C++14 intentions, which could help make your code modern and nice. We are going to take a look at what’s available in clang-tidy tool. All your ideas are kindly welcome under this ticket.
  • Refactorings:
    The main goal is to make refactorings in CLion more reliable and accurate. For this iteration we plan to focus on a couple of particular actions, most likely Extract Variable and Inline, and fix many issues around them. If you experience any, don’t hesitate to share with us in our tracker (CPP-1247, OC-9791).
  • Toolchains: Microsoft compiler support
    Yes, we are finally going to introduce MSVC support in CLion. This will include:

    • Ability to use MSVC to compile your project in CLion.
    • Support for NMake generator in CMake.
    • Specific language extensions.
  • Debugger:
    We were planning to add a debugger assembly view in 2016.3, but didn’t manage to get it in. This work is ongoing and the view will be introduced in 2017.1.
  • Unit testing: Catch support

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

Your CLion Team

JetBrains
The Drive to Develop

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

33 Responses to CLion 2017.1 roadmap

  1. Olof says:

    Hi,

    I saw that you are adding support for NMake. I’d like to lobby for ninja support.

    And here’s how I’m going to sell it. There’s a lot of work to do with regards to MSVC before you really get to the NMake stuff. You can gain valuable experience with non make formats by implementing ninja support which can be done independently of the MSVC support.

    /lobbying effort

    :)

    • Anastasia Kazakova says:

      We are going to have ninja generator sooner or later (we’ve already looked at it and understand what needs to be done). MSVC is just impossible without NMake, so we’ll have to add it anyway.

      • anon says:

        We build and debug in Qt Creator using ninja and MSVC compiler. NMake is way too slow. So not sure what’s impossible about it?

        • Anastasia Kazakova says:

          We plan to support ninja generator in future. But for now we have some more tasks of higher priority. And ninja support will require some additional job, as ninja generator output doesn’t provide all the necessary information for us about the project.

  2. Sidney Just says:

    MSVC support is great news, especially as someone who has to dabble with DirectX 12 on a semi-regular basis. Also, assembly view, this is HUGE! I can’t begin to tell you how excited I am for the upcoming year.

  3. Sergey Sokolov says:

    Oh, that’s so nice of JetBrains to appreciate YouTrack contributors :)
    Looking forward to 2017.1!

  4. Thynson says:

    Still there are some code resolving issue red my code:
    CPP-7266, CPP-4902, CPP-6780

    • Anastasia Kazakova says:

      Thanks for reminding us about these problems. We’ll keep an eye on them and see where in the queue they can be placed.

  5. Andrew Somerville says:

    Biggest issue preventing me from getting more from my team onto Clion is VA_ARGS code resolving issue.

    Please, pretty please, can this be on the list for 2017.1?

    https://youtrack.jetbrains.com/issue/CPP-7353

    It even includes a minimal (~10 line) independent compilable example of the issue, as well as a screen shot showing exactly where Clion is having trouble.

  6. Ivan says:

    Please remember the Build Sytem API you mentioned a while back. I sure there are many teams willing to pay for Clion if only it supported their particular build system.

    • Anastasia Kazakova says:

      We are sure too, however we still not ready for the open API. Hopefully in 2017 we can come up with some solution.

  7. Sebastian says:

    Congratulations on the 2016.3 release.

    I would like to renew my lobbying for improvements of the preprocessor, especially the ##-operator:

    https://youtrack.jetbrains.com/issue/CPP-2268

  8. AnonAhonchik says:

    Wow, second free subscription for one year. Thank you guys 😉

  9. patlecat says:

    I wanted to use CLion for such a long time but lack of support for any current compiler suite held me back alas. Glad you at least are going to support MSVC and GCC6, I hope you will also support CLANG 3.9 soon too.

    Luckily I’m not one of those poor sods that are forced to use GCC3 by their employer indefinitely hahaha, so I rely on support for the latest compiler suites. Because when you start a new project today, it means that by the time you’re going to release it, the compiler will be supported by the Linux distros by then. And on Windows it’s never a problem anyhow to use the latest and greatest! With UE4 it is actually even required by Epic.

    • Anastasia Kazakova says:

      What’s the problem with using clang 3.9 in CLion? It should work. If you meet any issues, please, report to us.

  10. HGH says:

    Don’t forget to add structured bindings among the first C++17 features.

    BTW. Will CLion support tree representation of cmake files structure?

  11. Nick Soms says:

    What about autotools, make support?

    • Anastasia Kazakova says:

      Not for 2017.1, sorry.

      • Mark Davis says:

        When are we going to see Makefile support, or even someone from jetbrains address it from a roadmap perspective, other then just saying not in the next release?

        The Makefile support ticket CPP-494 (the highest voted issue currently with 576 votes) has been open since July 2014 and it stops a lot of projects from being moved to or used in CLion.

        I am glad to see you are adding MSVC support (which had 132 votes and was opened in 9/2014) and the other new features, but IMO makefile support is a fundamental requirement of even a basic C/C++ IDE.

        I don’t feel it is too much to ask for you tell us when on the roadmap it is planned. Or if you aren’t doing it, just be honest with us, close the ticket and say you are not doing it.

        • Anastasia Kazakova says:

          Hi Mark,

          We are not closing the ticket as we still planning to add it. And we are still collecting the feedback in comments there to understand how to implement it properly and what exactly should be implemented.

          However, looks like it requires a significant effort and we are still not ready to start it right now. Partly, because the resources are limited, partly because some other tasks look more important for us now, partly because we are still restructuring the project models support part in CLion (that should be done prior to another project model added).

          So the feature is not planned for 2017.1, but hopefully can be addressed in 2017.x. At least, we’ll do our best to have it on board, but still can’t promise anything at this stage.

    • Dennis Schridde says:

      CLion is a great IDE, but without proper support for the autotools projects I work on, I can not make use of it (and hence not buy it).

      Is it possible to pre-order a license, to be paid and shipped as soon as this feature is implemented, in order to give your team more incentive to work on this?

      • Anastasia Kazakova says:

        We don’t have ability to make a pre-order, moreover estimations for Makefiles and autotools are not clear yet. And it’s not a question of money or smth. We first need to finalize other important work, before we can start any alternative build system.

  12. Garag says:

    Please add support for cross compiler and debugging. It would be great if CLion support gcc for ARM (Cortex M) not only with compiler but also with debugger.

    • Anastasia Kazakova says:

      You can pass the compiler via CMake and as for debugger – any custom GDB will work most likely. Have you tried it?

  13. Jorge Miranda says:

    What about remote building? Are you considering it for 2017? I think it is one of the most voted requests (https://youtrack.jetbrains.com/issue/CPP-744) on the CPP track. Definitely would make a lot of developers happy. Please, don’t forget it! :)

  14. Maksim says:

    Please add the following features:
    1) Gradle support.
    2) Ability to stop/freeze particular thread.
    3) Ability to reattach to the process with the same name again (for JNI debugging).
    4) Ability to open the same project in two separate windows (for debugging).
    Currently, I need a copy of a project or two different version of Clion IDE for this.

Leave a Reply

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