In CLion you can use a function, variable, data member or even a class before it is declared. The IDE will highlight it in red and suggest a quick-fix. Press Alt+Enter to add the appropriate declaration. For functions, CLion also detects the return type and the types of its parameters.
Intentions help you apply automated changes to code that is correct, to
improve it
or to make
your coding routine easier. Add data member and initializers to a constructor, apply De
Morgan’s laws to a logical expression, introduce
typedef
, move a definition out
of a class, and much more. The light bulb in the left-hand
editor gutter indicates one or more intention actions are available; simply press Alt+Enter to
apply one.
Use live templates (choose Code | Insert Live Template
or press Ctrl+J ) to produce entire code
constructs. All ready-to-use Live Templates are listed in settings
(Editor | Live Templates
). You can extend and customize this set
of templates
as needed. To apply a Live Template in code, simply type its abbreviation and press Tab.
Then, use Enter or Tab to navigate through the template variables.
Consider also 'Surround with' templates, to quickly surround your code with complete
constructs. Choose Code | Surround With
or press Ctrl+Alt+T in order to easily generate if, while,
for, #ifdef
, or other wrappers, depending on the context.
Saving time on typing is really easy with CLion's Generate menu Alt+Insert.
Get setters/getters, constructors/destructors, equality, relational and stream
output
operators
in one click. Select fields to use during the generation, as well as various options
like
generate as class members, generate in-place, use std::tie
for the
operators
implementation and other options as necessary.
In case some of the operators are already there, CLion suggests you to add missing ones or complete replace all the existing.
Feel the power of the code generation with Implement functions (Ctrl+I), Override functions (Ctrl+O) and Generate Definitions (Shift+Ctrl+D).
Generate in-place setting default value depends on your code as CLion adapts to the patterns you are using in your project, heuristics are implemented to support the most common cases (like header-only or cpp-only classes, and others).
CLion helps you keep your code high-quality, by providing a set of reliable refactorings. When you refactor, it applies your code changes throughout the scope — safely.
To see all refactorings available at the current location, use the Refactor This... menu (press Ctrl+Alt+Shift+T ).
The list of refactorings includes:
Rename Shift+F6, that renames symbols, automatically correcting all references in the code for you.
Change Signature Ctrl+F6 helps you add/remove/reorder function parameters, change the result type or update the name of the function, all usages will be fixed as well.
Inline Ctrl+Alt+N replaces redundant variable usage/function calls with its initializer/declaration.
Extract (Function Ctrl+Alt+M, Typedef Ctrl+Alt+K, Variable Ctrl+Alt+V, Parameter Ctrl+Alt+P, Define Ctrl+Alt+D, Constant Ctrl+Alt+C, Lambda Parameter) — here, CLion analyzes the block of code where you invoke the refactoring, detects the input and output variables and the usages of the selected expression, to replace them with a newly created entity of your choice.
Pull Members Up/Down safely moves class members to a base class/subclass.
And more.