CLion 2018.1 Help

Intention Actions

CLion helps you handle the situations when you use classes that haven't been imported, or methods that haven't been written etc., which can result in errors. When a possible problem is suspected, CLion suggests a solution, and in certain cases can implement this solution (properly assign variables, create missing references and more). Besides syntax problems, CLion recognizes code constructs that can be optimized or improved, and suggests appropriate intention actions, denoted with the special icons.

Intention action icons

Intention actions suggestedintentionBulbA yellow bulb indicates that CLion just proposes to alter your code. It covers a range of situations from warning correction to suggestions for code improvement (like micro-refactorings).
Specific intention actionicon intentionActionEnabledThis sign appears in the suggestion list before each specific intention action. If an intention action alert is disabled, the sign turns to icon intentionActionDisabled. Disabled intention action is still available and can be enabled again.
Quickfix suggestedquickfixBulbA red bulb with an exclamation mark indicates that CLion suggests a way to fix an error. It is related to Create from usage intentions and Quick fixes.
DisabledintentionBulbGreyAlert is disabled, but the intention action is still available and can be enabled again.

Intention action types

Find descriptions of specific intention actions on the Intentions page of the editor settings/preferences, where they are grouped according to the areas of their usage. Generally, intention actions can be divided into several categories, for example:

Create from usage
This type of intention action creates new code items: classes, methods, etc. They are smart enough to analyze your code and provide actions suitable for a particular case. The main concept behind this type is that you can begin using new things without declaring them first. You are not taken away from your current task for mundane minutiae like creating declarations, new files, etc. which CLion handles while you keep focused.
Quick fixes
This type of intention action responds to common coding mistakes: using an improper access modifier, or an expression of the wrong type, or missing resources, etc. CLion catches these kinds of problems as you type, and provides a quick way to fix them using Intentions Actions with appropriate suggestions for the error.
cl redbulb
These intention actions appear for code that is syntactically correct, but can be structurally improved by such things as:

- Converting code constructs.
- Splitting declarations and assignments.
- Splitting or merging statements and tags, etc.

Support in languages

In CLion, you can apply intention actions to code in all the supported languages except for JSON and YAML (see CLion Features in Different Languages, table Code analysis and assistance). Below you can find code snippets in four languages showing examples of different types of the Intentions:
Example: intention action on C++
Example: intention action on Objective-C
Example: intention action on Python
Example: intention action on JavaScript
Last modified: 24 July 2018

See Also