CLion Nova inlay hints for C++
Settings | Editor | Inlay Hints | C++
note
The settings page and inlay hints described below are only available in CLion Nova. Make sure to switch to CLion Nova in Advanced Settings.
CLion Nova provides additional inlay hints and introduces a Push-to-Hint mode.

Parameter name hints are editor adornments that show parameter names next to the corresponding arguments at method calls. They can help you find your way through long (and sometimes nested) lists of parameters in function calls and aggregate initialization.
In the example below, parameter name hints help to spot the fact that height and width arguments are mixed up:

Parameter name hints show the names of the members you are initializing and help disentangle complex aggregate initializations in C++17 and later:

tip
The braces around the nested initializer lists may be elided. To make code more readable in this case, you can press AltEnter and use the
missing-braces
Clang diagnostic to add braces around the initialization of subobjects.
Type name hints help you when a type is deduced automatically by the compiler from the surrounding code. CLion Nova provides type name hints for auto variables, function and lambda return types, in structured bindings, dependent code, and after function calls.
tip
If you want to quickly disable or configure hints, right-click a hint to open the context menu. From the same menu, you can go to the options page or navigate to the related declaration.
This kind of hints is available for variables with automatically deduced type, which use the auto
or decltype(auto)
type specifiers. By default, the hint will be hidden if the deduced type is clear from the initializer expression, for example when the initializer is a constructor call, a constant, or an explicit cast.

In C++17’s structured binding declarations, type hints are especially useful since the type of a structured binding cannot be explicitly specified.

Type conversion hints help make hidden implicit conversions visible, so that you are aware of potential performance and correctness implications.
CLion Nova displays hints for different kinds of class type conversions, including object copying, object initialization using converting constructors or aggregate initialization, and calls to conversion operators.

You can also enable hints for standard conversions between built-in types, for example, conversions between numeric types that might lose precision or change the signedness of the type.
Preprocessor directive hints help you quickly understand how conditional inclusions (#ifdef
, #ifndef
, #if
, #endif
, #else
, and #elif
) correspond to macro definitions:

Inlay hints can be helpful, but on the other hand they take editor space and may seem redundant in some cases.
The Push-to-Hint mode (enabled by default) lets you keep the hints hidden, and only view them when needed by pressing and holding the Ctrl key.
To change the hints visibility, use the Default visibility switcher in Settings | Editor | Inlay Hints | C++:

Thanks for your feedback!