CLion 2016.1 released: Better language support and new dev tools


It’s a big day today, since we are rolling out CLion 2016.1 release. Please, welcome!

This is the version that was previously tagged 1.5 – we hope our new versioning scheme doesn’t confuse you too much.

We’re nearly done with the announced roadmap, though some CMake items are left for future updates. Many extra features have also found their way into this release. Read on for more details, and then download and try the new version right now!


C++ language support

This release brings long-awaited support for variadic templates (C++11). With the related fixes in the function overload resolution, this makes it possible to resolve the code correctly and avoid many false positives in code analysis. This also means that Qt C++11 connect calls are resolved correctly in CLion:
Auto-import has been improved greatly for symbols from STL, and the quick documentation popup (Ctrl+Q on Linux/Windows, F1 on OS X) now shows lambda expressions, namespace aliases and explicit instantiation, as well as accurately redirecting hyperlinks:

Code generation

In addition to Override that generates stubs for virtual member functions from any of base classes and Implement that overrides pure virtual functions from base classes, we’ve added Generate definitions (Shift+Ctrl+D on Windows/Linux, ⇧⌘D on OS X) which, as you would expect, generate definitions for existing declarations (in the previous versions you could use Implement action to get it). All three actions now put the code in the place the caret is positioned, in case it’s inside the class, or ask for a destination (if several options are available):
Thus CLion 2016.1 makes the code generation behaviour quite simple and straightforward – if you want the function to be generated in a header file – locate the caret in that class in your header file, and if you want it in the source file – execute action there.

‘Generate definitions’ can be called up in three different ways:

  • By pressing Shift+Ctrl+D on Windows/Linux, ⇧⌘D on OS X.
  • Under the Generate menu (Alt+Insert in Windows/Linux, ⌘N on OS X).
  • As an intention action (Alt+Enter).

Read more details in the corresponding blog post.

CMake and directories control

On the CMake side, a new feature called Reset CMake Cache is now available which allows you to clear the CMake Cache without dropping all of IDE indexes and caches.

Sometimes your project folders may contain binaries, logs, generated data or build artifacts (that you surely don’t want CLion to index) or simply libraries (that you don’t want to touch with refactorings). To handle this, a new feature was introduced – ‘Mark directory As’, which allows you to manually set directory as:

  • Excluded
  • Library files
  • Project sources and headers

Read how code completion, code generation, navigation and search features and refactorings are working for each of these cases.

The bundled Remote Host Access plugin will help you synchronize your sources with the remote host from time to time, for example if you develop on one machine but build/run on another. You can configure a FTP, FTPS or SFTP server together with the path mappings and excluded paths (to avoid downloading/uploading any files in particular):


In case you have a process running locally on your machine that you’d like to debug, you can do this within CLion. You just need to have the sources and open them in CLion, then call Attach to local process (from the Run menu or Find Action dialog) – and benefit from the built-in debugger. Processes can be searched by process name or process pid: just start typing and select a match from the list:

New languages

CLion 2016.1 comes with support for two additional languages: Python and Swift. The Python plugin is bundled into the IDE and is on by default. To easily start working on your mixed Python and C/C++ code project, install the Python SDK and point CLion to the Python interpreter for your project.

The feature set corresponds to the PyCharm IDE Community Edition and includes all the essential Python editing features, like code completion, formatting, navigation, etc., as well as Python refactorings, code analysis, and running/debugging/testing the Python part of your project. Get more details and watch a demo in this blog post.

Another addition is support for Swift language. As Apple has open sourced Swift, developers on Linux can now try the language, and for their work an IDE is essential. CLion is cross-platform, so version 2016.1 can be used as a Swift IDE on Linux. You can find the plugin in our repository.

The feature set of the Swift plugin comes from AppCode (our IDE for iOS/OS X development which is based on Xcode toolchain and runs on OS X only). Swift code can be properly highlighted, formatted and completed; navigation and search actions are also available. If you’re looking for more high-level features, welcome the familiar Rename refactoring for Swift:

The plugin also includes Override/Implement for functions and protocols, and a built-in debugger. More details and short demo can be found in a related blog post.

Other improvements

Other fixes and enhancements in this release include:

  • By-word difference highlighting option.
  • Support for multiple Git working trees and Checkout with Rebase Git action.
  • Right-to-left languages (Arabic and Hebrew) are now supported in the editor.
  • Automatic detection of Google Test configurations on project loading.
  • Custom bundled JRE on Linux with fixes from the JetBrains team.
  • And lots more.

To learn more, please visit the What’s new in CLion 2016.1 page on our website, view our demo below and download CLion for your operating system.

Try CLion 2016.1 now and let us know what you think in the comments section below!

The CLion Team
The Drive to Develop