What's New in CLion

CLion 2020.3 brings significant, eagerly anticipated improvements to key parts of the development process – code analysis, running and debugging applications, and unit testing. For embedded projects, CLion now comes with initial MISRA C and C++ support. And Qt users can benefit from IDE features tuned specifically for working with Qt code.

Debugger

Debug as Root

CLion 2020.3 can run and debug your application with root privileges – you just need to select this option in the corresponding Run/Debug configuration. This works for CMake, Makefile, Gradle Native, Custom Build, and CTest applications.

Debugging with Core Dumps

Debugging with Core Dumps

A new Run | Open Core Dump… action available for Linux and macOS allows you to open an existing core dump of a crashed process in CLion and debug it there. Users can inspect the frames and variables view, check the memory and disassembly view, evaluate expressions, and run debugger commands from the debugger console. Read more about this feature’s configuration process and known limitations.

Set Execution Point

Set Execution Point

With a new Set Execution Point to Cursor action, you can move back and forth though your program’s execution while debugging, break loops or restart them, select another branch in an if-else clause or switch-case statement, and even skip loops completely. It is as simple as dragging-and-dropping an arrow in the gutter to the line you are interested in.

Learn more

Interactive hints and Inline watches

Interactive hints and Inline watches

Now when the application is running in debug mode, the editor displays clickable inline hints that you can expand to see all the fields belonging to a given variable. Moreover, you can change the variable values inside the drop-down list or add an arbitrary expression as an Inline Watch to this place in the code.

Run Settings

Configure environment with a script

Configure environment with a script

In CLion, you can now use a script to specify the environment in which a Run/Debug configuration will be launched. You'll find the new setting for this in all Application and Unit Testing configurations.

Edit configurations while indexing

Edit configurations while indexing

No more waiting! Run/Debug configurations can be edited while the project is being indexed.

Unit testing

CTest support

CTest support

CTest, a CMake-specific test runner, is now supported in CLion. This means the list of tests that are run with CTest is detected, and the IDE automatically creates run/debug configurations for them. When tests are launched, the results are presented in the built-in test runner, from which you can debug tests, rerun only failed tests, and much more.

Learn more

Test runner for Google Test

Test runner for Google Test

Version 2020.3 enhances CLion’s support for Google Test, the most popular C++ unit testing framework in the world (Developer Ecosystem Research in 2020 shows that 31% of C++ developers use Google Test).


    Updates include:
  • The full test tree is displayed immediately in the built-in test runner, and then the tests are executed.
  • For parameterized tests, CLion now displays test parameters right in the test tree.
  • Disabled tests (those with the DISABLED prefix in their names) are now also shown in the test tree with the corresponding icon.

Code analysis and refactoring

MISRA

MISRA C and C++

CLion 2020.3 brings partial support for MISRA C 2012 and MISRA C++ 2008, guidelines used widely in embedded development and especially in the automotive industry. This support speeds up the development of such projects by revealing incompatibilities earlier in the development cycle. The list of currently supported checks is available on CLion’s Confluence page.

Unused value

Unused value

CLion 2020.3 improves the Unused Value inspection, which catches situations where a variable value is never used after it has been assigned. It can now also be tuned to follow the style that recommends using default variable initializers. A new option to turn the inspection off in such cases has been added to the settings.

Extract Lambda Parameter

Extract Lambda Parameter

A new Extract Lambda Parameter refactoring has been added to CLion. It extracts an expression or statement into a new parameter with a lambda expression passed as a corresponding argument. The statement could, for example, be a comparator passed to a sorting function.

Watch Extract Refactorings in Action

Code completion

Clang completion snippets

Clang completion snippets

Clang completion snippets help you insert common constructs when C++ keywords are typed. In some cases, when completing a typedef keyword, for example, code completion can suggest not only the keyword itself but also stubs for the type and the new name.

Completion for templates

Completion for templates

CLion 2020.3 improves code completion, as it now works much more accurately with template types. For example, completion options are displayed for container elements and iterators in the function template.

Qt projects

Create a new Qt project

Create a new Qt project

The New Project dialog suggests the Qt Console Executable and Qt Widgets Executable project types. You can also select the Qt CMake prefix path, the C++ language standard to be used in the project, and the Qt version. The new project is generated using the corresponding templates.

Create a new Qt UI Class

Create a new Qt UI Class

A new QT UI Class item in the New menu (Alt+Insert) helps you simultaneously create a Qt class along with a .ui file. Fill in the class name and select the parent class (QWidget, QMainWindow, or QDialog). .h/.cpp/.ui files will be generated using the Filename base as their file names. The generated files follow the templates listed in Settings/Preferences | Editor | File and Code TemplatesQt Class, Qt Class Header, and Qt Designer Form.

Complete signals and slots

Complete signals and slots

Signals and slots are central features of Qt, as they are the entities used for communication between objects. CLion now understands when signals or slots have to be completed, and it filters only the corresponding members in the completion dropdown.

Auto-import in Qt style

Auto-import in Qt style

Auto-import suggestions in Qt projects in CLion 2020.3 are tuned to follow the most commonly used style for Qt.

Makefile projects

Support for projects using libtool, dolt, and ccache

Support for projects using libtool, dolt, and ccache

Makefile projects using various wrappers like ccache, libtool, dolt, slibtool, and jlibtool can now be successfully loaded in CLion. Read more about some of the limitations that remain.

Run/Debug configurations

Run/Debug configurations

Setting up a Makefile project in CLion is now even easier – the Run/Debug configurations are created automatically for the targets in the top-level Makefile when loading the project. Now to run and debug, you just need to point the configuration to the built executable.

Learn more

Recompile single file

Recompile single file

The Recompile action (Ctrl+Shift+F9) helps speed up the development process by compiling a single file without building the whole project. It now works for Makefile projects, too!

CMake

Enable/Disable CMake Profiles

Enable/Disable CMake Profiles

With CLion 2020.3, it’s now possible to keep several CMake profiles configured in CLion while disabling the ones that are not currently in use. This improves the project loading times and saves from the redundant failures from temporarily unavailable profiles (like for the remote configurations which are currently shut down). The option is available from the CMake tool window and the CMake Profiles settings dialog.

Learn more

VCS

Git tab in Search Everywhere

Git tab in Search Everywhere

The Search Everywhere dialog now includes a Git tab. It helps with finding commit hashes and messages, tags, and branches. You can also perform simple mathematical calculations in the search field.

UI updates

The VCS menu is now named according to the version control system in use. We’ve made the menu more concise, removing all but the most useful actions for versioning your project.

Additionally, now the two most popular buttons – Commit and Commit and Push… – are explicitly shown on the Commit screen.

Git staging support

You can now stage changes directly from CLion. To enable this feature, go to Preferences/Settings | Version Control | Git and tick the Enable staging area checkbox. Click the + icon to add your files to the new Staged node in the Commit view. You can also stage changes right from the gutter or in the Diff view. To learn more, read our blog post.

Remote development

Automatic update of Exclude paths

Automatic update of Exclude paths

Directories marked as Excluded locally are now automatically marked as Excluded paths for remote toolchains when they are initially being configured. And when changes are made to an already synchronized project, CLion shows an update notification and suggests updating the list of Excluded paths.

Learn the details

Code With Me

Code With Me

CLion 2020.3 supports Code With Me (EAP), a new service from JetBrains for collaborative development and pair programming. Code With Me enables you to share the project you currently have open in your IDE with others, and work on it together in real time. You can download it today from the plugin marketplace (Preferences / Settings | Plugins | Marketplace). Check out these posts to learn more about Code With Me.

UI update

Updates to Welcome screen

Updates to Welcome screen

CLion 2020.3 gets a revamped Welcome screen. The new layout puts the most common operations at your fingertips and gives you immediate access to recent projects, customization options, and plugin settings.

Drag and drop for tabs

Splitting an editor

It’s now possible to split an editor by dragging and dropping a tab to the side of the main editor window. The Open in Right Split action splits the editor vertically upon opening a file.

You can invoke the action from the Project view or from other navigation popups, such as Recent Files and Search Everywhere (Shift+Enter).

IDE theme synced with OS settings

IDE theme synced with OS settings

CLion can now synchronize with your OS theme. To enable this feature, go to Settings / Preferences | Appearance & Behavior | Appearance and tick the Sync with OS checkbox. Click the gear icon next to Sync with OS to select your preferred theme.

Rust plugin update

Rust plugin update

IntelliJ Rust now fully supports Cargo features and allows you to configure them with a smart new UI. Features of a workspace can be toggled on and off with a single click, and the plugin’s code assistance will take these settings into account. Check out the details in this blog post.

Also, the plugin now allows using Rustfmt as the default code formatter. Just set the corresponding checkbox in Settings / Preferences | Languages & Frameworks | Rust | Rustfmt, and the whole file reformatting will employ Rustfmt. For now, if you call Reformat Code on a selection, the IDE’s formatter will be used instead.

The plugin’s project wizard has been enhanced with more templates and the option to use custom cargo-generate templates.

Other updates include the introduction of WebAssembly project support and a new experimental engine for name resolution.

What's New in CLion 2020.2

CLion 2020.2 ensures that a variety of C++ projects are covered by adding Makefile projects and polishing CMake support. It provides better C++20 standard compliance. Code analysis is now more accurate and catches more critical errors, like dangling pointers. Unit testing, code coverage, embedded development, and other areas were also significantly enhanced.

Project models

Makefile project support

Developing a Makefile-based project? Benefit from CLion’s smart features – CLion now comes with Makefile project support out of the box. Open a folder with a top-level Makefile as a project, or directly point CLion to a Makefile in the Open dialog. The IDE will run make (with the --just-print option to avoid running an actual build), parse the output of the make command, and load the project. Check out the details, known limitations, and a long list of projects we’ve tested our approach with in this blog post.

Take a short tour

Enhanced CMake UX

Enhanced CMake UX

The CMake Profile settings under Build, Execution, Deployment | CMake have a newly polished UI, with a few useful tips added for the settings there. In addition, several actions for CMake projects are now available in Find Action, and you can assign a shortcut to any or all of them if you use them regularly:

  • CMake Settings
  • Stop CMake project reload
  • Open CMakeCache file

CMake upgrade

CLion now bundles CMake 3.17 and adds initial support for two of its most recent features:

  1. Ninja Multi-Config: you can now pass the -G "Ninja Multi-Config" generator option to get CLion build files generated for every configuration (note that, temporarily, CLion will still use only one selected configuration for the CMake profile).
  2. CMake precompiled headers: use the target_precompile_headers command to add header files to the PRECOMPILE_HEADERS and/or INTERFACE_PRECOMPILE_HEADERS properties of a target. CLion will treat such precompiled headers correctly.

Take a short tour

Building projects

Recompile single file

The Recompile single file action helps speed up the development process by quickly checking local changes, and it is now available for Ninja and other generators used in CMake and supported in CLion.

Thanks to an important bug fix, CLion can now build multiple independent projects in parallel, without them blocking each other from starting.

Code analysis

Code analysis in CLion 2020.2 got a massive update, increasing the accuracy of many checks and covering more cases. This version also continues the work of polishing the Data Flow Analysis, reimplemented previously on top of the Clangd-based engine.

Dangling pointer

Dangling pointer

Pointers that point to invalid data lead to run-time issues. Typical cases are double-free and use-after-free combinations. CLion now catches such dangling pointers if they appear in the local scope, no pointer arithmetic is involved, and macros are not preventing CLion from performing the analysis.

Simplify

Simplify

The Simplify code inspection is now more accurate and covers more cases. It works for the following types of statements:

  • condition == true.
  • condition1? true : condition2.
  • if(condition1) return true; return condition2;
  • Statements for identical branches.

The cases can be configured separately in Settings | Editor | Inspections | C/C++ | General | Simplifiable statement .

Loop condition is never updated

Loop condition is never updated

This CLion inspection detects situations where a loop condition is not updated inside the loop. It’s similar to Clang-Tidy’s clang-tidy:bugprone-infinite-loop but works for loops with exit points and can handle cases with lambdas or references.

Unused code

Unused code

The Unused code inspection has been massively overhauled. Among other changes, it now works for type aliases, for both globally and locally defined using constructs.

Inspection Widget and Problems View

Inspection Widget and Problems View

Last but not least, we’ve introduced a new Inspection Widget. It displays the number of warnings and errors in the current file and lets you navigate between them with ease. You can also configure the highlighting level (just like you could previously with the so-called Hector icon).

If you click on the Inspection Widget, the Problems View tool window will open (View | Tool Window | Problems). It shows the list of warnings and errors in the current file, helps you navigate to the place in your code where the problem was encountered, and allows you to fix the issues by invoking the Alt+Enter shortcut right from the tool window.

C++20

This year officially brings a new language standard to C++ developers, and CLion already comes with support for many of its features. The language engine in CLion 2020.2 is also generally more stable on C++20 code.

C++20 keywords

C++20 keywords

Newly added keywords are supported by CLion 2020.2 in code highlighting and completion:

  • char8_t
  • consteval and constinit
  • co_await, co_return, and co_yield
Designated initializers

Designated initializers

Code completion in designated initializers now works for fields from a base class.

explicit(bool)

explicit(bool)

The C++20 explicit(bool) construct is now highlighted correctly. It’s also equipped with name hints for condition arguments and is supported in navigation and refactoring.

Range-based for with initializer

Range-based for with initializer

Range-based for loops with the init statement are now supported. This includes refactorings like Rename for variables in the loop.

Constrain a function's result

Constrain a function's result

A new inspection for code that uses Concepts has been added. It suggests constraining local variables declared as auto if the result of a constrained function call is assigned to them.

Unit testing

Doctest support

Doctest support

CLion 2020.2 adds support for yet another single-header framework for C++ – Doctest. Doctest has gained popularity in the community and is now supported by CLion, with automatic test detection, Run/Debug configuration creation, and a handy built-in test runner to display test results. Learn how to configure a set of tests for launch in this dedicated blog post.
Catch2 template tests

Catch2 template tests

These types of tests in Catch2 are now recognized and handled just like the other test types.

Skipping tests in Google Test

Skipping tests in Google Test

The GTEST_SKIP() macro in Google Test provides the ability to skip tests at runtime. This is now supported by CLion.

Code coverage

Code coverage

CLion 2020.2 improves the user experience by adding coverage flags automatically when you click the Run with Coverage button. Now, if your currently selected CMake profile doesn’t include compiler options for coverage, CLion will search for a CMake profile (and create one if not found) with the coverage flags passed via CMAKE_CXX_FLAGS and CMAKE_C_FLAGS.

Embedded development: PlatformIO plugin

For embedded development, we’ve updated a plugin for PlatformIO, bringing significant improvements:

Highlighting in platformio.ini files

Highlighting in platformio.ini files

PlatformIO project configuration files are now highlighted properly, so you can read and update them more easily.

New Run/Debug configurations

New Run/Debug configurations

When a new project is created from the New Project Wizard in CLion, many useful Run/Debug configurations are added automatically. For example, _PROGRAM, _MONITOR, _CLEAN, _TEST, and many others.

CMake Profiles for PlatformIO configurations

CMake Profiles for PlatformIO configurations

CLion now automatically creates CMake Profiles for the CMAKE_CONFIGURATION_TYPES entries in the PlatformIO CMake project.

VCS

Git installed in WSL2

Git installed in WSL2

If you develop with the WSL2 toolchains and use Git on WSL2, you will now benefit from CLion switching between Git executables depending on the project location. It will auto-detect the Git executable from WSL2 for projects opened from there (via \\wsl$ path) and switch all Git-related features to work with it.

GitHub Pull Requests

GitHub Pull Requests

CLion 2020.2 introduces a new and more spacious view for GitHub Pull Requests. It shows all the details of a particular pull request (like messages, branch names, author, assignee, changed files, commits, and timeline) and displays the results of the pre-commit checks. It also helps with many actions like start a review, request reviews, attach comments, or merge pull requests from within the IDE.

Learn more

Go to Declaration or Usages

Go to Declaration or Usages

The Go to Declaration or Usages action (Ctrl+Click / Ctrl+B) behaves differently depending on the case and the IDE settings:

  • When invoked on a symbol usage, it navigates to that usage’s declaration.
  • When invoked on a declaration, it shows the list of that declaration’s usages.
  • When invoked on a definition, it shows the associated declaration or usages. This depends on the settings in Settings | Editor | General | Go to Declaration or Usages.

Performance improvements

A few UI freezes and slowdowns have been fixed. To avoid editor performance degradation, CLion now inserts a backslash on pressing Enter inside the macro definition. The macro definition will quite likely be continued on a new line, so this saves the IDE from redundantly reparsing activity.

Rust plugin update

Rust plugin update

In version 0.3 of the plugin, the new engine for macro expansion, which until now had been experimental, is enabled by default. This engine handles macro-generated impl blocks and module declarations, providing code insight for the entirety of your code, including crates like tokio and async-std. Learn more in this blog post.

Another major update is the introduction of initial debugger support for Rust’s MSVC toolchain. Now you can use the LLDB-based debugger bundled in CLion for the Visual Studio toolchain to debug Rust code built on Windows using Rust’s MSVC.

Other enhancements include new refactorings (Move for files and top-level items and Introduce Constant), initial support for or_patterns, error highlighting in format literals inside macros like println!, rendering for documentation in the editor, inlay hints for chain method calls, and improvements to the debugger workflow in IntelliJ IDEA.

Learn more

Other improvements

  1. The LLDB-based debugger for the Microsoft Visual Studio C++ toolchain maintained by JetBrains has been given a significant number of improvements. The most notable are: debug sessions no longer freeze on stop, threads are now named automatically based on their entry-point function, the debugger gained significant performance improvements, and many freezes and crashes were fixed.
  2. Updated GDB STL pretty-printers are bundled into CLion 2020.2.
  3. From now on, the Clangd-based engine is the default language engine in CLion and the option to turn it off has been removed. Settings | Languages & Frameworks | C/C++ | Clangd now includes information on the LLVM Clang revision used, so you will know what to expect in terms of C++ support and built-in Clang-Tidy checks.

What's New in CLion 2020.1

Embedded Development

IAR Toolchain

IAR Toolchain

If you use the IAR compiler/toolchain in your embedded projects, you can now do so in CLion. Collecting compiler information no longer fails, which means projects using the IAR toolchain load successfully and work in CLion.

A few things to note here:

  • MinGW is required.
  • A few tips on using CMake with IAR Embedded Workbench.
PlatformIO

PlatformIO

PlatformIO is a new generation ecosystem that is gaining popularity quickly. To benefit from it in your embedded projects, take advantage of a new PlatformIO for CLion plugin, which:

  • Adds the PlatformIO project type to the New Project wizard.
  • Generates the corresponding PlatformIO CMake-based project.
  • Automatically creates configurations for debug and upload.
  • Allows for debugging with the PIO Unified Debugger from CLion right on chip.

And much more! Check the official documentation for details.

CUDA support

Code parsing and code assistance

Code in CUDA C and C++, including all CUDA specific extensions, is now parsed and highlighted correctly. This means code navigation, code documentation, and other code assistance actions work in CUDA code. Additionally, CLion can complete angle brackets for kernel calls.

Let's clone the ClaraGenomicsAnalysis project from GitHub and check out what CLion is capable of in terms of CUDA support.

New Project wizard

New Project wizard

The New Project wizard in CLion has been updated with a new option to create CUDA projects – libraries or executables. When selected, it generates sample CMakeLists.txt and main.cu files for you.

File extensions and CMake targets

File extensions and CMake targets

New supported CUDA file extensions – .cu and .cuh – are available in the new C/C++ file creation dialog. And the list of possible targets to update in this dialog includes both general CMake and CUDA specific targets (created with cuda_add_executable and cuda_add_library commands).

Learn more

Development on Windows

Clang-cl

Clang-cl

We have now made it possible to use clang-cl in CLion on Windows, with versions 8.0 and later supported.

You can install it from the LLVM website or along with the Visual Studio tools. When done, select the Visual Studio toolchain in CLion and point to clang-cl.exe in the toolchain settings.

Debugger for the Visual Studio C++ toolchain

Debugger for the Visual Studio C++ toolchain

The LLDB-based debugger for the Visual Studio C++ toolchain developed by JetBrains is now the default debugger for this toolchain. So you can start using it right away!

Note that bundled support for native visualizers should be enabled explicitly in Settings | Build, Execution, Deployment | Debugger Data Views | Enable NatVis renderers for LLDB.

Run and Debug configurations

Custom targets for remote and embedded GDB

Custom targets for remote and embedded GDB

Remote GDB Server and Embedded GDB Server configurations now work with custom targets. These configurations, which previously only worked with CMake targets, allow you to debug your application on a remote host or on the microcontroller from the CLion instance running on your local machine.

If you have already created these configurations, CLion 2020.1 will store previous Run/Debug Configuration settings in the projectFilesBackup directory in the project folder and will notify you about this.

Support for macros and path variables in Run/Debug configurations

Support for macros and path variables in Run/Debug configurations

You can now use Path Variables and macros in the Program Arguments and Working Directory fields in the CMake, Custom Build, and Gradle Native Applications configurations. Macros help you get values for:

  • The build directory for the current CMake run configuration.
  • The generation directory for the current CMake run configuration.
  • The project file directory.
  • And many others.

FilePrompt/Prompt macros can be used to show a file chooser dialog or string input dialog when running/debugging the configuration.

Path Variable can define a path to the library that is used widely in your projects but is located outside the project directory.

Input redirection

Input redirection

If you need to redirect input from a file to the stdin of your application, you can now do that. Use a new field in the configuration called Redirect input from. Enter:

  • A relative path (CLion will prepend with the Working directory path).
  • An absolute path (will be remapped for remote configurations).
  • Or macros (like FilePrompt).

Clang tools

DFA on Clangd

DFA on Clangd

CLion's Data Flow Analysis (DFA) does what a compiler doesn't normally do for you: It analyzes how the data flows through your code and detects potential issues based on the results. It catches conditions that are always false/true, endless loops, missing return statements, infinite recursion, and more. And with 2020.1, DFA has moved to the Clangd-based language engine to become more accurate and less heavy in terms of performance. This is still a work in progress, but some good results are already available!

Clangd-only completion

Clangd-only completion

A new mode, in which completion is fully provided by the Clangd-based language engine, is on by default. This mode solves the prioritization and ordering issues that occurred when code completion results from several engines were mixed. This behavior is controlled by the Code Completion setting in Settings | Languages & Frameworks | C/C++ | Clangd.

Dozens of various fixes and enhancements make this new mode accurate and powerful.

Learn more

ClangFormat

ClangFormat

Now, when you first open a project with a .clang-format config file in the project root, CLion will detect it and switch to ClangFormat for you automatically.

If you enable ClangFormat on a project that doesn't have a .clang-format config file, CLion will suggest creating one for you.

Clang-Tidy

Clang-Tidy

When a .clang-tidy config file is detected in the project, CLion now automatically turns off the use of the IDE settings for Clang-Tidy. The behavior is controlled by Prefer .clang-tidy files over IDE settings in Settings | Editor | Inspections | C/C++ | General | Clang-Tidy.

Formatter and code folding

New naming settings

New naming settings

Struct member fields and class member fields now have separate naming settings. Check them out in Settings | Editor | Code Style | C/C++ | Naming Convention.

Code folding

Code folding

#pragma region and #pragma endregion can be used in CLion for code folding.

Refactorings update

Refactorings update

When calling the Change Signature refactoring (Ctrl+F6), CLion updates all the usages of the function. A new Default value field in the Change Signature dialog offers the ability to specify the value of the parameter to be used across all usages. Keep it blank to use the default value type as before.

The same logic and a new Default value field apply to the Create Parameter From Usage quick-fix and the Add Parameter to Constructor intention.

Editor

Quick Documentation

Quick Documentation

Quick Documentation – a universal tool to preview documentation and get information about function signature, inferred types, and macro replacement – is now available on mouseover.

It can be controlled by the setting Show quick documentation on mouse move in Settings | Editor | Code Editing.

JetBrains Mono and IntelliJ Light

JetBrains Mono and IntelliJ Light

The default font in the editor has been changed to JetBrains Mono, a new open source font created by JetBrains. It's been designed specifically to make reading code easier.

A new default light theme – IntelliJ Light – is now the standard theme across all the different operating systems. Use View | Quick Switch Scheme | Theme to select a non-default theme if you wish.

Split terminal sessions

Split terminal sessions

With CLion 2020.1 you can split terminal sessions vertically or horizontally so that you can run them side by side. You can invoke the context menu from the Terminal to create, navigate, and close a split terminal session.

Version Control

Commit tool window and Commit dialog

New Commit tool window

An updated tool window provides more space for the list of modified files and the diff. It also lets you add changes to a commit when they are ready, compose a commit message iteratively, and choose which of the staged changes go into which commit.

The new UI is enabled by default for new users; existing users can switch to it in Settings | Version Control | Commit.

Interactively Rebase from Here

An updated, truly interactive dialog makes it possible to:

  • Select an action you want to perform on each commit in your branch.
  • Check a graph showing which actions have been applied.
  • View the commit details.
  • See a diff, and review or reset the changes if necessary.

Install Git from the IDE

The Version Control tool window is now called the Git tool window, or Subversion/Mercurial/Perforce if you are using any of these instead of Git.

You no longer need to pre-install Git manually! When you open a project using Git or import one from the VCS, if you don't have Git on your machine, CLion will offer to download and install Git for you.

Rust plugin update

Rust plugin update

With improvements to LLDB support, IntelliJ Rust now properly renders enums and primitive types, and it also shows demangled function names in the call stack.

Another major update that has landed in the plugin is REPL integration. Invoke the console from Tools | Rust REPL and use it for prototyping and checking your code line by line. The integration provides syntax highlighting and code completion, along with some handy console actions: command history, soft wrap, quick scroll to end, and others.

On the language-support side, IntelliJ Rust now handles impl blocks for type aliases. Taking performance into account, we've only enabled this feature for types with a limited number of aliases.

Other enhancements include highlighting for unused local variables, fixes in cfg attribute support, and the new Lift return inspection.

Other improvements

  • All remote configurations now benefit from using the common and unified SSH Configurations UI. No matter where a new SSH configuration originates (be that remote toolchains settings or Remote GDB server configurations), it will have an entry in Settings | Tools | SSH Configurations.
  • If you want to focus solely on your source code, you can select a new Zen mode, which combines Distraction-Free Mode with Full Screen Mode. To enable it, use View | Appearance | Enter Zen Mode.