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

The Drive to Develop

image description