What’s New

CLion 2016.2 is the second update for our cross-platform C/C++ IDE this year that brings remote GDB debug, Doxygen support and new code generation options, in addition to various bug-fixes and improvements.

Doxygen support

Doxygen Viewer

Doxygen-styled docs viewer

If a project includes Doxygen-styled documentation, you can easily preview it in the Quick Documentation pop-up Ctrl+Q. It includes Doxygen-styled information (parsed and formatted) along with the type information.

Doxygen Rename

Safe Rename

Rename Shift+F6 a function or its parameters and be sure CLion will update the corresponding information in the Doxygen comments for you.

Doxygen Completion

Completion

When writing Doxygen comments, benefit from auto-completion for Doxygen commands and function parameter names.

Doxygen Comments Generation

Doxygen comments generation

Stubs for Doxygen comments can be generated automatically with CLion. If your function has parameters, returns a value or throws an exception, type “/**”, “/*!”, “///” or “//!” and then press Enter to generate a Doxygen stub for the function.

Read more about Doxygen support

Code generation

Generate operators

CLion is ready to help you with boilerplate code. With version 2016.2 generate equality, relational and stream output operators in one click. Select std::tie, 'generate as class members' and other options as necessary.

Read more

Generate definitions

A new setting called Generate in-place makes the Generate Definitions dialog more flexible. The defaults for this setting depend on your code, and heuristics are implemented to support the most common cases (like header-only or cpp-only classes).

Read more

Complete Statement

Complete Statement

With the updated Complete Statement Shift+Ctrl+Enter in CLion, parentheses, braces, semicolons, quotes, etc. are inserted as necessary and the caret is moved automatically so you can start typing the next statement.

Read more about Complete Statement

Debugger

Debugger Improvements

Performance improvements

Along with plenty of correctness and ‘command timeout’ fixes in the debugger drivers (both GDB and LLDB), this version brings changes that affect debugging startup/shutdown, stepping with various data views, and expanding big data structures. For many of them performance has been improved greatly.

Read more about the changes

LLDB on Linux

LLDB on Linux

LLDB is now available not only on macOS, but on Linux as well. Select between the bundled GDB or LLDB, or a custom GDB version.

Attach to local process is now possible on Linux with either LLDB or GDB.

Remote GDB debug

CLion 2016.2 supports remote debugging with GDB/gdbserver. Start the program under gdbserver on target machine, and then connect to it from CLion running on another one (macOS or Linux). Inspect the code using breakpoints, expression evaluation, watches and other benefits of the IDE’s built-in debugger UI.

Read more about remote debug

Watches and Variables

The Watches view has been merged with the Variables view so you no longer need to switch between them. But if you feel more comfortable with the previous layout, feel free to switch this mode off and keep things as they are.

CMake support

Coding assistance

Writing CMake files gets easier with code completion and navigation actions such as Go to declaration/definition for user symbols in CMake (like functions or macros). Also, you can now view Quick Definitions Shift+Ctrl+I for such symbols.

Rename for users symbols

In addition to coding assistance, CLion 2016.2 supports Rename refactoring Shift+F6 for user symbols in CMake. This results in safer renaming for such symbols as CLion updates all the usages automatically.

Safe delete

Get CMake commands updated automatically when you delete files from your project. CLion will either remove the file reference from the command arguments, or warn you about a possibly incorrect command after deletion.

Live templates for Boost

CLion 2016.2 adds an updated boost template, as well as a new boost_with_libs that helps link your target with Boost libraries.

CLion environment variable

In order to detect if CMake on your project was run from CLion, and if so, set special variables/paths or execute some additional scripts of your choice, CLion 2016.2 sets an environment variable (CLION_IDE) that you can check in your CMake files.

Auto-completion for environment variables helps you type them easier.

Code style

New code style settings

With plenty of formatting settings available in CLion, you’ve always been able to flexibly configure your preferred code style. CLion 2016.2 adds a few new settings to fine-tune wrapping for lines after function return type, lambda capture list, and in << and >> operators.

LLVM/LLDB code styles

Predefined code styles provide you with ready-to-use code styles, or can be used as a basis for your custom style. In the 2016.2 release, you get LLVM and LLDB styles.

Editor

Ligatures

To use fonts with ligatures (e.g. FiraCode, Hasklig, Monoid or PragmataPro) now go to Editor | Colors & Fonts | Font settings, choose a corresponding font, and select the ‘Enable font ligatures’ option.

Editor background

Customize the look of your editor in CLion 2016.2 by calling Set Background Image action from Find Action Shift+Ctrl+A. Select an image, configure its settings in the dialog, and enjoy your custom background as you code.

Tool windows

Alphabetical sorting in Structure View

Structure view Alt+7 lets you navigate across the structure of the current file. By default, its entities are grouped by type (namespaces, structures, classes, etc.) in the same order as the original file. CLion 2016.2 adds the option to sort them alphabetically, which makes more sense for long files.

Inspections tool window

The updated Inspection window gives you an immediate code preview and allows you to apply a quick-fix or suppress the inspection in-place.

VCS

Unversioned files

Now it's easier than ever to remember about important files not yet under version control when committing. CLion shows them clearly in the commit dialog.

Log viewer

Working with Log viewer becomes more enjoyable thanks to these changes for Git and Mercurial:

  • Tooltips are shown with target commit information for arrows.
  • The IDE now loads the contents of the Log viewer in the background on every change (commit, fetch, rebase, etc.), so it’s always ready when you open it.
  • Commit details are shown for several selected commits.
Patches

To help you work with patches more effectively, we’ve implemented a couple of useful features in CLion 2016.2:

  • You can now apply a patch directly from the clipboard or drag a file into the IDE.
  • The ‘Apply patch’ dialog provides you with a Show Diff action to check the changes over your local version (with the ability to introduce local changes).
  • The IDE helps you apply patches to files that were already moved or renamed.
Case-only renames

CLion adds support for case-only renames in Git for Windows and macOS. This means that if you only changed the case of some letter while renaming a file (or folder), such a change will be previewed and committed successfully from the IDE.

Other improvements

  1. Supported and bundled toolchains versions were updated:
    • bundled GDB version updated to 7.11;
    • bundled LLDB (on macOS and Linux) version updated to 3.8;
    • maximum supported version of MinGW-w64 is 5.* and Cygwin updated to 2.*;
    • bundled CMake version updated to 3.6.
  2. CLion for Windows now bundles a customized JDK with font-rendering and focus fixes from the JetBrains team.
  3. Swift plugin for CLion adds Swift 2.2 support, Introduce Variable refactoring and argument placeholders for Swift. Read more.
Learn about CLion 2016.1

C++ language support

Variadic templates

Variadic templates

C++ parser in CLion 2016.1 finally supports variadic templates. This also brings lots of related fixes for code resolve and analysis, as well as makes it possible to handle correctly Qt C++11 connect calls usages.

Auto-import

Auto-import

The auto-import functionality for STL symbols has undergone a massive overhaul. Symbol completion and import quick-fix now generate correct STL imports.

Quick documentation improvements

Quick documentation improvements

Quick Documentation Ctrl+Q popup now provides extra details covering lambda expressions, namespace aliases and explicit instantiation, as well as links to the referenced types.

Read more

Code generation

Generate definitions

Generate definitions

In case you have a function declaration, you can generate definition quickly with a new action - generate definitions Shift+Ctrl+D. Choose destination for the newly created definition or generate in-place if invoked inside the class.

Generate intention

Corresponding action is also available via intention actions list.

Generate in-place

Generate in-place

Override/Implement now generates code in the place where the caret is positioned, asking for destination in case of multiple choices. That means 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.

Read more

More languages, more power

Python

Python

For your mixed Python/C/C++ projects, CLion 2016.1 brings intelligent Python assistance, a Python console, and debugging and testing tools.

Read more and watch the demo

Swift

Swift

Make CLion your Swift IDE on Linux, now made possible with Swift support plugin. Smart coding assistance with refactoring and code generation, and even debugging are included.

Read more and watch the demo

RTL language support

RTL language support

Right-to-left languages (Arabic and Hebrew) are now supported in the editor.

Files & directories under your control

Mark directory as

Mark directory as

Independently from the CMake project structure, mark directories manually as libraries, project sources and headers or excluded directories. This will affect indexing along with code generation, refactorings, and more.

Read more

Remote Host Access

Remote Host Access

With the new bundled plugin in CLion, synchronize your sources with the remote host by FTP, FTPS, or SFTP whenever needed.

Read more

Unit testing

Unit testing

CLion 2016.1 automatically creates a Google Test configuration if your CMake target is linked with gtest. This makes using built-in test runner much easier.

Debug

Debug

Attach to local process

Use the power of CLion’s built-in debugger UI to debug processes running on the same machine as CLion, by attaching to them based on their pid or process name.

Read more

CMake

Reset CMake Cache

Reset CMake Cache

New CMake action ‘Reset Cache and Reload Project’ allows you to clear the CMake Cache without dropping all of IDE indexes and caches.

VCS

Reset CMake Cache

By-word diff

By-word difference highlighting makes diff viewing easier and clearer.

In case you have multiple working trees per a single repository, you can now work with them in CLion and find the updated look and feel Git Log tool window.

Checkout with Rebase git action appeared in this version and could be helpful in case you want to rebase a feature branch on master.

If using Mercurial, now you can compare file revisions between branches.

Other improvements

  1. Edit custom properties/VM options at no additional cost: just select Help | Edit Custom Properties... or Edit Custom VM Options… CLion will automatically suggest the appropriate files to be created.
  2. CLion 2016.1 includes a long list of fixes and improvements in the bundled YAML support plugin.
  3. CLion (together with other IntelliJ-based IDEs by JetBrains) has migrated to Java 8 as the target platform. Read who will benefit from it and how.
  4. Following our custom bundled JDK on macOS, CLion 2016.1 includes custom bundled JDK on Linux, fixing font rendering issues there. Those who still prefer launching with other Java distributions, can invoke Find Action (Shift+Ctrl+A) and type Switch IDE boot JDK there.